diff --git a/docs/build/doctrees/clientrpc.doctree b/docs/build/doctrees/clientrpc.doctree index 1bffcaae8d..89a973e74a 100644 Binary files a/docs/build/doctrees/clientrpc.doctree and b/docs/build/doctrees/clientrpc.doctree differ diff --git a/docs/build/doctrees/corda-configuration-files.doctree b/docs/build/doctrees/corda-configuration-files.doctree index 46824db0e8..fa07c1fdc9 100644 Binary files a/docs/build/doctrees/corda-configuration-files.doctree and b/docs/build/doctrees/corda-configuration-files.doctree differ diff --git a/docs/build/doctrees/creating-a-cordapp.doctree b/docs/build/doctrees/creating-a-cordapp.doctree index f424423715..c6ce631ad7 100644 Binary files a/docs/build/doctrees/creating-a-cordapp.doctree and b/docs/build/doctrees/creating-a-cordapp.doctree differ diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index f11abf9700..3f8b6a6bc8 100644 Binary files a/docs/build/doctrees/environment.pickle and b/docs/build/doctrees/environment.pickle differ diff --git a/docs/build/doctrees/event-scheduling.doctree b/docs/build/doctrees/event-scheduling.doctree index 5a1e3067ee..920a491e42 100644 Binary files a/docs/build/doctrees/event-scheduling.doctree and b/docs/build/doctrees/event-scheduling.doctree differ diff --git a/docs/build/doctrees/getting-set-up.doctree b/docs/build/doctrees/getting-set-up.doctree index 3e6cda8874..5a94778a85 100644 Binary files a/docs/build/doctrees/getting-set-up.doctree and b/docs/build/doctrees/getting-set-up.doctree differ diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree index 9aee50999e..0523d29426 100644 Binary files a/docs/build/doctrees/index.doctree and b/docs/build/doctrees/index.doctree differ diff --git a/docs/build/doctrees/initialmarginagreement.doctree b/docs/build/doctrees/initialmarginagreement.doctree index ead8e8b367..a7ad9f2ac5 100644 Binary files a/docs/build/doctrees/initialmarginagreement.doctree and b/docs/build/doctrees/initialmarginagreement.doctree differ diff --git a/docs/build/doctrees/loadtesting.doctree b/docs/build/doctrees/loadtesting.doctree new file mode 100644 index 0000000000..9beba04587 Binary files /dev/null and b/docs/build/doctrees/loadtesting.doctree differ diff --git a/docs/build/doctrees/messaging.doctree b/docs/build/doctrees/messaging.doctree index cbb088c684..4ff1742594 100644 Binary files a/docs/build/doctrees/messaging.doctree and b/docs/build/doctrees/messaging.doctree differ diff --git a/docs/build/doctrees/network-simulator.doctree b/docs/build/doctrees/network-simulator.doctree index 16e9b11a44..f1c3d7ef84 100644 Binary files a/docs/build/doctrees/network-simulator.doctree and b/docs/build/doctrees/network-simulator.doctree differ diff --git a/docs/build/doctrees/running-the-demos.doctree b/docs/build/doctrees/running-the-demos.doctree index 33616c673d..a389898159 100644 Binary files a/docs/build/doctrees/running-the-demos.doctree and b/docs/build/doctrees/running-the-demos.doctree differ diff --git a/docs/build/doctrees/tutorial-attachments.doctree b/docs/build/doctrees/tutorial-attachments.doctree index ed10b24971..f02de9aea3 100644 Binary files a/docs/build/doctrees/tutorial-attachments.doctree and b/docs/build/doctrees/tutorial-attachments.doctree differ diff --git a/docs/build/doctrees/tutorial-clientrpc-api.doctree b/docs/build/doctrees/tutorial-clientrpc-api.doctree index 5c6faf816d..cffb7447da 100644 Binary files a/docs/build/doctrees/tutorial-clientrpc-api.doctree and b/docs/build/doctrees/tutorial-clientrpc-api.doctree differ diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index 6c71bb6975..d958f98faa 100644 --- a/docs/build/html/.buildinfo +++ b/docs/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: ad4aa434cfebd269fdbb85815bc6eb43 +config: 02da61908148262295ef57918c434b8d tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_sources/clientrpc.txt b/docs/build/html/_sources/clientrpc.txt index 9da20ea54f..e918b116d4 100644 --- a/docs/build/html/_sources/clientrpc.txt +++ b/docs/build/html/_sources/clientrpc.txt @@ -21,9 +21,8 @@ Security -------- Users wanting to use the RPC library are first required to authenticate themselves with the node using a valid username -and password. These are kept in ``rpc-users.properties`` in the node base directory. This file also specifies -permissions for each user, which the RPC implementation can use to control access. The file format is described in -:doc:`corda-configuration-files`. +and password. These are specified in the configuration file. Each user can be configured with a set of permissions which +the RPC can use for fine-grain access control. Observables ----------- diff --git a/docs/build/html/_sources/corda-configuration-files.txt b/docs/build/html/_sources/corda-configuration-files.txt index f24b155a55..eddcfdbff2 100644 --- a/docs/build/html/_sources/corda-configuration-files.txt +++ b/docs/build/html/_sources/corda-configuration-files.txt @@ -8,7 +8,7 @@ The Corda all-in-one ``corda.jar`` file is generated by the ``gradle buildCordaJ This behaviour can be overidden using the ``--config-file`` command line option to target configuration files with different names, or different file location (relative paths are relative to the current working directory). Also, the ``--base-directory`` command line option alters the Corda node workspace location and if specified a ``node.conf`` configuration file is then expected in the root of the workspace. -The configuration file templates used for the ``gradle installTemplateNodes`` task are to be found in the ``/config/dev`` folder. Also note that there is a basic set of defaults loaded from +The configuration file templates used for the ``gradle deployNodes`` task are to be found in the ``/config/dev`` folder. Also note that there is a basic set of defaults loaded from the built in resource file ``/node/src/main/resources/reference.conf`` of the ``:node`` gradle module. All properties in this can be overidden in the file configuration and for rarely changed properties this defaulting allows the property to be excluded from the configuration file. @@ -41,6 +41,9 @@ General node configuration file for hosting the IRSDemo services. extraAdvertisedServiceIds: "corda.interest_rates" networkMapAddress : "localhost:12345" useHTTPS : false + rpcUsers : [ + { user=user1, password=letmein, permissions=[ cash ] } + ] NetworkMapService plus Simple Notary configuration file. @@ -97,20 +100,12 @@ Configuration File Fields :useHTTPS: If false the node's web server will be plain HTTP. If true the node will use the same certificate and private key from the ``/certificates/sslkeystore.jks`` file as the ArtemisMQ port for HTTPS. If HTTPS is enabled then unencrypted HTTP traffic to the node's **webAddress** port is not supported. -RPC Users File -============== +:rpcUsers: + A list of users who are authorised to access the RPC system. Each user in the list is a config object with the + following fields: -Corda also uses the ``rpc-users.properties`` file, found in the base directory, to control access to the RPC subsystem. -This is a Java properties file (details can be found in the `Javadocs `_) -which specifies a list of users with their password and list of permissions they're enabled for. + :user: Username consisting only of word characters (a-z, A-Z, 0-9 and _) + :password: The password + :permissions: A list of permission strings which RPC methods can use to control access -.. code-block:: text - :caption: Sample - - admin=notsecure,ADMIN - user1=letmein,CASH,PAPER - -In this example ``user1`` has password ``letmein`` and has permissions for ``CASH`` and ``PAPER``. The permissions are -free-form strings which can be used by the RPC methods to control access. - -If ``rpc-users.properties`` is empty or doesn't exist then the RPC subsystem is effectively locked down. \ No newline at end of file + If this field is absent or an empty list then RPC is effectively locked down. diff --git a/docs/build/html/_sources/creating-a-cordapp.txt b/docs/build/html/_sources/creating-a-cordapp.txt index 5b5183837a..b05d76e3d1 100644 --- a/docs/build/html/_sources/creating-a-cordapp.txt +++ b/docs/build/html/_sources/creating-a-cordapp.txt @@ -29,17 +29,21 @@ construction, where message handlers should be registered and threads started. Starting Nodes -------------- -To use an app you must also have a node server. To create a node server run the gradle installTemplateNodes task. +To use an app you must also have a node server. To create a node server run the ``gradle deployNodes`` task. This will output the node JAR to ``build/libs/corda.jar`` and several sample/standard node setups to ``build/nodes``. For now you can use the ``build/nodes/nodea`` configuration as a template. Each node server by default must have a ``node.conf`` file in the current working directory. After first -execution of the node server there will be many other configuration and persistence files created in a node workspace directory. This is specified as the basedir property of the node.conf file, or else can be overidden using ``--base-directory=``. +execution of the node server there will be many other configuration and persistence files created in a node +workspace directory. This is specified as the basedir property of the node.conf file, or else can be overidden +using ``--base-directory=``. .. note:: Outside of development environments do not store your node directories in the build folder. -.. warning:: Also note that the bootstrapping process of the ``corda.jar`` unpacks the Corda dependencies into a temporary folder. It is therefore suggested that the CAPSULE_CACHE_DIR environment variable be set before starting the process to control this location. +.. warning:: Also note that the bootstrapping process of the ``corda.jar`` unpacks the Corda dependencies into a + temporary folder. It is therefore suggested that the CAPSULE_CACHE_DIR environment variable be set before + starting the process to control this location. Installing Apps --------------- @@ -240,7 +244,9 @@ You can create more configurations with new tasks that extend Cordform. New nodes can be added by simply adding another node block and giving it a different name, directory and ports. When you run this task it will install the nodes to the directory specified and a script will be generated (for UNIX users only -at present) to run the nodes with one command. +at present) to run the nodes with one command (``runnodes``). On MacOS X this script will run each node in a new +terminal tab, and on Linux it will open up a new XTerm for each node. On Windows the (``runnodes.bat``) script will run +one node per window. Other cordapps can also be specified if they are already specified as classpath or compile dependencies in your ``build.gradle``. diff --git a/docs/build/html/_sources/index.txt b/docs/build/html/_sources/index.txt index ca54315def..73cfcf49b2 100644 --- a/docs/build/html/_sources/index.txt +++ b/docs/build/html/_sources/index.txt @@ -10,9 +10,12 @@ of documentation you may find useful, from highest level to lowest: 1. The `Introductory white paper`_ describes the motivating vision and background of the project. It is the kind of document your boss should read. It describes why the project exists and briefly compares it to alternative systems on the market. -2. This user guide. It describes *how* to use the system to write apps. It assumes you already have read the - relevant sections of the technology white paper and now wish to learn how to use it. -3. The `API docs`_. +2. The `Technical white paper`_ describes the entire intended design from beginning to end. It is the kind of + document that you should read, or at least, read parts of. Note that because the technical white paper + describes the intended end state, it does not always align with the implementation. +3. This user guide. It describes *how* to use the system to write apps, as currently implemented. It assumes + you already have read the relevant sections of the technology white paper and now wish to learn how to use it. +4. The `API docs`_. .. _`Introductory white paper`: _static/corda-introductory-whitepaper.pdf .. _`Technical white paper`: _static/corda-technical-whitepaper.pdf @@ -69,6 +72,7 @@ Read on to learn: :maxdepth: 2 :caption: Appendix + loadtesting secure-coding-guidelines release-process release-notes diff --git a/docs/build/html/_sources/initialmarginagreement.txt b/docs/build/html/_sources/initialmarginagreement.txt index d18a3105da..06504b85d2 100644 --- a/docs/build/html/_sources/initialmarginagreement.txt +++ b/docs/build/html/_sources/initialmarginagreement.txt @@ -69,5 +69,5 @@ Run via CLI:: 1. Navigate to the `cordapp-samples` directory in your shell 2. Run the gradle target `deployNodes` (ie; ./gradlew deployNodes for Unix or gradlew.bat on Windows) 1. Unix: `cd simm-valuation-demo/build/nodes && ./runnodes`. - 2. Windows: Open a command line window in each subdirectory of `simm-valuation-demo/build/nodes` and run `java -jar corda.jar` + 2. Windows: `cd simm-valuation-demo/build/nodes & runnodes.bat` 4. Browse to http://localhost:10005/web/simmvaluationdemo diff --git a/docs/build/html/_sources/loadtesting.txt b/docs/build/html/_sources/loadtesting.txt new file mode 100644 index 0000000000..f5da4021e7 --- /dev/null +++ b/docs/build/html/_sources/loadtesting.txt @@ -0,0 +1,114 @@ +Load testing +============ + +This section explains how to apply random load to nodes to stress test them. It also allows the specification of disruptions that strain different resources, allowing us to inspect the nodes' behaviour under extreme conditions. + +The load-testing framework is incomplete and is not part of CI currently, but the basic pieces are there. + +Configuration of the load testing cluster +----------------------------------------- + +The load-testing framework currently assumes the following about the node cluster: + +* The nodes are managed as a systemd service +* The node directories are the same across the cluster +* The messaging ports are the same across the cluster +* The executing identity of the load-test has SSH access to all machines +* There is a single network map service node +* There is a single notary node +* Some disruptions also assume other tools (like openssl) to be present + +Note that these points could and should be relaxed as needed. + +The load test Main expects a single command line argument that points to a configuration file specifying the cluster hosts and optional overrides for the default configuration: + +.. literalinclude:: ../../tools/loadtest/src/main/resources/loadtest-reference.conf + +Running the load tests +---------------------- + +In order to run the loadtests you need to have an active SSH-agent running with a single identity added that has SSH access to the loadtest cluster. + +You can use either IntelliJ or the gradle command line to start the tests. + +To use gradle: ``./gradlew tools:loadtest:run -Ploadtest-config=PATH_TO_LOADTEST_CONF`` + +To use IntelliJ simply run Main.kt with the config path supplied as an argument. + +Configuration of individual load tests +-------------------------------------- + +The load testing configurations are not set-in-stone and are meant to be played with to see how the nodes react. + +There are a couple of top-level knobs to tweak test behaviour: + +.. literalinclude:: ../../tools/loadtest/src/main/kotlin/net/corda/loadtest/LoadTest.kt + :language: kotlin + :start-after: DOCS START 2 + :end-before: DOCS END 2 + +The one thing of note is ``disruptionPatterns``, which may be used to specify ways of disrupting the normal running of the load tests. + +.. literalinclude:: ../../tools/loadtest/src/main/kotlin/net/corda/loadtest/Disruption.kt + :language: kotlin + :start-after: DOCS START 1 + :end-before: DOCS END 1 + +Disruptions run concurrently in loops on randomly chosen nodes filtered by ``nodeFilter`` at somewhat random intervals. + +As an example take ``strainCpu`` which overutilises the processor: + +.. literalinclude:: ../../tools/loadtest/src/main/kotlin/net/corda/loadtest/Disruption.kt + :language: kotlin + :start-after: DOCS START 2 + :end-before: DOCS END 2 + +We can use this by specifying a ``DisruptionSpec`` in the load test's ``RunParameters``: + +.. literalinclude:: ../../tools/loadtest/src/main/kotlin/net/corda/loadtest/Main.kt + :language: kotlin + :start-after: DOCS START 1 + :end-before: DOCS END 1 + :dedent: 30 + +This means every 5-10 seconds at least one randomly chosen nodes' cores will be spinning 100% for 10 seconds. + +How to write a load test +------------------------ + +A load test is basically defined by a random datastructure generator that specifies a unit of work a node should perform, a function that performs this work, and a function that predicts what state the node should end up in by doing so: + +.. literalinclude:: ../../tools/loadtest/src/main/kotlin/net/corda/loadtest/LoadTest.kt + :language: kotlin + :start-after: DOCS START 1 + :end-before: DOCS END 1 + +``LoadTest`` is parameterised over ``T``, the unit of work, and ``S``, the state type that aims to track remote node states. As an example let's look at the Self Issue test. This test simply creates Cash Issues from nodes to themselves, and then checks the vault to see if the numbers add up: + +.. literalinclude:: ../../tools/loadtest/src/main/kotlin/net/corda/loadtest/tests/SelfIssueTest.kt + :language: kotlin + :start-after: DOCS START 1 + :end-before: DOCS END 1 + +The unit of work ``SelfIssueCommand`` simply holds an Issue and a handle to a node where the issue should be submitted. The ``generate`` method should provide a generator for these. + +The state ``SelfIssueState`` then holds a map from node identities to a Long that describes the sum quantity of the generated issues (we fixed the currency to be USD). + +The invariant we want to hold then simply is: The sum of submitted Issues should be the sum of the quantities in the vaults. + +The ``interpret`` function should take a ``SelfIssueCommand`` and update ``SelfIssueState`` to reflect the change we're expecting in the remote nodes. In our case this will simply be adding the issued amount to the corresponding node's Long. + +The ``execute`` function should perform the action on the cluster. In our case it will simply take the node handle and submit an RPC request for the Issue. + +The ``gatherRemoteState`` function should check the actual remote nodes' states and see whether they conflict with our local predictions (and should throw if they do). This function deserves its own paragraph. + +.. literalinclude:: ../../tools/loadtest/src/main/kotlin/net/corda/loadtest/LoadTest.kt + :language: kotlin + :start-after: val execute + :end-before: val isConsistent + +``gatherRemoteState`` gets as input handles to all the nodes, and the current predicted state, or null if this is the initial gathering. + +The reason it gets the previous state boils down to allowing non-deterministic predictions about the nodes' remote states. Say some piece of work triggers an asynchronous notification of a node. We need to account both for the case when the node hasn't received the notification and for the case when it has. In these cases ``S`` should somehow represent a collection of possible states, and ``gatherRemoteState`` should "collapse" the collection based on the observations it makes. Of course we don't need this for the simple case of the Self Issue test. + +The last parameter ``isConsistent`` is used to poll for eventual consistency at the end of a load test. This is not needed for Self Issue. diff --git a/docs/build/html/_sources/network-simulator.txt b/docs/build/html/_sources/network-simulator.txt index 93dba16ccb..a6542c3a48 100644 --- a/docs/build/html/_sources/network-simulator.txt +++ b/docs/build/html/_sources/network-simulator.txt @@ -7,11 +7,15 @@ map service and are notified of the changes to the map. The network simulator is **Windows**:: - gradlew.bat network-simulator:run + gradlew.bat :samples:network-visualiser:run **Other**:: - ./gradlew network-simulator:run + ./gradlew :samples:network-visualiser:run + +You can produce a standalone JAR of the tool by using the ``:samples:network-visualiser:deployVisualiser`` target +and then using the ``samples/network-visualiser/build/libs/network-visualiser-*-capsule.jar`` file, where * is +whatever the current Corda version is. Interface --------- diff --git a/docs/build/html/_sources/running-the-demos.txt b/docs/build/html/_sources/running-the-demos.txt index e6a75b6766..862be9b0a6 100644 --- a/docs/build/html/_sources/running-the-demos.txt +++ b/docs/build/html/_sources/running-the-demos.txt @@ -13,13 +13,29 @@ so far. We have: 5. The SIMM valuation demo, a large demo which shows two nodes agreeing on a portfolio and valuing the initial margin using the Standard Initial Margin Model. -.. note:: The demos currently must be run from IntelliJ, this will change before M6. - .. note:: If any demos don't work please jump on our mailing list and let us know. +The demos can be run either from the command line, or from inside IntelliJ. Running from the command line is +recommended if you are just wanting to see them run, using IntelliJ can be helpful if you want to debug or +develop the demos themselves. + Trader demo ----------- +This demo brings up three nodes: Bank A, Bank B and a notary/network map node that they both use. Bank A will +be the buyer, and self-issues some cash in order to acquire the commercial paper from Bank B, the seller. + +To run from the command line: + +1. Run ``./gradlew samples:trader-demo:deployNodes`` to create a set of configs and installs under ``samples/trader-demo/build/nodes`` +2. Run ``./samples/trader-demo/build/nodes/runnodes`` (or ``runnodes.bat`` on Windows) to open up three new terminals with the three nodes. +3. Run ``./gradlew samples:trader-demo:runBuyer`` to set up the buyer node with some self-issued cash. This step + is not expected to print much. +4. Run ``./gradlew samples:trader-demo:runSeller`` to trigger the transaction. You can see both sides of the + trade print their progress and final transaction state in the bank node tabs/windows. + +To run from IntelliJ: + 1. Open the Corda project in IntelliJ and run the "Install" configuration 2. Open the Corda samples project in IntelliJ and run the "Trader Demo: Run Nodes" configuration 3. Run "Trader Demo: Run Buyer" @@ -31,6 +47,24 @@ In the "Trader Demo: Run Nodes" windows you should see some log lines scroll pas IRS demo -------- +This demo brings up three nodes: Bank A, Bank B and a node that runs a notary, a network map and an interest rates +oracle together. The two banks agree on an interest rate swap, and then do regular fixings of the deal as the time +on a simulated clock passes. + +To run from the command line: + +1. Run ``./gradlew samples:irs-demo:deployNodes samples:irs-demo:installDist`` to install configs and a command line tool under ``samples/irs-demo/build``. +2. Change to the ``samples/irs-demo/build`` directory. +3. Run ``./nodes/runnodes`` (or ``runnodes.bat`` on Windows) to open up three new terminals with the three nodes. +4. Run ``./install/irs-demo/bin/irs-demo --role UploadRates`` (or use ``irs-demo.bat`` on Windows). You should see a + message be printed to the first node (the notary/oracle/network map node) saying that it has accepted some new + interest rates. +5. Now run ``irs-demo`` as in step 4, but this time with ``--role Trade 1``. The number is a trade ID. You should + see lots of activity as the nodes set up the deal, notarise it, get it signed by the oracle and so on. +6. Now run ``irs-demo --role Date 2016-12-12`` to roll the simulated clock forward and see some fixings take place. + +To run from IntelliJ: + 1. Open the Corda project in IntelliJ and run the "Install" configuration 2. Open the Corda samples project in IntelliJ and run the "IRS Demo: Run Nodes" configuration 3. Run "IRS Demo: Run Upload Rates" to upload rates to the oracle. @@ -40,11 +74,8 @@ IRS demo In the "IRS Demo: Run Nodes" window you'll see a lot of activity when you run the trade and when you run the date change. The date change rolls the clock forwards and causes the nodes to agree on the fixings over a period. -IRS web demo ------------- - -There is also an IRS web demo installed. To use this follow steps 1-3 in the IRS demo and then navigate to -http://localhost:10005/web/irsdemo and http://localhost:10005/web/irsdemo to see both node's view of the trades. +There is also an web app as part of this demo. To use this set up the trades and then navigate to +http://localhost:10005/web/irsdemo and http://localhost:10005/web/irsdemo to see both node's view of the ledger. To use the demos click the "Create Deal" button, fill in the form, then click the "Submit" button. Now you will be able to use the time controls at the top left of the home page to run the fixings. Click any individual trade in the @@ -53,6 +84,17 @@ blotter to view it. Attachment demo --------------- +This demo brings up three nodes, and sends a transaction containing an attachment from one to the other. To run +it from the command line (recommended for Mac/UNIX users!): + +1. Run ``./gradlew samples:attachment-demo:deployNodes`` to create a set of configs and installs under ``samples/trader-demo/build/nodes`` +2. Run ``./samples/attachment-demo/build/nodes/runnodes`` to open up three new terminal tabs/windows with the three nodes. +3. Run ``./gradlew samples:attachment-demo:runRecipient``, which will block waiting for something to happen. +4. Run ``./gradlew samples:attachment-demo:runSender`` in another terminal window to trigger the transaction. + Now look at the other windows to see the output of the demo. + +Or you can run them from inside IntelliJ, but when done this way, all the node output is printed to a single console. + 1. Open the Corda project in IntelliJ and run the "Install" configuration 2. Open the Corda samples project in IntelliJ and run the "Attachment Demo: Run Nodes" configuration 3. Run "Attachment Demo: Run Recipient" - this waits for a trade to start diff --git a/docs/build/html/_sources/tutorial-clientrpc-api.txt b/docs/build/html/_sources/tutorial-clientrpc-api.txt index b97c50e67d..c9419f716b 100644 --- a/docs/build/html/_sources/tutorial-clientrpc-api.txt +++ b/docs/build/html/_sources/tutorial-clientrpc-api.txt @@ -1,31 +1,33 @@ .. _graphstream: http://graphstream-project.org/ -Client RPC API -============== +Client RPC API Tutorial +======================= -In this tutorial we will build a simple command line utility that connects to a node and dumps the transaction graph to -the standard output. We will then put some simple visualisation on top. For an explanation on how the RPC works see -:doc:`clientrpc`. +In this tutorial we will build a simple command line utility that +connects to a node, creates some Cash transactions and meanwhile dumps +the transaction graph to the standard output. We will then put some +simple visualisation on top. For an explanation on how the RPC works +see :doc:`clientrpc`. -We start off by connecting to the node itself. For the purposes of the tutorial we will run the Trader demo on some -local port and connect to the Buyer side. We will pass in the address as a command line argument. To connect to the node -we also need to access the certificates of the node, we will access the node's ``certificates`` directory directly. +We start off by connecting to the node itself. For the purposes of the tutorial we will use the Driver to start up a notary and a node that issues/exits and moves Cash around for herself. To authenticate we will use the certificates of the nodes directly. -.. literalinclude:: example-code/src/main/kotlin/net.corda.docs/ClientRpcTutorial.kt +Note how we configure the node to create a user that has permission to start the CashProtocol. + +.. literalinclude:: example-code/src/main/kotlin/net/corda/docs/ClientRpcTutorial.kt :language: kotlin :start-after: START 1 :end-before: END 1 -Now we can connect to the node itself using a valid RPC login. By default the user `user1` is available with password `test`. +Now we can connect to the node itself using a valid RPC login. We login using the configured user. -.. literalinclude:: example-code/src/main/kotlin/net.corda.docs/ClientRpcTutorial.kt +.. literalinclude:: example-code/src/main/kotlin/net/corda/docs/ClientRpcTutorial.kt :language: kotlin :start-after: START 2 :end-before: END 2 -``proxy`` now exposes the full RPC interface of the node: +We start generating transactions in a different thread (``generateTransactions`` to be defined later) using ``proxy``, which exposes the full RPC interface of the node: -.. literalinclude:: ../../node/src/main/kotlin/net.corda.node/services/messaging/CordaRPCOps.kt +.. literalinclude:: ../../node/src/main/kotlin/net/corda/node/services/messaging/CordaRPCOps.kt :language: kotlin :start-after: interface CordaRPCOps :end-before: } @@ -34,7 +36,7 @@ The one we need in order to dump the transaction graph is ``verifiedTransactions RPC will return a list of transactions and an Observable stream. This is a general pattern, we query some data and the node will return the current snapshot and future updates done to it. -.. literalinclude:: example-code/src/main/kotlin/net.corda.docs/ClientRpcTutorial.kt +.. literalinclude:: example-code/src/main/kotlin/net/corda/docs/ClientRpcTutorial.kt :language: kotlin :start-after: START 3 :end-before: END 3 @@ -43,41 +45,37 @@ The graph will be defined by nodes and edges between them. Each node represents output-input relations. For now let's just print ``NODE `` for the former and ``EDGE `` for the latter. -.. literalinclude:: example-code/src/main/kotlin/net.corda.docs/ClientRpcTutorial.kt +.. literalinclude:: example-code/src/main/kotlin/net/corda/docs/ClientRpcTutorial.kt :language: kotlin :start-after: START 4 :end-before: END 4 -Now we can start the trader demo as per described in :doc:`running-the-demos`:: - # Build the demo - ./gradlew installDist - # Start the buyer - ./build/install/r3prototyping/bin/trader-demo --role=BUYER +Now we just need to create the transactions themselves! -In another terminal we can connect to it with our client:: +.. literalinclude:: example-code/src/main/kotlin/net/corda/docs/ClientRpcTutorial.kt + :language: kotlin + :start-after: START 6 + :end-before: END 6 - # Connect to localhost:31337 - ./docs/source/example-code/build/install/docs/source/example-code/bin/client-rpc-tutorial localhost:31337 Print +We utilise several RPC functions here to query things like the notaries in the node cluster or our own vault. -We should see some ``NODE``-s printed. This is because the buyer self-issues some cash for the demo. -Unless we ran the seller before we shouldn't see any ``EDGE``-s because the cash hasn't been spent yet. +Then in a loop we generate randomly either an Issue, a Pay or an Exit transaction. -In another terminal we can now start the seller:: +The RPC we need to initiate a Cash transaction is ``startProtocolDynamic`` which may start an arbitrary protocol, given sufficient permissions to do so. We won't use this function directly, but rather a type-safe wrapper around it ``startProtocol`` that type-checks the arguments for us. - # Start sellers in a loop - for i in {0..9} ; do ./build/install/r3prototyping/bin/trader-demo --role=SELLER ; done +Finally we have everything in place: we start a couple of nodes, connect to them, and start creating transactions while listening on successfully created ones, which are dumped to the console. We just need to run it!: -We should start seeing new ``NODE``-s and ``EDGE``-s appearing. + # Build the example + ./gradlew docs/source/example-code:installDist + # Start it + ./docs/source/example-code/build/install/docs/source/example-code/bin/client-rpc-tutorial Print Now let's try to visualise the transaction graph. We will use a graph drawing library called graphstream_ -.. literalinclude:: example-code/src/main/kotlin/net.corda.docs/ClientRpcTutorial.kt +.. literalinclude:: example-code/src/main/kotlin/net/corda/docs/ClientRpcTutorial.kt :language: kotlin :start-after: START 5 :end-before: END 5 -If we run the client with ``Visualise`` we should see a simple graph being drawn as new transactions are being created -by the seller runs. - -That's it! We saw how to connect to the node and stream data from it. +If we run the client with ``Visualise`` we should see a simple random graph being drawn as new transactions are being created. diff --git a/docs/build/html/_static/corda-technical-whitepaper.pdf b/docs/build/html/_static/corda-technical-whitepaper.pdf index cf78900f20..fe9120998c 100644 Binary files a/docs/build/html/_static/corda-technical-whitepaper.pdf and b/docs/build/html/_static/corda-technical-whitepaper.pdf differ diff --git a/docs/build/html/_static/css/custom.css b/docs/build/html/_static/css/custom.css index 2fd187f700..d680f9cc32 100644 --- a/docs/build/html/_static/css/custom.css +++ b/docs/build/html/_static/css/custom.css @@ -1,35 +1,161 @@ @import "theme.css"; +/* Highlights */ -.highlight .k, .highlight .kd { - color: blue; +.highlight .k, +.highlight .kd { + color: #263673; } -.codesnippet-widgets { - min-width: 100%; - display: block; - background: lightskyblue; - color: white; - padding: 10px 0; - margin: 0 0 -1px 0; -} - -.codesnippet-widgets > span { - padding: 10px; - cursor: pointer; -} - -.codesnippet-widgets > .current { - background: deepskyblue; -} - -.codeset > .highlight-java { - display: none; -} - -.wy-nav-content { - max-width: 1000px; + /* Text */ +body, +h1, +h2, +.rst-content .toctree-wrapper p.caption, +h3, +h4, +h5, +h6, +legend, +input{ + color:#010101; + letter-spacing:0.3px } p { - font-size: 100%; /* Get rid of RTD rule that assumes nobody changes their browser font size */ -} \ No newline at end of file + font-size: 100%; /* Get rid of RTD rule that assumes nobody changes their browser font size */ +} + + /* Links */ +a{ + color: #263673 +} +a:hover{ + color: #005CAB +} +a:visited{ + color:#ADAFB3 +} + + /* Side navigation bar */ + +.wy-side-nav-search{ + background-color:#010101; + +} + +.wy-side-nav-search a.icon-home{ + color:transparent; + background-image:url('../images/fg002_corda_w3.png'); + background-repeat:no-repeat; + background-size: Auto 20px; + background-position:center top; + background-origin:content box; + height:20px; + width:100% + +} + +.wy-side-nav-search input[type=text]{ + border-radius:5px +} + +.wy-menu-vertical a:hover{ + background-color: #ADAFB3; + color:#FFF +} + +.wy-nav-content{ + background-color:#fff + max-width: 1000px; +} + +.wy-nav-side{ + background:#010101 +} + /* Navigation headers */ +.rst-content tt.literal, .rst-content tt.literal, .rst-content code.literal +{ + color:#EC1D24; + text-transform:none; +} + + +.wy-menu-vertical header, .wy-menu-vertical p.caption +{ + font-size:1.1em; + color:#EC1D24; + text-transform:none; + background-color: #3C3C3E; + padding: 0 0.5em; + margin-top: 0.5em; +} + + /* Code snippets */ + +.codesnippet-widgets { + min-width: 100%; + display: block; + background: #005CAB; + color: white; + padding: 10px 0; + margin: 0 0 -1px 0; +} + +.codesnippet-widgets > span { + padding: 10px; + cursor: pointer; +} + +.codesnippet-widgets > .current { + background: #263673; +} + +.codeset > .highlight-java { + display: none; +} + + +/* Notification boxes */ +.wy-alert.wy-alert-warning .wy-alert-title, +.rst-content .wy-alert-warning.note .wy-alert-title, +.rst-content .attention .wy-alert-title, +.rst-content .caution .wy-alert-title, +.rst-content .wy-alert-warning.danger .wy-alert-title, +.rst-content .wy-alert-warning.error .wy-alert-title, +.rst-content .wy-alert-warning.hint .wy-alert-title, +.rst-content .wy-alert-warning.important .wy-alert-title, +.rst-content .wy-alert-warning.tip .wy-alert-title, +.rst-content .warning .wy-alert-title, +.rst-content .wy-alert-warning.seealso .wy-alert-title, +.rst-content .admonition-todo .wy-alert-title, +.wy-alert.wy-alert-warning .rst-content .admonition-title, +.rst-content .wy-alert.wy-alert-warning .admonition-title, +.rst-content .wy-alert-warning.note .admonition-title, +.rst-content .attention .admonition-title, +.rst-content .caution .admonition-title, .rst-content +.wy-alert-warning.danger .admonition-title, +.rst-content .wy-alert-warning.error .admonition-title, +.rst-content .wy-alert-warning.hint .admonition-title, +.rst-content .wy-alert-warning.important .admonition-title, +.rst-content .wy-alert-warning.tip .admonition-title, +.rst-content .warning .admonition-title, +.rst-content .wy-alert-warning.seealso .admonition-title, +.rst-content .admonition-todo .admonition-title{ + background-color: #263673 +} + +.wy-alert, +.rst-content .note, +.rst-content .attention, +.rst-content .caution, +.rst-content .danger, +.rst-content .error, +.rst-content .hint, +.rst-content .important, +.rst-content .tip, +.rst-content .warning, +.rst-content .seealso, +.rst-content .admonition-todo{ + background-color:#d9e5ef +} + diff --git a/docs/build/html/_static/images/fg002_corda_w3.png b/docs/build/html/_static/images/fg002_corda_w3.png new file mode 100644 index 0000000000..e17c885fb3 Binary files /dev/null and b/docs/build/html/_static/images/fg002_corda_w3.png differ diff --git a/docs/build/html/api/alltypes/index.html b/docs/build/html/api/alltypes/index.html index a9ad8aa9b6..dbed4655a5 100644 --- a/docs/build/html/api/alltypes/index.html +++ b/docs/build/html/api/alltypes/index.html @@ -338,6 +338,26 @@ the same transaction.

+net.corda.protocols.CashCommand + +

A command to initiate the Cash protocol with.

+ + + + +net.corda.protocols.CashProtocol + +

Initiates a protocol that produces an Issue/Move or Exit Cash transaction.

+ + + + +net.corda.protocols.CashProtocolResult + + + + + net.corda.schemas.CashSchema

An object used to fully qualify the CashSchema family name (i.e. independent of version).

@@ -412,13 +432,6 @@ provided directly by this clause.

-net.corda.core.contracts.ClientToServiceCommand - -

A command from the monitoring client, to the node.

- - - - java.time.Clock (extensions in package net.corda.node.utilities) @@ -619,7 +632,7 @@ useful tasks. See the documentation for net.corda.node.services.messaging.CordaRPCOps

RPC operations that the node exposes to clients using the Java client library. These can be called from -client apps and are implemented by the node in the ServerRPCOps class.

+client apps and are implemented by the node in the CordaRPCOpsImpl class.

@@ -1132,6 +1145,12 @@ set via the constructor and the class is immutable.

+net.corda.protocols.InputStateRefResolveFailed + + + + + java.io.InputStream (extensions in package net.corda.core) @@ -1890,7 +1909,10 @@ because of permissioning)

net.corda.core.crypto.Party -

A Party is well known (name, pubkey) pair. In a real system this would probably be an X.509 certificate.

+

The Party class represents an entity on the network, which is typically identified by a legal name and public key +that it can sign transactions under. As parties may use multiple keys for signing and, for example, have offline backup +keys, the "public key" of a party is represented by a composite construct – a PublicKeyTree, which combines multiple +cryptographic public key primitives into a tree structure.

@@ -2031,13 +2053,13 @@ a singleton).

-net.corda.node.services.PropertiesFileRPCUserService +net.corda.node.api.ProtocolClassRef -net.corda.node.api.ProtocolClassRef +net.corda.node.services.messaging.ProtocolHandle @@ -2144,6 +2166,19 @@ For any given flow there is only one PSM, even if that protocol invokes subproto +net.corda.node.utilities.PublicKeyTreeColumnType + +

ColumnType for marshalling to/from database on behalf of PublicKeyTree.

+ + + + +net.corda.core.testing.PublicKeyTreeGenerator + + + + + net.corda.core.schemas.QueryableState

A contract state that may be mapped to database schemas configured for this node to support querying for, @@ -2203,6 +2238,12 @@ to. These permissions are represented as Strings to allow RPC im +net.corda.node.services.RPCUserServiceImpl + + + + + net.corda.client.fxutils.ReadOnlyBackedObservableMapBase

ReadOnlyBackedObservableMapBase is a base class implementing all abstract functions required for an ObservableMap @@ -2753,12 +2794,6 @@ between (after, before).

-net.corda.node.services.messaging.TransactionBuildResult - - - - - net.corda.node.api.TransactionBuildStep

Encapsulate a generateXXX method call on a contract.

@@ -2874,6 +2909,12 @@ and seller) and the following steps:

+net.corda.node.utilities.TxnNoteColumns + + + + + net.corda.core.contracts.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/index-outline.html b/docs/build/html/api/index-outline.html index d643656d7d..4abd1f4834 100644 --- a/docs/build/html/api/index-outline.html +++ b/docs/build/html/api/index-outline.html @@ -102,7 +102,7 @@ AbstractConserveAmount()
-fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<T>>, assetStates: List<StateAndRef<S>>, deriveState: (TransactionState<S>, Amount<Issued<T>>, PublicKey) -> TransactionState<S>, generateMoveCommand: () -> CommandData, generateExitCommand: (Amount<Issued<T>>) -> CommandData): PublicKey
+fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<T>>, assetStates: List<StateAndRef<S>>, deriveState: (TransactionState<S>, Amount<Issued<T>>, PublicKeyTree) -> TransactionState<S>, generateMoveCommand: () -> CommandData, generateExitCommand: (Amount<Issued<T>>) -> CommandData): PublicKeyTree
open fun toString(): String
open fun verify(tx: TransactionForContract, inputs: List<S>, outputs: List<S>, commands: List<AuthenticatedObject<C>>, groupingKey: Issued<T>?): Set<C>
@@ -131,7 +131,7 @@ -AbstractJDBCHashMap(table: T, loadOnInit: Boolean = false)
+AbstractJDBCHashMap(table: T, loadOnInit: Boolean = false, maxBuckets: Int = 256)
protected abstract fun addKeyToInsert(insert: <ERROR CLASS>, entry: Entry<K, V>, finalizables: MutableList<() -> Unit>): Unit
protected abstract fun addValueToInsert(insert: <ERROR CLASS>, entry: Entry<K, V>, finalizables: MutableList<() -> Unit>): Unit
open fun clear(): Unit
@@ -144,6 +144,7 @@ open val keys: MutableSet<K>
val loadOnInit: Boolean
protected val log: <ERROR CLASS>
+val maxBuckets: Int
open fun put(key: K, value: V): V?
open fun remove(key: K): V?
open val size: Int
@@ -161,7 +162,7 @@ -AbstractJDBCHashSet(table: T, loadOnInit: Boolean = false)
+AbstractJDBCHashSet(table: T, loadOnInit: Boolean = false, maxBuckets: Int = 256)
open fun add(element: K): Boolean
protected abstract fun addElementToInsert(insert: <ERROR CLASS>, entry: K, finalizables: MutableList<() -> Unit>): Unit
open fun clear(): Unit
@@ -244,7 +245,7 @@ lateinit var identity: IdentityService
var inNodeNetworkMapService: NetworkMapService?
var inNodeNotaryService: NotaryService?
-val info: NodeInfo
+lateinit var info: NodeInfo
protected open fun initialiseDatabasePersistence(insideTransaction: () -> Unit): Unit
protected open fun initialiseStorageService(dir: Path): <ERROR CLASS><TxWritableStorageService, CheckpointStorage>
var isPreviousCheckpointsPresent: Boolean
@@ -346,7 +347,7 @@ object NOTARY : Step
object SIGNING : Step
protected abstract fun assembleProposal(stateRef: StateRef, modification: T, stx: SignedTransaction): Proposal<T>
-protected abstract fun assembleTx(): <ERROR CLASS><SignedTransaction, List<PublicKey>>
+protected abstract fun assembleTx(): <ERROR CLASS><SignedTransaction, List<PublicKeyTree>>
open fun call(): StateAndRef<S>
val modification: T
val originalState: StateAndRef<S>
@@ -666,9 +667,9 @@ -NodeAddress(identity: PublicKey, hostAndPort: <ERROR CLASS>)
+NodeAddress(identity: PublicKeyTree, hostAndPort: <ERROR CLASS>)
val hostAndPort: <ERROR CLASS>
-val identity: PublicKey
+val identity: PublicKeyTree
val queueName: <ERROR CLASS>
fun toString(): String
@@ -680,7 +681,7 @@ abstract val config: NodeSSLConfiguration
fun configureWithDevSSLCertificate(): Unit
protected fun Path.expectedOnDefaultFileSystem(): Unit
-protected fun parseKeyFromQueueName(name: String): PublicKey
+protected fun parseKeyFromQueueName(name: String): PublicKeyTree
protected fun tcpTransport(direction: ConnectionDirection, host: String, port: Int): <ERROR CLASS>
fun toHostAndPort(target: MessageRecipients): <ERROR CLASS>
protected fun toQueueName(target: MessageRecipients): <ERROR CLASS>
@@ -814,8 +815,8 @@ -AuthenticatedObject(signers: List<PublicKey>, signingParties: List<Party>, value: T)
-val signers: List<PublicKey>
+AuthenticatedObject(signers: List<PublicKeyTree>, signingParties: List<Party>, value: T)
+val signers: List<PublicKeyTree>
val signingParties: List<Party>
val value: T
@@ -829,12 +830,12 @@ -BaseTransaction(inputs: List<*>, outputs: List<TransactionState<ContractState>>, notary: Party?, mustSign: List<PublicKey>, type: TransactionType, timestamp: Timestamp?)
+BaseTransaction(inputs: List<*>, outputs: List<TransactionState<ContractState>>, notary: Party?, mustSign: List<PublicKeyTree>, type: TransactionType, timestamp: Timestamp?)
protected fun checkInvariants(): Unit
open fun equals(other: Any?): Boolean
open fun hashCode(): Int
open val inputs: List<*>
-val mustSign: List<PublicKey>
+val mustSign: List<PublicKeyTree>
val notary: Party?
val outputs: List<TransactionState<ContractState>>
val timestamp: Timestamp?
@@ -850,8 +851,8 @@ -BilateralNetState(partyKeys: Set<PublicKey>, template: Terms<P>)
-val partyKeys: Set<PublicKey>
+BilateralNetState(partyKeys: Set<PublicKeyTree>, template: Terms<P>)
+val partyKeys: Set<PublicKeyTree>
val template: Terms<P>
@@ -877,7 +878,7 @@ -BroadcastTransactionProtocol(notarisedTransaction: SignedTransaction, events: Set<ClientToServiceCommand>, participants: Set<Party>)
+BroadcastTransactionProtocol(notarisedTransaction: SignedTransaction, participants: Set<Party>)
data class NotifyTxRequest
fun call(): Unit
-val events: Set<ClientToServiceCommand>
val notarisedTransaction: SignedTransaction
val participants: Set<Party>
@@ -1050,28 +1049,28 @@ -State(deposit: PartyAndReference, amount: Amount<Currency>, owner: PublicKey)
-State(amount: Amount<Issued<Currency>>, owner: PublicKey, encumbrance: Int? = null)
+State(deposit: PartyAndReference, amount: Amount<Currency>, owner: PublicKeyTree)
+State(amount: Amount<Issued<Currency>>, owner: PublicKeyTree, encumbrance: Int? = null)
val amount: Amount<Issued<Currency>>
val contract: Cash
val encumbrance: Int?
val exitKeys: <ERROR CLASS>
fun generateMappedObject(schema: MappedSchema): PersistentState
-fun move(newAmount: Amount<Issued<Currency>>, newOwner: PublicKey): FungibleAsset<Currency>
-val owner: PublicKey
+fun move(newAmount: Amount<Issued<Currency>>, newOwner: PublicKeyTree): FungibleAsset<Currency>
+val owner: PublicKeyTree
val participants: <ERROR CLASS>
fun supportedSchemas(): Iterable<MappedSchema>
fun toString(): String
-fun withNewOwner(newOwner: PublicKey): <ERROR CLASS>
+fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>
val conserveClause: AbstractConserveAmount<State, Commands, Currency>
-fun deriveState(txState: TransactionState<State>, amount: Amount<Issued<Currency>>, owner: PublicKey): TransactionState<State>
+fun deriveState(txState: TransactionState<State>, amount: Amount<Issued<Currency>>, owner: PublicKeyTree): TransactionState<State>
fun extractCommands(commands: Collection<AuthenticatedObject<CommandData>>): List<AuthenticatedObject<Commands>>
fun generateExitCommand(amount: Amount<Issued<Currency>>): Exit
-fun generateIssue(tx: TransactionBuilder, tokenDef: Issued<Currency>, pennies: Long, owner: PublicKey, notary: Party): Unit
-fun generateIssue(tx: TransactionBuilder, amount: Amount<Issued<Currency>>, owner: PublicKey, notary: Party): Unit
+fun generateIssue(tx: TransactionBuilder, tokenDef: Issued<Currency>, pennies: Long, owner: PublicKeyTree, notary: Party): Unit
+fun generateIssue(tx: TransactionBuilder, amount: Amount<Issued<Currency>>, owner: PublicKeyTree, notary: Party): Unit
fun generateIssueCommand(): Issue
fun generateMoveCommand(): Move
val legalContractReference: SecureHash
@@ -1092,6 +1091,116 @@ +sealed class CashCommand
+ +class CashProtocol : ProtocolLogic<CashProtocolResult>
+ +sealed class CashProtocolResult
+ object CashSchema
object CashSchemaV1 : MappedSchema
    @@ -1245,62 +1354,6 @@
-sealed class ClientToServiceCommand
- data class Command
@@ -1510,7 +1563,7 @@ fun generateIssue(issuance: PartyAndReference, faceValue: Amount<Issued<Currency>>, maturityDate: Instant, notary: Party): TransactionBuilder
-fun generateMove(tx: TransactionBuilder, paper: StateAndRef<State>, newOwner: PublicKey): Unit
+fun generateMove(tx: TransactionBuilder, paper: StateAndRef<State>, newOwner: PublicKeyTree): Unit
fun generateRedeem(tx: TransactionBuilder, paper: StateAndRef<State>, vault: VaultService): Unit
val legalContractReference: SecureHash
fun verify(tx: TransactionForContract): Unit
@@ -1581,25 +1634,25 @@ -State(issuance: PartyAndReference, owner: PublicKey, faceValue: Amount<Issued<Currency>>, maturityDate: Instant)
+State(issuance: PartyAndReference, owner: PublicKeyTree, faceValue: Amount<Issued<Currency>>, maturityDate: Instant)
val contract: CommercialPaperLegacy
val faceValue: Amount<Issued<Currency>>
val issuance: PartyAndReference
val maturityDate: Instant
-val owner: PublicKey
+val owner: PublicKeyTree
val participants: <ERROR CLASS>
fun toString(): String
fun withFaceValue(newFaceValue: Amount<Issued<Currency>>): <ERROR CLASS>
fun withIssuance(newIssuance: PartyAndReference): <ERROR CLASS>
fun withMaturityDate(newMaturityDate: Instant): <ERROR CLASS>
-fun withNewOwner(newOwner: PublicKey): <ERROR CLASS>
-fun withOwner(newOwner: PublicKey): <ERROR CLASS>
+fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>
+fun withOwner(newOwner: PublicKeyTree): <ERROR CLASS>
fun withoutOwner(): State
fun generateIssue(issuance: PartyAndReference, faceValue: Amount<Issued<Currency>>, maturityDate: Instant, notary: Party): TransactionBuilder
-fun generateMove(tx: TransactionBuilder, paper: StateAndRef<State>, newOwner: PublicKey): Unit
+fun generateMove(tx: TransactionBuilder, paper: StateAndRef<State>, newOwner: PublicKeyTree): Unit
fun generateRedeem(tx: TransactionBuilder, paper: StateAndRef<State>, vault: VaultService): Unit
val legalContractReference: SecureHash
fun verify(tx: TransactionForContract): Unit
@@ -1770,25 +1823,25 @@ -State(deposit: PartyAndReference, amount: Amount<Commodity>, owner: PublicKey)
-State(amount: Amount<Issued<Commodity>>, owner: PublicKey)
+State(deposit: PartyAndReference, amount: Amount<Commodity>, owner: PublicKeyTree)
+State(amount: Amount<Issued<Commodity>>, owner: PublicKeyTree)
val amount: Amount<Issued<Commodity>>
val contract: CommodityContract
-val exitKeys: MutableSet<PublicKey>
-fun move(newAmount: Amount<Issued<Commodity>>, newOwner: PublicKey): FungibleAsset<Commodity>
-val owner: PublicKey
+val exitKeys: MutableSet<PublicKeyTree>
+fun move(newAmount: Amount<Issued<Commodity>>, newOwner: PublicKeyTree): FungibleAsset<Commodity>
+val owner: PublicKeyTree
val participants: <ERROR CLASS>
fun toString(): String
-fun withNewOwner(newOwner: PublicKey): <ERROR CLASS>
+fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>
val conserveClause: AbstractConserveAmount<State, Commands, Commodity>
-fun deriveState(txState: TransactionState<State>, amount: Amount<Issued<Commodity>>, owner: PublicKey): TransactionState<State>
+fun deriveState(txState: TransactionState<State>, amount: Amount<Issued<Commodity>>, owner: PublicKeyTree): TransactionState<State>
fun extractCommands(commands: Collection<AuthenticatedObject<CommandData>>): List<AuthenticatedObject<Commands>>
fun generateExitCommand(amount: Amount<Issued<Commodity>>): Exit
-fun generateIssue(tx: TransactionBuilder, tokenDef: Issued<Commodity>, pennies: Long, owner: PublicKey, notary: Party): Unit
-fun generateIssue(tx: TransactionBuilder, amount: Amount<Issued<Commodity>>, owner: PublicKey, notary: Party): Unit
+fun generateIssue(tx: TransactionBuilder, tokenDef: Issued<Commodity>, pennies: Long, owner: PublicKeyTree, notary: Party): Unit
+fun generateIssue(tx: TransactionBuilder, amount: Amount<Issued<Commodity>>, owner: PublicKeyTree, notary: Party): Unit
fun generateIssueCommand(): Issue
fun generateMoveCommand(): Move
val legalContractReference: SecureHash
@@ -1917,7 +1970,7 @@ abstract val contract: Contract
open val encumbrance: Int?
-abstract val participants: List<PublicKey>
+abstract val participants: List<PublicKeyTree>
@@ -1943,9 +1996,8 @@ ContractStateModel()
+val cash: ObservableList<Amount<Issued<Currency>>>
val cashStates: ObservableList<StateAndRef<State>>
-val cashStatesDiff: <ERROR CLASS><Diff<State>>
-val contractStatesDiff: <ERROR CLASS><Diff<ContractState>>
@@ -1991,10 +2043,10 @@ abstract fun addVaultTransactionNote(txnId: SecureHash, txnNote: String): Unit
-abstract fun executeCommand(command: ClientToServiceCommand): TransactionBuildResult
abstract fun getVaultTransactionNotes(txnId: SecureHash): Iterable<String>
@RPCReturnsObservables abstract fun networkMapUpdates(): <ERROR CLASS><List<NodeInfo>, <ERROR CLASS><MapChange>>
abstract fun nodeIdentity(): NodeInfo
+@RPCReturnsObservables abstract fun <T : Any> startProtocolDynamic(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): ProtocolHandle<T>
@RPCReturnsObservables abstract fun stateMachineRecordedTransactionMapping(): <ERROR CLASS><List<StateMachineTransactionMapping>, <ERROR CLASS><StateMachineTransactionMapping>>
@RPCReturnsObservables abstract fun stateMachinesAndUpdates(): <ERROR CLASS><List<StateMachineInfo>, <ERROR CLASS><StateMachineUpdate>>
@RPCReturnsObservables abstract fun vaultAndUpdates(): <ERROR CLASS><List<StateAndRef<ContractState>>, <ERROR CLASS><Update>>
@@ -2011,28 +2063,15 @@ CordaRPCOpsImpl(services: ServiceHub, smm: StateMachineManager, database: <ERROR CLASS>)
-const val CASH_PERMISSION: String
-class InputStateRefResolveFailed : Exception
- fun addVaultTransactionNote(txnId: SecureHash, txnNote: String): Unit
val database: <ERROR CLASS>
-fun executeCommand(command: ClientToServiceCommand): TransactionBuildResult
fun getVaultTransactionNotes(txnId: SecureHash): Iterable<String>
fun networkMapUpdates(): <ERROR CLASS><List<NodeInfo>, <ERROR CLASS><MapChange>>
fun nodeIdentity(): NodeInfo
val protocolVersion: Int
val services: ServiceHub
val smm: StateMachineManager
+fun <T : Any> startProtocolDynamic(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): ProtocolHandle<T>
fun stateMachineRecordedTransactionMapping(): <ERROR CLASS><List<StateMachineTransactionMapping>, <ERROR CLASS><StateMachineTransactionMapping>>
fun stateMachinesAndUpdates(): <ERROR CLASS><List<StateMachineInfo>, <ERROR CLASS><StateMachineUpdate>>
fun vaultAndUpdates(): <ERROR CLASS><List<StateAndRef<ContractState>>, <ERROR CLASS><Update>>
@@ -2515,11 +2554,11 @@ -MultiOwnerState(magicNumber: Int = 0, owners: List<PublicKey>)
+MultiOwnerState(magicNumber: Int = 0, owners: List<PublicKeyTree>)
val contract: DummyContract
val magicNumber: Int
-val owners: List<PublicKey>
-val participants: List<PublicKey>
+val owners: List<PublicKeyTree>
+val participants: List<PublicKeyTree>
@@ -2531,12 +2570,12 @@ -SingleOwnerState(magicNumber: Int = 0, owner: PublicKey)
+SingleOwnerState(magicNumber: Int = 0, owner: PublicKeyTree)
val contract: DummyContract
val magicNumber: Int
-val owner: PublicKey
-val participants: List<PublicKey>
-fun withNewOwner(newOwner: PublicKey): <ERROR CLASS>
+val owner: PublicKeyTree
+val participants: List<PublicKeyTree>
+fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>
@@ -2554,8 +2593,8 @@ fun generateInitial(owner: PartyAndReference, magicNumber: Int, notary: Party): TransactionBuilder
val legalContractReference: SecureHash
-fun move(prior: StateAndRef<SingleOwnerState>, newOwner: PublicKey): <ERROR CLASS>
-fun move(priors: List<StateAndRef<SingleOwnerState>>, newOwner: PublicKey): TransactionBuilder
+fun move(prior: StateAndRef<SingleOwnerState>, newOwner: PublicKeyTree): <ERROR CLASS>
+fun move(priors: List<StateAndRef<SingleOwnerState>>, newOwner: PublicKeyTree): TransactionBuilder
fun verify(tx: TransactionForContract): Unit
@@ -2591,7 +2630,7 @@ DummyState(magicNumber: Int = 0)
val contract: DummyContract
val magicNumber: Int
-val participants: List<PublicKey>
+val participants: List<PublicKeyTree>
@@ -2683,8 +2722,8 @@ ErrorOr(value: A)
-fun <B> bind(function: (A) -> ErrorOr<B>): ErrorOr<Nothing>
-inline fun <T> catch(body: () -> T): ErrorOr<T>
+fun <B : Any> bind(function: (A) -> ErrorOr<B>): ErrorOr<B>
+inline fun <T : Any> catch(body: () -> T): ErrorOr<T>
fun <B, C> combine(other: ErrorOr<B>, function: (A, B) -> C): ErrorOr<C>
val error: Throwable?
fun getOrThrow(): A
@@ -2714,6 +2753,7 @@ val exitCashGenerator: <ERROR CLASS>
val issueCashGenerator: <ERROR CLASS>
val issueRefGenerator: Generator<OpaqueBytes>
+val issuedGenerator: <ERROR CLASS>
val issuerGenerator: Generator<PartyAndReference>
val moveCashGenerator: <ERROR CLASS>
val notary: Party
@@ -3001,11 +3041,10 @@ -FinalityProtocol(transaction: SignedTransaction, events: Set<ClientToServiceCommand>, participants: Set<Party>, progressTracker: ProgressTracker = tracker())
+FinalityProtocol(transaction: SignedTransaction, participants: Set<Party>, progressTracker: ProgressTracker = tracker())
object BROADCASTING : Step
object NOTARISING : Step
fun call(): Unit
-val events: Set<ClientToServiceCommand>
val participants: Set<Party>
val progressTracker: ProgressTracker
fun tracker(): ProgressTracker
@@ -3266,9 +3305,9 @@ abstract val amount: Amount<Issued<T>>
-abstract val exitKeys: Collection<PublicKey>
-abstract fun move(newAmount: Amount<Issued<T>>, newOwner: PublicKey): FungibleAsset<T>
-abstract val owner: PublicKey
+abstract val exitKeys: Collection<PublicKeyTree>
+abstract fun move(newAmount: Amount<Issued<T>>, newOwner: PublicKeyTree): FungibleAsset<T>
+abstract val owner: PublicKeyTree
@@ -3299,7 +3338,7 @@ -class Generator<out A>
+class Generator<out A : Any>
@@ -3398,7 +3437,7 @@ -abstract fun partyFromKey(key: PublicKey): Party?
+abstract fun partyFromKey(key: PublicKeyTree): Party?
abstract fun partyFromName(name: String): Party?
abstract fun registerIdentity(party: Party): Unit
@@ -3443,7 +3482,7 @@ InMemoryIdentityService()
-fun partyFromKey(key: PublicKey): Party?
+fun partyFromKey(key: PublicKeyTree): Party?
fun partyFromName(name: String): Party?
fun registerIdentity(party: Party): Unit
@@ -3464,9 +3503,13 @@ open fun deregisterForUpdates(net: MessagingService, service: NodeInfo): <ERROR CLASS><Unit>
open fun get(): <ERROR CLASS>
open fun get(serviceType: ServiceType): <ERROR CLASS>
+open fun getAnyNotary(type: ServiceType?): Party?
open fun getNodeByLegalName(name: String): <ERROR CLASS>
-open fun getNodeByPublicKey(publicKey: PublicKey): NodeInfo?
+open fun getNodeByPublicKeyTree(publicKeyTree: PublicKeyTree): NodeInfo?
+open fun getNotary(name: String): Party?
open fun getRecommended(type: ServiceType, contract: Contract, vararg party: Party): NodeInfo?
+open fun getRepresentativeNode(party: Party): NodeInfo?
+open fun isNotary(party: Party): <ERROR CLASS>
open val mapServiceRegistered: <ERROR CLASS><Unit>
open val networkMapNodes: List<NodeInfo>
open val notaryNodes: List<NodeInfo>
@@ -3521,6 +3564,18 @@ +class InputStateRefResolveFailed : Exception
+ object InstantColumnType
@@ -5688,9 +5749,9 @@ -fun generateCloseOutNetting(tx: TransactionBuilder, signer: PublicKey, vararg states: State<P>): Unit
-fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<Terms<P>>>, assetStates: List<StateAndRef<State<P>>>): PublicKey
-fun generateIssue(tx: TransactionBuilder, obligor: Party, issuanceDef: Terms<P>, pennies: Long, beneficiary: PublicKey, notary: Party): Unit
+fun generateCloseOutNetting(tx: TransactionBuilder, signer: PublicKeyTree, vararg states: State<P>): Unit
+fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<Terms<P>>>, assetStates: List<StateAndRef<State<P>>>): PublicKeyTree
+fun generateIssue(tx: TransactionBuilder, obligor: Party, issuanceDef: Terms<P>, pennies: Long, beneficiary: PublicKeyTree, notary: Party): Unit
fun generatePaymentNetting(tx: TransactionBuilder, issued: Issued<Terms<P>>, notary: Party, vararg states: State<P>): Unit
fun generateSetLifecycle(tx: TransactionBuilder, statesAndRefs: List<StateAndRef<State<P>>>, lifecycle: Lifecycle, notary: Party): Unit
fun generateSettle(tx: TransactionBuilder, statesAndRefs: Iterable<StateAndRef<State<P>>>, assetStatesAndRefs: Iterable<StateAndRef<FungibleAsset<P>>>, moveCommand: MoveCommand, notary: Party): Unit
@@ -5709,9 +5770,9 @@ OnLedgerAsset()
abstract val conserveClause: AbstractConserveAmount<S, C, T>
-abstract fun deriveState(txState: TransactionState<S>, amount: Amount<Issued<T>>, owner: PublicKey): TransactionState<S>
+abstract fun deriveState(txState: TransactionState<S>, amount: Amount<Issued<T>>, owner: PublicKeyTree): TransactionState<S>
abstract fun extractCommands(commands: Collection<AuthenticatedObject<CommandData>>): Collection<AuthenticatedObject<C>>
-fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<T>>, assetStates: List<StateAndRef<S>>): PublicKey
+fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<T>>, assetStates: List<StateAndRef<S>>): PublicKeyTree
abstract fun generateExitCommand(amount: Amount<Issued<T>>): Exit<T>
abstract fun generateIssueCommand(): Issue
abstract fun generateMoveCommand(): Move
@@ -5773,8 +5834,8 @@ -abstract val owner: PublicKey
-abstract fun withNewOwner(newOwner: PublicKey): <ERROR CLASS><CommandData, OwnableState>
+abstract val owner: PublicKeyTree
+abstract fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS><CommandData, OwnableState>
@@ -5934,8 +5995,9 @@ Party(name: String, owningKey: PublicKey)
+Party(name: String, owningKey: PublicKeyTree)
val name: String
-val owningKey: PublicKey
+val owningKey: PublicKeyTree
fun ref(bytes: OpaqueBytes): PartyAndReference
fun ref(vararg bytes: Byte): PartyAndReference
fun toString(): String
@@ -5978,9 +6040,9 @@ -PartyColumns(name: <ERROR CLASS><String>, owningKey: <ERROR CLASS><PublicKey>)
+PartyColumns(name: <ERROR CLASS><String>, owningKey: <ERROR CLASS><PublicKeyTree>)
val name: <ERROR CLASS><String>
-val owningKey: <ERROR CLASS><PublicKey>
+val owningKey: <ERROR CLASS><PublicKeyTree>
@@ -6148,8 +6210,9 @@ -Incremental(portCounter: Int)
+Incremental(startingPort: Int)
fun nextPort(): Int
+val portCounter: AtomicInteger
@@ -6332,20 +6395,6 @@ -class PropertiesFileRPCUserService : RPCUserService
- data class ProtocolClassRef : ProtocolRef
    @@ -6359,6 +6408,21 @@
+data class ProtocolHandle<A>
+ interface ProtocolIORequest
@@ -6605,23 +6669,52 @@ Node(threshold: Int, children: List<PublicKeyTree>, weights: List<Int>)
val children: List<PublicKeyTree>
fun equals(other: Any?): Boolean
-fun getKeys(): Set<PublicKey>
fun hashCode(): Int
fun isFulfilledBy(keys: Iterable<PublicKey>): Boolean
+val keys: Set<PublicKey>
val threshold: Int
+fun toString(): String
val weights: List<Int>
-fun containsAny(keys: Iterable<PublicKey>): <ERROR CLASS>
-abstract fun getKeys(): Set<PublicKey>
+fun containsAny(otherKeys: Iterable<PublicKey>): <ERROR CLASS>
abstract fun isFulfilledBy(keys: Iterable<PublicKey>): Boolean
fun isFulfilledBy(key: PublicKey): <ERROR CLASS>
+abstract val keys: Set<PublicKey>
fun parseFromBase58(encoded: String): <ERROR CLASS>
+val singleKey: PublicKey
fun toBase58String(): String
+object PublicKeyTreeColumnType
+ +class PublicKeyTreeGenerator
+ interface QueryableState : ContractState
+class RPCUserServiceImpl : RPCUserService
+ open class ReadOnlyBackedObservableMapBase<K, A, B> : ObservableMap<K, A>
@@ -7334,10 +7441,10 @@ -SignaturesMissingException(missing: Set<PublicKey>, descriptions: List<String>, id: SecureHash)
+SignaturesMissingException(missing: Set<PublicKeyTree>, descriptions: List<String>, id: SecureHash)
val descriptions: List<String>
val id: SecureHash
-val missing: Set<PublicKey>
+val missing: Set<PublicKeyTree>
fun toString(): String
@@ -7350,7 +7457,7 @@ fun toLedgerTransaction(services: ServiceHub): LedgerTransaction
val tx: WireTransaction
val txBits: SerializedBytes<WireTransaction>
-fun verifySignatures(vararg allowedToBeMissing: PublicKey): WireTransaction
+fun verifySignatures(vararg allowedToBeMissing: PublicKeyTree): WireTransaction
fun withAdditionalSignature(sig: WithKey): SignedTransaction
fun withAdditionalSignatures(sigList: Iterable<WithKey>): SignedTransaction
@@ -8230,47 +8337,6 @@ -sealed class TransactionBuildResult
- data class TransactionBuildStep
open fun equals(other: Any?): Boolean
-abstract fun getRequiredSigners(tx: LedgerTransaction): Set<PublicKey>
+abstract fun getRequiredSigners(tx: LedgerTransaction): Set<PublicKeyTree>
open fun hashCode(): <ERROR CLASS>
fun verify(tx: LedgerTransaction): Unit
-fun verifySigners(tx: LedgerTransaction): Set<PublicKey>
+fun verifySigners(tx: LedgerTransaction): Set<PublicKeyTree>
abstract fun verifyTransaction(tx: LedgerTransaction): Unit
@@ -8655,8 +8721,8 @@ -SignersMissing(tx: LedgerTransaction, missing: List<PublicKey>)
-val missing: List<PublicKey>
+SignersMissing(tx: LedgerTransaction, missing: List<PublicKeyTree>)
+val missing: List<PublicKeyTree>
fun toString(): String
@@ -8710,7 +8776,7 @@ Acceptor(otherParty: Party, progressTracker: ProgressTracker = Secondary.tracker())
-protected open fun assembleSharedTX(handshake: Handshake<AutoOffer>): <ERROR CLASS><TransactionBuilder, List<PublicKey>>
+protected open fun assembleSharedTX(handshake: Handshake<AutoOffer>): <ERROR CLASS><TransactionBuilder, List<PublicKeyTree>>
open val otherParty: Party
open val progressTracker: ProgressTracker
protected open fun validateHandshake(handshake: Handshake<AutoOffer>): Handshake<AutoOffer>
@@ -8769,9 +8835,9 @@ -Handshake(payload: T, publicKey: PublicKey)
+Handshake(payload: T, publicKey: PublicKeyTree)
val payload: T
-val publicKey: PublicKey
+val publicKey: PublicKeyTree
@@ -8837,7 +8903,7 @@ object SIGNING : Step
object SWAPPING_SIGNATURES : Step
object VERIFYING : Step
-protected abstract fun assembleSharedTX(handshake: Handshake<U>): <ERROR CLASS><TransactionBuilder, List<PublicKey>>
+protected abstract fun assembleSharedTX(handshake: Handshake<U>): <ERROR CLASS><TransactionBuilder, List<PublicKeyTree>>
open fun call(): SignedTransaction
abstract val otherParty: Party
open val progressTracker: ProgressTracker
@@ -8854,8 +8920,8 @@ -SignaturesFromPrimary(sellerSig: WithKey, notarySig: LegallyIdentifiable)
-val notarySig: LegallyIdentifiable
+SignaturesFromPrimary(sellerSig: WithKey, notarySig: WithKey)
+val notarySig: WithKey
val sellerSig: WithKey
@@ -8942,10 +9008,10 @@ -SellerTradeInfo(assetForSale: StateAndRef<OwnableState>, price: Amount<Currency>, sellerOwnerKey: PublicKey)
+SellerTradeInfo(assetForSale: StateAndRef<OwnableState>, price: Amount<Currency>, sellerOwnerKey: PublicKeyTree)
val assetForSale: StateAndRef<OwnableState>
val price: Amount<Currency>
-val sellerOwnerKey: PublicKey
+val sellerOwnerKey: PublicKeyTree
@@ -8957,8 +9023,8 @@ -SignaturesFromSeller(sellerSig: WithKey, notarySig: LegallyIdentifiable)
-val notarySig: LegallyIdentifiable
+SignaturesFromSeller(sellerSig: WithKey, notarySig: WithKey)
+val notarySig: WithKey
val sellerSig: WithKey
@@ -8991,6 +9057,20 @@ +data class TxnNoteColumns
+ abstract class TypeOnlyCommandData : CommandData
@@ -9194,7 +9273,7 @@ abstract fun addNoteToTransaction(txnId: SecureHash, noteText: String): Unit
open val cashBalances: Map<Currency, Amount<Currency>>
abstract val currentVault: Vault
-abstract fun generateSpend(tx: TransactionBuilder, amount: Amount<Currency>, to: PublicKey, onlyFromParties: Set<Party>? = null): <ERROR CLASS><TransactionBuilder, List<PublicKey>>
+abstract fun generateSpend(tx: TransactionBuilder, amount: Amount<Currency>, to: PublicKeyTree, onlyFromParties: Set<Party>? = null): <ERROR CLASS><TransactionBuilder, List<PublicKeyTree>>
abstract fun getTransactionNotes(txnId: SecureHash): Iterable<String>
abstract val linearHeads: Map<UniqueIdentifier, StateAndRef<LinearState>>
open fun <T : LinearState> linearHeadsOfType_(stateType: Class<T>): Map<UniqueIdentifier, StateAndRef<T>>
@@ -9281,7 +9360,7 @@ -WireTransaction(inputs: List<StateRef>, attachments: List<SecureHash>, outputs: List<TransactionState<ContractState>>, commands: List<Command>, notary: Party?, signers: List<PublicKey>, type: TransactionType, timestamp: Timestamp?)
+WireTransaction(inputs: List<StateRef>, attachments: List<SecureHash>, outputs: List<TransactionState<ContractState>>, commands: List<Command>, notary: Party?, signers: List<PublicKeyTree>, type: TransactionType, timestamp: Timestamp?)
val allLeavesHashes: List<SecureHash>
val attachments: List<SecureHash>
var cachedTree: MerkleTree?
@@ -9566,6 +9645,7 @@ fun <A : Any, B : Any, C, K : Any> ObservableList<A>.leftOuterJoin(rightTable: ObservableList<B>, leftToJoinKey: (A) -> K, rightToJoinKey: (B) -> K, assemble: (A, ObservableList<B>) -> C): ObservableList<C>
fun <A : Any, B : Any, K : Any> ObservableList<A>.leftOuterJoin(rightTable: ObservableList<B>, leftToJoinKey: (A) -> K, rightToJoinKey: (B) -> K): ObservableMap<K, <ERROR CLASS><ObservableList<A>, ObservableList<B>>>
fun <A, B> ObservableList<out A>.map(cached: Boolean = true, function: (A) -> B): ObservableList<B>
+fun <T : Any> ObservableList<T>.unique(): ObservableList<T>
@@ -9775,8 +9855,8 @@ inline fun <reified T : CommandData> Collection<AuthenticatedObject<CommandData>>.requireSingleCommand(): <ERROR CLASS>
fun <C : CommandData> Collection<AuthenticatedObject<CommandData>>.requireSingleCommand(klass: Class<C>): <ERROR CLASS>
-inline fun <reified T : CommandData> Collection<AuthenticatedObject<CommandData>>.select(signer: PublicKey? = null, party: Party? = null): <ERROR CLASS>
-inline fun <reified T : CommandData> Collection<AuthenticatedObject<CommandData>>.select(signers: Collection<PublicKey>?, parties: Collection<Party>?): <ERROR CLASS>
+inline fun <reified T : CommandData> Collection<AuthenticatedObject<CommandData>>.select(signer: PublicKeyTree? = null, party: Party? = null): <ERROR CLASS>
+inline fun <reified T : CommandData> Collection<AuthenticatedObject<CommandData>>.select(signers: Collection<PublicKeyTree>?, parties: Collection<Party>?): <ERROR CLASS>
@@ -9818,8 +9898,7 @@ fun Iterable<WithKey>.byKeys(): <ERROR CLASS>
-fun Iterable<PublicKeyTree>.getKeys(): <ERROR CLASS>
-fun Iterable<PublicKey>.toStringsShort(): String
+val Iterable<PublicKeyTree>.keys: Set<PublicKey>
@@ -9858,7 +9937,7 @@ fun Iterable<ContractState>.sumCash(): Amount<Issued<Currency>>
-fun Iterable<ContractState>.sumCashBy(owner: PublicKey): Amount<Issued<Currency>>
+fun Iterable<ContractState>.sumCashBy(owner: PublicKeyTree): Amount<Issued<Currency>>
fun Iterable<ContractState>.sumCashOrNull(): Amount<Issued<Currency>>?
fun Iterable<ContractState>.sumCashOrZero(currency: Issued<Currency>): Amount<Issued<Currency>>
fun Iterable<ContractState>.sumCommodities(): <ERROR CLASS>
@@ -9879,6 +9958,8 @@ fun <T> List<T>.indexOfOrThrow(item: T): Int
+fun <T> List<T>.randomOrNull(): T?
+fun <T> List<T>.randomOrNull(predicate: (T) -> Boolean): <ERROR CLASS>
@@ -10158,6 +10239,7 @@ fun <A : Any, B : Any, C, K : Any> ObservableList<A>.leftOuterJoin(rightTable: ObservableList<B>, leftToJoinKey: (A) -> K, rightToJoinKey: (B) -> K, assemble: (A, ObservableList<B>) -> C): ObservableList<C>
fun <A : Any, B : Any, K : Any> ObservableList<A>.leftOuterJoin(rightTable: ObservableList<B>, leftToJoinKey: (A) -> K, rightToJoinKey: (B) -> K): ObservableMap<K, <ERROR CLASS><ObservableList<A>, ObservableList<B>>>
fun <A, B> ObservableList<out A>.map(cached: Boolean = true, function: (A) -> B): ObservableList<B>
+fun <T : Any> ObservableList<T>.unique(): ObservableList<T>
@@ -10269,6 +10351,7 @@ val exitCashGenerator: <ERROR CLASS>
val issueCashGenerator: <ERROR CLASS>
val issueRefGenerator: Generator<OpaqueBytes>
+val issuedGenerator: <ERROR CLASS>
val issuerGenerator: Generator<PartyAndReference>
val moveCashGenerator: <ERROR CLASS>
val notary: Party
@@ -10279,7 +10362,7 @@ -class Generator<out A>
+class Generator<out A : Any>
+fun Generator.Companion.bytes(size: Int): Generator<ByteArray>
fun Generator.Companion.double(): Generator<Double>
fun Generator.Companion.doubleRange(from: Double, to: Double): Generator<Double>
-fun <A> Generator<A>.generateOrFail(random: Random, numberOfTries: Int = 1): A
+fun <A : Any> Generator.Companion.frequency(vararg generators: <ERROR CLASS><Double, Generator<A>>): <ERROR CLASS>
+fun <T : Any> generateAmount(min: Long, max: Long, tokenGenerator: Generator<T>): Generator<Amount<T>>
+fun generateCurrency(): Generator<Currency>
+fun generateCurrencyAmount(min: Long, max: Long): Generator<Amount<Currency>>
+fun generateIssueRef(size: Int): Generator<OpaqueBytes>
+fun <A : Any> Generator<A>.generateOrFail(random: SplittableRandom, numberOfTries: Int = 1): A
fun Generator.Companion.int(): Generator<Int>
+fun Generator.Companion.intRange(range: IntRange): Generator<Int>
fun Generator.Companion.intRange(from: Int, to: Int): Generator<Int>
-fun <A> Generator.Companion.oneOf(list: List<A>): Generator<A>
-fun <A> Generator.Companion.pickOne(list: List<A>): Generator<A>
-fun <A> Generator.Companion.replicate(number: Int, generator: Generator<A>): Generator<List<A>>
-fun <A> Generator.Companion.replicatePoisson(meanSize: Double, generator: Generator<A>): Generator<List<A>>
+fun Generator.Companion.longRange(range: LongRange): Generator<Long>
+fun Generator.Companion.longRange(from: Long, to: Long): Generator<Long>
+fun <A : Any> Generator.Companion.pickN(number: Int, list: List<A>): Generator<List<A>>
+fun <A : Any> Generator.Companion.pickOne(list: List<A>): Generator<A>
+fun <A : Any> Generator.Companion.replicate(number: Int, generator: Generator<A>): Generator<List<A>>
+fun <A : Any> Generator.Companion.replicatePoisson(meanSize: Double, generator: Generator<A>): Generator<List<A>>
fun <A> Generator.Companion.sampleBernoulli(maxRatio: Double = 1.0, vararg collection: A): <ERROR CLASS>
fun <A> Generator.Companion.sampleBernoulli(collection: Collection<A>, maxRatio: Double = 1.0): Generator<List<A>>
@@ -10337,9 +10429,8 @@ ContractStateModel()
+val cash: ObservableList<Amount<Issued<Currency>>>
val cashStates: ObservableList<StateAndRef<State>>
-val cashStatesDiff: <ERROR CLASS><Diff<State>>
-val contractStatesDiff: <ERROR CLASS><Diff<ContractState>>
@@ -10432,7 +10523,7 @@ NetworkIdentityModel()
-fun lookup(publicKey: PublicKey): NodeInfo?
+fun lookup(publicKeyTree: PublicKeyTree): NodeInfo?
val myIdentity: ObservableValue<NodeInfo?>
val notaries: ObservableList<NodeInfo>
val parties: ObservableList<NodeInfo>
@@ -10448,7 +10539,7 @@ NodeMonitorModel()
-val clientToService: <ERROR CLASS><ClientToServiceCommand>
+val clientToService: <ERROR CLASS><CashCommand>
val networkMap: <ERROR CLASS><MapChange>
val progressTracking: <ERROR CLASS><ProgressTrackingEvent>
val proxyObservable: SimpleObjectProperty<CordaRPCOps?>
@@ -10939,22 +11030,22 @@ -State(issuance: PartyAndReference, owner: PublicKey, faceValue: Amount<Issued<Currency>>, maturityDate: Instant)
+State(issuance: PartyAndReference, owner: PublicKeyTree, faceValue: Amount<Issued<Currency>>, maturityDate: Instant)
val contract: CommercialPaper
val faceValue: Amount<Issued<Currency>>
fun generateMappedObject(schema: MappedSchema): PersistentState
val issuance: PartyAndReference
val maturityDate: Instant
-val owner: PublicKey
-val participants: List<PublicKey>
+val owner: PublicKeyTree
+val participants: List<PublicKeyTree>
fun supportedSchemas(): Iterable<MappedSchema>
fun toString(): String
val token: Issued<Terms>
fun withFaceValue(newFaceValue: Amount<Issued<Currency>>): <ERROR CLASS>
fun withIssuance(newIssuance: PartyAndReference): <ERROR CLASS>
fun withMaturityDate(newMaturityDate: Instant): <ERROR CLASS>
-fun withNewOwner(newOwner: PublicKey): <ERROR CLASS>
-fun withOwner(newOwner: PublicKey): <ERROR CLASS>
+fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>
+fun withOwner(newOwner: PublicKeyTree): <ERROR CLASS>
@@ -10973,7 +11064,7 @@ fun generateIssue(issuance: PartyAndReference, faceValue: Amount<Issued<Currency>>, maturityDate: Instant, notary: Party): TransactionBuilder
-fun generateMove(tx: TransactionBuilder, paper: StateAndRef<State>, newOwner: PublicKey): Unit
+fun generateMove(tx: TransactionBuilder, paper: StateAndRef<State>, newOwner: PublicKeyTree): Unit
fun generateRedeem(tx: TransactionBuilder, paper: StateAndRef<State>, vault: VaultService): Unit
val legalContractReference: SecureHash
fun verify(tx: TransactionForContract): Unit
@@ -11044,33 +11135,33 @@ -State(issuance: PartyAndReference, owner: PublicKey, faceValue: Amount<Issued<Currency>>, maturityDate: Instant)
+State(issuance: PartyAndReference, owner: PublicKeyTree, faceValue: Amount<Issued<Currency>>, maturityDate: Instant)
val contract: CommercialPaperLegacy
val faceValue: Amount<Issued<Currency>>
val issuance: PartyAndReference
val maturityDate: Instant
-val owner: PublicKey
+val owner: PublicKeyTree
val participants: <ERROR CLASS>
fun toString(): String
fun withFaceValue(newFaceValue: Amount<Issued<Currency>>): <ERROR CLASS>
fun withIssuance(newIssuance: PartyAndReference): <ERROR CLASS>
fun withMaturityDate(newMaturityDate: Instant): <ERROR CLASS>
-fun withNewOwner(newOwner: PublicKey): <ERROR CLASS>
-fun withOwner(newOwner: PublicKey): <ERROR CLASS>
+fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>
+fun withOwner(newOwner: PublicKeyTree): <ERROR CLASS>
fun withoutOwner(): State
fun generateIssue(issuance: PartyAndReference, faceValue: Amount<Issued<Currency>>, maturityDate: Instant, notary: Party): TransactionBuilder
-fun generateMove(tx: TransactionBuilder, paper: StateAndRef<State>, newOwner: PublicKey): Unit
+fun generateMove(tx: TransactionBuilder, paper: StateAndRef<State>, newOwner: PublicKeyTree): Unit
fun generateRedeem(tx: TransactionBuilder, paper: StateAndRef<State>, vault: VaultService): Unit
val legalContractReference: SecureHash
fun verify(tx: TransactionForContract): Unit
-infix fun State.owned by(owner: PublicKey): State
-infix fun <ERROR CLASS>.owned by(newOwner: PublicKey): <ERROR CLASS>
+infix fun State.owned by(owner: PublicKeyTree): State
+infix fun <ERROR CLASS>.owned by(newOwner: PublicKeyTree): <ERROR CLASS>
infix fun State.with notary(notary: Party): TransactionState<State>
@@ -11202,28 +11293,28 @@ -State(deposit: PartyAndReference, amount: Amount<Currency>, owner: PublicKey)
-State(amount: Amount<Issued<Currency>>, owner: PublicKey, encumbrance: Int? = null)
+State(deposit: PartyAndReference, amount: Amount<Currency>, owner: PublicKeyTree)
+State(amount: Amount<Issued<Currency>>, owner: PublicKeyTree, encumbrance: Int? = null)
val amount: Amount<Issued<Currency>>
val contract: Cash
val encumbrance: Int?
val exitKeys: <ERROR CLASS>
fun generateMappedObject(schema: MappedSchema): PersistentState
-fun move(newAmount: Amount<Issued<Currency>>, newOwner: PublicKey): FungibleAsset<Currency>
-val owner: PublicKey
+fun move(newAmount: Amount<Issued<Currency>>, newOwner: PublicKeyTree): FungibleAsset<Currency>
+val owner: PublicKeyTree
val participants: <ERROR CLASS>
fun supportedSchemas(): Iterable<MappedSchema>
fun toString(): String
-fun withNewOwner(newOwner: PublicKey): <ERROR CLASS>
+fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>
val conserveClause: AbstractConserveAmount<State, Commands, Currency>
-fun deriveState(txState: TransactionState<State>, amount: Amount<Issued<Currency>>, owner: PublicKey): TransactionState<State>
+fun deriveState(txState: TransactionState<State>, amount: Amount<Issued<Currency>>, owner: PublicKeyTree): TransactionState<State>
fun extractCommands(commands: Collection<AuthenticatedObject<CommandData>>): List<AuthenticatedObject<Commands>>
fun generateExitCommand(amount: Amount<Issued<Currency>>): Exit
-fun generateIssue(tx: TransactionBuilder, tokenDef: Issued<Currency>, pennies: Long, owner: PublicKey, notary: Party): Unit
-fun generateIssue(tx: TransactionBuilder, amount: Amount<Issued<Currency>>, owner: PublicKey, notary: Party): Unit
+fun generateIssue(tx: TransactionBuilder, tokenDef: Issued<Currency>, pennies: Long, owner: PublicKeyTree, notary: Party): Unit
+fun generateIssue(tx: TransactionBuilder, amount: Amount<Issued<Currency>>, owner: PublicKeyTree, notary: Party): Unit
fun generateIssueCommand(): Issue
fun generateMoveCommand(): Move
val legalContractReference: SecureHash
@@ -11347,25 +11438,25 @@ -State(deposit: PartyAndReference, amount: Amount<Commodity>, owner: PublicKey)
-State(amount: Amount<Issued<Commodity>>, owner: PublicKey)
+State(deposit: PartyAndReference, amount: Amount<Commodity>, owner: PublicKeyTree)
+State(amount: Amount<Issued<Commodity>>, owner: PublicKeyTree)
val amount: Amount<Issued<Commodity>>
val contract: CommodityContract
-val exitKeys: MutableSet<PublicKey>
-fun move(newAmount: Amount<Issued<Commodity>>, newOwner: PublicKey): FungibleAsset<Commodity>
-val owner: PublicKey
+val exitKeys: MutableSet<PublicKeyTree>
+fun move(newAmount: Amount<Issued<Commodity>>, newOwner: PublicKeyTree): FungibleAsset<Commodity>
+val owner: PublicKeyTree
val participants: <ERROR CLASS>
fun toString(): String
-fun withNewOwner(newOwner: PublicKey): <ERROR CLASS>
+fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>
val conserveClause: AbstractConserveAmount<State, Commands, Commodity>
-fun deriveState(txState: TransactionState<State>, amount: Amount<Issued<Commodity>>, owner: PublicKey): TransactionState<State>
+fun deriveState(txState: TransactionState<State>, amount: Amount<Issued<Commodity>>, owner: PublicKeyTree): TransactionState<State>
fun extractCommands(commands: Collection<AuthenticatedObject<CommandData>>): List<AuthenticatedObject<Commands>>
fun generateExitCommand(amount: Amount<Issued<Commodity>>): Exit
-fun generateIssue(tx: TransactionBuilder, tokenDef: Issued<Commodity>, pennies: Long, owner: PublicKey, notary: Party): Unit
-fun generateIssue(tx: TransactionBuilder, amount: Amount<Issued<Commodity>>, owner: PublicKey, notary: Party): Unit
+fun generateIssue(tx: TransactionBuilder, tokenDef: Issued<Commodity>, pennies: Long, owner: PublicKeyTree, notary: Party): Unit
+fun generateIssue(tx: TransactionBuilder, amount: Amount<Issued<Commodity>>, owner: PublicKeyTree, notary: Party): Unit
fun generateIssueCommand(): Issue
fun generateMoveCommand(): Move
val legalContractReference: SecureHash
@@ -11606,24 +11697,24 @@ -State(lifecycle: Lifecycle = Lifecycle.NORMAL, obligor: Party, template: Terms<P>, quantity: Long, beneficiary: PublicKey)
+State(lifecycle: Lifecycle = Lifecycle.NORMAL, obligor: Party, template: Terms<P>, quantity: Long, beneficiary: PublicKeyTree)
val amount: Amount<Issued<Terms<P>>>
-val beneficiary: PublicKey
+val beneficiary: PublicKeyTree
val bilateralNetState: BilateralNetState<P>
val contract: Obligation<Currency>
val dueBefore: Instant
-val exitKeys: Collection<PublicKey>
+val exitKeys: Collection<PublicKeyTree>
var lifecycle: Lifecycle
-fun move(newAmount: Amount<Issued<Terms<P>>>, newOwner: PublicKey): State<P>
+fun move(newAmount: Amount<Issued<Terms<P>>>, newOwner: PublicKeyTree): State<P>
val multilateralNetState: MultilateralNetState<P>
fun net(other: State<P>): State<P>
val obligor: Party
-val owner: PublicKey
-val participants: List<PublicKey>
+val owner: PublicKeyTree
+val participants: List<PublicKeyTree>
val quantity: Long
val template: Terms<P>
fun toString(): String
-fun withNewOwner(newOwner: PublicKey): <ERROR CLASS>
+fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>
@@ -11644,9 +11735,9 @@ -fun generateCloseOutNetting(tx: TransactionBuilder, signer: PublicKey, vararg states: State<P>): Unit
-fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<Terms<P>>>, assetStates: List<StateAndRef<State<P>>>): PublicKey
-fun generateIssue(tx: TransactionBuilder, obligor: Party, issuanceDef: Terms<P>, pennies: Long, beneficiary: PublicKey, notary: Party): Unit
+fun generateCloseOutNetting(tx: TransactionBuilder, signer: PublicKeyTree, vararg states: State<P>): Unit
+fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<Terms<P>>>, assetStates: List<StateAndRef<State<P>>>): PublicKeyTree
+fun generateIssue(tx: TransactionBuilder, obligor: Party, issuanceDef: Terms<P>, pennies: Long, beneficiary: PublicKeyTree, notary: Party): Unit
fun generatePaymentNetting(tx: TransactionBuilder, issued: Issued<Terms<P>>, notary: Party, vararg states: State<P>): Unit
fun generateSetLifecycle(tx: TransactionBuilder, statesAndRefs: List<StateAndRef<State<P>>>, lifecycle: Lifecycle, notary: Party): Unit
fun generateSettle(tx: TransactionBuilder, statesAndRefs: Iterable<StateAndRef<State<P>>>, assetStatesAndRefs: Iterable<StateAndRef<FungibleAsset<P>>>, moveCommand: MoveCommand, notary: Party): Unit
@@ -11665,9 +11756,9 @@ OnLedgerAsset()
abstract val conserveClause: AbstractConserveAmount<S, C, T>
-abstract fun deriveState(txState: TransactionState<S>, amount: Amount<Issued<T>>, owner: PublicKey): TransactionState<S>
+abstract fun deriveState(txState: TransactionState<S>, amount: Amount<Issued<T>>, owner: PublicKeyTree): TransactionState<S>
abstract fun extractCommands(commands: Collection<AuthenticatedObject<CommandData>>): Collection<AuthenticatedObject<C>>
-fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<T>>, assetStates: List<StateAndRef<S>>): PublicKey
+fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<T>>, assetStates: List<StateAndRef<S>>): PublicKeyTree
abstract fun generateExitCommand(amount: Amount<Issued<T>>): Exit<T>
abstract fun generateIssueCommand(): Issue
abstract fun generateMoveCommand(): Move
@@ -11676,8 +11767,8 @@ val Amount<Issued<Currency>>.STATE: State
infix fun <T> State<T>.at(dueBefore: Instant): State<T>
-infix fun <T> State<T>.between(parties: <ERROR CLASS><Party, PublicKey>): State<T>
-fun <P> extractAmountsDue(product: Terms<P>, states: Iterable<State<P>>): Map<<ERROR CLASS><PublicKey, PublicKey>, Amount<Terms<P>>>
+infix fun <T> State<T>.between(parties: <ERROR CLASS><Party, PublicKeyTree>): State<T>
+fun <P> extractAmountsDue(product: Terms<P>, states: Iterable<State<P>>): Map<<ERROR CLASS><PublicKeyTree, PublicKeyTree>, Amount<Terms<P>>>
infix fun State.issued by(party: Party): State
infix fun State.issued by(deposit: PartyAndReference): State
infix fun <T> State<T>.issued by(party: Party): State<T>
@@ -11693,7 +11784,7 @@ fun Iterable<ContractState>.sumCash(): Amount<Issued<Currency>>
-fun Iterable<ContractState>.sumCashBy(owner: PublicKey): Amount<Issued<Currency>>
+fun Iterable<ContractState>.sumCashBy(owner: PublicKeyTree): Amount<Issued<Currency>>
fun Iterable<ContractState>.sumCashOrNull(): Amount<Issued<Currency>>?
fun Iterable<ContractState>.sumCashOrZero(currency: Issued<Currency>): Amount<Issued<Currency>>
fun Iterable<ContractState>.sumCommodities(): <ERROR CLASS>
@@ -11705,12 +11796,12 @@ -fun <P> netAmountsDue(balances: Map<<ERROR CLASS><PublicKey, PublicKey>, Amount<P>>): Map<<ERROR CLASS><PublicKey, PublicKey>, Amount<P>>
-infix fun State.owned by(owner: PublicKey): State
-infix fun <T> State<T>.owned by(owner: PublicKey): State<T>
-fun State.ownedBy(owner: PublicKey): State
-fun <T> State<T>.ownedBy(owner: PublicKey): State<T>
-fun <P> sumAmountsDue(balances: Map<<ERROR CLASS><PublicKey, PublicKey>, Amount<P>>): Map<PublicKey, Long>
+fun <P> netAmountsDue(balances: Map<<ERROR CLASS><PublicKeyTree, PublicKeyTree>, Amount<P>>): Map<<ERROR CLASS><PublicKeyTree, PublicKeyTree>, Amount<P>>
+infix fun State.owned by(owner: PublicKeyTree): State
+infix fun <T> State<T>.owned by(owner: PublicKeyTree): State<T>
+fun State.ownedBy(owner: PublicKeyTree): State
+fun <T> State<T>.ownedBy(owner: PublicKeyTree): State<T>
+fun <P> sumAmountsDue(balances: Map<<ERROR CLASS><PublicKeyTree, PublicKeyTree>, Amount<P>>): Map<PublicKeyTree, Long>
infix fun State.with deposit(deposit: PartyAndReference): State
fun State.withDeposit(deposit: PartyAndReference): State
@@ -11733,7 +11824,7 @@ AbstractConserveAmount()
-fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<T>>, assetStates: List<StateAndRef<S>>, deriveState: (TransactionState<S>, Amount<Issued<T>>, PublicKey) -> TransactionState<S>, generateMoveCommand: () -> CommandData, generateExitCommand: (Amount<Issued<T>>) -> CommandData): PublicKey
+fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<T>>, assetStates: List<StateAndRef<S>>, deriveState: (TransactionState<S>, Amount<Issued<T>>, PublicKeyTree) -> TransactionState<S>, generateMoveCommand: () -> CommandData, generateExitCommand: (Amount<Issued<T>>) -> CommandData): PublicKeyTree
open fun toString(): String
open fun verify(tx: TransactionForContract, inputs: List<S>, outputs: List<S>, commands: List<AuthenticatedObject<C>>, groupingKey: Issued<T>?): Set<C>
@@ -11762,8 +11853,8 @@ -BilateralNetState(partyKeys: Set<PublicKey>, template: Terms<P>)
-val partyKeys: Set<PublicKey>
+BilateralNetState(partyKeys: Set<PublicKeyTree>, template: Terms<P>)
+val partyKeys: Set<PublicKeyTree>
val template: Terms<P>
@@ -11937,7 +12028,7 @@ -fun ServiceHub.fillWithSomeTestCash(howMuch: Amount<Currency>, outputNotary: Party = DUMMY_NOTARY, atLeastThisManyStates: Int = 3, atMostThisManyStates: Int = 10, rng: Random = Random(), ref: OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy: PublicKey? = null, issuedBy: PartyAndReference = DUMMY_CASH_ISSUER, issuerKey: KeyPair = DUMMY_CASH_ISSUER_KEY): Vault
+fun ServiceHub.fillWithSomeTestCash(howMuch: Amount<Currency>, outputNotary: Party = DUMMY_NOTARY, atLeastThisManyStates: Int = 3, atMostThisManyStates: Int = 10, rng: Random = Random(), ref: OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy: PublicKeyTree? = null, issuedBy: PartyAndReference = DUMMY_CASH_ISSUER, issuerKey: KeyPair = DUMMY_CASH_ISSUER_KEY): Vault
@@ -11958,8 +12049,8 @@ ErrorOr(value: A)
-fun <B> bind(function: (A) -> ErrorOr<B>): ErrorOr<Nothing>
-inline fun <T> catch(body: () -> T): ErrorOr<T>
+fun <B : Any> bind(function: (A) -> ErrorOr<B>): ErrorOr<B>
+inline fun <T : Any> catch(body: () -> T): ErrorOr<T>
fun <B, C> combine(other: ErrorOr<B>, function: (A, B) -> C): ErrorOr<C>
val error: Throwable?
fun getOrThrow(): A
@@ -12019,6 +12110,7 @@ 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>
infix fun <F, T> <ERROR CLASS><F>.flatMap(mapper: (F) -> <ERROR CLASS><T>): <ERROR CLASS><T>
+fun <T> future(block: () -> T): Future<T>
java.io.InputStream
@@ -12170,6 +12264,7 @@ 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 <A> <ERROR CLASS><A>.toObservable(): <ERROR CLASS><A>
@@ -12239,8 +12334,8 @@ -AuthenticatedObject(signers: List<PublicKey>, signingParties: List<Party>, value: T)
-val signers: List<PublicKey>
+AuthenticatedObject(signers: List<PublicKeyTree>, signingParties: List<Party>, value: T)
+val signers: List<PublicKeyTree>
val signingParties: List<Party>
val value: T
@@ -12295,62 +12390,6 @@ val CHF: Currency
-sealed class ClientToServiceCommand
- data class Command
@@ -12618,11 +12657,11 @@ -MultiOwnerState(magicNumber: Int = 0, owners: List<PublicKey>)
+MultiOwnerState(magicNumber: Int = 0, owners: List<PublicKeyTree>)
val contract: DummyContract
val magicNumber: Int
-val owners: List<PublicKey>
-val participants: List<PublicKey>
+val owners: List<PublicKeyTree>
+val participants: List<PublicKeyTree>
@@ -12634,12 +12673,12 @@ -SingleOwnerState(magicNumber: Int = 0, owner: PublicKey)
+SingleOwnerState(magicNumber: Int = 0, owner: PublicKeyTree)
val contract: DummyContract
val magicNumber: Int
-val owner: PublicKey
-val participants: List<PublicKey>
-fun withNewOwner(newOwner: PublicKey): <ERROR CLASS>
+val owner: PublicKeyTree
+val participants: List<PublicKeyTree>
+fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>
@@ -12657,8 +12696,8 @@ fun generateInitial(owner: PartyAndReference, magicNumber: Int, notary: Party): TransactionBuilder
val legalContractReference: SecureHash
-fun move(prior: StateAndRef<SingleOwnerState>, newOwner: PublicKey): <ERROR CLASS>
-fun move(priors: List<StateAndRef<SingleOwnerState>>, newOwner: PublicKey): TransactionBuilder
+fun move(prior: StateAndRef<SingleOwnerState>, newOwner: PublicKeyTree): <ERROR CLASS>
+fun move(priors: List<StateAndRef<SingleOwnerState>>, newOwner: PublicKeyTree): TransactionBuilder
fun verify(tx: TransactionForContract): Unit
@@ -12674,7 +12713,7 @@ DummyState(magicNumber: Int = 0)
val contract: DummyContract
val magicNumber: Int
-val participants: List<PublicKey>
+val participants: List<PublicKeyTree>
@@ -12892,9 +12931,9 @@ abstract val amount: Amount<Issued<T>>
-abstract val exitKeys: Collection<PublicKey>
-abstract fun move(newAmount: Amount<Issued<T>>, newOwner: PublicKey): FungibleAsset<T>
-abstract val owner: PublicKey
+abstract val exitKeys: Collection<PublicKeyTree>
+abstract fun move(newAmount: Amount<Issued<T>>, newOwner: PublicKeyTree): FungibleAsset<T>
+abstract val owner: PublicKeyTree
@@ -13037,8 +13076,8 @@ -abstract val owner: PublicKey
-abstract fun withNewOwner(newOwner: PublicKey): <ERROR CLASS><CommandData, OwnableState>
+abstract val owner: PublicKeyTree
+abstract fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS><CommandData, OwnableState>
@@ -13389,10 +13428,10 @@ open fun equals(other: Any?): Boolean
-abstract fun getRequiredSigners(tx: LedgerTransaction): Set<PublicKey>
+abstract fun getRequiredSigners(tx: LedgerTransaction): Set<PublicKeyTree>
open fun hashCode(): <ERROR CLASS>
fun verify(tx: LedgerTransaction): Unit
-fun verifySigners(tx: LedgerTransaction): Set<PublicKey>
+fun verifySigners(tx: LedgerTransaction): Set<PublicKeyTree>
abstract fun verifyTransaction(tx: LedgerTransaction): Unit
@@ -13477,8 +13516,8 @@ -SignersMissing(tx: LedgerTransaction, missing: List<PublicKey>)
-val missing: List<PublicKey>
+SignersMissing(tx: LedgerTransaction, missing: List<PublicKeyTree>)
+val missing: List<PublicKeyTree>
fun toString(): String
@@ -13606,8 +13645,8 @@ inline fun <reified T : CommandData> Collection<AuthenticatedObject<CommandData>>.requireSingleCommand(): <ERROR CLASS>
fun <C : CommandData> Collection<AuthenticatedObject<CommandData>>.requireSingleCommand(klass: Class<C>): <ERROR CLASS>
-inline fun <reified T : CommandData> Collection<AuthenticatedObject<CommandData>>.select(signer: PublicKey? = null, party: Party? = null): <ERROR CLASS>
-inline fun <reified T : CommandData> Collection<AuthenticatedObject<CommandData>>.select(signers: Collection<PublicKey>?, parties: Collection<Party>?): <ERROR CLASS>
+inline fun <reified T : CommandData> Collection<AuthenticatedObject<CommandData>>.select(signer: PublicKeyTree? = null, party: Party? = null): <ERROR CLASS>
+inline fun <reified T : CommandData> Collection<AuthenticatedObject<CommandData>>.select(signers: Collection<PublicKeyTree>?, parties: Collection<Party>?): <ERROR CLASS>
@@ -13862,6 +13901,7 @@ +val NullPublicKeyTree: PublicKeyTree
object NullSignature : WithKey
class PartialMerkleTree
@@ -13999,19 +14040,21 @@ Node(threshold: Int, children: List<PublicKeyTree>, weights: List<Int>)
val children: List<PublicKeyTree>
fun equals(other: Any?): Boolean
-fun getKeys(): Set<PublicKey>
fun hashCode(): Int
fun isFulfilledBy(keys: Iterable<PublicKey>): Boolean
+val keys: Set<PublicKey>
val threshold: Int
+fun toString(): String
val weights: List<Int>
-fun containsAny(keys: Iterable<PublicKey>): <ERROR CLASS>
-abstract fun getKeys(): Set<PublicKey>
+fun containsAny(otherKeys: Iterable<PublicKey>): <ERROR CLASS>
abstract fun isFulfilledBy(keys: Iterable<PublicKey>): Boolean
fun isFulfilledBy(key: PublicKey): <ERROR CLASS>
+abstract val keys: Set<PublicKey>
fun parseFromBase58(encoded: String): <ERROR CLASS>
+val singleKey: PublicKey
fun toBase58String(): String
@@ -14240,8 +14283,7 @@ fun Iterable<WithKey>.byKeys(): <ERROR CLASS>
-fun Iterable<PublicKeyTree>.getKeys(): <ERROR CLASS>
-fun Iterable<PublicKey>.toStringsShort(): String
+val Iterable<PublicKeyTree>.keys: Set<PublicKey>
@@ -14559,7 +14601,7 @@ abstract val clock: Clock
abstract val identityService: IdentityService
-abstract fun <T : Any> invokeProtocolAsync(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): <ERROR CLASS><T>
+abstract fun <T : Any> invokeProtocolAsync(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): ProtocolStateMachine<T>
abstract val keyManagementService: KeyManagementService
open val legalIdentityKey: KeyPair
open fun loadState(stateRef: StateRef): TransactionState<*>
@@ -14623,7 +14665,7 @@ -abstract fun partyFromKey(key: PublicKey): Party?
+abstract fun partyFromKey(key: PublicKeyTree): Party?
abstract fun partyFromName(name: String): Party?
abstract fun registerIdentity(party: Party): Unit
@@ -14640,6 +14682,7 @@ abstract fun freshKey(): KeyPair
abstract val keys: Map<PublicKey, PrivateKey>
open fun toKeyPair(publicKey: PublicKey): KeyPair
+open fun toKeyPair(publicKeys: Iterable<PublicKey>): <ERROR CLASS>
open fun toPrivate(publicKey: PublicKey): PrivateKey
@@ -14710,9 +14753,13 @@ abstract fun deregisterForUpdates(net: MessagingService, service: NodeInfo): <ERROR CLASS><Unit>
abstract fun get(): Collection<NodeInfo>
abstract fun get(serviceType: ServiceType): Collection<NodeInfo>
+abstract fun getAnyNotary(type: ServiceType? = null): Party?
abstract fun getNodeByLegalName(name: String): NodeInfo?
-abstract fun getNodeByPublicKey(publicKey: PublicKey): NodeInfo?
+abstract fun getNodeByPublicKeyTree(publicKeyTree: PublicKeyTree): NodeInfo?
+abstract fun getNotary(name: String): Party?
abstract fun getRecommended(type: ServiceType, contract: Contract, vararg party: Party): NodeInfo?
+abstract fun getRepresentativeNode(party: Party): NodeInfo?
+abstract fun isNotary(party: Party): Boolean
val logger: <ERROR CLASS>
abstract val mapServiceRegistered: <ERROR CLASS><Unit>
abstract val networkMapNodes: List<NodeInfo>
@@ -14932,7 +14979,7 @@ -Vault(states: Iterable<StateAndRef<ContractState>>, transactionNotes: Map<SecureHash, Set<String>> = emptyMap())
+Vault(states: Iterable<StateAndRef<ContractState>>)
val NoUpdate: Update
data class Update
    @@ -14952,7 +14999,6 @@
val states: Iterable<StateAndRef<ContractState>>
inline fun <reified T : ContractState> statesOfType(): List<StateAndRef<T>>
-val transactionNotes: Map<SecureHash, Set<String>>
@@ -14967,7 +15013,7 @@ abstract fun addNoteToTransaction(txnId: SecureHash, noteText: String): Unit
open val cashBalances: Map<Currency, Amount<Currency>>
abstract val currentVault: Vault
-abstract fun generateSpend(tx: TransactionBuilder, amount: Amount<Currency>, to: PublicKey, onlyFromParties: Set<Party>? = null): <ERROR CLASS><TransactionBuilder, List<PublicKey>>
+abstract fun generateSpend(tx: TransactionBuilder, amount: Amount<Currency>, to: PublicKeyTree, onlyFromParties: Set<Party>? = null): <ERROR CLASS><TransactionBuilder, List<PublicKeyTree>>
abstract fun getTransactionNotes(txnId: SecureHash): Iterable<String>
abstract val linearHeads: Map<UniqueIdentifier, StateAndRef<LinearState>>
open fun <T : LinearState> linearHeadsOfType_(stateType: Class<T>): Map<UniqueIdentifier, StateAndRef<T>>
@@ -15632,6 +15678,19 @@ +class PublicKeyTreeGenerator
+ class SecureHashGenerator
-class PropertiesFileRPCUserService : RPCUserService
- interface RPCUserService
+class RPCUserServiceImpl : RPCUserService
+ data class User
    @@ -16898,6 +16945,8 @@
+fun <P : ProtocolLogic<*>> startProtocolPermission(clazz: Class<P>): String
+inline fun <reified P : ProtocolLogic<*>> startProtocolPermission(): String
@@ -17056,12 +17105,12 @@ ServiceHubInternal()
-open fun <T : Any> invokeProtocolAsync(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): <ERROR CLASS><T>
+open fun <T : Any> invokeProtocolAsync(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): ProtocolStateMachine<T>
abstract val monitoringService: MonitoringService
abstract val networkService: MessagingServiceInternal
abstract val protocolLogicRefFactory: ProtocolLogicRefFactory
abstract val schemaService: SchemaService
-abstract fun <T> startProtocol(logic: ProtocolLogic<T>): <ERROR CLASS><T>
+abstract fun <T> startProtocol(logic: ProtocolLogic<T>): ProtocolStateMachine<T>
@@ -17135,7 +17184,6 @@ abstract val exportJMXto: String
abstract val myLegalName: String
abstract val nearestCity: String
-open val rpcUsersFile: Path
@@ -17172,6 +17220,7 @@ fun configureTestSSL(): NodeSSLConfiguration
fun NodeSSLConfiguration.configureWithDevSSLCertificate(): Unit
+inline fun <reified T : Any> <ERROR CLASS>.getListOrElse(path: String, default: <ERROR CLASS>.() -> List<T>): List<T>
fun <T> <ERROR CLASS>.getOrElse(lambda: () -> T): OptionalConfig<T>
fun <ERROR CLASS>.getProperties(path: String): Properties
operator fun <T> <ERROR CLASS>.getValue(receiver: Any, metadata: KProperty<*>): T
@@ -17252,7 +17301,7 @@ InMemoryIdentityService()
-fun partyFromKey(key: PublicKey): Party?
+fun partyFromKey(key: PublicKeyTree): Party?
fun partyFromName(name: String): Party?
fun registerIdentity(party: Party): Unit
@@ -17367,9 +17416,9 @@ -NodeAddress(identity: PublicKey, hostAndPort: <ERROR CLASS>)
+NodeAddress(identity: PublicKeyTree, hostAndPort: <ERROR CLASS>)
val hostAndPort: <ERROR CLASS>
-val identity: PublicKey
+val identity: PublicKeyTree
val queueName: <ERROR CLASS>
fun toString(): String
@@ -17381,7 +17430,7 @@ abstract val config: NodeSSLConfiguration
fun configureWithDevSSLCertificate(): Unit
protected fun Path.expectedOnDefaultFileSystem(): Unit
-protected fun parseKeyFromQueueName(name: String): PublicKey
+protected fun parseKeyFromQueueName(name: String): PublicKeyTree
protected fun tcpTransport(direction: ConnectionDirection, host: String, port: Int): <ERROR CLASS>
fun toHostAndPort(target: MessageRecipients): <ERROR CLASS>
protected fun toQueueName(target: MessageRecipients): <ERROR CLASS>
@@ -17455,10 +17504,10 @@ abstract fun addVaultTransactionNote(txnId: SecureHash, txnNote: String): Unit
-abstract fun executeCommand(command: ClientToServiceCommand): TransactionBuildResult
abstract fun getVaultTransactionNotes(txnId: SecureHash): Iterable<String>
@RPCReturnsObservables abstract fun networkMapUpdates(): <ERROR CLASS><List<NodeInfo>, <ERROR CLASS><MapChange>>
abstract fun nodeIdentity(): NodeInfo
+@RPCReturnsObservables abstract fun <T : Any> startProtocolDynamic(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): ProtocolHandle<T>
@RPCReturnsObservables abstract fun stateMachineRecordedTransactionMapping(): <ERROR CLASS><List<StateMachineTransactionMapping>, <ERROR CLASS><StateMachineTransactionMapping>>
@RPCReturnsObservables abstract fun stateMachinesAndUpdates(): <ERROR CLASS><List<StateMachineInfo>, <ERROR CLASS><StateMachineUpdate>>
@RPCReturnsObservables abstract fun vaultAndUpdates(): <ERROR CLASS><List<StateAndRef<ContractState>>, <ERROR CLASS><Update>>
@@ -17488,7 +17537,7 @@ -NodeMessagingClient(config: NodeConfiguration, serverHostPort: <ERROR CLASS>, myIdentity: PublicKey?, executor: AffinityExecutor, database: <ERROR CLASS>)
+NodeMessagingClient(config: NodeConfiguration, serverHostPort: <ERROR CLASS>, myIdentity: PublicKeyTree?, executor: AffinityExecutor, database: <ERROR CLASS>, networkMapRegistrationFuture: <ERROR CLASS><Unit>)
data class Handler : MessageHandlerRegistration
+data class ProtocolHandle<A>
+ abstract class RPCDispatcher
    @@ -17671,50 +17736,14 @@
-sealed class TransactionBuildResult
- fun createRPCKryo(observableSerializer: <ERROR CLASS><<ERROR CLASS><Any>>? = null): <ERROR CLASS>
fun requirePermission(permission: String): Unit
val rpcLog: <ERROR CLASS>
+inline fun <T : Any, reified R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: () -> R): <ERROR CLASS>
+inline fun <T : Any, A, reified R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A) -> R, arg0: A): <ERROR CLASS>
+inline fun <T : Any, A, B, reified R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A, B) -> R, arg0: A, arg1: B): <ERROR CLASS>
+inline fun <T : Any, A, B, C, reified R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A, B, C) -> R, arg0: A, arg1: B, arg2: C): <ERROR CLASS>
+inline fun <T : Any, A, B, C, D, reified R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A, B, C, D) -> R, arg0: A, arg1: B, arg2: C, arg3: D): <ERROR CLASS>
@@ -17769,9 +17798,13 @@ open fun deregisterForUpdates(net: MessagingService, service: NodeInfo): <ERROR CLASS><Unit>
open fun get(): <ERROR CLASS>
open fun get(serviceType: ServiceType): <ERROR CLASS>
+open fun getAnyNotary(type: ServiceType?): Party?
open fun getNodeByLegalName(name: String): <ERROR CLASS>
-open fun getNodeByPublicKey(publicKey: PublicKey): NodeInfo?
+open fun getNodeByPublicKeyTree(publicKeyTree: PublicKeyTree): NodeInfo?
+open fun getNotary(name: String): Party?
open fun getRecommended(type: ServiceType, contract: Contract, vararg party: Party): NodeInfo?
+open fun getRepresentativeNode(party: Party): NodeInfo?
+open fun isNotary(party: Party): <ERROR CLASS>
open val mapServiceRegistered: <ERROR CLASS><Unit>
open val networkMapNodes: List<NodeInfo>
open val notaryNodes: List<NodeInfo>
@@ -18728,7 +18761,7 @@ NodeVaultService(services: ServiceHub)
fun addNoteToTransaction(txnId: SecureHash, noteText: String): Unit
val currentVault: Vault
-fun generateSpend(tx: TransactionBuilder, amount: Amount<Currency>, to: PublicKey, onlyFromParties: Set<Party>?): <ERROR CLASS><TransactionBuilder, List<PublicKey>>
+fun generateSpend(tx: TransactionBuilder, amount: Amount<Currency>, to: PublicKeyTree, onlyFromParties: Set<Party>?): <ERROR CLASS><TransactionBuilder, List<PublicKeyTree>>
fun getTransactionNotes(txnId: SecureHash): Iterable<String>
val linearHeads: Map<UniqueIdentifier, StateAndRef<LinearState>>
val log: <ERROR CLASS>
@@ -18847,7 +18880,7 @@ -AbstractJDBCHashMap(table: T, loadOnInit: Boolean = false)
+AbstractJDBCHashMap(table: T, loadOnInit: Boolean = false, maxBuckets: Int = 256)
protected abstract fun addKeyToInsert(insert: <ERROR CLASS>, entry: Entry<K, V>, finalizables: MutableList<() -> Unit>): Unit
protected abstract fun addValueToInsert(insert: <ERROR CLASS>, entry: Entry<K, V>, finalizables: MutableList<() -> Unit>): Unit
open fun clear(): Unit
@@ -18860,6 +18893,7 @@ open val keys: MutableSet<K>
val loadOnInit: Boolean
protected val log: <ERROR CLASS>
+val maxBuckets: Int
open fun put(key: K, value: V): V?
open fun remove(key: K): V?
open val size: Int
@@ -18877,7 +18911,7 @@ -AbstractJDBCHashSet(table: T, loadOnInit: Boolean = false)
+AbstractJDBCHashSet(table: T, loadOnInit: Boolean = false, maxBuckets: Int = 256)
open fun add(element: K): Boolean
protected abstract fun addElementToInsert(insert: <ERROR CLASS>, entry: K, finalizables: MutableList<() -> Unit>): Unit
open fun clear(): Unit
@@ -18992,7 +19026,7 @@ -JDBCHashMap(tableName: String, loadOnInit: Boolean = false)
+JDBCHashMap(tableName: String, loadOnInit: Boolean = false, maxBuckets: Int = 256)
class BlobMapTable : JDBCHashedTable
+object PublicKeyTreeColumnType
+ object SecureHashColumnType
    @@ -19385,6 +19433,20 @@
+data class TxnNoteColumns
+ object UUIDStringColumnType
+sealed class CashCommand
+ +class CashProtocol : ProtocolLogic<CashProtocolResult>
+ +sealed class CashProtocolResult
+ class FetchAttachmentsProtocol : FetchDataProtocol<Attachment, ByteArray>
+class InputStateRefResolveFailed : Exception
+ object NotaryChangeProtocol : AbstractStateReplacementProtocol<Party>
@@ -19839,8 +20022,9 @@ -SignaturesMissing(missingSigners: Set<PublicKey>)
-val missingSigners: Set<PublicKey>
+SignaturesMissing(missingSigners: Set<PublicKeyTree>)
+val missingSigners: Set<PublicKeyTree>
+fun toString(): String
@@ -19893,7 +20077,7 @@ -class Client : ProtocolLogic<LegallyIdentifiable>
+class Client : ProtocolLogic<WithKey>
@@ -20069,7 +20253,7 @@ Acceptor(otherParty: Party, progressTracker: ProgressTracker = Secondary.tracker())
-protected open fun assembleSharedTX(handshake: Handshake<AutoOffer>): <ERROR CLASS><TransactionBuilder, List<PublicKey>>
+protected open fun assembleSharedTX(handshake: Handshake<AutoOffer>): <ERROR CLASS><TransactionBuilder, List<PublicKeyTree>>
open val otherParty: Party
open val progressTracker: ProgressTracker
protected open fun validateHandshake(handshake: Handshake<AutoOffer>): Handshake<AutoOffer>
@@ -20128,9 +20312,9 @@ -Handshake(payload: T, publicKey: PublicKey)
+Handshake(payload: T, publicKey: PublicKeyTree)
val payload: T
-val publicKey: PublicKey
+val publicKey: PublicKeyTree
@@ -20196,7 +20380,7 @@ object SIGNING : Step
object SWAPPING_SIGNATURES : Step
object VERIFYING : Step
-protected abstract fun assembleSharedTX(handshake: Handshake<U>): <ERROR CLASS><TransactionBuilder, List<PublicKey>>
+protected abstract fun assembleSharedTX(handshake: Handshake<U>): <ERROR CLASS><TransactionBuilder, List<PublicKeyTree>>
open fun call(): SignedTransaction
abstract val otherParty: Party
open val progressTracker: ProgressTracker
@@ -20213,8 +20397,8 @@ -SignaturesFromPrimary(sellerSig: WithKey, notarySig: LegallyIdentifiable)
-val notarySig: LegallyIdentifiable
+SignaturesFromPrimary(sellerSig: WithKey, notarySig: WithKey)
+val notarySig: WithKey
val sellerSig: WithKey
@@ -20301,10 +20485,10 @@ -SellerTradeInfo(assetForSale: StateAndRef<OwnableState>, price: Amount<Currency>, sellerOwnerKey: PublicKey)
+SellerTradeInfo(assetForSale: StateAndRef<OwnableState>, price: Amount<Currency>, sellerOwnerKey: PublicKeyTree)
val assetForSale: StateAndRef<OwnableState>
val price: Amount<Currency>
-val sellerOwnerKey: PublicKey
+val sellerOwnerKey: PublicKeyTree
@@ -20316,8 +20500,8 @@ -SignaturesFromSeller(sellerSig: WithKey, notarySig: LegallyIdentifiable)
-val notarySig: LegallyIdentifiable
+SignaturesFromSeller(sellerSig: WithKey, notarySig: WithKey)
+val notarySig: WithKey
val sellerSig: WithKey
diff --git a/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/index.html b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/index.html index 5862c4bcb3..222f023576 100644 --- a/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/index.html +++ b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/index.html @@ -210,6 +210,20 @@ or throws if more than one element was found.

fun <T> Iterable<T>.noneOrSingle(): T?

Returns single element, or null if element was not found, or throws if more than one element was found.

+ + +randomOrNull + +fun <T> List<T>.randomOrNull(): T?

Returns a random element in the list, or null if empty

+fun <T> List<T>.randomOrNull(predicate: (T) -> Boolean): <ERROR CLASS>

Returns a random element in the list matching the given predicate, or null if none found

+ + + + +unique + +fun <T : Any> ObservableList<T>.unique(): ObservableList<T> + diff --git a/docs/build/html/api/net.corda.client.fxutils/-chosen-list/index.html b/docs/build/html/api/net.corda.client.fxutils/-chosen-list/index.html index d5af9e2bcc..8571040058 100644 --- a/docs/build/html/api/net.corda.client.fxutils/-chosen-list/index.html +++ b/docs/build/html/api/net.corda.client.fxutils/-chosen-list/index.html @@ -167,6 +167,20 @@ or throws if more than one element was found.

fun <T> Iterable<T>.noneOrSingle(): T?

Returns single element, or null if element was not found, or throws if more than one element was found.

+ + +randomOrNull + +fun <T> List<T>.randomOrNull(): T?

Returns a random element in the list, or null if empty

+fun <T> List<T>.randomOrNull(predicate: (T) -> Boolean): <ERROR CLASS>

Returns a random element in the list matching the given predicate, or null if none found

+ + + + +unique + +fun <T : Any> ObservableList<T>.unique(): ObservableList<T> + diff --git a/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/index.html b/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/index.html index c64fc6c8e0..b2a9656dd1 100644 --- a/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/index.html +++ b/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/index.html @@ -169,6 +169,20 @@ or throws if more than one element was found.

fun <T> Iterable<T>.noneOrSingle(): T?

Returns single element, or null if element was not found, or throws if more than one element was found.

+ + +randomOrNull + +fun <T> List<T>.randomOrNull(): T?

Returns a random element in the list, or null if empty

+fun <T> List<T>.randomOrNull(predicate: (T) -> Boolean): <ERROR CLASS>

Returns a random element in the list matching the given predicate, or null if none found

+ + + + +unique + +fun <T : Any> ObservableList<T>.unique(): ObservableList<T> + diff --git a/docs/build/html/api/net.corda.client.fxutils/-flattened-list/index.html b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/index.html index 233f1fc2a4..533ac3b9bf 100644 --- a/docs/build/html/api/net.corda.client.fxutils/-flattened-list/index.html +++ b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/index.html @@ -195,6 +195,20 @@ or throws if more than one element was found.

fun <T> Iterable<T>.noneOrSingle(): T?

Returns single element, or null if element was not found, or throws if more than one element was found.

+ + +randomOrNull + +fun <T> List<T>.randomOrNull(): T?

Returns a random element in the list, or null if empty

+fun <T> List<T>.randomOrNull(predicate: (T) -> Boolean): <ERROR CLASS>

Returns a random element in the list matching the given predicate, or null if none found

+ + + + +unique + +fun <T : Any> ObservableList<T>.unique(): ObservableList<T> + diff --git a/docs/build/html/api/net.corda.client.fxutils/-map-values-list/index.html b/docs/build/html/api/net.corda.client.fxutils/-map-values-list/index.html index 3b2a8801a7..6899d6ba06 100644 --- a/docs/build/html/api/net.corda.client.fxutils/-map-values-list/index.html +++ b/docs/build/html/api/net.corda.client.fxutils/-map-values-list/index.html @@ -145,6 +145,20 @@ or throws if more than one element was found.

fun <T> Iterable<T>.noneOrSingle(): T?

Returns single element, or null if element was not found, or throws if more than one element was found.

+ + +randomOrNull + +fun <T> List<T>.randomOrNull(): T?

Returns a random element in the list, or null if empty

+fun <T> List<T>.randomOrNull(predicate: (T) -> Boolean): <ERROR CLASS>

Returns a random element in the list matching the given predicate, or null if none found

+ + + + +unique + +fun <T : Any> ObservableList<T>.unique(): ObservableList<T> + diff --git a/docs/build/html/api/net.corda.client.fxutils/-mapped-list/index.html b/docs/build/html/api/net.corda.client.fxutils/-mapped-list/index.html index c7ca61f546..91864018a2 100644 --- a/docs/build/html/api/net.corda.client.fxutils/-mapped-list/index.html +++ b/docs/build/html/api/net.corda.client.fxutils/-mapped-list/index.html @@ -177,6 +177,20 @@ or throws if more than one element was found.

fun <T> Iterable<T>.noneOrSingle(): T?

Returns single element, or null if element was not found, or throws if more than one element was found.

+ + +randomOrNull + +fun <T> List<T>.randomOrNull(): T?

Returns a random element in the list, or null if empty

+fun <T> List<T>.randomOrNull(predicate: (T) -> Boolean): <ERROR CLASS>

Returns a random element in the list matching the given predicate, or null if none found

+ + + + +unique + +fun <T : Any> ObservableList<T>.unique(): ObservableList<T> + diff --git a/docs/build/html/api/net.corda.client.fxutils/-replayed-list/index.html b/docs/build/html/api/net.corda.client.fxutils/-replayed-list/index.html index 314c5d5cb8..1bb7bb49fe 100644 --- a/docs/build/html/api/net.corda.client.fxutils/-replayed-list/index.html +++ b/docs/build/html/api/net.corda.client.fxutils/-replayed-list/index.html @@ -175,6 +175,20 @@ or throws if more than one element was found.

fun <T> Iterable<T>.noneOrSingle(): T?

Returns single element, or null if element was not found, or throws if more than one element was found.

+ + +randomOrNull + +fun <T> List<T>.randomOrNull(): T?

Returns a random element in the list, or null if empty

+fun <T> List<T>.randomOrNull(predicate: (T) -> Boolean): <ERROR CLASS>

Returns a random element in the list matching the given predicate, or null if none found

+ + + + +unique + +fun <T : Any> ObservableList<T>.unique(): ObservableList<T> + diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/index.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/index.html index fdbe589a05..b4012b10c9 100644 --- a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/index.html +++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/index.html @@ -117,6 +117,12 @@ people.leftOuterJoin(animals, Person::favouriteSpecies, Animal::species)

val dogOwners: ObservableList = dogs.map { it.owner }

+ + +unique + +fun <T : Any> ObservableList<T>.unique(): ObservableList<T> + diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/unique.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/unique.html new file mode 100644 index 0000000000..e461098c15 --- /dev/null +++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/unique.html @@ -0,0 +1,15 @@ + + +unique - + + + +net.corda.client.fxutils / javafx.collections.ObservableList / unique
+
+

unique

+ +fun <T : Any> ObservableList<T>.unique(): ObservableList<T>
+
+
+ + diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/index.html b/docs/build/html/api/net.corda.client.mock/-event-generator/index.html index 2d950ba8a5..1ec658733e 100644 --- a/docs/build/html/api/net.corda.client.mock/-event-generator/index.html +++ b/docs/build/html/api/net.corda.client.mock/-event-generator/index.html @@ -90,6 +90,12 @@ state/ref pairs, but it doesnt necessarily generate "correct" events

+issuedGenerator + +val issuedGenerator: <ERROR CLASS> + + + issuerGenerator val issuerGenerator: Generator<PartyAndReference> diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/issued-generator.html b/docs/build/html/api/net.corda.client.mock/-event-generator/issued-generator.html new file mode 100644 index 0000000000..fdd9658ef9 --- /dev/null +++ b/docs/build/html/api/net.corda.client.mock/-event-generator/issued-generator.html @@ -0,0 +1,15 @@ + + +EventGenerator.issuedGenerator - + + + +net.corda.client.mock / EventGenerator / issuedGenerator
+
+

issuedGenerator

+ +val issuedGenerator: <ERROR CLASS>
+
+
+ + diff --git a/docs/build/html/api/net.corda.client.mock/-generator/-init-.html b/docs/build/html/api/net.corda.client.mock/-generator/-init-.html index 73a3961204..db22066beb 100644 --- a/docs/build/html/api/net.corda.client.mock/-generator/-init-.html +++ b/docs/build/html/api/net.corda.client.mock/-generator/-init-.html @@ -7,7 +7,7 @@ net.corda.client.mock / Generator / <init>

<init>

-Generator(generate: (Random) -> ErrorOr<A>)
+Generator(generate: (SplittableRandom) -> ErrorOr<A>)

This file defines a basic Generator library for composing random generators of objects.

An object of type Generator<A> captures a generator of As. Generators may be composed in several ways.

Generator.choice picks a generator from the specified list and runs that. @@ -26,7 +26,7 @@ val animalsGenerator = Generator.frequency( 0.2 to birdsGenerator, 0.8 to mammalsGenerator ) -val animals = animalsGenerator.generate(Random()).getOrThrow()

+val animals = animalsGenerator.generate(SplittableRandom()).getOrThrow()

The above will generate a random list of animals.



diff --git a/docs/build/html/api/net.corda.client.mock/-generator/bind.html b/docs/build/html/api/net.corda.client.mock/-generator/bind.html index fa0ef19248..ac157a266f 100644 --- a/docs/build/html/api/net.corda.client.mock/-generator/bind.html +++ b/docs/build/html/api/net.corda.client.mock/-generator/bind.html @@ -8,7 +8,7 @@

bind

-fun <B> bind(function: (A) -> Generator<B>): Generator<Nothing>
+fun <B : Any> bind(function: (A) -> Generator<B>): Generator<B>


diff --git a/docs/build/html/api/net.corda.client.mock/-generator/choice.html b/docs/build/html/api/net.corda.client.mock/-generator/choice.html index ef6fc4a5ba..9e1af11df4 100644 --- a/docs/build/html/api/net.corda.client.mock/-generator/choice.html +++ b/docs/build/html/api/net.corda.client.mock/-generator/choice.html @@ -8,7 +8,7 @@

choice

-fun <A> choice(generators: List<Generator<A>>): Generator<Nothing>
+fun <A : Any> choice(generators: List<Generator<A>>): Generator<A>


diff --git a/docs/build/html/api/net.corda.client.mock/-generator/combine.html b/docs/build/html/api/net.corda.client.mock/-generator/combine.html index 95cc26a4cc..2c4d1de439 100644 --- a/docs/build/html/api/net.corda.client.mock/-generator/combine.html +++ b/docs/build/html/api/net.corda.client.mock/-generator/combine.html @@ -8,13 +8,13 @@

combine

-fun <B, R> combine(other1: Generator<B>, function: (A, B) -> R): Generator<R>
+fun <B : Any, R : Any> combine(other1: Generator<B>, function: (A, B) -> R): Generator<R>
-fun <B, C, R> combine(other1: Generator<B>, other2: Generator<C>, function: (A, B, C) -> R): Generator<R>
+fun <B : Any, C : Any, R : Any> combine(other1: Generator<B>, other2: Generator<C>, function: (A, B, C) -> R): Generator<R>
-fun <B, C, D, R> combine(other1: Generator<B>, other2: Generator<C>, other3: Generator<D>, function: (A, B, C, D) -> R): Generator<R>
+fun <B : Any, C : Any, D : Any, R : Any> combine(other1: Generator<B>, other2: Generator<C>, other3: Generator<D>, function: (A, B, C, D) -> R): Generator<R>
-fun <B, C, D, E, R> combine(other1: Generator<B>, other2: Generator<C>, other3: Generator<D>, other4: Generator<E>, function: (A, B, C, D, E) -> R): Generator<R>
+fun <B : Any, C : Any, D : Any, E : Any, R : Any> combine(other1: Generator<B>, other2: Generator<C>, other3: Generator<D>, other4: Generator<E>, function: (A, B, C, D, E) -> R): Generator<R>


diff --git a/docs/build/html/api/net.corda.client.mock/-generator/fail.html b/docs/build/html/api/net.corda.client.mock/-generator/fail.html index 0b360b3dfc..27a9f52b31 100644 --- a/docs/build/html/api/net.corda.client.mock/-generator/fail.html +++ b/docs/build/html/api/net.corda.client.mock/-generator/fail.html @@ -8,7 +8,7 @@

fail

-fun <A> fail(error: Exception): Generator<A>
+fun <A : Any> fail(error: Exception): Generator<A>


diff --git a/docs/build/html/api/net.corda.client.mock/-generator/frequency.html b/docs/build/html/api/net.corda.client.mock/-generator/frequency.html index eef8ffcccc..051a2a8d16 100644 --- a/docs/build/html/api/net.corda.client.mock/-generator/frequency.html +++ b/docs/build/html/api/net.corda.client.mock/-generator/frequency.html @@ -7,8 +7,8 @@ net.corda.client.mock / Generator / frequency

frequency

- -fun <A> frequency(vararg generators: <ERROR CLASS><Double, Generator<A>>): Generator<A>
+ +fun <A : Any> frequency(generators: List<<ERROR CLASS><Double, Generator<A>>>): Generator<A>


diff --git a/docs/build/html/api/net.corda.client.mock/-generator/generate.html b/docs/build/html/api/net.corda.client.mock/-generator/generate.html index a7f0b7b6aa..d86d744fa5 100644 --- a/docs/build/html/api/net.corda.client.mock/-generator/generate.html +++ b/docs/build/html/api/net.corda.client.mock/-generator/generate.html @@ -8,7 +8,7 @@

generate

-val generate: (Random) -> ErrorOr<A>
+val generate: (SplittableRandom) -> ErrorOr<A>


diff --git a/docs/build/html/api/net.corda.client.mock/-generator/impure.html b/docs/build/html/api/net.corda.client.mock/-generator/impure.html index 2df329945c..cdc5c08eda 100644 --- a/docs/build/html/api/net.corda.client.mock/-generator/impure.html +++ b/docs/build/html/api/net.corda.client.mock/-generator/impure.html @@ -8,7 +8,7 @@

impure

-fun <A> impure(valueClosure: () -> A): Generator<A>
+fun <A : Any> impure(valueClosure: () -> A): Generator<A>


diff --git a/docs/build/html/api/net.corda.client.mock/-generator/index.html b/docs/build/html/api/net.corda.client.mock/-generator/index.html index f8ab7b74fc..f5f32900cf 100644 --- a/docs/build/html/api/net.corda.client.mock/-generator/index.html +++ b/docs/build/html/api/net.corda.client.mock/-generator/index.html @@ -7,7 +7,7 @@ net.corda.client.mock / Generator

Generator

-class Generator<out A>
+class Generator<out A : Any>

This file defines a basic Generator library for composing random generators of objects.

An object of type Generator<A> captures a generator of As. Generators may be composed in several ways.

Generator.choice picks a generator from the specified list and runs that. @@ -26,7 +26,7 @@ val animalsGenerator = Generator.frequency( 0.2 to birdsGenerator, 0.8 to mammalsGenerator ) -val animals = animalsGenerator.generate(Random()).getOrThrow()

+val animals = animalsGenerator.generate(SplittableRandom()).getOrThrow()

The above will generate a random list of animals.



@@ -39,7 +39,7 @@ val animals = animalsGenerator.generate(Random()).getOrThrow()

<init> -Generator(generate: (Random) -> ErrorOr<A>)

This file defines a basic Generator library for composing random generators of objects.

+Generator(generate: (SplittableRandom) -> ErrorOr<A>)

This file defines a basic Generator library for composing random generators of objects.

@@ -51,7 +51,7 @@ val animals = animalsGenerator.generate(Random()).getOrThrow()

generate -val generate: (Random) -> ErrorOr<A> +val generate: (SplittableRandom) -> ErrorOr<A> @@ -62,28 +62,28 @@ val animals = animalsGenerator.generate(Random()).getOrThrow()

bind -fun <B> bind(function: (A) -> Generator<B>): Generator<Nothing> +fun <B : Any> bind(function: (A) -> Generator<B>): Generator<B> combine -fun <B, R> combine(other1: Generator<B>, function: (A, B) -> R): Generator<R>
-fun <B, C, R> combine(other1: Generator<B>, other2: Generator<C>, function: (A, B, C) -> R): Generator<R>
-fun <B, C, D, R> combine(other1: Generator<B>, other2: Generator<C>, other3: Generator<D>, function: (A, B, C, D) -> R): Generator<R>
-fun <B, C, D, E, R> combine(other1: Generator<B>, other2: Generator<C>, other3: Generator<D>, other4: Generator<E>, function: (A, B, C, D, E) -> R): Generator<R> +fun <B : Any, R : Any> combine(other1: Generator<B>, function: (A, B) -> R): Generator<R>
+fun <B : Any, C : Any, R : Any> combine(other1: Generator<B>, other2: Generator<C>, function: (A, B, C) -> R): Generator<R>
+fun <B : Any, C : Any, D : Any, R : Any> combine(other1: Generator<B>, other2: Generator<C>, other3: Generator<D>, function: (A, B, C, D) -> R): Generator<R>
+fun <B : Any, C : Any, D : Any, E : Any, R : Any> combine(other1: Generator<B>, other2: Generator<C>, other3: Generator<D>, other4: Generator<E>, function: (A, B, C, D, E) -> R): Generator<R> map -fun <B> map(function: (A) -> B): Generator<B> +fun <B : Any> map(function: (A) -> B): Generator<B> product -fun <B> product(other: Generator<(A) -> B>): Generator<B> +fun <B : Any> product(other: Generator<(A) -> B>): Generator<B> @@ -94,43 +94,43 @@ val animals = animalsGenerator.generate(Random()).getOrThrow()

choice -fun <A> choice(generators: List<Generator<A>>): Generator<Nothing> +fun <A : Any> choice(generators: List<Generator<A>>): Generator<A> fail -fun <A> fail(error: Exception): Generator<A> +fun <A : Any> fail(error: Exception): Generator<A> frequency -fun <A> frequency(vararg generators: <ERROR CLASS><Double, Generator<A>>): Generator<A> +fun <A : Any> frequency(generators: List<<ERROR CLASS><Double, Generator<A>>>): Generator<A> impure -fun <A> impure(valueClosure: () -> A): Generator<A> +fun <A : Any> impure(valueClosure: () -> A): Generator<A> pure -fun <A> pure(value: A): Generator<A> +fun <A : Any> pure(value: A): Generator<A> sequence -fun <A> sequence(generators: List<Generator<A>>): Generator<List<A>> +fun <A : Any> sequence(generators: List<Generator<A>>): Generator<List<A>> success -fun <A> success(generate: (Random) -> A): Generator<A> +fun <A : Any> success(generate: (SplittableRandom) -> A): Generator<A> @@ -141,7 +141,7 @@ val animals = animalsGenerator.generate(Random()).getOrThrow()

generateOrFail -fun <A> Generator<A>.generateOrFail(random: Random, numberOfTries: Int = 1): A +fun <A : Any> Generator<A>.generateOrFail(random: SplittableRandom, numberOfTries: Int = 1): A @@ -150,6 +150,12 @@ val animals = animalsGenerator.generate(Random()).getOrThrow()

+bytes + +fun Generator.Companion.bytes(size: Int): Generator<ByteArray> + + + double fun Generator.Companion.double(): Generator<Double> @@ -162,6 +168,12 @@ val animals = animalsGenerator.generate(Random()).getOrThrow()

+frequency + +fun <A : Any> Generator.Companion.frequency(vararg generators: <ERROR CLASS><Double, Generator<A>>): <ERROR CLASS> + + + int fun Generator.Companion.int(): Generator<Int> @@ -170,31 +182,39 @@ val animals = animalsGenerator.generate(Random()).getOrThrow()

intRange +fun Generator.Companion.intRange(range: IntRange): Generator<Int>
fun Generator.Companion.intRange(from: Int, to: Int): Generator<Int> -oneOf +longRange -fun <A> Generator.Companion.oneOf(list: List<A>): Generator<A> +fun Generator.Companion.longRange(range: LongRange): Generator<Long>
+fun Generator.Companion.longRange(from: Long, to: Long): Generator<Long> + + + +pickN + +fun <A : Any> Generator.Companion.pickN(number: Int, list: List<A>): Generator<List<A>> pickOne -fun <A> Generator.Companion.pickOne(list: List<A>): Generator<A> +fun <A : Any> Generator.Companion.pickOne(list: List<A>): Generator<A> replicate -fun <A> Generator.Companion.replicate(number: Int, generator: Generator<A>): Generator<List<A>> +fun <A : Any> Generator.Companion.replicate(number: Int, generator: Generator<A>): Generator<List<A>> replicatePoisson -fun <A> Generator.Companion.replicatePoisson(meanSize: Double, generator: Generator<A>): Generator<List<A>> +fun <A : Any> Generator.Companion.replicatePoisson(meanSize: Double, generator: Generator<A>): Generator<List<A>> diff --git a/docs/build/html/api/net.corda.client.mock/-generator/map.html b/docs/build/html/api/net.corda.client.mock/-generator/map.html index 6e983d2db4..275f4002bc 100644 --- a/docs/build/html/api/net.corda.client.mock/-generator/map.html +++ b/docs/build/html/api/net.corda.client.mock/-generator/map.html @@ -8,7 +8,7 @@

map

-fun <B> map(function: (A) -> B): Generator<B>
+fun <B : Any> map(function: (A) -> B): Generator<B>


diff --git a/docs/build/html/api/net.corda.client.mock/-generator/product.html b/docs/build/html/api/net.corda.client.mock/-generator/product.html index b8dfbc1c0b..fb7e7f02da 100644 --- a/docs/build/html/api/net.corda.client.mock/-generator/product.html +++ b/docs/build/html/api/net.corda.client.mock/-generator/product.html @@ -8,7 +8,7 @@

product

-fun <B> product(other: Generator<(A) -> B>): Generator<B>
+fun <B : Any> product(other: Generator<(A) -> B>): Generator<B>


diff --git a/docs/build/html/api/net.corda.client.mock/-generator/pure.html b/docs/build/html/api/net.corda.client.mock/-generator/pure.html index 09ebb37917..22d0c7720b 100644 --- a/docs/build/html/api/net.corda.client.mock/-generator/pure.html +++ b/docs/build/html/api/net.corda.client.mock/-generator/pure.html @@ -8,7 +8,7 @@

pure

-fun <A> pure(value: A): Generator<A>
+fun <A : Any> pure(value: A): Generator<A>


diff --git a/docs/build/html/api/net.corda.client.mock/-generator/sequence.html b/docs/build/html/api/net.corda.client.mock/-generator/sequence.html index dd8a2d44a6..f7e44178c8 100644 --- a/docs/build/html/api/net.corda.client.mock/-generator/sequence.html +++ b/docs/build/html/api/net.corda.client.mock/-generator/sequence.html @@ -8,7 +8,7 @@

sequence

-fun <A> sequence(generators: List<Generator<A>>): Generator<List<A>>
+fun <A : Any> sequence(generators: List<Generator<A>>): Generator<List<A>>


diff --git a/docs/build/html/api/net.corda.client.mock/-generator/success.html b/docs/build/html/api/net.corda.client.mock/-generator/success.html index 4a5dde9303..5dc3e6b742 100644 --- a/docs/build/html/api/net.corda.client.mock/-generator/success.html +++ b/docs/build/html/api/net.corda.client.mock/-generator/success.html @@ -7,8 +7,8 @@ net.corda.client.mock / Generator / success

success

- -fun <A> success(generate: (Random) -> A): Generator<A>
+ +fun <A : Any> success(generate: (SplittableRandom) -> A): Generator<A>


diff --git a/docs/build/html/api/net.corda.client.mock/bytes.html b/docs/build/html/api/net.corda.client.mock/bytes.html new file mode 100644 index 0000000000..740f781594 --- /dev/null +++ b/docs/build/html/api/net.corda.client.mock/bytes.html @@ -0,0 +1,15 @@ + + +net.corda.client.mock.bytes - + + + +net.corda.client.mock / bytes
+
+

bytes

+ +fun Generator.Companion.bytes(size: Int): Generator<ByteArray>
+
+
+ + diff --git a/docs/build/html/api/net.corda.client.mock/frequency.html b/docs/build/html/api/net.corda.client.mock/frequency.html new file mode 100644 index 0000000000..70e5618587 --- /dev/null +++ b/docs/build/html/api/net.corda.client.mock/frequency.html @@ -0,0 +1,15 @@ + + +net.corda.client.mock.frequency - + + + +net.corda.client.mock / frequency
+
+

frequency

+ +fun <A : Any> Generator.Companion.frequency(vararg generators: <ERROR CLASS><Double, Generator<A>>): <ERROR CLASS>
+
+
+ + diff --git a/docs/build/html/api/net.corda.client.mock/generate-amount.html b/docs/build/html/api/net.corda.client.mock/generate-amount.html new file mode 100644 index 0000000000..d23c9ff40c --- /dev/null +++ b/docs/build/html/api/net.corda.client.mock/generate-amount.html @@ -0,0 +1,15 @@ + + +generateAmount - + + + +net.corda.client.mock / generateAmount
+
+

generateAmount

+ +fun <T : Any> generateAmount(min: Long, max: Long, tokenGenerator: Generator<T>): Generator<Amount<T>>
+
+
+ + diff --git a/docs/build/html/api/net.corda.client.mock/generate-currency-amount.html b/docs/build/html/api/net.corda.client.mock/generate-currency-amount.html new file mode 100644 index 0000000000..261b6bd5be --- /dev/null +++ b/docs/build/html/api/net.corda.client.mock/generate-currency-amount.html @@ -0,0 +1,15 @@ + + +generateCurrencyAmount - + + + +net.corda.client.mock / generateCurrencyAmount
+
+

generateCurrencyAmount

+ +fun generateCurrencyAmount(min: Long, max: Long): Generator<Amount<Currency>>
+
+
+ + diff --git a/docs/build/html/api/net.corda.client.mock/generate-currency.html b/docs/build/html/api/net.corda.client.mock/generate-currency.html new file mode 100644 index 0000000000..23e0201f59 --- /dev/null +++ b/docs/build/html/api/net.corda.client.mock/generate-currency.html @@ -0,0 +1,15 @@ + + +generateCurrency - + + + +net.corda.client.mock / generateCurrency
+
+

generateCurrency

+ +fun generateCurrency(): Generator<Currency>
+
+
+ + diff --git a/docs/build/html/api/net.corda.client.mock/generate-issue-ref.html b/docs/build/html/api/net.corda.client.mock/generate-issue-ref.html new file mode 100644 index 0000000000..0afbee4c2f --- /dev/null +++ b/docs/build/html/api/net.corda.client.mock/generate-issue-ref.html @@ -0,0 +1,15 @@ + + +generateIssueRef - + + + +net.corda.client.mock / generateIssueRef
+
+

generateIssueRef

+ +fun generateIssueRef(size: Int): Generator<OpaqueBytes>
+
+
+ + diff --git a/docs/build/html/api/net.corda.client.mock/generate-or-fail.html b/docs/build/html/api/net.corda.client.mock/generate-or-fail.html index 2c629335df..b9d2f026eb 100644 --- a/docs/build/html/api/net.corda.client.mock/generate-or-fail.html +++ b/docs/build/html/api/net.corda.client.mock/generate-or-fail.html @@ -7,8 +7,8 @@ net.corda.client.mock / generateOrFail

generateOrFail

- -fun <A> Generator<A>.generateOrFail(random: Random, numberOfTries: Int = 1): A
+ +fun <A : Any> Generator<A>.generateOrFail(random: SplittableRandom, numberOfTries: Int = 1): A


diff --git a/docs/build/html/api/net.corda.client.mock/index.html b/docs/build/html/api/net.corda.client.mock/index.html index c7f5560b39..021f445c62 100644 --- a/docs/build/html/api/net.corda.client.mock/index.html +++ b/docs/build/html/api/net.corda.client.mock/index.html @@ -22,7 +22,7 @@ state/ref pairs, but it doesnt necessarily generate "correct" events

Generator -class Generator<out A>

This file defines a basic Generator library for composing random generators of objects.

+class Generator<out A : Any>

This file defines a basic Generator library for composing random generators of objects.

@@ -32,9 +32,33 @@ state/ref pairs, but it doesnt necessarily generate "correct" events

+generateAmount + +fun <T : Any> generateAmount(min: Long, max: Long, tokenGenerator: Generator<T>): Generator<Amount<T>> + + + +generateCurrency + +fun generateCurrency(): Generator<Currency> + + + +generateCurrencyAmount + +fun generateCurrencyAmount(min: Long, max: Long): Generator<Amount<Currency>> + + + +generateIssueRef + +fun generateIssueRef(size: Int): Generator<OpaqueBytes> + + + generateOrFail -fun <A> Generator<A>.generateOrFail(random: Random, numberOfTries: Int = 1): A +fun <A : Any> Generator<A>.generateOrFail(random: SplittableRandom, numberOfTries: Int = 1): A @@ -43,6 +67,12 @@ state/ref pairs, but it doesnt necessarily generate "correct" events

+bytes + +fun Generator.Companion.bytes(size: Int): Generator<ByteArray> + + + double fun Generator.Companion.double(): Generator<Double> @@ -55,6 +85,12 @@ state/ref pairs, but it doesnt necessarily generate "correct" events

+frequency + +fun <A : Any> Generator.Companion.frequency(vararg generators: <ERROR CLASS><Double, Generator<A>>): <ERROR CLASS> + + + int fun Generator.Companion.int(): Generator<Int> @@ -63,31 +99,39 @@ state/ref pairs, but it doesnt necessarily generate "correct" events

intRange +fun Generator.Companion.intRange(range: IntRange): Generator<Int>
fun Generator.Companion.intRange(from: Int, to: Int): Generator<Int> -oneOf +longRange -fun <A> Generator.Companion.oneOf(list: List<A>): Generator<A> +fun Generator.Companion.longRange(range: LongRange): Generator<Long>
+fun Generator.Companion.longRange(from: Long, to: Long): Generator<Long> + + + +pickN + +fun <A : Any> Generator.Companion.pickN(number: Int, list: List<A>): Generator<List<A>> pickOne -fun <A> Generator.Companion.pickOne(list: List<A>): Generator<A> +fun <A : Any> Generator.Companion.pickOne(list: List<A>): Generator<A> replicate -fun <A> Generator.Companion.replicate(number: Int, generator: Generator<A>): Generator<List<A>> +fun <A : Any> Generator.Companion.replicate(number: Int, generator: Generator<A>): Generator<List<A>> replicatePoisson -fun <A> Generator.Companion.replicatePoisson(meanSize: Double, generator: Generator<A>): Generator<List<A>> +fun <A : Any> Generator.Companion.replicatePoisson(meanSize: Double, generator: Generator<A>): Generator<List<A>> diff --git a/docs/build/html/api/net.corda.client.mock/int-range.html b/docs/build/html/api/net.corda.client.mock/int-range.html index a68fb3a15b..391a365db9 100644 --- a/docs/build/html/api/net.corda.client.mock/int-range.html +++ b/docs/build/html/api/net.corda.client.mock/int-range.html @@ -7,6 +7,8 @@ net.corda.client.mock / intRange

intRange

+ +fun Generator.Companion.intRange(range: IntRange): Generator<Int>
fun Generator.Companion.intRange(from: Int, to: Int): Generator<Int>

diff --git a/docs/build/html/api/net.corda.client.mock/long-range.html b/docs/build/html/api/net.corda.client.mock/long-range.html new file mode 100644 index 0000000000..374d241dd4 --- /dev/null +++ b/docs/build/html/api/net.corda.client.mock/long-range.html @@ -0,0 +1,17 @@ + + +net.corda.client.mock.longRange - + + + +net.corda.client.mock / longRange
+
+

longRange

+ +fun Generator.Companion.longRange(range: LongRange): Generator<Long>
+ +fun Generator.Companion.longRange(from: Long, to: Long): Generator<Long>
+
+
+ + diff --git a/docs/build/html/api/net.corda.client.mock/one-of.html b/docs/build/html/api/net.corda.client.mock/one-of.html deleted file mode 100644 index b935c4dffb..0000000000 --- a/docs/build/html/api/net.corda.client.mock/one-of.html +++ /dev/null @@ -1,15 +0,0 @@ - - -net.corda.client.mock.oneOf - - - - -net.corda.client.mock / oneOf
-
-

oneOf

- -fun <A> Generator.Companion.oneOf(list: List<A>): Generator<A>
-
-
- - diff --git a/docs/build/html/api/net.corda.client.mock/pick-n.html b/docs/build/html/api/net.corda.client.mock/pick-n.html new file mode 100644 index 0000000000..57edb3cd08 --- /dev/null +++ b/docs/build/html/api/net.corda.client.mock/pick-n.html @@ -0,0 +1,15 @@ + + +net.corda.client.mock.pickN - + + + +net.corda.client.mock / pickN
+
+

pickN

+ +fun <A : Any> Generator.Companion.pickN(number: Int, list: List<A>): Generator<List<A>>
+
+
+ + diff --git a/docs/build/html/api/net.corda.client.mock/pick-one.html b/docs/build/html/api/net.corda.client.mock/pick-one.html index 9731367a28..e6294aad46 100644 --- a/docs/build/html/api/net.corda.client.mock/pick-one.html +++ b/docs/build/html/api/net.corda.client.mock/pick-one.html @@ -8,7 +8,7 @@

pickOne

-fun <A> Generator.Companion.pickOne(list: List<A>): Generator<A>
+fun <A : Any> Generator.Companion.pickOne(list: List<A>): Generator<A>


diff --git a/docs/build/html/api/net.corda.client.mock/replicate-poisson.html b/docs/build/html/api/net.corda.client.mock/replicate-poisson.html index 04c62e53ba..775db52670 100644 --- a/docs/build/html/api/net.corda.client.mock/replicate-poisson.html +++ b/docs/build/html/api/net.corda.client.mock/replicate-poisson.html @@ -8,7 +8,7 @@

replicatePoisson

-fun <A> Generator.Companion.replicatePoisson(meanSize: Double, generator: Generator<A>): Generator<List<A>>
+fun <A : Any> Generator.Companion.replicatePoisson(meanSize: Double, generator: Generator<A>): Generator<List<A>>


diff --git a/docs/build/html/api/net.corda.client.mock/replicate.html b/docs/build/html/api/net.corda.client.mock/replicate.html index edd9aa4468..8ce5df2f04 100644 --- a/docs/build/html/api/net.corda.client.mock/replicate.html +++ b/docs/build/html/api/net.corda.client.mock/replicate.html @@ -8,7 +8,7 @@

replicate

-fun <A> Generator.Companion.replicate(number: Int, generator: Generator<A>): Generator<List<A>>
+fun <A : Any> Generator.Companion.replicate(number: Int, generator: Generator<A>): Generator<List<A>>


diff --git a/docs/build/html/api/net.corda.client.model/-contract-state-model/cash-states-diff.html b/docs/build/html/api/net.corda.client.model/-contract-state-model/cash-states-diff.html deleted file mode 100644 index 04e239cba8..0000000000 --- a/docs/build/html/api/net.corda.client.model/-contract-state-model/cash-states-diff.html +++ /dev/null @@ -1,15 +0,0 @@ - - -ContractStateModel.cashStatesDiff - - - - -net.corda.client.model / ContractStateModel / cashStatesDiff
-
-

cashStatesDiff

- -val cashStatesDiff: <ERROR CLASS><Diff<State>>
-
-
- - diff --git a/docs/build/html/api/net.corda.client.model/-contract-state-model/cash.html b/docs/build/html/api/net.corda.client.model/-contract-state-model/cash.html new file mode 100644 index 0000000000..6e8e8eb29e --- /dev/null +++ b/docs/build/html/api/net.corda.client.model/-contract-state-model/cash.html @@ -0,0 +1,15 @@ + + +ContractStateModel.cash - + + + +net.corda.client.model / ContractStateModel / cash
+
+

cash

+ +val cash: ObservableList<Amount<Issued<Currency>>>
+
+
+ + diff --git a/docs/build/html/api/net.corda.client.model/-contract-state-model/contract-states-diff.html b/docs/build/html/api/net.corda.client.model/-contract-state-model/contract-states-diff.html deleted file mode 100644 index da1b11faea..0000000000 --- a/docs/build/html/api/net.corda.client.model/-contract-state-model/contract-states-diff.html +++ /dev/null @@ -1,15 +0,0 @@ - - -ContractStateModel.contractStatesDiff - - - - -net.corda.client.model / ContractStateModel / contractStatesDiff
-
-

contractStatesDiff

- -val contractStatesDiff: <ERROR CLASS><Diff<ContractState>>
-
-
- - diff --git a/docs/build/html/api/net.corda.client.model/-contract-state-model/index.html b/docs/build/html/api/net.corda.client.model/-contract-state-model/index.html index 3d59c97957..d49f6049d8 100644 --- a/docs/build/html/api/net.corda.client.model/-contract-state-model/index.html +++ b/docs/build/html/api/net.corda.client.model/-contract-state-model/index.html @@ -28,22 +28,16 @@ +cash + +val cash: ObservableList<Amount<Issued<Currency>>> + + + cashStates val cashStates: ObservableList<StateAndRef<State>> - - -cashStatesDiff - -val cashStatesDiff: <ERROR CLASS><Diff<State>> - - - -contractStatesDiff - -val contractStatesDiff: <ERROR CLASS><Diff<ContractState>> - diff --git a/docs/build/html/api/net.corda.client.model/-network-identity-model/index.html b/docs/build/html/api/net.corda.client.model/-network-identity-model/index.html index 282e27354c..0d3f10b06c 100644 --- a/docs/build/html/api/net.corda.client.model/-network-identity-model/index.html +++ b/docs/build/html/api/net.corda.client.model/-network-identity-model/index.html @@ -51,7 +51,7 @@ lookup -fun lookup(publicKey: PublicKey): NodeInfo? +fun lookup(publicKeyTree: PublicKeyTree): NodeInfo? diff --git a/docs/build/html/api/net.corda.client.model/-network-identity-model/lookup.html b/docs/build/html/api/net.corda.client.model/-network-identity-model/lookup.html index 34631f507c..d628535629 100644 --- a/docs/build/html/api/net.corda.client.model/-network-identity-model/lookup.html +++ b/docs/build/html/api/net.corda.client.model/-network-identity-model/lookup.html @@ -7,8 +7,8 @@ net.corda.client.model / NetworkIdentityModel / lookup

lookup

- -fun lookup(publicKey: PublicKey): NodeInfo?
+ +fun lookup(publicKeyTree: PublicKeyTree): NodeInfo?


diff --git a/docs/build/html/api/net.corda.client.model/-node-monitor-model/client-to-service.html b/docs/build/html/api/net.corda.client.model/-node-monitor-model/client-to-service.html index d602fbd328..e19c8ac771 100644 --- a/docs/build/html/api/net.corda.client.model/-node-monitor-model/client-to-service.html +++ b/docs/build/html/api/net.corda.client.model/-node-monitor-model/client-to-service.html @@ -8,7 +8,7 @@

clientToService

-val clientToService: <ERROR CLASS><ClientToServiceCommand>
+val clientToService: <ERROR CLASS><CashCommand>


diff --git a/docs/build/html/api/net.corda.client.model/-node-monitor-model/index.html b/docs/build/html/api/net.corda.client.model/-node-monitor-model/index.html index d783225164..5f4e2b076c 100644 --- a/docs/build/html/api/net.corda.client.model/-node-monitor-model/index.html +++ b/docs/build/html/api/net.corda.client.model/-node-monitor-model/index.html @@ -30,7 +30,7 @@ clientToService -val clientToService: <ERROR CLASS><ClientToServiceCommand> +val clientToService: <ERROR CLASS><CashCommand> diff --git a/docs/build/html/api/net.corda.client/-corda-r-p-c-client/index.html b/docs/build/html/api/net.corda.client/-corda-r-p-c-client/index.html index 0d7b7e1a99..59c7aed49a 100644 --- a/docs/build/html/api/net.corda.client/-corda-r-p-c-client/index.html +++ b/docs/build/html/api/net.corda.client/-corda-r-p-c-client/index.html @@ -99,7 +99,7 @@ unfortunately Artemis tends to bury the exception when the password is wrong.

parseKeyFromQueueName -fun parseKeyFromQueueName(name: String): PublicKey +fun parseKeyFromQueueName(name: String): PublicKeyTree diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/-init-.html index 54497af793..a99e1935c0 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/-init-.html +++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/-init-.html @@ -7,10 +7,10 @@ net.corda.contracts.asset / Cash / State / <init>

<init>

-State(deposit: PartyAndReference, amount: Amount<Currency>, owner: PublicKey)
+State(deposit: PartyAndReference, amount: Amount<Currency>, owner: PublicKeyTree)


-State(amount: Amount<Issued<Currency>>, owner: PublicKey, encumbrance: Int? = null)
+State(amount: Amount<Issued<Currency>>, owner: PublicKeyTree, encumbrance: Int? = null)

A state representing a cash claim against some party.



diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/index.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/index.html index a0a4f5e515..9718c699c9 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/index.html +++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/index.html @@ -18,7 +18,7 @@ <init> -State(deposit: PartyAndReference, amount: Amount<Currency>, owner: PublicKey)State(amount: Amount<Issued<Currency>>, owner: PublicKey, encumbrance: Int? = null)

A state representing a cash claim against some party.

+State(deposit: PartyAndReference, amount: Amount<Currency>, owner: PublicKeyTree)State(amount: Amount<Issued<Currency>>, owner: PublicKeyTree, encumbrance: Int? = null)

A state representing a cash claim against some party.

@@ -58,7 +58,7 @@ owner to sign, some (i.e. cash) also require the issuer.

owner -val owner: PublicKey

There must be a MoveCommand signed by this key to claim the amount.

+val owner: PublicKeyTree

There must be a MoveCommand signed by this key to claim the amount.

@@ -84,7 +84,7 @@ owner to sign, some (i.e. cash) also require the issuer.

move -fun move(newAmount: Amount<Issued<Currency>>, newOwner: PublicKey): FungibleAsset<Currency> +fun move(newAmount: Amount<Issued<Currency>>, newOwner: PublicKeyTree): FungibleAsset<Currency> @@ -103,7 +103,7 @@ owner to sign, some (i.e. cash) also require the issuer.

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

+fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>

Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone

@@ -129,13 +129,13 @@ owner to sign, some (i.e. cash) also require the issuer.

owned by -infix fun State.owned by(owner: PublicKey): State +infix fun State.owned by(owner: PublicKeyTree): State ownedBy -fun State.ownedBy(owner: PublicKey): State +fun State.ownedBy(owner: PublicKeyTree): State diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/move.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/move.html index 8bfb74e9e5..490c45f20c 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/move.html +++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/move.html @@ -7,8 +7,8 @@ net.corda.contracts.asset / Cash / State / move

move

- -fun move(newAmount: Amount<Issued<Currency>>, newOwner: PublicKey): FungibleAsset<Currency>
+ +fun move(newAmount: Amount<Issued<Currency>>, newOwner: PublicKeyTree): FungibleAsset<Currency>


diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/owner.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/owner.html index 5c94fffc2d..72553ccf42 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/owner.html +++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/owner.html @@ -8,7 +8,7 @@

owner

-val owner: PublicKey
+val owner: PublicKeyTree
Overrides FungibleAsset.owner

There must be a MoveCommand signed by this key to claim the amount.


diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/with-new-owner.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/with-new-owner.html index 522bd8af61..e7d28ee18c 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/with-new-owner.html +++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/with-new-owner.html @@ -7,8 +7,8 @@ net.corda.contracts.asset / Cash / State / withNewOwner

withNewOwner

- -fun withNewOwner(newOwner: PublicKey): <ERROR CLASS>
+ +fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>
Overrides OwnableState.withNewOwner

Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone


diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/derive-state.html b/docs/build/html/api/net.corda.contracts.asset/-cash/derive-state.html index b7d42879d8..24ff4138ae 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-cash/derive-state.html +++ b/docs/build/html/api/net.corda.contracts.asset/-cash/derive-state.html @@ -7,8 +7,8 @@ net.corda.contracts.asset / Cash / deriveState

deriveState

- -fun deriveState(txState: TransactionState<State>, amount: Amount<Issued<Currency>>, owner: PublicKey): TransactionState<State>
+ +fun deriveState(txState: TransactionState<State>, amount: Amount<Issued<Currency>>, owner: PublicKeyTree): TransactionState<State>

Derive a new transaction state based on the given example, with amount and owner modified. This allows concrete implementations to have fields in their state which we dont know about here, and we simply leave them untouched when sending out "change" from spending/exiting.

diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/generate-issue.html b/docs/build/html/api/net.corda.contracts.asset/-cash/generate-issue.html index 93e3532e01..49588fe1e7 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-cash/generate-issue.html +++ b/docs/build/html/api/net.corda.contracts.asset/-cash/generate-issue.html @@ -7,13 +7,13 @@ net.corda.contracts.asset / Cash / generateIssue

generateIssue

- -fun generateIssue(tx: TransactionBuilder, tokenDef: Issued<Currency>, pennies: Long, owner: PublicKey, notary: Party): Unit
+ +fun generateIssue(tx: TransactionBuilder, tokenDef: Issued<Currency>, pennies: Long, owner: PublicKeyTree, notary: Party): Unit

Puts together an issuance transaction from the given template, that starts out being owned by the given pubkey.



- -fun generateIssue(tx: TransactionBuilder, amount: Amount<Issued<Currency>>, owner: PublicKey, notary: Party): Unit
+ +fun generateIssue(tx: TransactionBuilder, amount: Amount<Issued<Currency>>, owner: PublicKeyTree, notary: Party): Unit

Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.



diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/index.html b/docs/build/html/api/net.corda.contracts.asset/-cash/index.html index 4a7ca5614e..f1c33c7e8a 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-cash/index.html +++ b/docs/build/html/api/net.corda.contracts.asset/-cash/index.html @@ -85,7 +85,7 @@ the same transaction.

deriveState -fun deriveState(txState: TransactionState<State>, amount: Amount<Issued<Currency>>, owner: PublicKey): TransactionState<State>

Derive a new transaction state based on the given example, with amount and owner modified. This allows concrete +fun deriveState(txState: TransactionState<State>, amount: Amount<Issued<Currency>>, owner: PublicKeyTree): TransactionState<State>

Derive a new transaction state based on the given example, with amount and owner modified. This allows concrete implementations to have fields in their state which we dont know about here, and we simply leave them untouched when sending out "change" from spending/exiting.

@@ -106,8 +106,8 @@ when sending out "change" from spending/exiting.

generateIssue -fun generateIssue(tx: TransactionBuilder, tokenDef: Issued<Currency>, pennies: Long, owner: PublicKey, notary: Party): Unit

Puts together an issuance transaction from the given template, that starts out being owned by the given pubkey.

-fun generateIssue(tx: TransactionBuilder, amount: Amount<Issued<Currency>>, owner: PublicKey, notary: Party): Unit

Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.

+fun generateIssue(tx: TransactionBuilder, tokenDef: Issued<Currency>, pennies: Long, owner: PublicKeyTree, notary: Party): Unit

Puts together an issuance transaction from the given template, that starts out being owned by the given pubkey.

+fun generateIssue(tx: TransactionBuilder, amount: Amount<Issued<Currency>>, owner: PublicKeyTree, notary: Party): Unit

Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.

diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/-init-.html index bc92b91391..e484c37756 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/-init-.html +++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/-init-.html @@ -7,10 +7,10 @@ net.corda.contracts.asset / CommodityContract / State / <init>

<init>

-State(deposit: PartyAndReference, amount: Amount<Commodity>, owner: PublicKey)
+State(deposit: PartyAndReference, amount: Amount<Commodity>, owner: PublicKeyTree)


-State(amount: Amount<Issued<Commodity>>, owner: PublicKey)
+State(amount: Amount<Issued<Commodity>>, owner: PublicKeyTree)

A state representing a commodity claim against some party



diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/exit-keys.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/exit-keys.html index a8a2b79eae..980cbb000c 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/exit-keys.html +++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/exit-keys.html @@ -8,7 +8,7 @@

exitKeys

-val exitKeys: MutableSet<PublicKey>
+val exitKeys: MutableSet<PublicKeyTree>
Overrides FungibleAsset.exitKeys

There must be an ExitCommand signed by these keys to destroy the amount. While all states require their owner to sign, some (i.e. cash) also require the issuer.

diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/index.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/index.html index bdaeb1f0ef..44febb5a69 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/index.html +++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/index.html @@ -18,7 +18,7 @@ <init> -State(deposit: PartyAndReference, amount: Amount<Commodity>, owner: PublicKey)State(amount: Amount<Issued<Commodity>>, owner: PublicKey)

A state representing a commodity claim against some party

+State(deposit: PartyAndReference, amount: Amount<Commodity>, owner: PublicKeyTree)State(amount: Amount<Issued<Commodity>>, owner: PublicKeyTree)

A state representing a commodity claim against some party

@@ -43,7 +43,7 @@ exitKeys -val exitKeys: MutableSet<PublicKey>

There must be an ExitCommand signed by these keys to destroy the amount. While all states require their +val exitKeys: MutableSet<PublicKeyTree>

There must be an ExitCommand signed by these keys to destroy the amount. While all states require their owner to sign, some (i.e. cash) also require the issuer.

@@ -51,7 +51,7 @@ owner to sign, some (i.e. cash) also require the issuer.

owner -val owner: PublicKey

There must be a MoveCommand signed by this key to claim the amount

+val owner: PublicKeyTree

There must be a MoveCommand signed by this key to claim the amount

@@ -70,7 +70,7 @@ owner to sign, some (i.e. cash) also require the issuer.

move -fun move(newAmount: Amount<Issued<Commodity>>, newOwner: PublicKey): FungibleAsset<Commodity> +fun move(newAmount: Amount<Issued<Commodity>>, newOwner: PublicKeyTree): FungibleAsset<Commodity> @@ -82,7 +82,7 @@ owner to sign, some (i.e. cash) also require the issuer.

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

+fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>

Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone

diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/move.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/move.html index 8a7739ca9b..f5c5c40848 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/move.html +++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/move.html @@ -7,8 +7,8 @@ net.corda.contracts.asset / CommodityContract / State / move

move

- -fun move(newAmount: Amount<Issued<Commodity>>, newOwner: PublicKey): FungibleAsset<Commodity>
+ +fun move(newAmount: Amount<Issued<Commodity>>, newOwner: PublicKeyTree): FungibleAsset<Commodity>


diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/owner.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/owner.html index 9bfccd4c2d..6b646b8dc5 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/owner.html +++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/owner.html @@ -8,7 +8,7 @@

owner

-val owner: PublicKey
+val owner: PublicKeyTree
Overrides FungibleAsset.owner

There must be a MoveCommand signed by this key to claim the amount


diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/with-new-owner.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/with-new-owner.html index 788a562239..12eef7009e 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/with-new-owner.html +++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/with-new-owner.html @@ -7,8 +7,8 @@ net.corda.contracts.asset / CommodityContract / State / withNewOwner

withNewOwner

- -fun withNewOwner(newOwner: PublicKey): <ERROR CLASS>
+ +fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>
Overrides OwnableState.withNewOwner

Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone


diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/derive-state.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/derive-state.html index c37bd45d6d..8247c0ab79 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/derive-state.html +++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/derive-state.html @@ -7,8 +7,8 @@ net.corda.contracts.asset / CommodityContract / deriveState

deriveState

- -fun deriveState(txState: TransactionState<State>, amount: Amount<Issued<Commodity>>, owner: PublicKey): TransactionState<State>
+ +fun deriveState(txState: TransactionState<State>, amount: Amount<Issued<Commodity>>, owner: PublicKeyTree): TransactionState<State>

Derive a new transaction state based on the given example, with amount and owner modified. This allows concrete implementations to have fields in their state which we dont know about here, and we simply leave them untouched when sending out "change" from spending/exiting.

diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/generate-issue.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/generate-issue.html index 6ee1b530f0..67095c50de 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/generate-issue.html +++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/generate-issue.html @@ -7,13 +7,13 @@ net.corda.contracts.asset / CommodityContract / generateIssue

generateIssue

- -fun generateIssue(tx: TransactionBuilder, tokenDef: Issued<Commodity>, pennies: Long, owner: PublicKey, notary: Party): Unit
+ +fun generateIssue(tx: TransactionBuilder, tokenDef: Issued<Commodity>, pennies: Long, owner: PublicKeyTree, notary: Party): Unit

Puts together an issuance transaction from the given template, that starts out being owned by the given pubkey.



- -fun generateIssue(tx: TransactionBuilder, amount: Amount<Issued<Commodity>>, owner: PublicKey, notary: Party): Unit
+ +fun generateIssue(tx: TransactionBuilder, amount: Amount<Issued<Commodity>>, owner: PublicKeyTree, notary: Party): Unit

Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.



diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/index.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/index.html index 3a060cbe48..a530bd60f9 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/index.html +++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/index.html @@ -85,7 +85,7 @@ internal accounting by the issuer (it might be, for example, a warehouse and/or deriveState -fun deriveState(txState: TransactionState<State>, amount: Amount<Issued<Commodity>>, owner: PublicKey): TransactionState<State>

Derive a new transaction state based on the given example, with amount and owner modified. This allows concrete +fun deriveState(txState: TransactionState<State>, amount: Amount<Issued<Commodity>>, owner: PublicKeyTree): TransactionState<State>

Derive a new transaction state based on the given example, with amount and owner modified. This allows concrete implementations to have fields in their state which we dont know about here, and we simply leave them untouched when sending out "change" from spending/exiting.

@@ -106,8 +106,8 @@ when sending out "change" from spending/exiting.

generateIssue -fun generateIssue(tx: TransactionBuilder, tokenDef: Issued<Commodity>, pennies: Long, owner: PublicKey, notary: Party): Unit

Puts together an issuance transaction from the given template, that starts out being owned by the given pubkey.

-fun generateIssue(tx: TransactionBuilder, amount: Amount<Issued<Commodity>>, owner: PublicKey, notary: Party): Unit

Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.

+fun generateIssue(tx: TransactionBuilder, tokenDef: Issued<Commodity>, pennies: Long, owner: PublicKeyTree, notary: Party): Unit

Puts together an issuance transaction from the given template, that starts out being owned by the given pubkey.

+fun generateIssue(tx: TransactionBuilder, amount: Amount<Issued<Commodity>>, owner: PublicKeyTree, notary: Party): Unit

Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.

diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/-init-.html index 1a22aef833..533c21c672 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/-init-.html +++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/-init-.html @@ -7,7 +7,7 @@ net.corda.contracts.asset / Obligation / State / <init>

<init>

-State(lifecycle: Lifecycle = Lifecycle.NORMAL, obligor: Party, template: Terms<P>, quantity: Long, beneficiary: PublicKey)
+State(lifecycle: Lifecycle = Lifecycle.NORMAL, obligor: Party, template: Terms<P>, quantity: Long, beneficiary: PublicKeyTree)

A state representing the obligation of one party (obligor) to deliver a specified number of units of an underlying asset (described as token.acceptableIssuedProducts) to the beneficiary no later than the specified time.

diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/beneficiary.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/beneficiary.html index 718836f561..6092f6bd6f 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/beneficiary.html +++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/beneficiary.html @@ -8,7 +8,7 @@

beneficiary

-val beneficiary: PublicKey
+val beneficiary: PublicKeyTree

The public key of the entity the contract pays to



diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/exit-keys.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/exit-keys.html index 9f44e83153..8104fc31bb 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/exit-keys.html +++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/exit-keys.html @@ -8,7 +8,7 @@

exitKeys

-val exitKeys: Collection<PublicKey>
+val exitKeys: Collection<PublicKeyTree>
Overrides FungibleAsset.exitKeys

There must be an ExitCommand signed by these keys to destroy the amount. While all states require their owner to sign, some (i.e. cash) also require the issuer.

diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/index.html index a51ed19924..8dfdadb167 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/index.html +++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/index.html @@ -23,7 +23,7 @@ no later than the specified time.

<init> -State(lifecycle: Lifecycle = Lifecycle.NORMAL, obligor: Party, template: Terms<P>, quantity: Long, beneficiary: PublicKey)

A state representing the obligation of one party (obligor) to deliver a specified number of +State(lifecycle: Lifecycle = Lifecycle.NORMAL, obligor: Party, template: Terms<P>, quantity: Long, beneficiary: PublicKeyTree)

A state representing the obligation of one party (obligor) to deliver a specified number of units of an underlying asset (described as token.acceptableIssuedProducts) to the beneficiary no later than the specified time.

@@ -43,7 +43,7 @@ no later than the specified time.

beneficiary -val beneficiary: PublicKey

The public key of the entity the contract pays to

+val beneficiary: PublicKeyTree

The public key of the entity the contract pays to

@@ -71,7 +71,7 @@ equal objects, they can be close out netted together.

exitKeys -val exitKeys: Collection<PublicKey>

There must be an ExitCommand signed by these keys to destroy the amount. While all states require their +val exitKeys: Collection<PublicKeyTree>

There must be an ExitCommand signed by these keys to destroy the amount. While all states require their owner to sign, some (i.e. cash) also require the issuer.

@@ -100,14 +100,14 @@ equal objects, they can be close out netted together.

owner -val owner: PublicKey

There must be a MoveCommand signed by this key to claim the amount

+val owner: PublicKeyTree

There must be a MoveCommand signed by this key to claim the amount

participants -val participants: List<PublicKey>

A participant is any party that is able to consume this state in a valid transaction.

+val participants: List<PublicKeyTree>

A participant is any party that is able to consume this state in a valid transaction.

@@ -131,7 +131,7 @@ equal objects, they can be close out netted together.

move -fun move(newAmount: Amount<Issued<Terms<P>>>, newOwner: PublicKey): State<P> +fun move(newAmount: Amount<Issued<Terms<P>>>, newOwner: PublicKeyTree): State<P> @@ -151,7 +151,7 @@ bilateralNetState objects are equal).

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

+fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>

Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone

@@ -169,7 +169,7 @@ bilateralNetState objects are equal).

between -infix fun <T> State<T>.between(parties: <ERROR CLASS><Party, PublicKey>): State<T> +infix fun <T> State<T>.between(parties: <ERROR CLASS><Party, PublicKeyTree>): State<T> @@ -187,13 +187,13 @@ bilateralNetState objects are equal).

owned by -infix fun <T> State<T>.owned by(owner: PublicKey): State<T> +infix fun <T> State<T>.owned by(owner: PublicKeyTree): State<T> ownedBy -fun <T> State<T>.ownedBy(owner: PublicKey): State<T> +fun <T> State<T>.ownedBy(owner: PublicKeyTree): State<T> diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/move.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/move.html index 736a8c80bf..6445283df3 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/move.html +++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/move.html @@ -7,8 +7,8 @@ net.corda.contracts.asset / Obligation / State / move

move

- -fun move(newAmount: Amount<Issued<Terms<P>>>, newOwner: PublicKey): State<P>
+ +fun move(newAmount: Amount<Issued<Terms<P>>>, newOwner: PublicKeyTree): State<P>


diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/owner.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/owner.html index 4069385a8f..5780ebf32c 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/owner.html +++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/owner.html @@ -8,7 +8,7 @@

owner

-val owner: PublicKey
+val owner: PublicKeyTree
Overrides FungibleAsset.owner

There must be a MoveCommand signed by this key to claim the amount


diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/participants.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/participants.html index fe2cc6a229..f7a0627950 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/participants.html +++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/participants.html @@ -8,7 +8,7 @@

participants

-val participants: List<PublicKey>
+val participants: List<PublicKeyTree>
Overrides ContractState.participants

A participant is any party that is able to consume this state in a valid transaction.

The list of participants is required for certain types of transactions. For example, when changing the notary diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/with-new-owner.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/with-new-owner.html index b1fa7bbdcf..f25a730620 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/with-new-owner.html +++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/with-new-owner.html @@ -7,8 +7,8 @@ net.corda.contracts.asset / Obligation / State / withNewOwner

withNewOwner

- -fun withNewOwner(newOwner: PublicKey): <ERROR CLASS>
+ +fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>
Overrides OwnableState.withNewOwner

Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone


diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-close-out-netting.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-close-out-netting.html index d1ae199228..ec720b2925 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-close-out-netting.html +++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-close-out-netting.html @@ -7,8 +7,8 @@ net.corda.contracts.asset / Obligation / generateCloseOutNetting

generateCloseOutNetting

- -fun generateCloseOutNetting(tx: TransactionBuilder, signer: PublicKey, vararg states: State<P>): Unit
+ +fun generateCloseOutNetting(tx: TransactionBuilder, signer: PublicKeyTree, vararg states: State<P>): Unit

Generate a transaction performing close-out netting of two or more states.

Parameters

diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-exit.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-exit.html index 6b296eec28..e0632e5b18 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-exit.html +++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-exit.html @@ -8,7 +8,7 @@

generateExit

-fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<Terms<P>>>, assetStates: List<StateAndRef<State<P>>>): PublicKey
+fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<Terms<P>>>, assetStates: List<StateAndRef<State<P>>>): PublicKeyTree

Generate an transaction exiting an obligation from the ledger.

Parameters

diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-issue.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-issue.html index c18121e534..eee22c6b4e 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-issue.html +++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-issue.html @@ -7,8 +7,8 @@ net.corda.contracts.asset / Obligation / generateIssue

generateIssue

- -fun generateIssue(tx: TransactionBuilder, obligor: Party, issuanceDef: Terms<P>, pennies: Long, beneficiary: PublicKey, notary: Party): Unit
+ +fun generateIssue(tx: TransactionBuilder, obligor: Party, issuanceDef: Terms<P>, pennies: Long, beneficiary: PublicKeyTree, notary: Party): Unit

Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.



diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/index.html index 539d0dfea5..e841c44476 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-obligation/index.html +++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/index.html @@ -93,21 +93,21 @@ to be netted/merged, with settlement only for any remainder amount.

generateCloseOutNetting -fun generateCloseOutNetting(tx: TransactionBuilder, signer: PublicKey, vararg states: State<P>): Unit

Generate a transaction performing close-out netting of two or more states.

+fun generateCloseOutNetting(tx: TransactionBuilder, signer: PublicKeyTree, vararg states: State<P>): Unit

Generate a transaction performing close-out netting of two or more states.

generateExit -fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<Terms<P>>>, assetStates: List<StateAndRef<State<P>>>): PublicKey

Generate an transaction exiting an obligation from the ledger.

+fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<Terms<P>>>, assetStates: List<StateAndRef<State<P>>>): PublicKeyTree

Generate an transaction exiting an obligation from the ledger.

generateIssue -fun generateIssue(tx: TransactionBuilder, obligor: Party, issuanceDef: Terms<P>, pennies: Long, beneficiary: PublicKey, notary: Party): Unit

Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.

+fun generateIssue(tx: TransactionBuilder, obligor: Party, issuanceDef: Terms<P>, pennies: Long, beneficiary: PublicKeyTree, notary: Party): Unit

Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.

diff --git a/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/derive-state.html b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/derive-state.html index 2e06430bc2..68fc07f53e 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/derive-state.html +++ b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/derive-state.html @@ -7,8 +7,8 @@ net.corda.contracts.asset / OnLedgerAsset / deriveState

deriveState

- -abstract fun deriveState(txState: TransactionState<S>, amount: Amount<Issued<T>>, owner: PublicKey): TransactionState<S>
+ +abstract fun deriveState(txState: TransactionState<S>, amount: Amount<Issued<T>>, owner: PublicKeyTree): TransactionState<S>

Derive a new transaction state based on the given example, with amount and owner modified. This allows concrete implementations to have fields in their state which we dont know about here, and we simply leave them untouched when sending out "change" from spending/exiting.

diff --git a/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/generate-exit.html b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/generate-exit.html index 01e549dd96..3bcfea1f8b 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/generate-exit.html +++ b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/generate-exit.html @@ -8,7 +8,7 @@

generateExit

-fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<T>>, assetStates: List<StateAndRef<S>>): PublicKey
+fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<T>>, assetStates: List<StateAndRef<S>>): PublicKeyTree

Generate an transaction exiting assets from the ledger.

Parameters

diff --git a/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/index.html b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/index.html index b09da67179..39b273296e 100644 --- a/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/index.html +++ b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/index.html @@ -67,7 +67,7 @@ the contracts contents).

deriveState -abstract fun deriveState(txState: TransactionState<S>, amount: Amount<Issued<T>>, owner: PublicKey): TransactionState<S>

Derive a new transaction state based on the given example, with amount and owner modified. This allows concrete +abstract fun deriveState(txState: TransactionState<S>, amount: Amount<Issued<T>>, owner: PublicKeyTree): TransactionState<S>

Derive a new transaction state based on the given example, with amount and owner modified. This allows concrete implementations to have fields in their state which we dont know about here, and we simply leave them untouched when sending out "change" from spending/exiting.

@@ -82,7 +82,7 @@ when sending out "change" from spending/exiting.

generateExit -fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<T>>, assetStates: List<StateAndRef<S>>): PublicKey

Generate an transaction exiting assets from the ledger.

+fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<T>>, assetStates: List<StateAndRef<S>>): PublicKeyTree

Generate an transaction exiting assets from the ledger.

diff --git a/docs/build/html/api/net.corda.contracts.asset/between.html b/docs/build/html/api/net.corda.contracts.asset/between.html index 0fb77c91c4..9c776f64a6 100644 --- a/docs/build/html/api/net.corda.contracts.asset/between.html +++ b/docs/build/html/api/net.corda.contracts.asset/between.html @@ -7,8 +7,8 @@ net.corda.contracts.asset / between

between

- -infix fun <T> State<T>.between(parties: <ERROR CLASS><Party, PublicKey>): State<T>
+ +infix fun <T> State<T>.between(parties: <ERROR CLASS><Party, PublicKeyTree>): State<T>


diff --git a/docs/build/html/api/net.corda.contracts.asset/extract-amounts-due.html b/docs/build/html/api/net.corda.contracts.asset/extract-amounts-due.html index b4ddfdb735..dca81f086f 100644 --- a/docs/build/html/api/net.corda.contracts.asset/extract-amounts-due.html +++ b/docs/build/html/api/net.corda.contracts.asset/extract-amounts-due.html @@ -8,7 +8,7 @@

extractAmountsDue

-fun <P> extractAmountsDue(product: Terms<P>, states: Iterable<State<P>>): Map<<ERROR CLASS><PublicKey, PublicKey>, Amount<Terms<P>>>
+fun <P> extractAmountsDue(product: Terms<P>, states: Iterable<State<P>>): Map<<ERROR CLASS><PublicKeyTree, PublicKeyTree>, Amount<Terms<P>>>

Convert a list of settlement states into total from each obligor to a beneficiary.

Return
a map of obligor/beneficiary pairs to the balance due.

diff --git a/docs/build/html/api/net.corda.contracts.asset/index.html b/docs/build/html/api/net.corda.contracts.asset/index.html index bce78e66b6..32207678b6 100644 --- a/docs/build/html/api/net.corda.contracts.asset/index.html +++ b/docs/build/html/api/net.corda.contracts.asset/index.html @@ -154,13 +154,13 @@ transaction.

between -infix fun <T> State<T>.between(parties: <ERROR CLASS><Party, PublicKey>): State<T> +infix fun <T> State<T>.between(parties: <ERROR CLASS><Party, PublicKeyTree>): State<T> extractAmountsDue -fun <P> extractAmountsDue(product: Terms<P>, states: Iterable<State<P>>): Map<<ERROR CLASS><PublicKey, PublicKey>, Amount<Terms<P>>>

Convert a list of settlement states into total from each obligor to a beneficiary.

+fun <P> extractAmountsDue(product: Terms<P>, states: Iterable<State<P>>): Map<<ERROR CLASS><PublicKeyTree, PublicKeyTree>, Amount<Terms<P>>>

Convert a list of settlement states into total from each obligor to a beneficiary.

@@ -183,28 +183,28 @@ transaction.

netAmountsDue -fun <P> netAmountsDue(balances: Map<<ERROR CLASS><PublicKey, PublicKey>, Amount<P>>): Map<<ERROR CLASS><PublicKey, PublicKey>, Amount<P>>

Net off the amounts due between parties.

+fun <P> netAmountsDue(balances: Map<<ERROR CLASS><PublicKeyTree, PublicKeyTree>, Amount<P>>): Map<<ERROR CLASS><PublicKeyTree, PublicKeyTree>, Amount<P>>

Net off the amounts due between parties.

owned by -infix fun State.owned by(owner: PublicKey): State
-infix fun <T> State<T>.owned by(owner: PublicKey): State<T> +infix fun State.owned by(owner: PublicKeyTree): State
+infix fun <T> State<T>.owned by(owner: PublicKeyTree): State<T> ownedBy -fun State.ownedBy(owner: PublicKey): State
-fun <T> State<T>.ownedBy(owner: PublicKey): State<T> +fun State.ownedBy(owner: PublicKeyTree): State
+fun <T> State<T>.ownedBy(owner: PublicKeyTree): State<T> sumAmountsDue -fun <P> sumAmountsDue(balances: Map<<ERROR CLASS><PublicKey, PublicKey>, Amount<P>>): Map<PublicKey, Long>

Calculate the total balance movement for each party in the transaction, based off a summary of balances between +fun <P> sumAmountsDue(balances: Map<<ERROR CLASS><PublicKeyTree, PublicKeyTree>, Amount<P>>): Map<PublicKeyTree, Long>

Calculate the total balance movement for each party in the transaction, based off a summary of balances between each obligor and beneficiary.

diff --git a/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/index.html b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/index.html index 458267aec1..e17064927c 100644 --- a/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/index.html +++ b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/index.html @@ -21,7 +21,7 @@ states cannot be added together (i.e. are different currencies or issuers).

sumCashBy -fun Iterable<ContractState>.sumCashBy(owner: PublicKey): Amount<Issued<Currency>>

Sums the cash states in the list belonging to a single owner, throwing an exception +fun Iterable<ContractState>.sumCashBy(owner: PublicKeyTree): Amount<Issued<Currency>>

Sums the cash states in the list belonging to a single owner, throwing an exception if there are none, or if any of the cash states cannot be added together (i.e. are different currencies or issuers).

diff --git a/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-cash-by.html b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-cash-by.html index 8ba47c2813..61850d7665 100644 --- a/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-cash-by.html +++ b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-cash-by.html @@ -7,8 +7,8 @@ net.corda.contracts.asset / kotlin.collections.Iterable / sumCashBy

sumCashBy

- -fun Iterable<ContractState>.sumCashBy(owner: PublicKey): Amount<Issued<Currency>>
+ +fun Iterable<ContractState>.sumCashBy(owner: PublicKeyTree): Amount<Issued<Currency>>

Sums the cash states in the list belonging to a single owner, throwing an exception if there are none, or if any of the cash states cannot be added together (i.e. are different currencies or issuers).

diff --git a/docs/build/html/api/net.corda.contracts.asset/net-amounts-due.html b/docs/build/html/api/net.corda.contracts.asset/net-amounts-due.html index ce04f22ab5..ef4becb921 100644 --- a/docs/build/html/api/net.corda.contracts.asset/net-amounts-due.html +++ b/docs/build/html/api/net.corda.contracts.asset/net-amounts-due.html @@ -7,8 +7,8 @@ net.corda.contracts.asset / netAmountsDue

netAmountsDue

- -fun <P> netAmountsDue(balances: Map<<ERROR CLASS><PublicKey, PublicKey>, Amount<P>>): Map<<ERROR CLASS><PublicKey, PublicKey>, Amount<P>>
+ +fun <P> netAmountsDue(balances: Map<<ERROR CLASS><PublicKeyTree, PublicKeyTree>, Amount<P>>): Map<<ERROR CLASS><PublicKeyTree, PublicKeyTree>, Amount<P>>

Net off the amounts due between parties.



diff --git a/docs/build/html/api/net.corda.contracts.asset/owned by.html b/docs/build/html/api/net.corda.contracts.asset/owned by.html index 3430ace5e0..4d617952c9 100644 --- a/docs/build/html/api/net.corda.contracts.asset/owned by.html +++ b/docs/build/html/api/net.corda.contracts.asset/owned by.html @@ -7,10 +7,10 @@ net.corda.contracts.asset / owned by

owned by

- -infix fun State.owned by(owner: PublicKey): State
- -infix fun <T> State<T>.owned by(owner: PublicKey): State<T>
+ +infix fun State.owned by(owner: PublicKeyTree): State
+ +infix fun <T> State<T>.owned by(owner: PublicKeyTree): State<T>


diff --git a/docs/build/html/api/net.corda.contracts.asset/owned-by.html b/docs/build/html/api/net.corda.contracts.asset/owned-by.html index 705f042f8b..a0b3354656 100644 --- a/docs/build/html/api/net.corda.contracts.asset/owned-by.html +++ b/docs/build/html/api/net.corda.contracts.asset/owned-by.html @@ -7,10 +7,10 @@ net.corda.contracts.asset / ownedBy

ownedBy

- -fun State.ownedBy(owner: PublicKey): State
- -fun <T> State<T>.ownedBy(owner: PublicKey): State<T>
+ +fun State.ownedBy(owner: PublicKeyTree): State
+ +fun <T> State<T>.ownedBy(owner: PublicKeyTree): State<T>


diff --git a/docs/build/html/api/net.corda.contracts.asset/sum-amounts-due.html b/docs/build/html/api/net.corda.contracts.asset/sum-amounts-due.html index 02b397e7d6..8d4b2e85cf 100644 --- a/docs/build/html/api/net.corda.contracts.asset/sum-amounts-due.html +++ b/docs/build/html/api/net.corda.contracts.asset/sum-amounts-due.html @@ -7,8 +7,8 @@ net.corda.contracts.asset / sumAmountsDue

sumAmountsDue

- -fun <P> sumAmountsDue(balances: Map<<ERROR CLASS><PublicKey, PublicKey>, Amount<P>>): Map<PublicKey, Long>
+ +fun <P> sumAmountsDue(balances: Map<<ERROR CLASS><PublicKeyTree, PublicKeyTree>, Amount<P>>): Map<PublicKeyTree, Long>

Calculate the total balance movement for each party in the transaction, based off a summary of balances between each obligor and beneficiary.

Parameters

diff --git a/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/generate-exit.html b/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/generate-exit.html index 055e1f5d39..012627dd36 100644 --- a/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/generate-exit.html +++ b/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/generate-exit.html @@ -7,8 +7,8 @@ net.corda.contracts.clause / AbstractConserveAmount / generateExit

generateExit

- -fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<T>>, assetStates: List<StateAndRef<S>>, deriveState: (TransactionState<S>, Amount<Issued<T>>, PublicKey) -> TransactionState<S>, generateMoveCommand: () -> CommandData, generateExitCommand: (Amount<Issued<T>>) -> CommandData): PublicKey
+ +fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<T>>, assetStates: List<StateAndRef<S>>, deriveState: (TransactionState<S>, Amount<Issued<T>>, PublicKeyTree) -> TransactionState<S>, generateMoveCommand: () -> CommandData, generateExitCommand: (Amount<Issued<T>>) -> CommandData): PublicKeyTree

Generate an transaction exiting fungible assets from the ledger.

Parameters

diff --git a/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/index.html b/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/index.html index 92eb5dfdd3..0dd0d6fb8d 100644 --- a/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/index.html +++ b/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/index.html @@ -46,7 +46,7 @@ errors on no-match, ends on match.

generateExit -fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<T>>, assetStates: List<StateAndRef<S>>, deriveState: (TransactionState<S>, Amount<Issued<T>>, PublicKey) -> TransactionState<S>, generateMoveCommand: () -> CommandData, generateExitCommand: (Amount<Issued<T>>) -> CommandData): PublicKey

Generate an transaction exiting fungible assets from the ledger.

+fun generateExit(tx: TransactionBuilder, amountIssued: Amount<Issued<T>>, assetStates: List<StateAndRef<S>>, deriveState: (TransactionState<S>, Amount<Issued<T>>, PublicKeyTree) -> TransactionState<S>, generateMoveCommand: () -> CommandData, generateExitCommand: (Amount<Issued<T>>) -> CommandData): PublicKeyTree

Generate an transaction exiting fungible assets from the ledger.

diff --git a/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/-init-.html b/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/-init-.html index b6c82c8ea2..99958faa52 100644 --- a/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/-init-.html +++ b/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/-init-.html @@ -7,7 +7,7 @@ net.corda.contracts.clause / BilateralNetState / <init>

<init>

-BilateralNetState(partyKeys: Set<PublicKey>, template: Terms<P>)
+BilateralNetState(partyKeys: Set<PublicKeyTree>, template: Terms<P>)

Subset of state, containing the elements which must match for two obligation transactions to be nettable. If two obligation state objects produce equal bilateral net states, they are considered safe to net directly. Bilateral states are used in close-out netting.

diff --git a/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/index.html b/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/index.html index ff9d9dc33a..c127df887f 100644 --- a/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/index.html +++ b/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/index.html @@ -20,7 +20,7 @@ Bilateral states are used in close-out netting.

<init> -BilateralNetState(partyKeys: Set<PublicKey>, template: Terms<P>)

Subset of state, containing the elements which must match for two obligation transactions to be nettable. +BilateralNetState(partyKeys: Set<PublicKeyTree>, template: Terms<P>)

Subset of state, containing the elements which must match for two obligation transactions to be nettable. If two obligation state objects produce equal bilateral net states, they are considered safe to net directly. Bilateral states are used in close-out netting.

@@ -34,7 +34,7 @@ Bilateral states are used in close-out netting.

partyKeys -val partyKeys: Set<PublicKey> +val partyKeys: Set<PublicKeyTree> diff --git a/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/party-keys.html b/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/party-keys.html index af39f6ed3a..9b95a97dff 100644 --- a/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/party-keys.html +++ b/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/party-keys.html @@ -8,7 +8,7 @@

partyKeys

-val partyKeys: Set<PublicKey>
+val partyKeys: Set<PublicKeyTree>


diff --git a/docs/build/html/api/net.corda.contracts.testing/fill-with-some-test-cash.html b/docs/build/html/api/net.corda.contracts.testing/fill-with-some-test-cash.html index 6a8fa19c78..681669dd20 100644 --- a/docs/build/html/api/net.corda.contracts.testing/fill-with-some-test-cash.html +++ b/docs/build/html/api/net.corda.contracts.testing/fill-with-some-test-cash.html @@ -7,8 +7,8 @@ net.corda.contracts.testing / fillWithSomeTestCash

fillWithSomeTestCash

- -fun ServiceHub.fillWithSomeTestCash(howMuch: Amount<Currency>, outputNotary: Party = DUMMY_NOTARY, atLeastThisManyStates: Int = 3, atMostThisManyStates: Int = 10, rng: Random = Random(), ref: OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy: PublicKey? = null, issuedBy: PartyAndReference = DUMMY_CASH_ISSUER, issuerKey: KeyPair = DUMMY_CASH_ISSUER_KEY): Vault
+ +fun ServiceHub.fillWithSomeTestCash(howMuch: Amount<Currency>, outputNotary: Party = DUMMY_NOTARY, atLeastThisManyStates: Int = 3, atMostThisManyStates: Int = 10, rng: Random = Random(), ref: OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy: PublicKeyTree? = null, issuedBy: PartyAndReference = DUMMY_CASH_ISSUER, issuerKey: KeyPair = DUMMY_CASH_ISSUER_KEY): Vault

Creates a random set of between (by default) 3 and 10 cash states that add up to the given amount and adds them to the vault. This is intended for unit tests. The cash is issued by DUMMY_CASH_ISSUER and owned by the legal identity key from the storage service.

diff --git a/docs/build/html/api/net.corda.contracts.testing/index.html b/docs/build/html/api/net.corda.contracts.testing/index.html index d8fc4cdcd3..4f3cba95bd 100644 --- a/docs/build/html/api/net.corda.contracts.testing/index.html +++ b/docs/build/html/api/net.corda.contracts.testing/index.html @@ -70,7 +70,7 @@ catch corner case bugs and test algebraic properties of the code, for example de fillWithSomeTestCash -fun ServiceHub.fillWithSomeTestCash(howMuch: Amount<Currency>, outputNotary: Party = DUMMY_NOTARY, atLeastThisManyStates: Int = 3, atMostThisManyStates: Int = 10, rng: Random = Random(), ref: OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy: PublicKey? = null, issuedBy: PartyAndReference = DUMMY_CASH_ISSUER, issuerKey: KeyPair = DUMMY_CASH_ISSUER_KEY): Vault

Creates a random set of between (by default) 3 and 10 cash states that add up to the given amount and adds them +fun ServiceHub.fillWithSomeTestCash(howMuch: Amount<Currency>, outputNotary: Party = DUMMY_NOTARY, atLeastThisManyStates: Int = 3, atMostThisManyStates: Int = 10, rng: Random = Random(), ref: OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy: PublicKeyTree? = null, issuedBy: PartyAndReference = DUMMY_CASH_ISSUER, issuerKey: KeyPair = DUMMY_CASH_ISSUER_KEY): Vault

Creates a random set of between (by default) 3 and 10 cash states that add up to the given amount and adds them to the vault. This is intended for unit tests. The cash is issued by DUMMY_CASH_ISSUER and owned by the legal identity key from the storage service.

diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/-init-.html index f40e8fdbdf..e41e5eff7e 100644 --- a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/-init-.html +++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/-init-.html @@ -7,7 +7,7 @@ net.corda.contracts / CommercialPaperLegacy / State / <init>

<init>

-State(issuance: PartyAndReference, owner: PublicKey, faceValue: Amount<Issued<Currency>>, maturityDate: Instant)
+State(issuance: PartyAndReference, owner: PublicKeyTree, faceValue: Amount<Issued<Currency>>, maturityDate: Instant)


diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/index.html index e3a39bd52b..198b750c61 100644 --- a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/index.html +++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/index.html @@ -17,7 +17,7 @@ <init> -State(issuance: PartyAndReference, owner: PublicKey, faceValue: Amount<Issued<Currency>>, maturityDate: Instant) +State(issuance: PartyAndReference, owner: PublicKeyTree, faceValue: Amount<Issued<Currency>>, maturityDate: Instant) @@ -53,7 +53,7 @@ owner -val owner: PublicKey

There must be a MoveCommand signed by this key to claim the amount

+val owner: PublicKeyTree

There must be a MoveCommand signed by this key to claim the amount

@@ -96,14 +96,14 @@ 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

+fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>

Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone

withOwner -fun withOwner(newOwner: PublicKey): <ERROR CLASS> +fun withOwner(newOwner: PublicKeyTree): <ERROR CLASS> diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/owner.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/owner.html index 12f45ca586..20a25bb697 100644 --- a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/owner.html +++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/owner.html @@ -8,7 +8,7 @@

owner

-val owner: PublicKey
+val owner: PublicKeyTree
Overrides OwnableState.owner

There must be a MoveCommand signed by this key to claim the amount


diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/participants.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/participants.html index bb4fbed615..d427eab971 100644 --- a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/participants.html +++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/participants.html @@ -15,7 +15,7 @@ Overrides TransactionType.NotaryChange), every participant has to be involved and approve the transaction so that they receive the updated state, and dont end up in a situation where they can no longer use a state they possess, since someone consumed that state during the notary change process.

-

The participants list should normally be derived from the contents of the state. E.g. for Cash the participants +

The participants list should normally be derived from the contents of the state. E.g. for Cash the participants list should just contain the owner.



diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-new-owner.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-new-owner.html index 835042ea07..e62b328bce 100644 --- a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-new-owner.html +++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-new-owner.html @@ -7,8 +7,8 @@ net.corda.contracts / CommercialPaperLegacy / State / withNewOwner

withNewOwner

- -fun withNewOwner(newOwner: PublicKey): <ERROR CLASS>
+ +fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>
Overrides OwnableState.withNewOwner

Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone


diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-owner.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-owner.html index b7bc2145ce..1d8ea5fc68 100644 --- a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-owner.html +++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-owner.html @@ -7,8 +7,8 @@ net.corda.contracts / CommercialPaperLegacy / State / withOwner

withOwner

- -fun withOwner(newOwner: PublicKey): <ERROR CLASS>
+ +fun withOwner(newOwner: PublicKeyTree): <ERROR CLASS>


diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/generate-move.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/generate-move.html index 89b9507a97..45eda6bee4 100644 --- a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/generate-move.html +++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/generate-move.html @@ -7,8 +7,8 @@ net.corda.contracts / CommercialPaperLegacy / generateMove

generateMove

- -fun generateMove(tx: TransactionBuilder, paper: StateAndRef<State>, newOwner: PublicKey): Unit
+ +fun generateMove(tx: TransactionBuilder, paper: StateAndRef<State>, newOwner: PublicKeyTree): Unit


diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/index.html index c1990821d8..8c39b2f108 100644 --- a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/index.html +++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/index.html @@ -64,7 +64,7 @@ the contracts contents).

generateMove -fun generateMove(tx: TransactionBuilder, paper: StateAndRef<State>, newOwner: PublicKey): Unit +fun generateMove(tx: TransactionBuilder, paper: StateAndRef<State>, newOwner: PublicKeyTree): Unit diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/-init-.html index e0e8d7f296..bcba2535b0 100644 --- a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/-init-.html +++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/-init-.html @@ -7,7 +7,7 @@ net.corda.contracts / CommercialPaper / State / <init>

<init>

-State(issuance: PartyAndReference, owner: PublicKey, faceValue: Amount<Issued<Currency>>, maturityDate: Instant)
+State(issuance: PartyAndReference, owner: PublicKeyTree, faceValue: Amount<Issued<Currency>>, maturityDate: Instant)


diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/index.html index 01d8e6d27e..631d40d936 100644 --- a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/index.html +++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/index.html @@ -17,7 +17,7 @@ <init> -State(issuance: PartyAndReference, owner: PublicKey, faceValue: Amount<Issued<Currency>>, maturityDate: Instant) +State(issuance: PartyAndReference, owner: PublicKeyTree, faceValue: Amount<Issued<Currency>>, maturityDate: Instant) @@ -53,14 +53,14 @@ owner -val owner: PublicKey

There must be a MoveCommand signed by this key to claim the amount

+val owner: PublicKeyTree

There must be a MoveCommand signed by this key to claim the amount

participants -val participants: List<PublicKey>

A participant is any party that is able to consume this state in a valid transaction.

+val participants: List<PublicKeyTree>

A participant is any party that is able to consume this state in a valid transaction.

@@ -116,14 +116,14 @@ 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

+fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>

Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone

withOwner -fun withOwner(newOwner: PublicKey): <ERROR CLASS> +fun withOwner(newOwner: PublicKeyTree): <ERROR CLASS> @@ -134,7 +134,7 @@ owned by -infix fun State.owned by(owner: PublicKey): State +infix fun State.owned by(owner: PublicKeyTree): State diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/owner.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/owner.html index 8647028f3c..f9bd8636d2 100644 --- a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/owner.html +++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/owner.html @@ -8,7 +8,7 @@

owner

-val owner: PublicKey
+val owner: PublicKeyTree
Overrides OwnableState.owner

There must be a MoveCommand signed by this key to claim the amount


diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/participants.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/participants.html index b64dca1a57..7f57bcf6c7 100644 --- a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/participants.html +++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/participants.html @@ -8,14 +8,14 @@

participants

-val participants: List<PublicKey>
+val participants: List<PublicKeyTree>
Overrides ContractState.participants

A participant is any party that is able to consume this state in a valid transaction.

The list of participants is required for certain types of transactions. For example, when changing the notary for this state (TransactionType.NotaryChange), every participant has to be involved and approve the transaction so that they receive the updated state, and dont end up in a situation where they can no longer use a state they possess, since someone consumed that state during the notary change process.

-

The participants list should normally be derived from the contents of the state. E.g. for Cash the participants +

The participants list should normally be derived from the contents of the state. E.g. for Cash the participants list should just contain the owner.



@@ -25,7 +25,7 @@ list should just contain the owner.

for this state (TransactionType.NotaryChange), every participant has to be involved and approve the transaction so that they receive the updated state, and dont end up in a situation where they can no longer use a state they possess, since someone consumed that state during the notary change process.

-

The participants list should normally be derived from the contents of the state. E.g. for Cash the participants +

The participants list should normally be derived from the contents of the state. E.g. for Cash the participants list should just contain the owner.


diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-new-owner.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-new-owner.html index 78c05acd6f..cb0500db1d 100644 --- a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-new-owner.html +++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-new-owner.html @@ -7,8 +7,8 @@ net.corda.contracts / CommercialPaper / State / withNewOwner

withNewOwner

- -fun withNewOwner(newOwner: PublicKey): <ERROR CLASS>
+ +fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>
Overrides OwnableState.withNewOwner

Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone


diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-owner.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-owner.html index c674fa0ca7..951027a1e2 100644 --- a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-owner.html +++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-owner.html @@ -7,8 +7,8 @@ net.corda.contracts / CommercialPaper / State / withOwner

withOwner

- -fun withOwner(newOwner: PublicKey): <ERROR CLASS>
+ +fun withOwner(newOwner: PublicKeyTree): <ERROR CLASS>


diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/generate-move.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/generate-move.html index 7c9171fc6f..09ed78e73b 100644 --- a/docs/build/html/api/net.corda.contracts/-commercial-paper/generate-move.html +++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/generate-move.html @@ -7,8 +7,8 @@ net.corda.contracts / CommercialPaper / generateMove

generateMove

- -fun generateMove(tx: TransactionBuilder, paper: StateAndRef<State>, newOwner: PublicKey): Unit
+ +fun generateMove(tx: TransactionBuilder, paper: StateAndRef<State>, newOwner: PublicKeyTree): Unit

Updates the given partial transaction with an input/output/command to reassign ownership of the paper.



diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/index.html index 6a1b7b6fa8..d36ab71d6f 100644 --- a/docs/build/html/api/net.corda.contracts/-commercial-paper/index.html +++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/index.html @@ -79,7 +79,7 @@ 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.

+fun generateMove(tx: TransactionBuilder, paper: StateAndRef<State>, newOwner: PublicKeyTree): Unit

Updates the given partial transaction with an input/output/command to reassign ownership of the paper.

diff --git a/docs/build/html/api/net.corda.contracts/index.html b/docs/build/html/api/net.corda.contracts/index.html index 1a9cfd56a0..dc4be01541 100644 --- a/docs/build/html/api/net.corda.contracts/index.html +++ b/docs/build/html/api/net.corda.contracts/index.html @@ -55,8 +55,8 @@ is adjusted as if the paper was redeemed and immediately repurchased, but withou owned by -infix fun State.owned by(owner: PublicKey): State
-infix fun <ERROR CLASS>.owned by(newOwner: PublicKey): <ERROR CLASS> +infix fun State.owned by(owner: PublicKeyTree): State
+infix fun <ERROR CLASS>.owned by(newOwner: PublicKeyTree): <ERROR CLASS> diff --git a/docs/build/html/api/net.corda.contracts/owned by.html b/docs/build/html/api/net.corda.contracts/owned by.html index 95a8eae3d8..5c099a990b 100644 --- a/docs/build/html/api/net.corda.contracts/owned by.html +++ b/docs/build/html/api/net.corda.contracts/owned by.html @@ -7,10 +7,10 @@ net.corda.contracts / owned by

owned by

- -infix fun State.owned by(owner: PublicKey): State
- -infix fun <ERROR CLASS>.owned by(newOwner: PublicKey): <ERROR CLASS>
+ +infix fun State.owned by(owner: PublicKeyTree): State
+ +infix fun <ERROR CLASS>.owned by(newOwner: PublicKeyTree): <ERROR CLASS>


diff --git a/docs/build/html/api/net.corda.core.contracts/-authenticated-object/-init-.html b/docs/build/html/api/net.corda.core.contracts/-authenticated-object/-init-.html index f9c1549bcc..4911e84d8a 100644 --- a/docs/build/html/api/net.corda.core.contracts/-authenticated-object/-init-.html +++ b/docs/build/html/api/net.corda.core.contracts/-authenticated-object/-init-.html @@ -7,7 +7,7 @@ net.corda.core.contracts / AuthenticatedObject / <init>

<init>

-AuthenticatedObject(signers: List<PublicKey>, signingParties: List<Party>, value: T)
+AuthenticatedObject(signers: List<PublicKeyTree>, signingParties: List<Party>, value: T)

Wraps an object that was signed by a public key, which may be a well known/recognised institutional key.



diff --git a/docs/build/html/api/net.corda.core.contracts/-authenticated-object/index.html b/docs/build/html/api/net.corda.core.contracts/-authenticated-object/index.html index ba8072d012..e0d33d20ea 100644 --- a/docs/build/html/api/net.corda.core.contracts/-authenticated-object/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-authenticated-object/index.html @@ -18,7 +18,7 @@ <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.

+AuthenticatedObject(signers: List<PublicKeyTree>, signingParties: List<Party>, value: T)

Wraps an object that was signed by a public key, which may be a well known/recognised institutional key.

@@ -30,7 +30,7 @@ signers -val signers: List<PublicKey> +val signers: List<PublicKeyTree> diff --git a/docs/build/html/api/net.corda.core.contracts/-authenticated-object/signers.html b/docs/build/html/api/net.corda.core.contracts/-authenticated-object/signers.html index f78b97598c..aade6a359d 100644 --- a/docs/build/html/api/net.corda.core.contracts/-authenticated-object/signers.html +++ b/docs/build/html/api/net.corda.core.contracts/-authenticated-object/signers.html @@ -8,7 +8,7 @@

signers

-val signers: List<PublicKey>
+val signers: List<PublicKeyTree>


diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/-init-.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/-init-.html deleted file mode 100644 index 5891a6cd6b..0000000000 --- a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/-init-.html +++ /dev/null @@ -1,24 +0,0 @@ - - -ClientToServiceCommand.ExitCash.<init> - - - - -net.corda.core.contracts / ClientToServiceCommand / ExitCash / <init>
-
-

<init>

-ExitCash(amount: Amount<Currency>, issueRef: OpaqueBytes, id: UUID = UUID.randomUUID())
-

Exit cash from the ledger.

-

Parameters

- -amount - the amount of currency to exit from the ledger.
-
- -issueRef - the reference previously specified on the issuance.
-
- -id - the ID to be provided in events resulting from this request.
-
-
- - diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/amount.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/amount.html deleted file mode 100644 index 2781b44ef6..0000000000 --- a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/amount.html +++ /dev/null @@ -1,15 +0,0 @@ - - -ClientToServiceCommand.ExitCash.amount - - - - -net.corda.core.contracts / ClientToServiceCommand / ExitCash / amount
-
-

amount

- -val amount: Amount<Currency>
-
-
- - diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/index.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/index.html deleted file mode 100644 index 9a1a92d163..0000000000 --- a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/index.html +++ /dev/null @@ -1,64 +0,0 @@ - - -ClientToServiceCommand.ExitCash - - - - -net.corda.core.contracts / ClientToServiceCommand / ExitCash
-
-

ExitCash

-class ExitCash : ClientToServiceCommand
-

Exit cash from the ledger.

-

Parameters

- -amount - the amount of currency to exit from the ledger.
-
- -issueRef - the reference previously specified on the issuance.
-
- -id - the ID to be provided in events resulting from this request.
-
-
-

Constructors

- - - - - - - -
-<init> -ExitCash(amount: Amount<Currency>, issueRef: OpaqueBytes, id: UUID = UUID.randomUUID())

Exit cash from the ledger.

-
-

Properties

- - - - - - - - - - - -
-amount -val amount: Amount<Currency>
-issueRef -val issueRef: OpaqueBytes
-

Inherited Properties

- - - - - - - -
-id -val id: UUID
- - diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/-init-.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/-init-.html deleted file mode 100644 index 4e44790016..0000000000 --- a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/-init-.html +++ /dev/null @@ -1,31 +0,0 @@ - - -ClientToServiceCommand.IssueCash.<init> - - - - -net.corda.core.contracts / ClientToServiceCommand / IssueCash / <init>
-
-

<init>

-IssueCash(amount: Amount<Currency>, issueRef: OpaqueBytes, recipient: Party, notary: Party, id: UUID = UUID.randomUUID())
-

Issue cash state objects.

-

Parameters

- -amount - the amount of currency to issue on to the ledger.
-
- -issueRef - the reference to specify on the issuance, used to differentiate pools of cash. Convention is -to use the single byte "0x01" as a default.
-
- -recipient - the party to issue the cash to.
-
- -notary - the notary to use for this transaction.
-
- -id - the ID to be provided in events resulting from this request.
-
-
- - diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/amount.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/amount.html deleted file mode 100644 index 6a134ee189..0000000000 --- a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/amount.html +++ /dev/null @@ -1,15 +0,0 @@ - - -ClientToServiceCommand.IssueCash.amount - - - - -net.corda.core.contracts / ClientToServiceCommand / IssueCash / amount
-
-

amount

- -val amount: Amount<Currency>
-
-
- - diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/index.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/index.html deleted file mode 100644 index d7bcec9a6a..0000000000 --- a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/index.html +++ /dev/null @@ -1,83 +0,0 @@ - - -ClientToServiceCommand.IssueCash - - - - -net.corda.core.contracts / ClientToServiceCommand / IssueCash
-
-

IssueCash

-class IssueCash : ClientToServiceCommand
-

Issue cash state objects.

-

Parameters

- -amount - the amount of currency to issue on to the ledger.
-
- -issueRef - the reference to specify on the issuance, used to differentiate pools of cash. Convention is -to use the single byte "0x01" as a default.
-
- -recipient - the party to issue the cash to.
-
- -notary - the notary to use for this transaction.
-
- -id - the ID to be provided in events resulting from this request.
-
-
-

Constructors

- - - - - - - -
-<init> -IssueCash(amount: Amount<Currency>, issueRef: OpaqueBytes, recipient: Party, notary: Party, id: UUID = UUID.randomUUID())

Issue cash state objects.

-
-

Properties

- - - - - - - - - - - - - - - - - - - -
-amount -val amount: Amount<Currency>
-issueRef -val issueRef: OpaqueBytes
-notary -val notary: Party
-recipient -val recipient: Party
-

Inherited Properties

- - - - - - - -
-id -val id: UUID
- - diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/-init-.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/-init-.html deleted file mode 100644 index d026ce0361..0000000000 --- a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/-init-.html +++ /dev/null @@ -1,24 +0,0 @@ - - -ClientToServiceCommand.PayCash.<init> - - - - -net.corda.core.contracts / ClientToServiceCommand / PayCash / <init>
-
-

<init>

-PayCash(amount: Amount<Issued<Currency>>, recipient: Party, id: UUID = UUID.randomUUID())
-

Pay cash to someone else.

-

Parameters

- -amount - the amount of currency to issue on to the ledger.
-
- -recipient - the party to issue the cash to.
-
- -id - the ID to be provided in events resulting from this request.
-
-
- - diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/amount.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/amount.html deleted file mode 100644 index e337a94a19..0000000000 --- a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/amount.html +++ /dev/null @@ -1,15 +0,0 @@ - - -ClientToServiceCommand.PayCash.amount - - - - -net.corda.core.contracts / ClientToServiceCommand / PayCash / amount
-
-

amount

- -val amount: Amount<Issued<Currency>>
-
-
- - diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/index.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/index.html deleted file mode 100644 index 21947c9c64..0000000000 --- a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/index.html +++ /dev/null @@ -1,64 +0,0 @@ - - -ClientToServiceCommand.PayCash - - - - -net.corda.core.contracts / ClientToServiceCommand / PayCash
-
-

PayCash

-class PayCash : ClientToServiceCommand
-

Pay cash to someone else.

-

Parameters

- -amount - the amount of currency to issue on to the ledger.
-
- -recipient - the party to issue the cash to.
-
- -id - the ID to be provided in events resulting from this request.
-
-
-

Constructors

- - - - - - - -
-<init> -PayCash(amount: Amount<Issued<Currency>>, recipient: Party, id: UUID = UUID.randomUUID())

Pay cash to someone else.

-
-

Properties

- - - - - - - - - - - -
-amount -val amount: Amount<Issued<Currency>>
-recipient -val recipient: Party
-

Inherited Properties

- - - - - - - -
-id -val id: UUID
- - diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/id.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/id.html deleted file mode 100644 index 3dee44f2b1..0000000000 --- a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/id.html +++ /dev/null @@ -1,15 +0,0 @@ - - -ClientToServiceCommand.id - - - - -net.corda.core.contracts / ClientToServiceCommand / id
-
-

id

- -val id: UUID
-
-
- - diff --git a/docs/build/html/api/net.corda.core.contracts/-command/-init-.html b/docs/build/html/api/net.corda.core.contracts/-command/-init-.html index 13b8265969..e438719882 100644 --- a/docs/build/html/api/net.corda.core.contracts/-command/-init-.html +++ b/docs/build/html/api/net.corda.core.contracts/-command/-init-.html @@ -7,10 +7,10 @@ net.corda.core.contracts / Command / <init>

<init>

-Command(data: CommandData, key: PublicKey)
+Command(data: CommandData, key: PublicKeyTree)


-Command(value: CommandData, signers: List<PublicKey>)
+Command(value: CommandData, signers: List<PublicKeyTree>)

Command data/content plus pubkey pair: the signature is stored at the end of the serialized bytes



diff --git a/docs/build/html/api/net.corda.core.contracts/-command/index.html b/docs/build/html/api/net.corda.core.contracts/-command/index.html index 2c42ffd60a..4505e726df 100644 --- a/docs/build/html/api/net.corda.core.contracts/-command/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-command/index.html @@ -18,7 +18,7 @@ <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

+Command(data: CommandData, key: PublicKeyTree)Command(value: CommandData, signers: List<PublicKeyTree>)

Command data/content plus pubkey pair: the signature is stored at the end of the serialized bytes

@@ -30,7 +30,7 @@ signers -val signers: List<PublicKey> +val signers: List<PublicKeyTree> diff --git a/docs/build/html/api/net.corda.core.contracts/-command/signers.html b/docs/build/html/api/net.corda.core.contracts/-command/signers.html index 846dba8216..6113eec8a6 100644 --- a/docs/build/html/api/net.corda.core.contracts/-command/signers.html +++ b/docs/build/html/api/net.corda.core.contracts/-command/signers.html @@ -8,7 +8,7 @@

signers

-val signers: List<PublicKey>
+val signers: List<PublicKeyTree>


diff --git a/docs/build/html/api/net.corda.core.contracts/-contract-state/index.html b/docs/build/html/api/net.corda.core.contracts/-contract-state/index.html index c7c42ef560..5dfc5124e4 100644 --- a/docs/build/html/api/net.corda.core.contracts/-contract-state/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-contract-state/index.html @@ -36,7 +36,7 @@ are all free.

participants -abstract val participants: List<PublicKey>

A participant is any party that is able to consume this state in a valid transaction.

+abstract val participants: List<PublicKeyTree>

A participant is any party that is able to consume this state in a valid transaction.

diff --git a/docs/build/html/api/net.corda.core.contracts/-contract-state/participants.html b/docs/build/html/api/net.corda.core.contracts/-contract-state/participants.html index d4a9a2a3c0..7461b2fe55 100644 --- a/docs/build/html/api/net.corda.core.contracts/-contract-state/participants.html +++ b/docs/build/html/api/net.corda.core.contracts/-contract-state/participants.html @@ -8,7 +8,7 @@

participants

-abstract val participants: List<PublicKey>
+abstract val participants: List<PublicKeyTree>

A participant is any party that is able to consume this state in a valid transaction.

The list of participants is required for certain types of transactions. For example, when changing the notary for this state (TransactionType.NotaryChange), every participant has to be involved and approve the transaction diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/-init-.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/-init-.html index 7af9227491..a93dd34e9f 100644 --- a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/-init-.html +++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/-init-.html @@ -7,7 +7,7 @@ net.corda.core.contracts / DummyContract / MultiOwnerState / <init>

<init>

-MultiOwnerState(magicNumber: Int = 0, owners: List<PublicKey>)
+MultiOwnerState(magicNumber: Int = 0, owners: List<PublicKeyTree>)

Alternative state with multiple owners. This exists primarily to provide a dummy state with multiple participants, and could in theory be merged with SingleOwnerState by putting the additional participants in a different field, however this is a good example of a contract with multiple states.

diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/index.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/index.html index 34b95d54ba..07d5ebed22 100644 --- a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/index.html @@ -20,7 +20,7 @@ in a different field, however this is a good example of a contract with multiple <init> -MultiOwnerState(magicNumber: Int = 0, owners: List<PublicKey>)

Alternative state with multiple owners. This exists primarily to provide a dummy state with multiple +MultiOwnerState(magicNumber: Int = 0, owners: List<PublicKeyTree>)

Alternative state with multiple owners. This exists primarily to provide a dummy state with multiple participants, and could in theory be merged with SingleOwnerState by putting the additional participants in a different field, however this is a good example of a contract with multiple states.

@@ -47,13 +47,13 @@ in a different field, however this is a good example of a contract with multiple owners -val owners: List<PublicKey> +val owners: List<PublicKeyTree> participants -val participants: List<PublicKey>

A participant is any party that is able to consume this state in a valid transaction.

+val participants: List<PublicKeyTree>

A participant is any party that is able to consume this state in a valid transaction.

diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/owners.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/owners.html index 120efe3b28..331aa9ca02 100644 --- a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/owners.html +++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/owners.html @@ -8,7 +8,7 @@

owners

-val owners: List<PublicKey>
+val owners: List<PublicKeyTree>


diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/participants.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/participants.html index 4cd2274a0f..7be2592115 100644 --- a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/participants.html +++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/participants.html @@ -8,7 +8,7 @@

participants

-val participants: List<PublicKey>
+val participants: List<PublicKeyTree>
Overrides ContractState.participants

A participant is any party that is able to consume this state in a valid transaction.

The list of participants is required for certain types of transactions. For example, when changing the notary diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/-init-.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/-init-.html index 273cb6c461..ec16abf458 100644 --- a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/-init-.html +++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/-init-.html @@ -7,7 +7,7 @@ net.corda.core.contracts / DummyContract / SingleOwnerState / <init>

<init>

-SingleOwnerState(magicNumber: Int = 0, owner: PublicKey)
+SingleOwnerState(magicNumber: Int = 0, owner: PublicKeyTree)


diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/index.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/index.html index e41074e77f..23baf1251a 100644 --- a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/index.html @@ -17,7 +17,7 @@ <init> -SingleOwnerState(magicNumber: Int = 0, owner: PublicKey) +SingleOwnerState(magicNumber: Int = 0, owner: PublicKeyTree) @@ -41,14 +41,14 @@ owner -val owner: PublicKey

There must be a MoveCommand signed by this key to claim the amount

+val owner: PublicKeyTree

There must be a MoveCommand signed by this key to claim the amount

participants -val participants: List<PublicKey>

A participant is any party that is able to consume this state in a valid transaction.

+val participants: List<PublicKeyTree>

A participant is any party that is able to consume this state in a valid transaction.

@@ -60,7 +60,7 @@ 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

+fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>

Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone

diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/owner.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/owner.html index 1a1bf23d95..d630cab19c 100644 --- a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/owner.html +++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/owner.html @@ -8,7 +8,7 @@

owner

-val owner: PublicKey
+val owner: PublicKeyTree
Overrides OwnableState.owner

There must be a MoveCommand signed by this key to claim the amount


diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/participants.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/participants.html index fbe2d00833..e72b88b7dd 100644 --- a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/participants.html +++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/participants.html @@ -8,7 +8,7 @@

participants

-val participants: List<PublicKey>
+val participants: List<PublicKeyTree>
Overrides ContractState.participants

A participant is any party that is able to consume this state in a valid transaction.

The list of participants is required for certain types of transactions. For example, when changing the notary diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/with-new-owner.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/with-new-owner.html index 40802989a2..25ade01ff1 100644 --- a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/with-new-owner.html +++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/with-new-owner.html @@ -7,8 +7,8 @@ net.corda.core.contracts / DummyContract / SingleOwnerState / withNewOwner

withNewOwner

- -fun withNewOwner(newOwner: PublicKey): <ERROR CLASS>
+ +fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS>
Overrides OwnableState.withNewOwner

Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone


diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-state/index.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-state/index.html index 8a8b914e3d..1b71105d0c 100644 --- a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-state/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-state/index.html @@ -42,7 +42,7 @@ participants -abstract val participants: List<PublicKey>

A participant is any party that is able to consume this state in a valid transaction.

+abstract val participants: List<PublicKeyTree>

A participant is any party that is able to consume this state in a valid transaction.

diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/index.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/index.html index fd954b3328..42f2bcb78f 100644 --- a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/index.html @@ -94,8 +94,8 @@ existing contract code.

move -fun move(prior: StateAndRef<SingleOwnerState>, newOwner: PublicKey): <ERROR CLASS>
-fun move(priors: List<StateAndRef<SingleOwnerState>>, newOwner: PublicKey): TransactionBuilder +fun move(prior: StateAndRef<SingleOwnerState>, newOwner: PublicKeyTree): <ERROR CLASS>
+fun move(priors: List<StateAndRef<SingleOwnerState>>, newOwner: PublicKeyTree): TransactionBuilder diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/move.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/move.html index 9e5f78032f..fddfe9fefa 100644 --- a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/move.html +++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/move.html @@ -7,10 +7,10 @@ net.corda.core.contracts / DummyContract / move

move

- -fun move(prior: StateAndRef<SingleOwnerState>, newOwner: PublicKey): <ERROR CLASS>
- -fun move(priors: List<StateAndRef<SingleOwnerState>>, newOwner: PublicKey): TransactionBuilder
+ +fun move(prior: StateAndRef<SingleOwnerState>, newOwner: PublicKeyTree): <ERROR CLASS>
+ +fun move(priors: List<StateAndRef<SingleOwnerState>>, newOwner: PublicKeyTree): TransactionBuilder


diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-state/index.html b/docs/build/html/api/net.corda.core.contracts/-dummy-state/index.html index a957631e6d..c07dd1cd6e 100644 --- a/docs/build/html/api/net.corda.core.contracts/-dummy-state/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-dummy-state/index.html @@ -43,7 +43,7 @@ participants -val participants: List<PublicKey>

A participant is any party that is able to consume this state in a valid transaction.

+val participants: List<PublicKeyTree>

A participant is any party that is able to consume this state in a valid transaction.

diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-state/participants.html b/docs/build/html/api/net.corda.core.contracts/-dummy-state/participants.html index 06e480b145..411d192865 100644 --- a/docs/build/html/api/net.corda.core.contracts/-dummy-state/participants.html +++ b/docs/build/html/api/net.corda.core.contracts/-dummy-state/participants.html @@ -8,7 +8,7 @@

participants

-val participants: List<PublicKey>
+val participants: List<PublicKeyTree>
Overrides ContractState.participants

A participant is any party that is able to consume this state in a valid transaction.

The list of participants is required for certain types of transactions. For example, when changing the notary diff --git a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/exit-keys.html b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/exit-keys.html index 0303ba524f..0e9e1bb61d 100644 --- a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/exit-keys.html +++ b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/exit-keys.html @@ -8,7 +8,7 @@

exitKeys

-abstract val exitKeys: Collection<PublicKey>
+abstract val exitKeys: Collection<PublicKeyTree>

There must be an ExitCommand signed by these keys to destroy the amount. While all states require their owner to sign, some (i.e. cash) also require the issuer.


diff --git a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/index.html b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/index.html index d071b05311..533b5f49ee 100644 --- a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/index.html @@ -48,7 +48,7 @@ this interface.

exitKeys -abstract val exitKeys: Collection<PublicKey>

There must be an ExitCommand signed by these keys to destroy the amount. While all states require their +abstract val exitKeys: Collection<PublicKeyTree>

There must be an ExitCommand signed by these keys to destroy the amount. While all states require their owner to sign, some (i.e. cash) also require the issuer.

@@ -56,7 +56,7 @@ owner to sign, some (i.e. cash) also require the issuer.

owner -abstract val owner: PublicKey

There must be a MoveCommand signed by this key to claim the amount

+abstract val owner: PublicKeyTree

There must be a MoveCommand signed by this key to claim the amount

@@ -68,7 +68,7 @@ owner to sign, some (i.e. cash) also require the issuer.

move -abstract fun move(newAmount: Amount<Issued<T>>, newOwner: PublicKey): FungibleAsset<T> +abstract fun move(newAmount: Amount<Issued<T>>, newOwner: PublicKeyTree): FungibleAsset<T> @@ -79,7 +79,7 @@ owner to sign, some (i.e. cash) also require the issuer.

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

+abstract fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS><CommandData, OwnableState>

Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone

diff --git a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/move.html b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/move.html index 4e75ad54c0..5dbb274de1 100644 --- a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/move.html +++ b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/move.html @@ -7,8 +7,8 @@ net.corda.core.contracts / FungibleAsset / move

move

- -abstract fun move(newAmount: Amount<Issued<T>>, newOwner: PublicKey): FungibleAsset<T>
+ +abstract fun move(newAmount: Amount<Issued<T>>, newOwner: PublicKeyTree): FungibleAsset<T>


diff --git a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/owner.html b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/owner.html index 3cc774882a..7cedfb8178 100644 --- a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/owner.html +++ b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/owner.html @@ -8,7 +8,7 @@

owner

-abstract val owner: PublicKey
+abstract val owner: PublicKeyTree
Overrides OwnableState.owner

There must be a MoveCommand signed by this key to claim the amount


diff --git a/docs/build/html/api/net.corda.core.contracts/-linear-state/index.html b/docs/build/html/api/net.corda.core.contracts/-linear-state/index.html index 36aa42102f..3e321c5443 100644 --- a/docs/build/html/api/net.corda.core.contracts/-linear-state/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-linear-state/index.html @@ -61,7 +61,7 @@ except at issuance/termination.

participants -abstract val participants: List<PublicKey>

A participant is any party that is able to consume this state in a valid transaction.

+abstract val participants: List<PublicKeyTree>

A participant is any party that is able to consume this state in a valid transaction.

diff --git a/docs/build/html/api/net.corda.core.contracts/-ownable-state/index.html b/docs/build/html/api/net.corda.core.contracts/-ownable-state/index.html index 34807a111f..72cb884678 100644 --- a/docs/build/html/api/net.corda.core.contracts/-ownable-state/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-ownable-state/index.html @@ -18,7 +18,7 @@ owner -abstract val owner: PublicKey

There must be a MoveCommand signed by this key to claim the amount

+abstract val owner: PublicKeyTree

There must be a MoveCommand signed by this key to claim the amount

@@ -44,7 +44,7 @@ participants -abstract val participants: List<PublicKey>

A participant is any party that is able to consume this state in a valid transaction.

+abstract val participants: List<PublicKeyTree>

A participant is any party that is able to consume this state in a valid transaction.

@@ -56,7 +56,7 @@ 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

+abstract fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS><CommandData, OwnableState>

Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone

diff --git a/docs/build/html/api/net.corda.core.contracts/-ownable-state/owner.html b/docs/build/html/api/net.corda.core.contracts/-ownable-state/owner.html index 16def35fca..c1f48db03d 100644 --- a/docs/build/html/api/net.corda.core.contracts/-ownable-state/owner.html +++ b/docs/build/html/api/net.corda.core.contracts/-ownable-state/owner.html @@ -8,7 +8,7 @@

owner

-abstract val owner: PublicKey
+abstract val owner: PublicKeyTree

There must be a MoveCommand signed by this key to claim the amount



diff --git a/docs/build/html/api/net.corda.core.contracts/-ownable-state/with-new-owner.html b/docs/build/html/api/net.corda.core.contracts/-ownable-state/with-new-owner.html index 5583bc2db8..edd7f02c13 100644 --- a/docs/build/html/api/net.corda.core.contracts/-ownable-state/with-new-owner.html +++ b/docs/build/html/api/net.corda.core.contracts/-ownable-state/with-new-owner.html @@ -7,8 +7,8 @@ net.corda.core.contracts / OwnableState / withNewOwner

withNewOwner

- -abstract fun withNewOwner(newOwner: PublicKey): <ERROR CLASS><CommandData, OwnableState>
+ +abstract fun withNewOwner(newOwner: PublicKeyTree): <ERROR CLASS><CommandData, OwnableState>

Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone



diff --git a/docs/build/html/api/net.corda.core.contracts/-schedulable-state/index.html b/docs/build/html/api/net.corda.core.contracts/-schedulable-state/index.html index 93d248c2f9..39efae54b4 100644 --- a/docs/build/html/api/net.corda.core.contracts/-schedulable-state/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-schedulable-state/index.html @@ -31,7 +31,7 @@ participants -abstract val participants: List<PublicKey>

A participant is any party that is able to consume this state in a valid transaction.

+abstract val participants: List<PublicKeyTree>

A participant is any party that is able to consume this state in a valid transaction.

diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/-builder/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/-builder/index.html index 5bc09fac31..d3b892dff3 100644 --- a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/-builder/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/-builder/index.html @@ -67,7 +67,7 @@ signers -val signers: MutableSet<PublicKey> +val signers: MutableSet<PublicKeyTree> @@ -103,8 +103,8 @@ addCommand fun addCommand(arg: Command): Unit
-fun addCommand(data: CommandData, vararg keys: PublicKey): <ERROR CLASS>
-fun addCommand(data: CommandData, keys: List<PublicKey>): Unit +fun addCommand(data: CommandData, vararg keys: PublicKeyTree): <ERROR CLASS>
+fun addCommand(data: CommandData, keys: List<PublicKeyTree>): Unit diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/index.html index 141c6f1b31..f6159baf07 100644 --- a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/index.html @@ -82,7 +82,7 @@ If any contract fails to verify, the whole transaction is considered to be inval verifySigners -fun verifySigners(tx: LedgerTransaction): Set<PublicKey>

Check that the list of signers includes all the necessary keys

+fun verifySigners(tx: LedgerTransaction): Set<PublicKeyTree>

Check that the list of signers includes all the necessary keys

diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/-builder/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/-builder/index.html index 7db64979bf..03c8167617 100644 --- a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/-builder/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/-builder/index.html @@ -69,7 +69,7 @@ and adds the list of participants to the signers set for every input state.

signers -val signers: MutableSet<PublicKey> +val signers: MutableSet<PublicKeyTree> @@ -116,8 +116,8 @@ and adds the list of participants to the signers set for every input state.

addCommand fun addCommand(arg: Command): Unit
-fun addCommand(data: CommandData, vararg keys: PublicKey): <ERROR CLASS>
-fun addCommand(data: CommandData, keys: List<PublicKey>): Unit +fun addCommand(data: CommandData, vararg keys: PublicKeyTree): <ERROR CLASS>
+fun addCommand(data: CommandData, keys: List<PublicKeyTree>): Unit diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/index.html index 9a9330403c..62916060d3 100644 --- a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/index.html @@ -85,7 +85,7 @@ public keys are present.

verifySigners -fun verifySigners(tx: LedgerTransaction): Set<PublicKey>

Check that the list of signers includes all the necessary keys

+fun verifySigners(tx: LedgerTransaction): Set<PublicKeyTree>

Check that the list of signers includes all the necessary keys

diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/get-required-signers.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/get-required-signers.html index c90e235706..808bebeb5c 100644 --- a/docs/build/html/api/net.corda.core.contracts/-transaction-type/get-required-signers.html +++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/get-required-signers.html @@ -8,7 +8,7 @@

getRequiredSigners

-abstract fun getRequiredSigners(tx: LedgerTransaction): Set<PublicKey>
+abstract fun getRequiredSigners(tx: LedgerTransaction): Set<PublicKeyTree>

Return the list of public keys that that require signatures for the transaction type. Note: the notary key is checked separately for all transactions and need not be included.


diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/index.html index 2c56380e17..87d832a568 100644 --- a/docs/build/html/api/net.corda.core.contracts/-transaction-type/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/index.html @@ -44,7 +44,7 @@ any contract code, it just checks that the states are unmodified apart from the getRequiredSigners -abstract fun getRequiredSigners(tx: LedgerTransaction): Set<PublicKey>

Return the list of public keys that that require signatures for the transaction type. +abstract fun getRequiredSigners(tx: LedgerTransaction): Set<PublicKeyTree>

Return the list of public keys that that require signatures for the transaction type. Note: the notary key is checked separately for all transactions and need not be included.

@@ -65,7 +65,7 @@ Note: the notary key is checked separately for all transactions and need not be verifySigners -fun verifySigners(tx: LedgerTransaction): Set<PublicKey>

Check that the list of signers includes all the necessary keys

+fun verifySigners(tx: LedgerTransaction): Set<PublicKeyTree>

Check that the list of signers includes all the necessary keys

diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/verify-signers.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/verify-signers.html index 3b01c3547f..d4747dffcd 100644 --- a/docs/build/html/api/net.corda.core.contracts/-transaction-type/verify-signers.html +++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/verify-signers.html @@ -8,7 +8,7 @@

verifySigners

-fun verifySigners(tx: LedgerTransaction): Set<PublicKey>
+fun verifySigners(tx: LedgerTransaction): Set<PublicKeyTree>

Check that the list of signers includes all the necessary keys



diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/-init-.html index 04d6228ce6..8db42753cd 100644 --- a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/-init-.html +++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/-init-.html @@ -7,7 +7,7 @@ net.corda.core.contracts / TransactionVerificationException / SignersMissing / <init>

<init>

-SignersMissing(tx: LedgerTransaction, missing: List<PublicKey>)
+SignersMissing(tx: LedgerTransaction, missing: List<PublicKeyTree>)


diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/index.html index 1af80d5f86..6d94626975 100644 --- a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/index.html +++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/index.html @@ -17,7 +17,7 @@ <init> -SignersMissing(tx: LedgerTransaction, missing: List<PublicKey>) +SignersMissing(tx: LedgerTransaction, missing: List<PublicKeyTree>) @@ -28,7 +28,7 @@ missing -val missing: List<PublicKey> +val missing: List<PublicKeyTree> diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/missing.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/missing.html index aae765143c..6bca3a79d9 100644 --- a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/missing.html +++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/missing.html @@ -8,7 +8,7 @@

missing

-val missing: List<PublicKey>
+val missing: List<PublicKeyTree>


diff --git a/docs/build/html/api/net.corda.core.contracts/index.html b/docs/build/html/api/net.corda.core.contracts/index.html index df5dc9dea2..6069ba1b90 100644 --- a/docs/build/html/api/net.corda.core.contracts/index.html +++ b/docs/build/html/api/net.corda.core.contracts/index.html @@ -61,13 +61,6 @@ no staff are around to handle problems.

-ClientToServiceCommand - -sealed class ClientToServiceCommand

A command from the monitoring client, to the node.

- - - - Command data class Command

Command data/content plus pubkey pair: the signature is stored at the end of the serialized bytes

diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/index.html b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/index.html index 5bbb5b201c..a74d18c838 100644 --- a/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/index.html +++ b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/index.html @@ -20,8 +20,8 @@ select -fun <T : CommandData> Collection<AuthenticatedObject<CommandData>>.select(signer: PublicKey? = null, party: Party? = null): <ERROR CLASS>

Filters the command list by type, party and public key all at once.

-fun <T : CommandData> Collection<AuthenticatedObject<CommandData>>.select(signers: Collection<PublicKey>?, parties: Collection<Party>?): <ERROR CLASS>

Filters the command list by type, parties and public keys all at once.

+fun <T : CommandData> Collection<AuthenticatedObject<CommandData>>.select(signer: PublicKeyTree? = null, party: Party? = null): <ERROR CLASS>

Filters the command list by type, party and public key all at once.

+fun <T : CommandData> Collection<AuthenticatedObject<CommandData>>.select(signers: Collection<PublicKeyTree>?, parties: Collection<Party>?): <ERROR CLASS>

Filters the command list by type, parties and public keys all at once.

diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/select.html b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/select.html index e7349e77f3..9e3f413439 100644 --- a/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/select.html +++ b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/select.html @@ -7,13 +7,13 @@ net.corda.core.contracts / kotlin.collections.Collection / select

select

- -inline fun <reified T : CommandData> Collection<AuthenticatedObject<CommandData>>.select(signer: PublicKey? = null, party: Party? = null): <ERROR CLASS>
+ +inline fun <reified T : CommandData> Collection<AuthenticatedObject<CommandData>>.select(signer: PublicKeyTree? = null, party: Party? = null): <ERROR CLASS>

Filters the command list by type, party and public key all at once.



- -inline fun <reified T : CommandData> Collection<AuthenticatedObject<CommandData>>.select(signers: Collection<PublicKey>?, parties: Collection<Party>?): <ERROR CLASS>
+ +inline fun <reified T : CommandData> Collection<AuthenticatedObject<CommandData>>.select(signers: Collection<PublicKeyTree>?, parties: Collection<Party>?): <ERROR CLASS>

Filters the command list by type, parties and public keys all at once.



diff --git a/docs/build/html/api/net.corda.core.crypto/-null-public-key-tree.html b/docs/build/html/api/net.corda.core.crypto/-null-public-key-tree.html new file mode 100644 index 0000000000..6d65c8620e --- /dev/null +++ b/docs/build/html/api/net.corda.core.crypto/-null-public-key-tree.html @@ -0,0 +1,15 @@ + + +NullPublicKeyTree - + + + +net.corda.core.crypto / NullPublicKeyTree
+
+

NullPublicKeyTree

+ +val NullPublicKeyTree: PublicKeyTree
+
+
+ + diff --git a/docs/build/html/api/net.corda.core.crypto/-party/-init-.html b/docs/build/html/api/net.corda.core.crypto/-party/-init-.html index eacb39d1a0..ac60cfec22 100644 --- a/docs/build/html/api/net.corda.core.crypto/-party/-init-.html +++ b/docs/build/html/api/net.corda.core.crypto/-party/-init-.html @@ -8,7 +8,25 @@

<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.

+

A helper constructor that converts the given PublicKey in to a PublicKeyTree with a single node

+
+
+Party(name: String, owningKey: PublicKeyTree)
+

The Party class represents an entity on the network, which is typically identified by a legal name and public key +that it can sign transactions under. As parties may use multiple keys for signing and, for example, have offline backup +keys, the "public key" of a party is represented by a composite construct – a PublicKeyTree, which combines multiple +cryptographic public key primitives into a tree structure.

+

For example: Alice has two key pairs (pub1/priv1 and pub2/priv2), and wants to be able to sign transactions with either of them. +Her advertised Party then has a legal name "Alice" and an owingKey "pub1 or pub2".

+

Party is also used for service identities. E.g. Alice may also be running an interest rate oracle on her Corda node, +which requires a separate signing key (and an identifying name). Services can also be distributed – run by a coordinated +cluster of Corda nodes. A Party representing a distributed service will have a public key tree composed of the +individual cluster nodes public keys. Each of the nodes in the cluster will advertise the same group Party.

+
+
+

See Also
+

PublicKeyTree

+



diff --git a/docs/build/html/api/net.corda.core.crypto/-party/index.html b/docs/build/html/api/net.corda.core.crypto/-party/index.html index f1b469c912..ea29a92019 100644 --- a/docs/build/html/api/net.corda.core.crypto/-party/index.html +++ b/docs/build/html/api/net.corda.core.crypto/-party/index.html @@ -8,7 +8,21 @@

Party

data class Party
-

A Party is well known (name, pubkey) pair. In a real system this would probably be an X.509 certificate.

+

The Party class represents an entity on the network, which is typically identified by a legal name and public key +that it can sign transactions under. As parties may use multiple keys for signing and, for example, have offline backup +keys, the "public key" of a party is represented by a composite construct – a PublicKeyTree, which combines multiple +cryptographic public key primitives into a tree structure.

+

For example: Alice has two key pairs (pub1/priv1 and pub2/priv2), and wants to be able to sign transactions with either of them. +Her advertised Party then has a legal name "Alice" and an owingKey "pub1 or pub2".

+

Party is also used for service identities. E.g. Alice may also be running an interest rate oracle on her Corda node, +which requires a separate signing key (and an identifying name). Services can also be distributed – run by a coordinated +cluster of Corda nodes. A Party representing a distributed service will have a public key tree composed of the +individual cluster nodes public keys. Each of the nodes in the cluster will advertise the same group Party.

+
+
+

See Also
+

PublicKeyTree

+



Constructors

@@ -18,7 +32,11 @@ <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.

+Party(name: String, owningKey: PublicKey)

A helper constructor that converts the given PublicKey in to a PublicKeyTree with a single node

+Party(name: String, owningKey: PublicKeyTree)

The Party class represents an entity on the network, which is typically identified by a legal name and public key +that it can sign transactions under. As parties may use multiple keys for signing and, for example, have offline backup +keys, the "public key" of a party is represented by a composite construct – a PublicKeyTree, which combines multiple +cryptographic public key primitives into a tree structure.

@@ -36,7 +54,7 @@ owningKey -val owningKey: PublicKey +val owningKey: PublicKeyTree diff --git a/docs/build/html/api/net.corda.core.crypto/-party/owning-key.html b/docs/build/html/api/net.corda.core.crypto/-party/owning-key.html index ed2894c184..9c9c852bf6 100644 --- a/docs/build/html/api/net.corda.core.crypto/-party/owning-key.html +++ b/docs/build/html/api/net.corda.core.crypto/-party/owning-key.html @@ -8,7 +8,7 @@

owningKey

-val owningKey: PublicKey
+val owningKey: PublicKeyTree


diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/add-keys.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/add-keys.html index 5a9bc7af4f..123ff4a944 100644 --- a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/add-keys.html +++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/add-keys.html @@ -9,6 +9,8 @@

addKeys

fun addKeys(vararg publicKeys: PublicKeyTree): Builder
+ +fun addKeys(publicKeys: List<PublicKeyTree>): Builder


diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/add-leaves.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/add-leaves.html deleted file mode 100644 index a39bc90ed7..0000000000 --- a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/add-leaves.html +++ /dev/null @@ -1,17 +0,0 @@ - - -PublicKeyTree.Builder.addLeaves - - - - -net.corda.core.crypto / PublicKeyTree / Builder / addLeaves
-
-

addLeaves

- -fun addLeaves(publicKeys: List<PublicKey>): Builder
- -fun addLeaves(vararg publicKeys: PublicKey): Builder
-
-
- - diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/index.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/index.html index e0f49523f7..3094e07ede 100644 --- a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/index.html +++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/index.html @@ -37,14 +37,8 @@ addKeys -fun addKeys(vararg publicKeys: PublicKeyTree): Builder - - - -addLeaves - -fun addLeaves(publicKeys: List<PublicKey>): Builder
-fun addLeaves(vararg publicKeys: PublicKey): Builder +fun addKeys(vararg publicKeys: PublicKeyTree): Builder
+fun addKeys(publicKeys: List<PublicKeyTree>): Builder diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/get-keys.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/get-keys.html deleted file mode 100644 index 0157b9ee0d..0000000000 --- a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/get-keys.html +++ /dev/null @@ -1,17 +0,0 @@ - - -PublicKeyTree.Leaf.getKeys - - - - -net.corda.core.crypto / PublicKeyTree / Leaf / getKeys
-
-

getKeys

- -fun getKeys(): Set<PublicKey>
-Overrides PublicKeyTree.getKeys
-

Returns all PublicKeys contained within the tree leaves

-
-
- - diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/index.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/index.html index 4efee75cc9..a5693dc5e8 100644 --- a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/index.html +++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/index.html @@ -28,12 +28,31 @@ +keys + +val keys: Set<PublicKey>

Returns all PublicKeys contained within the tree leaves

+ + + + publicKey val publicKey: PublicKey +

Inherited Properties

+ + + + + + + +
+singleKey +val singleKey: PublicKey

Returns the enclosed PublicKey for a PublicKeyTree with a single node

+

Functions

@@ -45,13 +64,6 @@ - - - - @@ -63,6 +75,12 @@ fun isFulfilledBy(keys: Iterable<PublicKey>): <ERROR CLASS>

Checks whether keys match a sufficient amount of leaf nodes

+ + + +
-getKeys -fun getKeys(): Set<PublicKey>

Returns all PublicKeys contained within the tree leaves

-
hashCode fun hashCode(): Int
+toString +fun toString(): String

Inherited Functions

@@ -72,7 +90,7 @@ containsAny -fun containsAny(keys: Iterable<PublicKey>): <ERROR CLASS>

Checks whether any of the given keys matches a leaf on the tree

+fun containsAny(otherKeys: Iterable<PublicKey>): <ERROR CLASS>

Checks whether any of the given keys matches a leaf on the tree

diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/keys.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/keys.html new file mode 100644 index 0000000000..4e8131ed51 --- /dev/null +++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/keys.html @@ -0,0 +1,20 @@ + + +PublicKeyTree.Leaf.keys - + + + +net.corda.core.crypto / PublicKeyTree / Leaf / keys
+
+

keys

+ +val keys: Set<PublicKey>
+Overrides PublicKeyTree.keys
+

Returns all PublicKeys contained within the tree leaves

+

Getter
+

Returns all PublicKeys contained within the tree leaves

+

+
+
+ + diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/to-string.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/to-string.html new file mode 100644 index 0000000000..d0a988bdae --- /dev/null +++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/to-string.html @@ -0,0 +1,15 @@ + + +PublicKeyTree.Leaf.toString - + + + +net.corda.core.crypto / PublicKeyTree / Leaf / toString
+
+

toString

+ +fun toString(): String
+
+
+ + diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/get-keys.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/get-keys.html deleted file mode 100644 index cd8cfa099f..0000000000 --- a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/get-keys.html +++ /dev/null @@ -1,17 +0,0 @@ - - -PublicKeyTree.Node.getKeys - - - - -net.corda.core.crypto / PublicKeyTree / Node / getKeys
-
-

getKeys

- -fun getKeys(): Set<PublicKey>
-Overrides PublicKeyTree.getKeys
-

Returns all PublicKeys contained within the tree leaves

-
-
- - diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/index.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/index.html index b7a00e72e6..8e58c002fa 100644 --- a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/index.html +++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/index.html @@ -40,6 +40,13 @@ signatures required) to satisfy the public key sub-tree rooted at this node.

+keys + +val keys: Set<PublicKey>

Returns all PublicKeys contained within the tree leaves

+ + + + threshold val threshold: Int @@ -52,6 +59,18 @@ signatures required) to satisfy the public key sub-tree rooted at this node.

+

Inherited Properties

+ + + + + + + +
+singleKey +val singleKey: PublicKey

Returns the enclosed PublicKey for a PublicKeyTree with a single node

+

Functions

@@ -63,13 +82,6 @@ signatures required) to satisfy the public key sub-tree rooted at this node.

- - - - @@ -81,6 +93,12 @@ signatures required) to satisfy the public key sub-tree rooted at this node.

fun isFulfilledBy(keys: Iterable<PublicKey>): Boolean

Checks whether keys match a sufficient amount of leaf nodes

+ + + +
-getKeys -fun getKeys(): Set<PublicKey>

Returns all PublicKeys contained within the tree leaves

-
hashCode fun hashCode(): Int
+toString +fun toString(): String

Inherited Functions

@@ -90,7 +108,7 @@ signatures required) to satisfy the public key sub-tree rooted at this node.

containsAny -fun containsAny(keys: Iterable<PublicKey>): <ERROR CLASS>

Checks whether any of the given keys matches a leaf on the tree

+fun containsAny(otherKeys: Iterable<PublicKey>): <ERROR CLASS>

Checks whether any of the given keys matches a leaf on the tree

diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/keys.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/keys.html new file mode 100644 index 0000000000..11a286bbc6 --- /dev/null +++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/keys.html @@ -0,0 +1,20 @@ + + +PublicKeyTree.Node.keys - + + + +net.corda.core.crypto / PublicKeyTree / Node / keys
+
+

keys

+ +val keys: Set<PublicKey>
+Overrides PublicKeyTree.keys
+

Returns all PublicKeys contained within the tree leaves

+

Getter
+

Returns all PublicKeys contained within the tree leaves

+

+
+
+ + diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/to-string.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/to-string.html new file mode 100644 index 0000000000..c4ba044629 --- /dev/null +++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/to-string.html @@ -0,0 +1,15 @@ + + +PublicKeyTree.Node.toString - + + + +net.corda.core.crypto / PublicKeyTree / Node / toString
+
+

toString

+ +fun toString(): String
+
+
+ + diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/contains-any.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/contains-any.html index 8a750d5b6c..98b88e1e42 100644 --- a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/contains-any.html +++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/contains-any.html @@ -8,8 +8,8 @@

containsAny

-fun containsAny(keys: Iterable<PublicKey>): <ERROR CLASS>
-

Checks whether any of the given keys matches a leaf on the tree

+fun containsAny(otherKeys: Iterable<PublicKey>): <ERROR CLASS>
+

Checks whether any of the given keys matches a leaf on the tree



diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/get-keys.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/get-keys.html deleted file mode 100644 index 152c2bd9a0..0000000000 --- a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/get-keys.html +++ /dev/null @@ -1,16 +0,0 @@ - - -PublicKeyTree.getKeys - - - - -net.corda.core.crypto / PublicKeyTree / getKeys
-
-

getKeys

- -abstract fun getKeys(): Set<PublicKey>
-

Returns all PublicKeys contained within the tree leaves

-
-
- - diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/index.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/index.html index b983430549..7e86c86bc7 100644 --- a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/index.html +++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/index.html @@ -47,6 +47,25 @@ create multi-level requirements such as "either the CEO or 3 of 5 of his a +

Properties

+ + + + + + + + + + + +
+keys +abstract val keys: Set<PublicKey>

Returns all PublicKeys contained within the tree leaves

+
+singleKey +val singleKey: PublicKey

Returns the enclosed PublicKey for a PublicKeyTree with a single node

+

Functions

@@ -54,14 +73,7 @@ create multi-level requirements such as "either the CEO or 3 of 5 of his a - - - - diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/keys.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/keys.html new file mode 100644 index 0000000000..56500208ad --- /dev/null +++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/keys.html @@ -0,0 +1,16 @@ + + +PublicKeyTree.keys - + + + +net.corda.core.crypto / PublicKeyTree / keys
+
+

keys

+ +abstract val keys: Set<PublicKey>
+

Returns all PublicKeys contained within the tree leaves

+
+
+ + diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/single-key.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/single-key.html new file mode 100644 index 0000000000..cc2ea9e501 --- /dev/null +++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/single-key.html @@ -0,0 +1,19 @@ + + +PublicKeyTree.singleKey - + + + +net.corda.core.crypto / PublicKeyTree / singleKey
+
+

singleKey

+ +val singleKey: PublicKey
+

Returns the enclosed PublicKey for a PublicKeyTree with a single node

+

Exceptions

+ +IllegalArgumentException - if the PublicKeyTree contains more than one node
+
+
+ + diff --git a/docs/build/html/api/net.corda.core.crypto/index.html b/docs/build/html/api/net.corda.core.crypto/index.html index aef83d8fdf..d37d5becc2 100644 --- a/docs/build/html/api/net.corda.core.crypto/index.html +++ b/docs/build/html/api/net.corda.core.crypto/index.html @@ -50,7 +50,10 @@ Partial Merkle Tree is a minimal tree needed to check that a given set of leaves @@ -159,6 +162,12 @@ that we can delegate most of the checking to the proper Java code. We simply add + + + + diff --git a/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/index.html b/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/index.html index 96e6d845ef..12e7639a2c 100644 --- a/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/index.html +++ b/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/index.html @@ -18,17 +18,11 @@ +keys - - - -
containsAny -fun containsAny(keys: Iterable<PublicKey>): <ERROR CLASS>

Checks whether any of the given keys matches a leaf on the tree

-
-getKeys -abstract fun getKeys(): Set<PublicKey>

Returns all PublicKeys contained within the tree leaves

+fun containsAny(otherKeys: Iterable<PublicKey>): <ERROR CLASS>

Checks whether any of the given keys matches a leaf on the tree

Party -data class Party

A Party is well known (name, pubkey) pair. In a real system this would probably be an X.509 certificate.

+data class Party

The Party class represents an entity on the network, which is typically identified by a legal name and public key +that it can sign transactions under. As parties may use multiple keys for signing and, for example, have offline backup +keys, the "public key" of a party is represented by a composite construct – a PublicKeyTree, which combines multiple +cryptographic public key primitives into a tree structure.

+NullPublicKeyTree +val NullPublicKeyTree: PublicKeyTree
ed25519Curve val ed25519Curve: <ERROR CLASS>
-getKeys -fun Iterable<PublicKeyTree>.getKeys(): <ERROR CLASS>

Returns the set of all PublicKeys contained in the leaves of the PublicKeyTrees

+val Iterable<PublicKeyTree>.keys: Set<PublicKey>

Returns the set of all PublicKeys contained in the leaves of the PublicKeyTrees

-toStringsShort -fun Iterable<PublicKey>.toStringsShort(): String
diff --git a/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/get-keys.html b/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/keys.html similarity index 54% rename from docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/get-keys.html rename to docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/keys.html index 0586b9ef5e..d5c0e07dd9 100644 --- a/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/get-keys.html +++ b/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/keys.html @@ -1,14 +1,14 @@ -getKeys - +keys - -net.corda.core.crypto / kotlin.collections.Iterable / getKeys
+net.corda.core.crypto / kotlin.collections.Iterable / keys

-

getKeys

- -fun Iterable<PublicKeyTree>.getKeys(): <ERROR CLASS>
+

keys

+ +val Iterable<PublicKeyTree>.keys: Set<PublicKey>

Returns the set of all PublicKeys contained in the leaves of the PublicKeyTrees



diff --git a/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/to-strings-short.html b/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/to-strings-short.html deleted file mode 100644 index ac9e076287..0000000000 --- a/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/to-strings-short.html +++ /dev/null @@ -1,15 +0,0 @@ - - -toStringsShort - - - - -net.corda.core.crypto / kotlin.collections.Iterable / toStringsShort
-
-

toStringsShort

- -fun Iterable<PublicKey>.toStringsShort(): String
-
-
- - diff --git a/docs/build/html/api/net.corda.core.node.services/-identity-service/index.html b/docs/build/html/api/net.corda.core.node.services/-identity-service/index.html index 1a68c2a877..78c7df1bf3 100644 --- a/docs/build/html/api/net.corda.core.node.services/-identity-service/index.html +++ b/docs/build/html/api/net.corda.core.node.services/-identity-service/index.html @@ -20,7 +20,7 @@ service would provide.

partyFromKey -abstract fun partyFromKey(key: PublicKey): Party? +abstract fun partyFromKey(key: PublicKeyTree): Party? diff --git a/docs/build/html/api/net.corda.core.node.services/-identity-service/party-from-key.html b/docs/build/html/api/net.corda.core.node.services/-identity-service/party-from-key.html index 242d53bd4a..b122067971 100644 --- a/docs/build/html/api/net.corda.core.node.services/-identity-service/party-from-key.html +++ b/docs/build/html/api/net.corda.core.node.services/-identity-service/party-from-key.html @@ -7,8 +7,8 @@ net.corda.core.node.services / IdentityService / partyFromKey

partyFromKey

- -abstract fun partyFromKey(key: PublicKey): Party?
+ +abstract fun partyFromKey(key: PublicKeyTree): Party?


diff --git a/docs/build/html/api/net.corda.core.node.services/-key-management-service/index.html b/docs/build/html/api/net.corda.core.node.services/-key-management-service/index.html index d83416f973..e7cda3255b 100644 --- a/docs/build/html/api/net.corda.core.node.services/-key-management-service/index.html +++ b/docs/build/html/api/net.corda.core.node.services/-key-management-service/index.html @@ -42,7 +42,8 @@ interface if/when one is developed.

toKeyPair -open fun toKeyPair(publicKey: PublicKey): KeyPair +open fun toKeyPair(publicKey: PublicKey): KeyPairopen fun toKeyPair(publicKeys: Iterable<PublicKey>): <ERROR CLASS>

Returns the first KeyPair matching any of the publicKeys

+ diff --git a/docs/build/html/api/net.corda.core.node.services/-key-management-service/to-key-pair.html b/docs/build/html/api/net.corda.core.node.services/-key-management-service/to-key-pair.html index 742ef3b3ba..bbb8d57ef2 100644 --- a/docs/build/html/api/net.corda.core.node.services/-key-management-service/to-key-pair.html +++ b/docs/build/html/api/net.corda.core.node.services/-key-management-service/to-key-pair.html @@ -11,5 +11,10 @@ open fun toKeyPair(publicKey: PublicKey): KeyPair


+ +open fun toKeyPair(publicKeys: Iterable<PublicKey>): <ERROR CLASS>
+

Returns the first KeyPair matching any of the publicKeys

+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-any-notary.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-any-notary.html new file mode 100644 index 0000000000..0492068d13 --- /dev/null +++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-any-notary.html @@ -0,0 +1,19 @@ + + +NetworkMapCache.getAnyNotary - + + + +net.corda.core.node.services / NetworkMapCache / getAnyNotary
+
+

getAnyNotary

+ +abstract fun getAnyNotary(type: ServiceType? = null): Party?
+

Returns a notary identity advertised by any of the nodes on the network (chosen at random)

+

Parameters

+ +type - Limits the result to notaries of the specified type (optional)
+
+
+ + diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-node-by-public-key-tree.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-node-by-public-key-tree.html new file mode 100644 index 0000000000..ff8b4a59b2 --- /dev/null +++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-node-by-public-key-tree.html @@ -0,0 +1,16 @@ + + +NetworkMapCache.getNodeByPublicKeyTree - + + + +net.corda.core.node.services / NetworkMapCache / getNodeByPublicKeyTree
+
+

getNodeByPublicKeyTree

+ +abstract fun getNodeByPublicKeyTree(publicKeyTree: PublicKeyTree): NodeInfo?
+

Look up the node info for a public key tree.

+
+
+ + diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-node-by-public-key.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-node-by-public-key.html deleted file mode 100644 index 4a7278c2fe..0000000000 --- a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-node-by-public-key.html +++ /dev/null @@ -1,16 +0,0 @@ - - -NetworkMapCache.getNodeByPublicKey - - - - -net.corda.core.node.services / NetworkMapCache / getNodeByPublicKey
-
-

getNodeByPublicKey

- -abstract fun getNodeByPublicKey(publicKey: PublicKey): NodeInfo?
-

Look up the node info for a public key.

-
-
- - diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-notary.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-notary.html new file mode 100644 index 0000000000..412f21afde --- /dev/null +++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-notary.html @@ -0,0 +1,16 @@ + + +NetworkMapCache.getNotary - + + + +net.corda.core.node.services / NetworkMapCache / getNotary
+
+

getNotary

+ +abstract fun getNotary(name: String): Party?
+

Gets a notary identity by the given name.

+
+
+ + diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-representative-node.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-representative-node.html new file mode 100644 index 0000000000..94b3a8fec2 --- /dev/null +++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-representative-node.html @@ -0,0 +1,24 @@ + + +NetworkMapCache.getRepresentativeNode - + + + +net.corda.core.node.services / NetworkMapCache / getRepresentativeNode
+
+

getRepresentativeNode

+ +abstract fun getRepresentativeNode(party: Party): NodeInfo?
+

Given a party, returns a node advertising it as an identity. If more than one node found the result +is chosen at random.

+

In general, nodes can advertise multiple identities: a legal identity, and separate identities for each of +the services it provides. In case of a distributed service – run by multiple nodes – each participant advertises +the identity of the whole group. If the provided party is a group identity, multiple nodes advertising it +will be found, and this method will return a randomly chosen one. If party is an individual (legal) identity, +we currently assume that it will be advertised by one node only, which will be returned as the result.

+
+
+
+
+ + diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/index.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/index.html index 020717c1ee..acb508d08d 100644 --- a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/index.html +++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/index.html @@ -115,6 +115,13 @@ updates.

+getAnyNotary + +abstract fun getAnyNotary(type: ServiceType? = null): Party?

Returns a notary identity advertised by any of the nodes on the network (chosen at random)

+ + + + getNodeByLegalName abstract fun getNodeByLegalName(name: String): NodeInfo?

Look up the node info for a legal name.

@@ -122,9 +129,16 @@ updates.

-getNodeByPublicKey +getNodeByPublicKeyTree -abstract fun getNodeByPublicKey(publicKey: PublicKey): NodeInfo?

Look up the node info for a public key.

+abstract fun getNodeByPublicKeyTree(publicKeyTree: PublicKeyTree): NodeInfo?

Look up the node info for a public key tree.

+ + + + +getNotary + +abstract fun getNotary(name: String): Party?

Gets a notary identity by the given name.

@@ -138,6 +152,21 @@ or the appropriate oracle for a contract.

+getRepresentativeNode + +abstract fun getRepresentativeNode(party: Party): NodeInfo?

Given a party, returns a node advertising it as an identity. If more than one node found the result +is chosen at random.

+ + + + +isNotary + +abstract fun isNotary(party: Party): Boolean

Checks whether a given party is an advertised notary identity

+ + + + removeNode abstract fun removeNode(node: NodeInfo): Unit

Removes a node from the local cache.

diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/is-notary.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/is-notary.html new file mode 100644 index 0000000000..718371bd46 --- /dev/null +++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/is-notary.html @@ -0,0 +1,16 @@ + + +NetworkMapCache.isNotary - + + + +net.corda.core.node.services / NetworkMapCache / isNotary
+
+

isNotary

+ +abstract fun isNotary(party: Party): Boolean
+

Checks whether a given party is an advertised notary identity

+
+
+ + diff --git a/docs/build/html/api/net.corda.core.node.services/-vault-service/generate-spend.html b/docs/build/html/api/net.corda.core.node.services/-vault-service/generate-spend.html index 9622a7fc3a..594228bd83 100644 --- a/docs/build/html/api/net.corda.core.node.services/-vault-service/generate-spend.html +++ b/docs/build/html/api/net.corda.core.node.services/-vault-service/generate-spend.html @@ -7,8 +7,8 @@ net.corda.core.node.services / VaultService / generateSpend

generateSpend

- -abstract fun generateSpend(tx: TransactionBuilder, amount: Amount<Currency>, to: PublicKey, onlyFromParties: Set<Party>? = null): <ERROR CLASS><TransactionBuilder, List<PublicKey>>
+ +abstract fun generateSpend(tx: TransactionBuilder, amount: Amount<Currency>, to: PublicKeyTree, onlyFromParties: Set<Party>? = null): <ERROR CLASS><TransactionBuilder, List<PublicKeyTree>>

InsufficientBalanceException is thrown when a Cash Spending transaction fails because there is insufficient quantity for a given currency (and optionally set of Issuer Parties). Note: an Amount of Currency is only fungible for a given Issuer Party within a FungibleAsset

diff --git a/docs/build/html/api/net.corda.core.node.services/-vault-service/index.html b/docs/build/html/api/net.corda.core.node.services/-vault-service/index.html index d49c5bb4a3..e2e80a28ee 100644 --- a/docs/build/html/api/net.corda.core.node.services/-vault-service/index.html +++ b/docs/build/html/api/net.corda.core.node.services/-vault-service/index.html @@ -70,7 +70,7 @@ using a semi-colon separator

generateSpend -abstract fun generateSpend(tx: TransactionBuilder, amount: Amount<Currency>, to: PublicKey, onlyFromParties: Set<Party>? = null): <ERROR CLASS><TransactionBuilder, List<PublicKey>>

InsufficientBalanceException is thrown when a Cash Spending transaction fails because +abstract fun generateSpend(tx: TransactionBuilder, amount: Amount<Currency>, to: PublicKeyTree, onlyFromParties: Set<Party>? = null): <ERROR CLASS><TransactionBuilder, List<PublicKeyTree>>

InsufficientBalanceException is thrown when a Cash Spending transaction fails because there is insufficient quantity for a given currency (and optionally set of Issuer Parties). Note: an Amount of Currency is only fungible for a given Issuer Party within a FungibleAsset

diff --git a/docs/build/html/api/net.corda.core.node.services/-vault/-init-.html b/docs/build/html/api/net.corda.core.node.services/-vault/-init-.html index 60c5b46f76..dad14a23b1 100644 --- a/docs/build/html/api/net.corda.core.node.services/-vault/-init-.html +++ b/docs/build/html/api/net.corda.core.node.services/-vault/-init-.html @@ -7,13 +7,13 @@ net.corda.core.node.services / Vault / <init>

<init>

-Vault(states: Iterable<StateAndRef<ContractState>>, transactionNotes: Map<SecureHash, Set<String>> = emptyMap())
+Vault(states: Iterable<StateAndRef<ContractState>>)

A vault (name may be temporary) wraps a set of states that are useful for us to keep track of, for instance, because we own them. This class represents an immutable, stable state of a vault: it is guaranteed not to change out from underneath you, even though the canonical currently-best-known vault may change as we learn about new transactions from our peers and generate new transactions that consume states ourselves.

This abstract class has no references to Cash contracts.

-

states Holds the states that are active and relevant. +

states Holds the states that are active and relevant. Active means they havent been consumed yet (or we dont know about it). Relevant means they contain at least one of our pubkeys.


diff --git a/docs/build/html/api/net.corda.core.node.services/-vault/index.html b/docs/build/html/api/net.corda.core.node.services/-vault/index.html index 6f451a5245..c4523a530a 100644 --- a/docs/build/html/api/net.corda.core.node.services/-vault/index.html +++ b/docs/build/html/api/net.corda.core.node.services/-vault/index.html @@ -41,7 +41,7 @@ or transactions observed and the vault.

<init> -Vault(states: Iterable<StateAndRef<ContractState>>, transactionNotes: Map<SecureHash, Set<String>> = emptyMap())

A vault (name may be temporary) wraps a set of states that are useful for us to keep track of, for instance, +Vault(states: Iterable<StateAndRef<ContractState>>)

A vault (name may be temporary) wraps a set of states that are useful for us to keep track of, for instance, because we own them. This class represents an immutable, stable state of a vault: it is guaranteed not to change out from underneath you, even though the canonical currently-best-known vault may change as we learn about new transactions from our peers and generate new transactions that consume states ourselves.

@@ -58,12 +58,6 @@ about new transactions from our peers and generate new transactions that consume val states: Iterable<StateAndRef<ContractState>> - - -transactionNotes - -val transactionNotes: Map<SecureHash, Set<String>> -

Functions

diff --git a/docs/build/html/api/net.corda.core.node.services/-vault/transaction-notes.html b/docs/build/html/api/net.corda.core.node.services/-vault/transaction-notes.html deleted file mode 100644 index 7b586b4ffd..0000000000 --- a/docs/build/html/api/net.corda.core.node.services/-vault/transaction-notes.html +++ /dev/null @@ -1,15 +0,0 @@ - - -Vault.transactionNotes - - - - -net.corda.core.node.services / Vault / transactionNotes
-
-

transactionNotes

- -val transactionNotes: Map<SecureHash, Set<String>>
-
-
- - diff --git a/docs/build/html/api/net.corda.core.node/-plugin-service-hub/index.html b/docs/build/html/api/net.corda.core.node/-plugin-service-hub/index.html index d67c52a729..f417ad8ae9 100644 --- a/docs/build/html/api/net.corda.core.node/-plugin-service-hub/index.html +++ b/docs/build/html/api/net.corda.core.node/-plugin-service-hub/index.html @@ -119,7 +119,7 @@ communicate with the other side. If there is no mapping then the session attempt invokeProtocolAsync -abstract fun <T : Any> invokeProtocolAsync(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): <ERROR CLASS><T>

Will check logicType and args against a whitelist and if acceptable then construct and initiate the protocol.

+abstract fun <T : Any> invokeProtocolAsync(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): ProtocolStateMachine<T>

Will check logicType and args against a whitelist and if acceptable then construct and initiate the protocol.

@@ -146,7 +146,7 @@ sends them to the vault for further processing.

fillWithSomeTestCash -fun ServiceHub.fillWithSomeTestCash(howMuch: Amount<Currency>, outputNotary: Party = DUMMY_NOTARY, atLeastThisManyStates: Int = 3, atMostThisManyStates: Int = 10, rng: Random = Random(), ref: OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy: PublicKey? = null, issuedBy: PartyAndReference = DUMMY_CASH_ISSUER, issuerKey: KeyPair = DUMMY_CASH_ISSUER_KEY): Vault

Creates a random set of between (by default) 3 and 10 cash states that add up to the given amount and adds them +fun ServiceHub.fillWithSomeTestCash(howMuch: Amount<Currency>, outputNotary: Party = DUMMY_NOTARY, atLeastThisManyStates: Int = 3, atMostThisManyStates: Int = 10, rng: Random = Random(), ref: OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy: PublicKeyTree? = null, issuedBy: PartyAndReference = DUMMY_CASH_ISSUER, issuerKey: KeyPair = DUMMY_CASH_ISSUER_KEY): Vault

Creates a random set of between (by default) 3 and 10 cash states that add up to the given amount and adds them to the vault. This is intended for unit tests. The cash is issued by DUMMY_CASH_ISSUER and owned by the legal identity key from the storage service.

diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/index.html b/docs/build/html/api/net.corda.core.node/-service-hub/index.html index 6526b1c435..4c23a7a044 100644 --- a/docs/build/html/api/net.corda.core.node/-service-hub/index.html +++ b/docs/build/html/api/net.corda.core.node/-service-hub/index.html @@ -103,7 +103,7 @@ Typical use is during signing in protocols and for unit test signing.

invokeProtocolAsync -abstract fun <T : Any> invokeProtocolAsync(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): <ERROR CLASS><T>

Will check logicType and args against a whitelist and if acceptable then construct and initiate the protocol.

+abstract fun <T : Any> invokeProtocolAsync(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): ProtocolStateMachine<T>

Will check logicType and args against a whitelist and if acceptable then construct and initiate the protocol.

@@ -130,7 +130,7 @@ sends them to the vault for further processing.

fillWithSomeTestCash -fun ServiceHub.fillWithSomeTestCash(howMuch: Amount<Currency>, outputNotary: Party = DUMMY_NOTARY, atLeastThisManyStates: Int = 3, atMostThisManyStates: Int = 10, rng: Random = Random(), ref: OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy: PublicKey? = null, issuedBy: PartyAndReference = DUMMY_CASH_ISSUER, issuerKey: KeyPair = DUMMY_CASH_ISSUER_KEY): Vault

Creates a random set of between (by default) 3 and 10 cash states that add up to the given amount and adds them +fun ServiceHub.fillWithSomeTestCash(howMuch: Amount<Currency>, outputNotary: Party = DUMMY_NOTARY, atLeastThisManyStates: Int = 3, atMostThisManyStates: Int = 10, rng: Random = Random(), ref: OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy: PublicKeyTree? = null, issuedBy: PartyAndReference = DUMMY_CASH_ISSUER, issuerKey: KeyPair = DUMMY_CASH_ISSUER_KEY): Vault

Creates a random set of between (by default) 3 and 10 cash states that add up to the given amount and adds them to the vault. This is intended for unit tests. The cash is issued by DUMMY_CASH_ISSUER and owned by the legal identity key from the storage service.

diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/invoke-protocol-async.html b/docs/build/html/api/net.corda.core.node/-service-hub/invoke-protocol-async.html index c728973c7d..b3c4762513 100644 --- a/docs/build/html/api/net.corda.core.node/-service-hub/invoke-protocol-async.html +++ b/docs/build/html/api/net.corda.core.node/-service-hub/invoke-protocol-async.html @@ -8,7 +8,7 @@

invokeProtocolAsync

-abstract fun <T : Any> invokeProtocolAsync(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): <ERROR CLASS><T>
+abstract fun <T : Any> invokeProtocolAsync(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): ProtocolStateMachine<T>

Will check logicType and args against a whitelist and if acceptable then construct and initiate the protocol.

Exceptions

diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/legal-identity-key.html b/docs/build/html/api/net.corda.core.node/-service-hub/legal-identity-key.html index 55bedf82bd..8b63546cc6 100644 --- a/docs/build/html/api/net.corda.core.node/-service-hub/legal-identity-key.html +++ b/docs/build/html/api/net.corda.core.node/-service-hub/legal-identity-key.html @@ -12,6 +12,10 @@

Helper property to shorten code for fetching the Nodes KeyPair associated with the public legalIdentity Party from the key management service. Typical use is during signing in protocols and for unit test signing.

+

TODO: legalIdentity can now be composed of multiple keys, should we return a list of keyPairs here? Right now +the logic assumes the legal identity has a public key tree with only one node

+
+


diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic/index.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/index.html index 7081adce7a..8c34bc071e 100644 --- a/docs/build/html/api/net.corda.core.protocols/-protocol-logic/index.html +++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/index.html @@ -156,9 +156,16 @@ will do as long as the other side registers with it.

+CashProtocol + +class CashProtocol : ProtocolLogic<CashProtocolResult>

Initiates a protocol that produces an Issue/Move or Exit Cash transaction.

+ + + + Client -class Client : ProtocolLogic<LegallyIdentifiable>

A protocol to be used for obtaining a signature from a NotaryService ascertaining the transaction +class Client : ProtocolLogic<WithKey>

A protocol to be used for obtaining a signature from a NotaryService ascertaining the transaction timestamp is correct and none of its inputs have been used in another completed transaction.

diff --git a/docs/build/html/api/net.corda.core.schemas/-queryable-state/index.html b/docs/build/html/api/net.corda.core.schemas/-queryable-state/index.html index aa1d8d49ab..1d0e381b62 100644 --- a/docs/build/html/api/net.corda.core.schemas/-queryable-state/index.html +++ b/docs/build/html/api/net.corda.core.schemas/-queryable-state/index.html @@ -33,7 +33,7 @@ or filtering of, states.

participants -abstract val participants: List<PublicKey>

A participant is any party that is able to consume this state in a valid transaction.

+abstract val participants: List<PublicKeyTree>

A participant is any party that is able to consume this state in a valid transaction.

diff --git a/docs/build/html/api/net.corda.core.testing/-public-key-tree-generator/-init-.html b/docs/build/html/api/net.corda.core.testing/-public-key-tree-generator/-init-.html new file mode 100644 index 0000000000..c6bed4e654 --- /dev/null +++ b/docs/build/html/api/net.corda.core.testing/-public-key-tree-generator/-init-.html @@ -0,0 +1,14 @@ + + +PublicKeyTreeGenerator.<init> - + + + +net.corda.core.testing / PublicKeyTreeGenerator / <init>
+
+

<init>

+PublicKeyTreeGenerator()
+
+
+ + diff --git a/docs/build/html/api/net.corda.core.testing/-public-key-tree-generator/generate.html b/docs/build/html/api/net.corda.core.testing/-public-key-tree-generator/generate.html new file mode 100644 index 0000000000..095471147a --- /dev/null +++ b/docs/build/html/api/net.corda.core.testing/-public-key-tree-generator/generate.html @@ -0,0 +1,15 @@ + + +PublicKeyTreeGenerator.generate - + + + +net.corda.core.testing / PublicKeyTreeGenerator / generate
+
+

generate

+ +fun generate(random: <ERROR CLASS>, status: <ERROR CLASS>): PublicKeyTree
+
+
+ + diff --git a/docs/build/html/api/net.corda.core.testing/-public-key-tree-generator/index.html b/docs/build/html/api/net.corda.core.testing/-public-key-tree-generator/index.html new file mode 100644 index 0000000000..3a0e22c111 --- /dev/null +++ b/docs/build/html/api/net.corda.core.testing/-public-key-tree-generator/index.html @@ -0,0 +1,36 @@ + + +PublicKeyTreeGenerator - + + + +net.corda.core.testing / PublicKeyTreeGenerator
+
+

PublicKeyTreeGenerator

+class PublicKeyTreeGenerator
+
+
+

Constructors

+ + + + + + + +
+<init> +PublicKeyTreeGenerator()
+

Functions

+ + + + + + + +
+generate +fun generate(random: <ERROR CLASS>, status: <ERROR CLASS>): PublicKeyTree
+ + diff --git a/docs/build/html/api/net.corda.core.testing/index.html b/docs/build/html/api/net.corda.core.testing/index.html index b3a16b9fd9..f99ccb09ef 100644 --- a/docs/build/html/api/net.corda.core.testing/index.html +++ b/docs/build/html/api/net.corda.core.testing/index.html @@ -66,6 +66,12 @@ +PublicKeyTreeGenerator + +class PublicKeyTreeGenerator + + + SecureHashGenerator class SecureHashGenerator diff --git a/docs/build/html/api/net.corda.core.transactions/-base-transaction/-init-.html b/docs/build/html/api/net.corda.core.transactions/-base-transaction/-init-.html index fe6b79db91..8df0799a0e 100644 --- a/docs/build/html/api/net.corda.core.transactions/-base-transaction/-init-.html +++ b/docs/build/html/api/net.corda.core.transactions/-base-transaction/-init-.html @@ -7,7 +7,7 @@ net.corda.core.transactions / BaseTransaction / <init>

<init>

-BaseTransaction(inputs: List<*>, outputs: List<TransactionState<ContractState>>, notary: Party?, mustSign: List<PublicKey>, type: TransactionType, timestamp: Timestamp?)
+BaseTransaction(inputs: List<*>, outputs: List<TransactionState<ContractState>>, notary: Party?, mustSign: List<PublicKeyTree>, type: TransactionType, timestamp: Timestamp?)

An abstract class defining fields shared by all transaction types in the system.



diff --git a/docs/build/html/api/net.corda.core.transactions/-base-transaction/index.html b/docs/build/html/api/net.corda.core.transactions/-base-transaction/index.html index 4dccb48b60..7e960f4f48 100644 --- a/docs/build/html/api/net.corda.core.transactions/-base-transaction/index.html +++ b/docs/build/html/api/net.corda.core.transactions/-base-transaction/index.html @@ -18,7 +18,7 @@ <init> -BaseTransaction(inputs: List<*>, outputs: List<TransactionState<ContractState>>, notary: Party?, mustSign: List<PublicKey>, type: TransactionType, timestamp: Timestamp?)

An abstract class defining fields shared by all transaction types in the system.

+BaseTransaction(inputs: List<*>, outputs: List<TransactionState<ContractState>>, notary: Party?, mustSign: List<PublicKeyTree>, type: TransactionType, timestamp: Timestamp?)

An abstract class defining fields shared by all transaction types in the system.

@@ -37,10 +37,10 @@ mustSign -val mustSign: List<PublicKey>

Keys that are required to have signed the wrapping SignedTransaction, ordered to match the list of -signatures. There is nothing that forces the list to be the correct list of signers for this -transaction until the transaction is verified by using LedgerTransaction.verify. It includes the -notary key, if the notary field is set.

+val mustSign: List<PublicKeyTree>

Public key trees that need to be fulfilled by signatures in order for the transaction to be valid. +In a SignedTransaction this list is used to check whether there are any missing signatures. Note that +there is nothing that forces the list to be the correct list of signers for this transaction until +the transaction is verified by using LedgerTransaction.verify.

diff --git a/docs/build/html/api/net.corda.core.transactions/-base-transaction/must-sign.html b/docs/build/html/api/net.corda.core.transactions/-base-transaction/must-sign.html index a589368883..0706f1fbe3 100644 --- a/docs/build/html/api/net.corda.core.transactions/-base-transaction/must-sign.html +++ b/docs/build/html/api/net.corda.core.transactions/-base-transaction/must-sign.html @@ -8,11 +8,14 @@

mustSign

-val mustSign: List<PublicKey>
-

Keys that are required to have signed the wrapping SignedTransaction, ordered to match the list of -signatures. There is nothing that forces the list to be the correct list of signers for this -transaction until the transaction is verified by using LedgerTransaction.verify. It includes the -notary key, if the notary field is set.

+val mustSign: List<PublicKeyTree>
+

Public key trees that need to be fulfilled by signatures in order for the transaction to be valid. +In a SignedTransaction this list is used to check whether there are any missing signatures. Note that +there is nothing that forces the list to be the correct list of signers for this transaction until +the transaction is verified by using LedgerTransaction.verify.

+

It includes the notary key, if the notary field is set.

+
+


diff --git a/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/-init-.html b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/-init-.html index 841d77870e..0b49726a99 100644 --- a/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/-init-.html +++ b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/-init-.html @@ -7,7 +7,7 @@ net.corda.core.transactions / LedgerTransaction / <init>

<init>

-LedgerTransaction(inputs: List<StateAndRef<*>>, outputs: List<TransactionState<ContractState>>, commands: List<AuthenticatedObject<CommandData>>, attachments: List<Attachment>, id: SecureHash, notary: Party?, signers: List<PublicKey>, timestamp: Timestamp?, type: TransactionType)
+LedgerTransaction(inputs: List<StateAndRef<*>>, outputs: List<TransactionState<ContractState>>, commands: List<AuthenticatedObject<CommandData>>, attachments: List<Attachment>, id: SecureHash, notary: Party?, signers: List<PublicKeyTree>, timestamp: Timestamp?, type: TransactionType)

A LedgerTransaction is derived from a WireTransaction. It is the result of doing the following operations:

  • Downloading and locally storing all the dependencies of the transaction.

  • Resolving the input states and loading them into memory.

    diff --git a/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/index.html b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/index.html index 13dd8f3847..dfeb84db91 100644 --- a/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/index.html +++ b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/index.html @@ -26,7 +26,7 @@ <init> -LedgerTransaction(inputs: List<StateAndRef<*>>, outputs: List<TransactionState<ContractState>>, commands: List<AuthenticatedObject<CommandData>>, attachments: List<Attachment>, id: SecureHash, notary: Party?, signers: List<PublicKey>, timestamp: Timestamp?, type: TransactionType)

    A LedgerTransaction is derived from a WireTransaction. It is the result of doing the following operations:

    +LedgerTransaction(inputs: List<StateAndRef<*>>, outputs: List<TransactionState<ContractState>>, commands: List<AuthenticatedObject<CommandData>>, attachments: List<Attachment>, id: SecureHash, notary: Party?, signers: List<PublicKeyTree>, timestamp: Timestamp?, type: TransactionType)

    A LedgerTransaction is derived from a WireTransaction. It is the result of doing the following operations:

    @@ -71,10 +71,10 @@ mustSign -val mustSign: List<PublicKey>

    Keys that are required to have signed the wrapping SignedTransaction, ordered to match the list of -signatures. There is nothing that forces the list to be the correct list of signers for this -transaction until the transaction is verified by using LedgerTransaction.verify. It includes the -notary key, if the notary field is set.

    +val mustSign: List<PublicKeyTree>

    Public key trees that need to be fulfilled by signatures in order for the transaction to be valid. +In a SignedTransaction this list is used to check whether there are any missing signatures. Note that +there is nothing that forces the list to be the correct list of signers for this transaction until +the transaction is verified by using LedgerTransaction.verify.

    diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/-init-.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/-init-.html index 9f5a7ee612..59340e115b 100644 --- a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/-init-.html +++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/-init-.html @@ -7,7 +7,7 @@ net.corda.core.transactions / SignedTransaction / SignaturesMissingException / <init>

    <init>

    -SignaturesMissingException(missing: Set<PublicKey>, descriptions: List<String>, id: SecureHash)
    +SignaturesMissingException(missing: Set<PublicKeyTree>, descriptions: List<String>, id: SecureHash)


    diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/index.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/index.html index 1cd3d2520d..3af93e2c2c 100644 --- a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/index.html +++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/index.html @@ -17,7 +17,7 @@ <init> -SignaturesMissingException(missing: Set<PublicKey>, descriptions: List<String>, id: SecureHash) +SignaturesMissingException(missing: Set<PublicKeyTree>, descriptions: List<String>, id: SecureHash) @@ -40,7 +40,7 @@ missing -val missing: Set<PublicKey> +val missing: Set<PublicKeyTree> diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/missing.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/missing.html index 32209ee9ab..19d11ce052 100644 --- a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/missing.html +++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/missing.html @@ -8,7 +8,7 @@

    missing

    -val missing: Set<PublicKey>
    +val missing: Set<PublicKeyTree>


    diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/index.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/index.html index c527b4e6e3..a58b13e56a 100644 --- a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/index.html +++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/index.html @@ -110,7 +110,7 @@ returning an unverified LedgerTransaction.

    verifySignatures -fun verifySignatures(vararg allowedToBeMissing: PublicKey): WireTransaction

    Verifies the signatures on this transaction and throws if any are missing which arent passed as parameters. +fun verifySignatures(vararg allowedToBeMissing: PublicKeyTree): WireTransaction

    Verifies the signatures on this transaction and throws if any are missing which arent passed as parameters. In this context, "verifying" means checking they are valid signatures and that their public keys are in the contained transactions BaseTransaction.mustSign property.

    diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/verify-signatures.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/verify-signatures.html index d73d715ecd..44aca49036 100644 --- a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/verify-signatures.html +++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/verify-signatures.html @@ -7,8 +7,8 @@ net.corda.core.transactions / SignedTransaction / verifySignatures

    verifySignatures

    - -fun verifySignatures(vararg allowedToBeMissing: PublicKey): WireTransaction
    + +fun verifySignatures(vararg allowedToBeMissing: PublicKeyTree): WireTransaction

    Verifies the signatures on this transaction and throws if any are missing which arent passed as parameters. In this context, "verifying" means checking they are valid signatures and that their public keys are in the contained transactions BaseTransaction.mustSign property.

    diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/-init-.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/-init-.html index 42e03415a0..a1e772e76b 100644 --- a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/-init-.html +++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/-init-.html @@ -7,7 +7,7 @@ net.corda.core.transactions / TransactionBuilder / <init>

    <init>

    -TransactionBuilder(type: TransactionType = TransactionType.General(), notary: Party? = null, inputs: MutableList<StateRef> = arrayListOf(), attachments: MutableList<SecureHash> = arrayListOf(), outputs: MutableList<TransactionState<ContractState>> = arrayListOf(), commands: MutableList<Command> = arrayListOf(), signers: MutableSet<PublicKey> = mutableSetOf(), timestamp: Timestamp? = null)
    +TransactionBuilder(type: TransactionType = TransactionType.General(), notary: Party? = null, inputs: MutableList<StateRef> = arrayListOf(), attachments: MutableList<SecureHash> = arrayListOf(), outputs: MutableList<TransactionState<ContractState>> = arrayListOf(), commands: MutableList<Command> = arrayListOf(), signers: MutableSet<PublicKeyTree> = mutableSetOf(), timestamp: Timestamp? = null)

    A TransactionBuilder is a transaction class thats mutable (unlike the others which are all immutable). It is intended to be passed around contracts that may edit it by adding new states/commands. Then once the states and commands are right, this class can be used as a holding bucket to gather signatures from multiple parties.

    diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-command.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-command.html index b7911549ed..49d64fdef6 100644 --- a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-command.html +++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-command.html @@ -9,10 +9,10 @@

    addCommand

    fun addCommand(arg: Command): Unit
    - -fun addCommand(data: CommandData, vararg keys: PublicKey): <ERROR CLASS>
    - -fun addCommand(data: CommandData, keys: List<PublicKey>): Unit
    + +fun addCommand(data: CommandData, vararg keys: PublicKeyTree): <ERROR CLASS>
    + +fun addCommand(data: CommandData, keys: List<PublicKeyTree>): Unit


    diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/index.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/index.html index 07b90dbf90..6753cde076 100644 --- a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/index.html +++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/index.html @@ -34,7 +34,7 @@ but for the <init> -TransactionBuilder(type: TransactionType = TransactionType.General(), notary: Party? = null, inputs: MutableList<StateRef> = arrayListOf(), attachments: MutableList<SecureHash> = arrayListOf(), outputs: MutableList<TransactionState<ContractState>> = arrayListOf(), commands: MutableList<Command> = arrayListOf(), signers: MutableSet<PublicKey> = mutableSetOf(), timestamp: Timestamp? = null)

    A TransactionBuilder is a transaction class thats mutable (unlike the others which are all immutable). It is +TransactionBuilder(type: TransactionType = TransactionType.General(), notary: Party? = null, inputs: MutableList<StateRef> = arrayListOf(), attachments: MutableList<SecureHash> = arrayListOf(), outputs: MutableList<TransactionState<ContractState>> = arrayListOf(), commands: MutableList<Command> = arrayListOf(), signers: MutableSet<PublicKeyTree> = mutableSetOf(), timestamp: Timestamp? = null)

    A TransactionBuilder is a transaction class thats mutable (unlike the others which are all immutable). It is intended to be passed around contracts that may edit it by adding new states/commands. Then once the states and commands are right, this class can be used as a holding bucket to gather signatures from multiple parties.

    @@ -85,7 +85,7 @@ and commands are right, this class can be used as a holding bucket to gather sig signers -val signers: MutableSet<PublicKey> +val signers: MutableSet<PublicKeyTree> @@ -121,8 +121,8 @@ and commands are right, this class can be used as a holding bucket to gather sig addCommand fun addCommand(arg: Command): Unit
    -fun addCommand(data: CommandData, vararg keys: PublicKey): <ERROR CLASS>
    -fun addCommand(data: CommandData, keys: List<PublicKey>): Unit +fun addCommand(data: CommandData, vararg keys: PublicKeyTree): <ERROR CLASS>
    +fun addCommand(data: CommandData, keys: List<PublicKeyTree>): Unit diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/signers.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/signers.html index 9fda7f152e..fd23256ba9 100644 --- a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/signers.html +++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/signers.html @@ -8,7 +8,7 @@

    signers

    -protected val signers: MutableSet<PublicKey>
    +protected val signers: MutableSet<PublicKeyTree>


    diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/-init-.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/-init-.html index d5e24c22bf..d06b235d92 100644 --- a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/-init-.html +++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/-init-.html @@ -7,7 +7,7 @@ net.corda.core.transactions / WireTransaction / <init>

    <init>

    -WireTransaction(inputs: List<StateRef>, attachments: List<SecureHash>, outputs: List<TransactionState<ContractState>>, commands: List<Command>, notary: Party?, signers: List<PublicKey>, type: TransactionType, timestamp: Timestamp?)
    +WireTransaction(inputs: List<StateRef>, attachments: List<SecureHash>, outputs: List<TransactionState<ContractState>>, commands: List<Command>, notary: Party?, signers: List<PublicKeyTree>, type: TransactionType, timestamp: Timestamp?)

    A transaction ready for serialisation, without any signatures attached. A WireTransaction is usually wrapped by a SignedTransaction that carries the signatures over this payload. The hash of the wire transaction is the identity of the transaction, that is, its possible for two SignedTransactions with different sets of diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/index.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/index.html index 46d164051f..4473fa5f4f 100644 --- a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/index.html +++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/index.html @@ -21,7 +21,7 @@ signatures to have the same identity hash.

    <init> -WireTransaction(inputs: List<StateRef>, attachments: List<SecureHash>, outputs: List<TransactionState<ContractState>>, commands: List<Command>, notary: Party?, signers: List<PublicKey>, type: TransactionType, timestamp: Timestamp?)

    A transaction ready for serialisation, without any signatures attached. A WireTransaction is usually wrapped +WireTransaction(inputs: List<StateRef>, attachments: List<SecureHash>, outputs: List<TransactionState<ContractState>>, commands: List<Command>, notary: Party?, signers: List<PublicKeyTree>, type: TransactionType, timestamp: Timestamp?)

    A transaction ready for serialisation, without any signatures attached. A WireTransaction is usually wrapped by a SignedTransaction that carries the signatures over this payload. The hash of the wire transaction is the identity of the transaction, that is, its possible for two SignedTransactions with different sets of signatures to have the same identity hash.

    @@ -92,10 +92,10 @@ signatures to have the same identity hash.

    mustSign -val mustSign: List<PublicKey>

    Keys that are required to have signed the wrapping SignedTransaction, ordered to match the list of -signatures. There is nothing that forces the list to be the correct list of signers for this -transaction until the transaction is verified by using LedgerTransaction.verify. It includes the -notary key, if the notary field is set.

    +val mustSign: List<PublicKeyTree>

    Public key trees that need to be fulfilled by signatures in order for the transaction to be valid. +In a SignedTransaction this list is used to check whether there are any missing signatures. Note that +there is nothing that forces the list to be the correct list of signers for this transaction until +the transaction is verified by using LedgerTransaction.verify.

    diff --git a/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-p-u-b-k-e-y_1.html b/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-p-u-b-k-e-y_1.html index 12e7eb406c..57cd63216c 100644 --- a/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-p-u-b-k-e-y_1.html +++ b/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-p-u-b-k-e-y_1.html @@ -8,7 +8,7 @@

    DUMMY_PUBKEY_1

    -val DUMMY_PUBKEY_1: PublicKey
    +val DUMMY_PUBKEY_1: PublicKeyTree


    diff --git a/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-p-u-b-k-e-y_2.html b/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-p-u-b-k-e-y_2.html index 851ab0d17d..2963472223 100644 --- a/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-p-u-b-k-e-y_2.html +++ b/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-p-u-b-k-e-y_2.html @@ -8,7 +8,7 @@

    DUMMY_PUBKEY_2

    -val DUMMY_PUBKEY_2: PublicKey
    +val DUMMY_PUBKEY_2: PublicKeyTree


    diff --git a/docs/build/html/api/net.corda.core.utilities/index.html b/docs/build/html/api/net.corda.core.utilities/index.html index 9d8d7f09f6..0251f60ad6 100644 --- a/docs/build/html/api/net.corda.core.utilities/index.html +++ b/docs/build/html/api/net.corda.core.utilities/index.html @@ -106,13 +106,13 @@ first. The wrapper helps you to avoid forgetting this vital step. Things you mig DUMMY_PUBKEY_1 -val DUMMY_PUBKEY_1: PublicKey +val DUMMY_PUBKEY_1: PublicKeyTree DUMMY_PUBKEY_2 -val DUMMY_PUBKEY_2: PublicKey +val DUMMY_PUBKEY_2: PublicKeyTree diff --git a/docs/build/html/api/net.corda.core/-error-or/bind.html b/docs/build/html/api/net.corda.core/-error-or/bind.html index 72de33bb43..2de444178e 100644 --- a/docs/build/html/api/net.corda.core/-error-or/bind.html +++ b/docs/build/html/api/net.corda.core/-error-or/bind.html @@ -8,7 +8,7 @@

    bind

    -fun <B> bind(function: (A) -> ErrorOr<B>): ErrorOr<Nothing>
    +fun <B : Any> bind(function: (A) -> ErrorOr<B>): ErrorOr<B>


    diff --git a/docs/build/html/api/net.corda.core/-error-or/catch.html b/docs/build/html/api/net.corda.core/-error-or/catch.html index 64a1c38ded..1558c0c3eb 100644 --- a/docs/build/html/api/net.corda.core/-error-or/catch.html +++ b/docs/build/html/api/net.corda.core/-error-or/catch.html @@ -8,7 +8,7 @@

    catch

    -inline fun <T> catch(body: () -> T): ErrorOr<T>
    +inline fun <T : Any> catch(body: () -> T): ErrorOr<T>

    Runs the given lambda and wraps the result.



    diff --git a/docs/build/html/api/net.corda.core/-error-or/index.html b/docs/build/html/api/net.corda.core/-error-or/index.html index 15bcf74faf..1b3629fade 100644 --- a/docs/build/html/api/net.corda.core/-error-or/index.html +++ b/docs/build/html/api/net.corda.core/-error-or/index.html @@ -46,7 +46,7 @@ bind -fun <B> bind(function: (A) -> ErrorOr<B>): ErrorOr<Nothing> +fun <B : Any> bind(function: (A) -> ErrorOr<B>): ErrorOr<B> @@ -81,7 +81,7 @@ catch -fun <T> catch(body: () -> T): ErrorOr<T>

    Runs the given lambda and wraps the result.

    +fun <T : Any> catch(body: () -> T): ErrorOr<T>

    Runs the given lambda and wraps the result.

    diff --git a/docs/build/html/api/net.corda.core/future.html b/docs/build/html/api/net.corda.core/future.html new file mode 100644 index 0000000000..da86636f09 --- /dev/null +++ b/docs/build/html/api/net.corda.core/future.html @@ -0,0 +1,15 @@ + + +future - + + + +net.corda.core / future
    +
    +

    future

    + +fun <T> future(block: () -> T): Future<T>
    +
    +
    + + diff --git a/docs/build/html/api/net.corda.core/index.html b/docs/build/html/api/net.corda.core/index.html index 2a9b2c48c6..81b15f2a29 100644 --- a/docs/build/html/api/net.corda.core/index.html +++ b/docs/build/html/api/net.corda.core/index.html @@ -166,6 +166,12 @@ again.

    +future + +fun <T> future(block: () -> T): Future<T> + + + logElapsedTime fun <T> logElapsedTime(label: String, logger: <ERROR CLASS>? = null, body: () -> T): T @@ -198,6 +204,12 @@ avoid potential bugs where the value is used in a context where negative numbers fun <T> <ERROR CLASS><T>.then(executor: Executor, body: () -> Unit): <ERROR CLASS>
    infix fun <T> <ERROR CLASS><T>.then(body: () -> Unit): <ERROR CLASS><T> + + +toObservable + +fun <A> <ERROR CLASS><A>.toObservable(): <ERROR CLASS><A> + diff --git a/docs/build/html/api/net.corda.core/kotlin.collections.-list/index.html b/docs/build/html/api/net.corda.core/kotlin.collections.-list/index.html index 7722e5a3c3..34b88143c5 100644 --- a/docs/build/html/api/net.corda.core/kotlin.collections.-list/index.html +++ b/docs/build/html/api/net.corda.core/kotlin.collections.-list/index.html @@ -16,6 +16,14 @@ fun <T> List<T>.indexOfOrThrow(item: T): Int

    Returns the index of the given item or throws IllegalArgumentException if not found.

    + + +randomOrNull + +fun <T> List<T>.randomOrNull(): T?

    Returns a random element in the list, or null if empty

    +fun <T> List<T>.randomOrNull(predicate: (T) -> Boolean): <ERROR CLASS>

    Returns a random element in the list matching the given predicate, or null if none found

    + + diff --git a/docs/build/html/api/net.corda.core/kotlin.collections.-list/random-or-null.html b/docs/build/html/api/net.corda.core/kotlin.collections.-list/random-or-null.html new file mode 100644 index 0000000000..37f7aa3dff --- /dev/null +++ b/docs/build/html/api/net.corda.core/kotlin.collections.-list/random-or-null.html @@ -0,0 +1,21 @@ + + +randomOrNull - + + + +net.corda.core / kotlin.collections.List / randomOrNull
    +
    +

    randomOrNull

    + +fun <T> List<T>.randomOrNull(): T?
    +

    Returns a random element in the list, or null if empty

    +
    +
    + +fun <T> List<T>.randomOrNull(predicate: (T) -> Boolean): <ERROR CLASS>
    +

    Returns a random element in the list matching the given predicate, or null if none found

    +
    +
    + + diff --git a/docs/build/html/api/net.corda.core/to-observable.html b/docs/build/html/api/net.corda.core/to-observable.html new file mode 100644 index 0000000000..af514768fc --- /dev/null +++ b/docs/build/html/api/net.corda.core/to-observable.html @@ -0,0 +1,15 @@ + + +toObservable - + + + +net.corda.core / toObservable
    +
    +

    toObservable

    + +fun <A> <ERROR CLASS><A>.toObservable(): <ERROR CLASS><A>
    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/-init-.html b/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/-init-.html index b78488e03b..f45b7fd253 100644 --- a/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/-init-.html +++ b/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/-init-.html @@ -7,7 +7,7 @@ net.corda.node.driver / PortAllocation / Incremental / <init>

    <init>

    -Incremental(portCounter: Int)
    +Incremental(startingPort: Int)


    diff --git a/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/index.html b/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/index.html index 687752d9c5..459be57ed4 100644 --- a/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/index.html +++ b/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/index.html @@ -17,7 +17,18 @@ <init> -Incremental(portCounter: Int) +Incremental(startingPort: Int) + + + +

    Properties

    + + + + +
    +portCounter +val portCounter: AtomicInteger
    diff --git a/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/port-counter.html b/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/port-counter.html new file mode 100644 index 0000000000..284d62b910 --- /dev/null +++ b/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/port-counter.html @@ -0,0 +1,15 @@ + + +PortAllocation.Incremental.portCounter - + + + +net.corda.node.driver / PortAllocation / Incremental / portCounter
    +
    +

    portCounter

    + +val portCounter: AtomicInteger
    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/index.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/index.html index 8ef8dcddae..b36e249d4b 100644 --- a/docs/build/html/api/net.corda.node.internal/-abstract-node/index.html +++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/index.html @@ -113,7 +113,7 @@ I/O), or a mock implementation suitable for unit test environments.

    info -val info: NodeInfo +lateinit var info: NodeInfo diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/info.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/info.html index f99a149da1..9b88075b5d 100644 --- a/docs/build/html/api/net.corda.node.internal/-abstract-node/info.html +++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/info.html @@ -8,7 +8,7 @@

    info

    -val info: NodeInfo
    +lateinit var info: NodeInfo


    diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-c-a-s-h_-p-e-r-m-i-s-s-i-o-n.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-c-a-s-h_-p-e-r-m-i-s-s-i-o-n.html deleted file mode 100644 index c310be6306..0000000000 --- a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-c-a-s-h_-p-e-r-m-i-s-s-i-o-n.html +++ /dev/null @@ -1,15 +0,0 @@ - - -CordaRPCOpsImpl.CASH_PERMISSION - - - - -net.corda.node.internal / CordaRPCOpsImpl / CASH_PERMISSION
    -
    -

    CASH_PERMISSION

    - -const val CASH_PERMISSION: String
    -
    -
    - - diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-input-state-ref-resolve-failed/-init-.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-input-state-ref-resolve-failed/-init-.html deleted file mode 100644 index 5a898d6ce5..0000000000 --- a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-input-state-ref-resolve-failed/-init-.html +++ /dev/null @@ -1,14 +0,0 @@ - - -CordaRPCOpsImpl.InputStateRefResolveFailed.<init> - - - - -net.corda.node.internal / CordaRPCOpsImpl / InputStateRefResolveFailed / <init>
    -
    -

    <init>

    -InputStateRefResolveFailed(stateRefs: List<StateRef>)
    -
    -
    - - diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-input-state-ref-resolve-failed/index.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-input-state-ref-resolve-failed/index.html deleted file mode 100644 index ec8f828f4c..0000000000 --- a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-input-state-ref-resolve-failed/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - -CordaRPCOpsImpl.InputStateRefResolveFailed - - - - -net.corda.node.internal / CordaRPCOpsImpl / InputStateRefResolveFailed
    -
    -

    InputStateRefResolveFailed

    -class InputStateRefResolveFailed : Exception
    -
    -
    -

    Constructors

    - - - - - - - -
    -<init> -InputStateRefResolveFailed(stateRefs: List<StateRef>)
    - - diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/execute-command.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/execute-command.html deleted file mode 100644 index 7e3959f23a..0000000000 --- a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/execute-command.html +++ /dev/null @@ -1,18 +0,0 @@ - - -CordaRPCOpsImpl.executeCommand - - - - -net.corda.node.internal / CordaRPCOpsImpl / executeCommand
    -
    -

    executeCommand

    - -fun executeCommand(command: ClientToServiceCommand): TransactionBuildResult
    -Overrides CordaRPCOps.executeCommand
    -

    Executes the given command if the user is permissioned to do so, possibly triggering cash creation etc. -TODO: The signature of this is weird because its the remains of an old service call, we should have a call for each command instead.

    -
    -
    - - diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/index.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/index.html index 34f6379c55..8f23e6033c 100644 --- a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/index.html +++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/index.html @@ -12,17 +12,6 @@ thread (i.e. serially). Arguments are serialised and deserialised automatically.



    -

    Exceptions

    - - - - - - - -
    -InputStateRefResolveFailed -class InputStateRefResolveFailed : Exception

    Constructors

    @@ -77,14 +66,6 @@ thread (i.e. serially). Arguments are serialised and deserialised automatically. - - - - @@ -105,6 +86,14 @@ TODO: The signature of this is weird because its the remains of an old service c + + + +
    -executeCommand -fun executeCommand(command: ClientToServiceCommand): TransactionBuildResult

    Executes the given command if the user is permissioned to do so, possibly triggering cash creation etc. -TODO: The signature of this is weird because its the remains of an old service call, we should have a call for each command instead.

    -
    getVaultTransactionNotes fun getVaultTransactionNotes(txnId: SecureHash): Iterable<String>
    +startProtocolDynamic +fun <T : Any> startProtocolDynamic(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): ProtocolHandle<T>

    Start the given protocol with the given arguments, returning an Observable with a single observation of the +result of running the protocol.

    +
    stateMachineRecordedTransactionMapping fun stateMachineRecordedTransactionMapping(): <ERROR CLASS><List<StateMachineTransactionMapping>, <ERROR CLASS><StateMachineTransactionMapping>>

    Returns a snapshot list of existing state machine id - recorded transaction hash mappings, and a stream of future @@ -134,14 +123,18 @@ such mappings as well.

    -

    Companion Object Properties

    +

    Extension Functions

    +startProtocol +fun <T : Any, R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: () -> R): <ERROR CLASS>

    These allow type safe invocations of protocols from Kotlin, e.g.:

    +fun <T : Any, A, R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A) -> R, arg0: A): <ERROR CLASS>
    +fun <T : Any, A, B, R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A, B) -> R, arg0: A, arg1: B): <ERROR CLASS>
    +fun <T : Any, A, B, C, R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A, B, C) -> R, arg0: A, arg1: B, arg2: C): <ERROR CLASS>
    +fun <T : Any, A, B, C, D, R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A, B, C, D) -> R, arg0: A, arg1: B, arg2: C, arg3: D): <ERROR CLASS>
    -CASH_PERMISSION -const val CASH_PERMISSION: String
    diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/start-protocol-dynamic.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/start-protocol-dynamic.html new file mode 100644 index 0000000000..0e1d2d6f57 --- /dev/null +++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/start-protocol-dynamic.html @@ -0,0 +1,18 @@ + + +CordaRPCOpsImpl.startProtocolDynamic - + + + +net.corda.node.internal / CordaRPCOpsImpl / startProtocolDynamic
    +
    +

    startProtocolDynamic

    + +fun <T : Any> startProtocolDynamic(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): ProtocolHandle<T>
    +Overrides CordaRPCOps.startProtocolDynamic
    +

    Start the given protocol with the given arguments, returning an Observable with a single observation of the +result of running the protocol.

    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.internal/-node/index.html b/docs/build/html/api/net.corda.node.internal/-node/index.html index f106af0e75..2960636b49 100644 --- a/docs/build/html/api/net.corda.node.internal/-node/index.html +++ b/docs/build/html/api/net.corda.node.internal/-node/index.html @@ -141,7 +141,7 @@ loads important data off disk and starts listening for connections.

    info -val info: NodeInfo +lateinit var info: NodeInfo diff --git a/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/index.html b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/index.html index 08f37bacd5..c83b4c80ca 100644 --- a/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/index.html +++ b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/index.html @@ -57,14 +57,14 @@ invokeProtocolAsync -open fun <T : Any> invokeProtocolAsync(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): <ERROR CLASS><T>

    Will check logicType and args against a whitelist and if acceptable then construct and initiate the protocol.

    +open fun <T : Any> invokeProtocolAsync(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): ProtocolStateMachine<T>

    Will check logicType and args against a whitelist and if acceptable then construct and initiate the protocol.

    startProtocol -abstract fun <T> startProtocol(logic: ProtocolLogic<T>): <ERROR CLASS><T>

    TODO: borrowing this method from service manager work in another branch. Its required to avoid circular dependency +abstract fun <T> startProtocol(logic: ProtocolLogic<T>): ProtocolStateMachine<T>

    TODO: borrowing this method from service manager work in another branch. Its required to avoid circular dependency between SMM and the scheduler. That particular problem should also be resolved by the service manager work itself, at which point this method would not be needed (by the scheduler).

    @@ -100,7 +100,7 @@ communicate with the other side. If there is no mapping then the session attempt fillWithSomeTestCash -fun ServiceHub.fillWithSomeTestCash(howMuch: Amount<Currency>, outputNotary: Party = DUMMY_NOTARY, atLeastThisManyStates: Int = 3, atMostThisManyStates: Int = 10, rng: Random = Random(), ref: OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy: PublicKey? = null, issuedBy: PartyAndReference = DUMMY_CASH_ISSUER, issuerKey: KeyPair = DUMMY_CASH_ISSUER_KEY): Vault

    Creates a random set of between (by default) 3 and 10 cash states that add up to the given amount and adds them +fun ServiceHub.fillWithSomeTestCash(howMuch: Amount<Currency>, outputNotary: Party = DUMMY_NOTARY, atLeastThisManyStates: Int = 3, atMostThisManyStates: Int = 10, rng: Random = Random(), ref: OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy: PublicKeyTree? = null, issuedBy: PartyAndReference = DUMMY_CASH_ISSUER, issuerKey: KeyPair = DUMMY_CASH_ISSUER_KEY): Vault

    Creates a random set of between (by default) 3 and 10 cash states that add up to the given amount and adds them to the vault. This is intended for unit tests. The cash is issued by DUMMY_CASH_ISSUER and owned by the legal identity key from the storage service.

    diff --git a/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/invoke-protocol-async.html b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/invoke-protocol-async.html index 417b7f3670..b2999a822d 100644 --- a/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/invoke-protocol-async.html +++ b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/invoke-protocol-async.html @@ -8,7 +8,7 @@

    invokeProtocolAsync

    -open fun <T : Any> invokeProtocolAsync(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): <ERROR CLASS><T>
    +open fun <T : Any> invokeProtocolAsync(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): ProtocolStateMachine<T>
    Overrides ServiceHub.invokeProtocolAsync

    Will check logicType and args against a whitelist and if acceptable then construct and initiate the protocol.

    Exceptions

    diff --git a/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/start-protocol.html b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/start-protocol.html index 102b12aaa1..1fd686f937 100644 --- a/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/start-protocol.html +++ b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/start-protocol.html @@ -8,7 +8,7 @@

    startProtocol

    -abstract fun <T> startProtocol(logic: ProtocolLogic<T>): <ERROR CLASS><T>
    +abstract fun <T> startProtocol(logic: ProtocolLogic<T>): ProtocolStateMachine<T>

    TODO: borrowing this method from service manager work in another branch. Its required to avoid circular dependency between SMM and the scheduler. That particular problem should also be resolved by the service manager work itself, at which point this method would not be needed (by the scheduler).

    diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/index.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/index.html index 2a367d1751..b6650a8b40 100644 --- a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/index.html +++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/index.html @@ -137,12 +137,6 @@ open val certificatesPath: Path - - -rpcUsersFile - -open val rpcUsersFile: Path -

    Functions

    diff --git a/docs/build/html/api/net.corda.node.services.config/-node-configuration/index.html b/docs/build/html/api/net.corda.node.services.config/-node-configuration/index.html index a270454790..0c321ae8e8 100644 --- a/docs/build/html/api/net.corda.node.services.config/-node-configuration/index.html +++ b/docs/build/html/api/net.corda.node.services.config/-node-configuration/index.html @@ -61,12 +61,6 @@ abstract val nearestCity: String - - -rpcUsersFile - -open val rpcUsersFile: Path -

    Inherited Properties

    diff --git a/docs/build/html/api/net.corda.node.services.config/-node-configuration/rpc-users-file.html b/docs/build/html/api/net.corda.node.services.config/-node-configuration/rpc-users-file.html deleted file mode 100644 index dafe19a5d6..0000000000 --- a/docs/build/html/api/net.corda.node.services.config/-node-configuration/rpc-users-file.html +++ /dev/null @@ -1,15 +0,0 @@ - - -NodeConfiguration.rpcUsersFile - - - - -net.corda.node.services.config / NodeConfiguration / rpcUsersFile
    -
    -

    rpcUsersFile

    - -open val rpcUsersFile: Path
    -
    -
    - - diff --git a/docs/build/html/api/net.corda.node.services.config/get-list-or-else.html b/docs/build/html/api/net.corda.node.services.config/get-list-or-else.html new file mode 100644 index 0000000000..823bb7ba27 --- /dev/null +++ b/docs/build/html/api/net.corda.node.services.config/get-list-or-else.html @@ -0,0 +1,15 @@ + + +getListOrElse - + + + +net.corda.node.services.config / getListOrElse
    +
    +

    getListOrElse

    + +inline fun <reified T : Any> <ERROR CLASS>.getListOrElse(path: String, default: <ERROR CLASS>.() -> List<T>): List<T>
    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.services.config/index.html b/docs/build/html/api/net.corda.node.services.config/index.html index b0f6f6b2cb..80c8addb5f 100644 --- a/docs/build/html/api/net.corda.node.services.config/index.html +++ b/docs/build/html/api/net.corda.node.services.config/index.html @@ -62,6 +62,12 @@ the CA certs in Node resources. Then provision KeyStores into certificates folde +getListOrElse + +fun <T : Any> <ERROR CLASS>.getListOrElse(path: String, default: <ERROR CLASS>.() -> List<T>): List<T> + + + getOrElse fun <T> <ERROR CLASS>.getOrElse(lambda: () -> T): OptionalConfig<T> diff --git a/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/index.html b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/index.html index a295aadaec..26d5249d0d 100644 --- a/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/index.html +++ b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/index.html @@ -128,8 +128,8 @@ will do as long as the other side registers with it.

    sendAndReceive -fun <T : Any> sendAndReceive(otherParty: Party, payload: Any): UntrustworthyData<T>
    -fun <T : Any> sendAndReceive(otherParty: Party, payload: Any, receiveType: Class<T>): UntrustworthyData<T> +fun <T : Any> sendAndReceive(otherParty: Party, payload: Any, receiveType: Class<T>): UntrustworthyData<T>
    +fun <T : Any> sendAndReceive(otherParty: Party, payload: Any): UntrustworthyData<T> diff --git a/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/index.html b/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/index.html index 06d6739ed3..8674b62eb6 100644 --- a/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/index.html +++ b/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/index.html @@ -30,7 +30,7 @@ partyFromKey -fun partyFromKey(key: PublicKey): Party? +fun partyFromKey(key: PublicKeyTree): Party? diff --git a/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/party-from-key.html b/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/party-from-key.html index af4474c6fe..a4be067516 100644 --- a/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/party-from-key.html +++ b/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/party-from-key.html @@ -7,8 +7,8 @@ net.corda.node.services.identity / InMemoryIdentityService / partyFromKey

    partyFromKey

    - -fun partyFromKey(key: PublicKey): Party?
    + +fun partyFromKey(key: PublicKeyTree): Party?
    Overrides IdentityService.partyFromKey


    diff --git a/docs/build/html/api/net.corda.node.services.keys/-e2-e-test-key-management-service/index.html b/docs/build/html/api/net.corda.node.services.keys/-e2-e-test-key-management-service/index.html index d542ebff72..9b674dbab5 100644 --- a/docs/build/html/api/net.corda.node.services.keys/-e2-e-test-key-management-service/index.html +++ b/docs/build/html/api/net.corda.node.services.keys/-e2-e-test-key-management-service/index.html @@ -62,7 +62,8 @@ on a separate/firewalled service.

    toKeyPair -open fun toKeyPair(publicKey: PublicKey): KeyPair +open fun toKeyPair(publicKey: PublicKey): KeyPairopen fun toKeyPair(publicKeys: Iterable<PublicKey>): <ERROR CLASS>

    Returns the first KeyPair matching any of the publicKeys

    + diff --git a/docs/build/html/api/net.corda.node.services.keys/-persistent-key-management-service/index.html b/docs/build/html/api/net.corda.node.services.keys/-persistent-key-management-service/index.html index bb050e7532..a06623775f 100644 --- a/docs/build/html/api/net.corda.node.services.keys/-persistent-key-management-service/index.html +++ b/docs/build/html/api/net.corda.node.services.keys/-persistent-key-management-service/index.html @@ -58,7 +58,8 @@ toKeyPair -open fun toKeyPair(publicKey: PublicKey): KeyPair +open fun toKeyPair(publicKey: PublicKey): KeyPairopen fun toKeyPair(publicKeys: Iterable<PublicKey>): <ERROR CLASS>

    Returns the first KeyPair matching any of the publicKeys

    + diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/-init-.html index 2c91cd865c..dd66714c1c 100644 --- a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/-init-.html +++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/-init-.html @@ -7,7 +7,7 @@ net.corda.node.services.messaging / ArtemisMessagingComponent / NodeAddress / <init>

    <init>

    -NodeAddress(identity: PublicKey, hostAndPort: <ERROR CLASS>)
    +NodeAddress(identity: PublicKeyTree, hostAndPort: <ERROR CLASS>)

    This is the class used to implement SingleMessageRecipient, for now. Note that in future this class may change or evolve and code that relies upon it being a simple host/port may not function correctly. For instance it may contain onion routing data.

    diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/identity.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/identity.html index e8870706f0..823a056002 100644 --- a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/identity.html +++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/identity.html @@ -8,7 +8,7 @@

    identity

    -val identity: PublicKey
    +val identity: PublicKeyTree


    diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/index.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/index.html index 5efb0989b7..e38231a943 100644 --- a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/index.html +++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/index.html @@ -20,7 +20,7 @@ For instance it may contain onion routing data.

    <init> -NodeAddress(identity: PublicKey, hostAndPort: <ERROR CLASS>)

    This is the class used to implement SingleMessageRecipient, for now. Note that in future this class +NodeAddress(identity: PublicKeyTree, hostAndPort: <ERROR CLASS>)

    This is the class used to implement SingleMessageRecipient, for now. Note that in future this class may change or evolve and code that relies upon it being a simple host/port may not function correctly. For instance it may contain onion routing data.

    @@ -40,7 +40,7 @@ For instance it may contain onion routing data.

    identity -val identity: PublicKey +val identity: PublicKeyTree diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/index.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/index.html index cbc2a68986..2d365a63bc 100644 --- a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/index.html +++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/index.html @@ -94,7 +94,7 @@ unfortunately Artemis tends to bury the exception when the password is wrong.

    parseKeyFromQueueName -fun parseKeyFromQueueName(name: String): PublicKey +fun parseKeyFromQueueName(name: String): PublicKeyTree diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/parse-key-from-queue-name.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/parse-key-from-queue-name.html index 26e2ef7764..b735f73bc7 100644 --- a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/parse-key-from-queue-name.html +++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/parse-key-from-queue-name.html @@ -8,7 +8,7 @@

    parseKeyFromQueueName

    -protected fun parseKeyFromQueueName(name: String): PublicKey
    +protected fun parseKeyFromQueueName(name: String): PublicKeyTree


    diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/index.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/index.html index 62ed3bf7e5..9a5129cfd9 100644 --- a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/index.html +++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/index.html @@ -121,7 +121,7 @@ unfortunately Artemis tends to bury the exception when the password is wrong.

    parseKeyFromQueueName -fun parseKeyFromQueueName(name: String): PublicKey +fun parseKeyFromQueueName(name: String): PublicKeyTree diff --git a/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/execute-command.html b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/execute-command.html deleted file mode 100644 index 5ddfd68981..0000000000 --- a/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/execute-command.html +++ /dev/null @@ -1,17 +0,0 @@ - - -CordaRPCOps.executeCommand - - - - -net.corda.node.services.messaging / CordaRPCOps / executeCommand
    -
    -

    executeCommand

    - -abstract fun executeCommand(command: ClientToServiceCommand): TransactionBuildResult
    -

    Executes the given command if the user is permissioned to do so, possibly triggering cash creation etc. -TODO: The signature of this is weird because its the remains of an old service call, we should have a call for each command instead.

    -
    -
    - - diff --git a/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/index.html b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/index.html index b1fd6b548d..76ebc005fe 100644 --- a/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/index.html +++ b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/index.html @@ -9,7 +9,7 @@

    CordaRPCOps

    interface CordaRPCOps : RPCOps

    RPC operations that the node exposes to clients using the Java client library. These can be called from -client apps and are implemented by the node in the ServerRPCOps class.

    +client apps and are implemented by the node in the CordaRPCOpsImpl class.



    Inherited Properties

    @@ -35,14 +35,6 @@ client apps and are implemented by the node in the ServerRPCOps -executeCommand - -abstract fun executeCommand(command: ClientToServiceCommand): TransactionBuildResult

    Executes the given command if the user is permissioned to do so, possibly triggering cash creation etc. -TODO: The signature of this is weird because its the remains of an old service call, we should have a call for each command instead.

    - - - - getVaultTransactionNotes abstract fun getVaultTransactionNotes(txnId: SecureHash): Iterable<String> @@ -63,6 +55,14 @@ TODO: The signature of this is weird because its the remains of an old service c +startProtocolDynamic + +abstract fun <T : Any> startProtocolDynamic(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): ProtocolHandle<T>

    Start the given protocol with the given arguments, returning an Observable with a single observation of the +result of running the protocol.

    + + + + stateMachineRecordedTransactionMapping abstract fun stateMachineRecordedTransactionMapping(): <ERROR CLASS><List<StateMachineTransactionMapping>, <ERROR CLASS><StateMachineTransactionMapping>>

    Returns a snapshot list of existing state machine id - recorded transaction hash mappings, and a stream of future @@ -92,6 +92,21 @@ such mappings as well.

    +

    Extension Functions

    + + + + + + + +
    +startProtocol +fun <T : Any, R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: () -> R): <ERROR CLASS>

    These allow type safe invocations of protocols from Kotlin, e.g.:

    +fun <T : Any, A, R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A) -> R, arg0: A): <ERROR CLASS>
    +fun <T : Any, A, B, R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A, B) -> R, arg0: A, arg1: B): <ERROR CLASS>
    +fun <T : Any, A, B, C, R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A, B, C) -> R, arg0: A, arg1: B, arg2: C): <ERROR CLASS>
    +fun <T : Any, A, B, C, D, R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A, B, C, D) -> R, arg0: A, arg1: B, arg2: C, arg3: D): <ERROR CLASS>

    Inheritors

    diff --git a/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/start-protocol-dynamic.html b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/start-protocol-dynamic.html new file mode 100644 index 0000000000..99caf17371 --- /dev/null +++ b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/start-protocol-dynamic.html @@ -0,0 +1,17 @@ + + +CordaRPCOps.startProtocolDynamic - + + + +net.corda.node.services.messaging / CordaRPCOps / startProtocolDynamic
    +
    +

    startProtocolDynamic

    + +@RPCReturnsObservables abstract fun <T : Any> startProtocolDynamic(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): ProtocolHandle<T>
    +

    Start the given protocol with the given arguments, returning an Observable with a single observation of the +result of running the protocol.

    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-init-.html index 75b8f09884..5c072b5ee6 100644 --- a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-init-.html +++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-init-.html @@ -7,7 +7,7 @@ net.corda.node.services.messaging / NodeMessagingClient / <init>

    <init>

    -NodeMessagingClient(config: NodeConfiguration, serverHostPort: <ERROR CLASS>, myIdentity: PublicKey?, executor: AffinityExecutor, database: <ERROR CLASS>)
    +NodeMessagingClient(config: NodeConfiguration, serverHostPort: <ERROR CLASS>, myIdentity: PublicKeyTree?, executor: AffinityExecutor, database: <ERROR CLASS>, networkMapRegistrationFuture: <ERROR CLASS><Unit>)

    This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product. Artemis is a message queue broker and here we run a client connecting to the specified broker instance ArtemisMessagingServer. Its primarily concerned with peer-to-peer messaging.

    diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/index.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/index.html index 7d59eee736..abff68748f 100644 --- a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/index.html +++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/index.html @@ -50,7 +50,7 @@ that this is a NetworkMapService node which will be bound globally to the name " @@ -96,7 +96,13 @@ Artemis is a message queue broker and here we run a client connecting to the spe +val myIdentity: PublicKeyTree? + + + + +fun parseKeyFromQueueName(name: String): PublicKeyTree diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/-init-.html deleted file mode 100644 index 5c9c8aba49..0000000000 --- a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/-init-.html +++ /dev/null @@ -1,16 +0,0 @@ - - -TransactionBuildResult.Failed.<init> - - - - -net.corda.node.services.messaging / TransactionBuildResult / Failed / <init>
    -
    -

    <init>

    -Failed(message: String?)
    -

    State indicating the action undertaken failed, either directly (it is not something which requires a -state machine), or before a state machine was started.

    -
    -
    - - diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/message.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/message.html deleted file mode 100644 index 42185ce30f..0000000000 --- a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/message.html +++ /dev/null @@ -1,15 +0,0 @@ - - -TransactionBuildResult.Failed.message - - - - -net.corda.node.services.messaging / TransactionBuildResult / Failed / message
    -
    -

    message

    - -val message: String?
    -
    -
    - - diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/to-string.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/to-string.html deleted file mode 100644 index 0e26bbdca7..0000000000 --- a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/to-string.html +++ /dev/null @@ -1,15 +0,0 @@ - - -TransactionBuildResult.Failed.toString - - - - -net.corda.node.services.messaging / TransactionBuildResult / Failed / toString
    -
    -

    toString

    - -fun toString(): String
    -
    -
    - - diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/-init-.html deleted file mode 100644 index 5c6c5213b8..0000000000 --- a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/-init-.html +++ /dev/null @@ -1,21 +0,0 @@ - - -TransactionBuildResult.ProtocolStarted.<init> - - - - -net.corda.node.services.messaging / TransactionBuildResult / ProtocolStarted / <init>
    -
    -

    <init>

    -ProtocolStarted(id: StateMachineRunId, transaction: SignedTransaction?, message: String?)
    -

    State indicating that a protocol is managing this request, and that the client should track protocol state machine -updates for further information. The monitor will separately receive notification of the state machine having been -added, as it would any other state machine. This response is used solely to enable the monitor to identify -the state machine (and its progress) as associated with the request.

    -

    Parameters

    - -transaction - the transaction created as a result, in the case where the protocol has completed.
    -
    -
    - - diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/index.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/index.html deleted file mode 100644 index 542f3109f1..0000000000 --- a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/index.html +++ /dev/null @@ -1,70 +0,0 @@ - - -TransactionBuildResult.ProtocolStarted - - - - -net.corda.node.services.messaging / TransactionBuildResult / ProtocolStarted
    -
    -

    ProtocolStarted

    -class ProtocolStarted : TransactionBuildResult
    -

    State indicating that a protocol is managing this request, and that the client should track protocol state machine -updates for further information. The monitor will separately receive notification of the state machine having been -added, as it would any other state machine. This response is used solely to enable the monitor to identify -the state machine (and its progress) as associated with the request.

    -

    Parameters

    - -transaction - the transaction created as a result, in the case where the protocol has completed.
    -
    -
    -

    Constructors

    -
    <init> -NodeMessagingClient(config: NodeConfiguration, serverHostPort: <ERROR CLASS>, myIdentity: PublicKey?, executor: AffinityExecutor, database: <ERROR CLASS>)

    This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product. +NodeMessagingClient(config: NodeConfiguration, serverHostPort: <ERROR CLASS>, myIdentity: PublicKeyTree?, executor: AffinityExecutor, database: <ERROR CLASS>, networkMapRegistrationFuture: <ERROR CLASS><Unit>)

    This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product. Artemis is a message queue broker and here we run a client connecting to the specified broker instance ArtemisMessagingServer. Its primarily concerned with peer-to-peer messaging.

    myIdentity -val myIdentity: PublicKey?
    +networkMapRegistrationFuture +val networkMapRegistrationFuture: <ERROR CLASS><Unit>
    @@ -196,7 +202,7 @@ unfortunately Artemis tends to bury the exception when the password is wrong.

    parseKeyFromQueueName
    -fun parseKeyFromQueueName(name: String): PublicKey
    diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/my-identity.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/my-identity.html index bc063b6e94..62c1cc61da 100644 --- a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/my-identity.html +++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/my-identity.html @@ -8,7 +8,7 @@

    myIdentity

    -val myIdentity: PublicKey?
    +val myIdentity: PublicKeyTree?


    diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/network-map-registration-future.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/network-map-registration-future.html new file mode 100644 index 0000000000..be2ce46a07 --- /dev/null +++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/network-map-registration-future.html @@ -0,0 +1,15 @@ + + +NodeMessagingClient.networkMapRegistrationFuture - + + + +net.corda.node.services.messaging / NodeMessagingClient / networkMapRegistrationFuture
    +
    +

    networkMapRegistrationFuture

    + +val networkMapRegistrationFuture: <ERROR CLASS><Unit>
    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/run.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/run.html index 2c8331fb9e..03591ebf27 100644 --- a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/run.html +++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/run.html @@ -10,6 +10,11 @@ fun run(): Unit

    Starts the p2p event loop: this method only returns once stop has been called.

    +

    This actually runs as two sequential loops. The first subscribes for and receives only network map messages until +we get our network map fetch response. At that point the filtering consumer is closed and we proceed to the second loop and +consume all messages via a new consumer without a filter applied.

    +
    +


    diff --git a/docs/build/html/api/net.corda.node.services.messaging/-protocol-handle/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-protocol-handle/-init-.html new file mode 100644 index 0000000000..9b44a49c38 --- /dev/null +++ b/docs/build/html/api/net.corda.node.services.messaging/-protocol-handle/-init-.html @@ -0,0 +1,14 @@ + + +ProtocolHandle.<init> - + + + +net.corda.node.services.messaging / ProtocolHandle / <init>
    +
    +

    <init>

    +ProtocolHandle(id: StateMachineRunId, progress: <ERROR CLASS><Change>, returnValue: <ERROR CLASS><A>)
    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.services.messaging/-protocol-handle/id.html b/docs/build/html/api/net.corda.node.services.messaging/-protocol-handle/id.html new file mode 100644 index 0000000000..901dbc43db --- /dev/null +++ b/docs/build/html/api/net.corda.node.services.messaging/-protocol-handle/id.html @@ -0,0 +1,15 @@ + + +ProtocolHandle.id - + + + +net.corda.node.services.messaging / ProtocolHandle / id
    +
    +

    id

    + +val id: StateMachineRunId
    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.services.messaging/-protocol-handle/index.html b/docs/build/html/api/net.corda.node.services.messaging/-protocol-handle/index.html new file mode 100644 index 0000000000..233abdf1cc --- /dev/null +++ b/docs/build/html/api/net.corda.node.services.messaging/-protocol-handle/index.html @@ -0,0 +1,48 @@ + + +ProtocolHandle - + + + +net.corda.node.services.messaging / ProtocolHandle
    +
    +

    ProtocolHandle

    +data class ProtocolHandle<A>
    +
    +
    +

    Constructors

    + + + + + + + +
    +<init> +ProtocolHandle(id: StateMachineRunId, progress: <ERROR CLASS><Change>, returnValue: <ERROR CLASS><A>)
    +

    Properties

    + + + + + + + + + + + + + + + +
    +id +val id: StateMachineRunId
    +progress +val progress: <ERROR CLASS><Change>
    +returnValue +val returnValue: <ERROR CLASS><A>
    + + diff --git a/docs/build/html/api/net.corda.node.services.messaging/-protocol-handle/progress.html b/docs/build/html/api/net.corda.node.services.messaging/-protocol-handle/progress.html new file mode 100644 index 0000000000..8c0fc9f8c8 --- /dev/null +++ b/docs/build/html/api/net.corda.node.services.messaging/-protocol-handle/progress.html @@ -0,0 +1,15 @@ + + +ProtocolHandle.progress - + + + +net.corda.node.services.messaging / ProtocolHandle / progress
    +
    +

    progress

    + +val progress: <ERROR CLASS><Change>
    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.services.messaging/-protocol-handle/return-value.html b/docs/build/html/api/net.corda.node.services.messaging/-protocol-handle/return-value.html new file mode 100644 index 0000000000..35dc5ca2f2 --- /dev/null +++ b/docs/build/html/api/net.corda.node.services.messaging/-protocol-handle/return-value.html @@ -0,0 +1,15 @@ + + +ProtocolHandle.returnValue - + + + +net.corda.node.services.messaging / ProtocolHandle / returnValue
    +
    +

    returnValue

    + +val returnValue: <ERROR CLASS><A>
    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-ops/index.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-ops/index.html index c6679f0172..445cc109a7 100644 --- a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-ops/index.html +++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-ops/index.html @@ -32,7 +32,7 @@ interface is here in case we split the RPC system out into a separate library on CordaRPCOps
    interface CordaRPCOps : RPCOps

    RPC operations that the node exposes to clients using the Java client library. These can be called from -client apps and are implemented by the node in the ServerRPCOps class.

    +client apps and are implemented by the node in the CordaRPCOpsImpl class.

    - - - - - - -
    -<init> -ProtocolStarted(id: StateMachineRunId, transaction: SignedTransaction?, message: String?)

    State indicating that a protocol is managing this request, and that the client should track protocol state machine -updates for further information. The monitor will separately receive notification of the state machine having been -added, as it would any other state machine. This response is used solely to enable the monitor to identify -the state machine (and its progress) as associated with the request.

    -
    -

    Properties

    - - - - - - - - - - - - - - - -
    -id -val id: StateMachineRunId
    -message -val message: String?
    -transaction -val transaction: SignedTransaction?
    -

    Functions

    - - - - - - - -
    -toString -fun toString(): String
    - - diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/message.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/message.html deleted file mode 100644 index 1b0238aaec..0000000000 --- a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/message.html +++ /dev/null @@ -1,15 +0,0 @@ - - -TransactionBuildResult.ProtocolStarted.message - - - - -net.corda.node.services.messaging / TransactionBuildResult / ProtocolStarted / message
    -
    -

    message

    - -val message: String?
    -
    -
    - - diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/to-string.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/to-string.html deleted file mode 100644 index cae026e204..0000000000 --- a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/to-string.html +++ /dev/null @@ -1,15 +0,0 @@ - - -TransactionBuildResult.ProtocolStarted.toString - - - - -net.corda.node.services.messaging / TransactionBuildResult / ProtocolStarted / toString
    -
    -

    toString

    - -fun toString(): String
    -
    -
    - - diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/index.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/index.html deleted file mode 100644 index 5f78231fa7..0000000000 --- a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/index.html +++ /dev/null @@ -1,60 +0,0 @@ - - -TransactionBuildResult - - - - -net.corda.node.services.messaging / TransactionBuildResult
    -
    -

    TransactionBuildResult

    -sealed class TransactionBuildResult
    -
    -
    -

    Types

    - - - - - - - - - - - -
    -Failed -class Failed : TransactionBuildResult

    State indicating the action undertaken failed, either directly (it is not something which requires a -state machine), or before a state machine was started.

    -
    -ProtocolStarted -class ProtocolStarted : TransactionBuildResult

    State indicating that a protocol is managing this request, and that the client should track protocol state machine -updates for further information. The monitor will separately receive notification of the state machine having been -added, as it would any other state machine. This response is used solely to enable the monitor to identify -the state machine (and its progress) as associated with the request.

    -
    -

    Inheritors

    - - - - - - - - - - - -
    -Failed -class Failed : TransactionBuildResult

    State indicating the action undertaken failed, either directly (it is not something which requires a -state machine), or before a state machine was started.

    -
    -ProtocolStarted -class ProtocolStarted : TransactionBuildResult

    State indicating that a protocol is managing this request, and that the client should track protocol state machine -updates for further information. The monitor will separately receive notification of the state machine having been -added, as it would any other state machine. This response is used solely to enable the monitor to identify -the state machine (and its progress) as associated with the request.

    -
    - - diff --git a/docs/build/html/api/net.corda.node.services.messaging/index.html b/docs/build/html/api/net.corda.node.services.messaging/index.html index df5f251573..3a9465c5eb 100644 --- a/docs/build/html/api/net.corda.node.services.messaging/index.html +++ b/docs/build/html/api/net.corda.node.services.messaging/index.html @@ -36,7 +36,7 @@ CordaRPCOps interface CordaRPCOps : RPCOps

    RPC operations that the node exposes to clients using the Java client library. These can be called from -client apps and are implemented by the node in the ServerRPCOps class.

    +client apps and are implemented by the node in the CordaRPCOpsImpl class.

    @@ -57,6 +57,12 @@ Artemis is a message queue broker and here we run a client connecting to the spe +ProtocolHandle + +data class ProtocolHandle<A> + + + RPCDispatcher abstract class RPCDispatcher

    Intended to service transient clients only (not p2p nodes) for short-lived, transient request/response pairs. @@ -85,12 +91,6 @@ interface is here in case we split the RPC system out into a separate library on sealed class StateMachineUpdate - - -TransactionBuildResult - -sealed class TransactionBuildResult -

    Annotations

    @@ -169,6 +169,16 @@ permissions theyre entitled to which can be used to control access.

    fun requirePermission(permission: String): Unit

    Helper method which checks that the current RPC user is entitled for the given permission. Throws a PermissionException otherwise.

    + + +startProtocol + +fun <T : Any, R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: () -> R): <ERROR CLASS>

    These allow type safe invocations of protocols from Kotlin, e.g.:

    +fun <T : Any, A, R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A) -> R, arg0: A): <ERROR CLASS>
    +fun <T : Any, A, B, R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A, B) -> R, arg0: A, arg1: B): <ERROR CLASS>
    +fun <T : Any, A, B, C, R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A, B, C) -> R, arg0: A, arg1: B, arg2: C): <ERROR CLASS>
    +fun <T : Any, A, B, C, D, R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A, B, C, D) -> R, arg0: A, arg1: B, arg2: C, arg3: D): <ERROR CLASS> + diff --git a/docs/build/html/api/net.corda.node.services.messaging/start-protocol.html b/docs/build/html/api/net.corda.node.services.messaging/start-protocol.html new file mode 100644 index 0000000000..b2bcf42f0a --- /dev/null +++ b/docs/build/html/api/net.corda.node.services.messaging/start-protocol.html @@ -0,0 +1,32 @@ + + +startProtocol - + + + +net.corda.node.services.messaging / startProtocol
    +
    +

    startProtocol

    + +inline fun <T : Any, reified R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: () -> R): <ERROR CLASS>
    +

    These allow type safe invocations of protocols from Kotlin, e.g.:

    +

    val rpc: CordaRPCOps = (..) +rpc.startProtocol(::ResolveTransactionsProtocol, setOf(), aliceIdentity)

    +

    Note that the passed in constructor function is only used for unification of other type parameters and reification of +the Class instance of the protocol. This could be changed to use the constructor function directly.

    +
    +
    +
    +
    + +inline fun <T : Any, A, reified R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A) -> R, arg0: A): <ERROR CLASS>
    + +inline fun <T : Any, A, B, reified R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A, B) -> R, arg0: A, arg1: B): <ERROR CLASS>
    + +inline fun <T : Any, A, B, C, reified R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A, B, C) -> R, arg0: A, arg1: B, arg2: C): <ERROR CLASS>
    + +inline fun <T : Any, A, B, C, D, reified R : ProtocolLogic<T>> CordaRPCOps.startProtocol(protocolConstructor: (A, B, C, D) -> R, arg0: A, arg1: B, arg2: C, arg3: D): <ERROR CLASS>
    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/-init-.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/-init-.html index 1d8597f15f..664c84ae2f 100644 --- a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/-init-.html +++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/-init-.html @@ -9,6 +9,9 @@

    <init>

    InMemoryNetworkMapCache()

    Extremely simple in-memory cache of the network map.

    +

    TODO: some method implementations can be moved up to NetworkMapCache

    +
    +


    diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-any-notary.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-any-notary.html new file mode 100644 index 0000000000..f50cd2b70a --- /dev/null +++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-any-notary.html @@ -0,0 +1,20 @@ + + +InMemoryNetworkMapCache.getAnyNotary - + + + +net.corda.node.services.network / InMemoryNetworkMapCache / getAnyNotary
    +
    +

    getAnyNotary

    + +open fun getAnyNotary(type: ServiceType?): Party?
    +Overrides NetworkMapCache.getAnyNotary
    +

    Returns a notary identity advertised by any of the nodes on the network (chosen at random)

    +

    Parameters

    + +type - Limits the result to notaries of the specified type (optional)
    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-node-by-public-key-tree.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-node-by-public-key-tree.html new file mode 100644 index 0000000000..75d8ae6a07 --- /dev/null +++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-node-by-public-key-tree.html @@ -0,0 +1,17 @@ + + +InMemoryNetworkMapCache.getNodeByPublicKeyTree - + + + +net.corda.node.services.network / InMemoryNetworkMapCache / getNodeByPublicKeyTree
    +
    +

    getNodeByPublicKeyTree

    + +open fun getNodeByPublicKeyTree(publicKeyTree: PublicKeyTree): NodeInfo?
    +Overrides NetworkMapCache.getNodeByPublicKeyTree
    +

    Look up the node info for a public key tree.

    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-node-by-public-key.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-node-by-public-key.html deleted file mode 100644 index fee34234b9..0000000000 --- a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-node-by-public-key.html +++ /dev/null @@ -1,17 +0,0 @@ - - -InMemoryNetworkMapCache.getNodeByPublicKey - - - - -net.corda.node.services.network / InMemoryNetworkMapCache / getNodeByPublicKey
    -
    -

    getNodeByPublicKey

    - -open fun getNodeByPublicKey(publicKey: PublicKey): NodeInfo?
    -Overrides NetworkMapCache.getNodeByPublicKey
    -

    Look up the node info for a public key.

    -
    -
    - - diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-notary.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-notary.html new file mode 100644 index 0000000000..da93f3ba80 --- /dev/null +++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-notary.html @@ -0,0 +1,17 @@ + + +InMemoryNetworkMapCache.getNotary - + + + +net.corda.node.services.network / InMemoryNetworkMapCache / getNotary
    +
    +

    getNotary

    + +open fun getNotary(name: String): Party?
    +Overrides NetworkMapCache.getNotary
    +

    Gets a notary identity by the given name.

    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-representative-node.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-representative-node.html new file mode 100644 index 0000000000..b87d4af5b6 --- /dev/null +++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-representative-node.html @@ -0,0 +1,25 @@ + + +InMemoryNetworkMapCache.getRepresentativeNode - + + + +net.corda.node.services.network / InMemoryNetworkMapCache / getRepresentativeNode
    +
    +

    getRepresentativeNode

    + +open fun getRepresentativeNode(party: Party): NodeInfo?
    +Overrides NetworkMapCache.getRepresentativeNode
    +

    Given a party, returns a node advertising it as an identity. If more than one node found the result +is chosen at random.

    +

    In general, nodes can advertise multiple identities: a legal identity, and separate identities for each of +the services it provides. In case of a distributed service – run by multiple nodes – each participant advertises +the identity of the whole group. If the provided party is a group identity, multiple nodes advertising it +will be found, and this method will return a randomly chosen one. If party is an individual (legal) identity, +we currently assume that it will be advertised by one node only, which will be returned as the result.

    +
    +
    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/index.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/index.html index 03f868015e..8e1a4f63cf 100644 --- a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/index.html +++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/index.html @@ -9,6 +9,9 @@

    InMemoryNetworkMapCache

    open class InMemoryNetworkMapCache : SingletonSerializeAsToken, NetworkMapCache

    Extremely simple in-memory cache of the network map.

    +

    TODO: some method implementations can be moved up to NetworkMapCache

    +
    +


    Constructors

    @@ -113,6 +116,13 @@ updates.

    +getAnyNotary + +open fun getAnyNotary(type: ServiceType?): Party?

    Returns a notary identity advertised by any of the nodes on the network (chosen at random)

    + + + + getNodeByLegalName open fun getNodeByLegalName(name: String): <ERROR CLASS>

    Look up the node info for a legal name.

    @@ -120,9 +130,16 @@ updates.

    -getNodeByPublicKey +getNodeByPublicKeyTree -open fun getNodeByPublicKey(publicKey: PublicKey): NodeInfo?

    Look up the node info for a public key.

    +open fun getNodeByPublicKeyTree(publicKeyTree: PublicKeyTree): NodeInfo?

    Look up the node info for a public key tree.

    + + + + +getNotary + +open fun getNotary(name: String): Party?

    Gets a notary identity by the given name.

    @@ -136,6 +153,21 @@ or the appropriate oracle for a contract.

    +getRepresentativeNode + +open fun getRepresentativeNode(party: Party): NodeInfo?

    Given a party, returns a node advertising it as an identity. If more than one node found the result +is chosen at random.

    + + + + +isNotary + +open fun isNotary(party: Party): <ERROR CLASS>

    Checks whether a given party is an advertised notary identity

    + + + + processUpdatePush fun processUpdatePush(req: Update): Unit diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/is-notary.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/is-notary.html new file mode 100644 index 0000000000..028773d1c9 --- /dev/null +++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/is-notary.html @@ -0,0 +1,17 @@ + + +InMemoryNetworkMapCache.isNotary - + + + +net.corda.node.services.network / InMemoryNetworkMapCache / isNotary
    +
    +

    isNotary

    + +open fun isNotary(party: Party): <ERROR CLASS>
    +Overrides NetworkMapCache.isNotary
    +

    Checks whether a given party is an advertised notary identity

    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/generate-spend.html b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/generate-spend.html index 9ce6bbd69e..8a0e0457ea 100644 --- a/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/generate-spend.html +++ b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/generate-spend.html @@ -7,8 +7,8 @@ net.corda.node.services.vault / NodeVaultService / generateSpend

    generateSpend

    - -fun generateSpend(tx: TransactionBuilder, amount: Amount<Currency>, to: PublicKey, onlyFromParties: Set<Party>?): <ERROR CLASS><TransactionBuilder, List<PublicKey>>
    + +fun generateSpend(tx: TransactionBuilder, amount: Amount<Currency>, to: PublicKeyTree, onlyFromParties: Set<Party>?): <ERROR CLASS><TransactionBuilder, List<PublicKeyTree>>
    Overrides VaultService.generateSpend

    Generate a transaction that moves an amount of currency to the given pubkey.

    Parameters

    diff --git a/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/index.html b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/index.html index c1105b6e98..159d7eb174 100644 --- a/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/index.html +++ b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/index.html @@ -90,7 +90,7 @@ using a semi-colon separator

    generateSpend -fun generateSpend(tx: TransactionBuilder, amount: Amount<Currency>, to: PublicKey, onlyFromParties: Set<Party>?): <ERROR CLASS><TransactionBuilder, List<PublicKey>>

    Generate a transaction that moves an amount of currency to the given pubkey.

    +fun generateSpend(tx: TransactionBuilder, amount: Amount<Currency>, to: PublicKeyTree, onlyFromParties: Set<Party>?): <ERROR CLASS><TransactionBuilder, List<PublicKeyTree>>

    Generate a transaction that moves an amount of currency to the given pubkey.

    diff --git a/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/-init-.html b/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/-init-.html deleted file mode 100644 index 40ec79188e..0000000000 --- a/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/-init-.html +++ /dev/null @@ -1,14 +0,0 @@ - - -PropertiesFileRPCUserService.<init> - - - - -net.corda.node.services / PropertiesFileRPCUserService / <init>
    -
    -

    <init>

    -PropertiesFileRPCUserService(file: Path)
    -
    -
    - - diff --git a/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/get-user.html b/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/get-user.html deleted file mode 100644 index 91cf7ea2a5..0000000000 --- a/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/get-user.html +++ /dev/null @@ -1,16 +0,0 @@ - - -PropertiesFileRPCUserService.getUser - - - - -net.corda.node.services / PropertiesFileRPCUserService / getUser
    -
    -

    getUser

    - -fun getUser(usename: String): User?
    -Overrides RPCUserService.getUser
    -
    -
    - - diff --git a/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/index.html b/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/index.html deleted file mode 100644 index a7e9439717..0000000000 --- a/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/index.html +++ /dev/null @@ -1,47 +0,0 @@ - - -PropertiesFileRPCUserService - - - - -net.corda.node.services / PropertiesFileRPCUserService
    -
    -

    PropertiesFileRPCUserService

    -class PropertiesFileRPCUserService : RPCUserService
    -
    -
    -

    Constructors

    - - - - - - - -
    -<init> -PropertiesFileRPCUserService(file: Path)
    -

    Properties

    - - - - - - - -
    -users -val users: List<User>
    -

    Functions

    - - - - - - - -
    -getUser -fun getUser(usename: String): User?
    - - diff --git a/docs/build/html/api/net.corda.node.services/-r-p-c-user-service-impl/-init-.html b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service-impl/-init-.html new file mode 100644 index 0000000000..47639e2203 --- /dev/null +++ b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service-impl/-init-.html @@ -0,0 +1,14 @@ + + +RPCUserServiceImpl.<init> - + + + +net.corda.node.services / RPCUserServiceImpl / <init>
    +
    +

    <init>

    +RPCUserServiceImpl(config: <ERROR CLASS>)
    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.services/-r-p-c-user-service-impl/get-user.html b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service-impl/get-user.html new file mode 100644 index 0000000000..1ba5350540 --- /dev/null +++ b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service-impl/get-user.html @@ -0,0 +1,16 @@ + + +RPCUserServiceImpl.getUser - + + + +net.corda.node.services / RPCUserServiceImpl / getUser
    +
    +

    getUser

    + +fun getUser(username: String): User?
    +Overrides RPCUserService.getUser
    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.services/-r-p-c-user-service-impl/index.html b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service-impl/index.html new file mode 100644 index 0000000000..3c3f8590d6 --- /dev/null +++ b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service-impl/index.html @@ -0,0 +1,47 @@ + + +RPCUserServiceImpl - + + + +net.corda.node.services / RPCUserServiceImpl
    +
    +

    RPCUserServiceImpl

    +class RPCUserServiceImpl : RPCUserService
    +
    +
    +

    Constructors

    + + + + + + + +
    +<init> +RPCUserServiceImpl(config: <ERROR CLASS>)
    +

    Properties

    + + + + + + + +
    +users +val users: List<User>
    +

    Functions

    + + + + + + + +
    +getUser +fun getUser(username: String): User?
    + + diff --git a/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/users.html b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service-impl/users.html similarity index 71% rename from docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/users.html rename to docs/build/html/api/net.corda.node.services/-r-p-c-user-service-impl/users.html index 04b841c186..271a8283b8 100644 --- a/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/users.html +++ b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service-impl/users.html @@ -1,13 +1,13 @@ -PropertiesFileRPCUserService.users - +RPCUserServiceImpl.users - -net.corda.node.services / PropertiesFileRPCUserService / users
    +net.corda.node.services / RPCUserServiceImpl / users

    users

    - + val users: List<User>
    Overrides RPCUserService.users

    diff --git a/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/get-user.html b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/get-user.html index 39fee58d19..ee42f137c6 100644 --- a/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/get-user.html +++ b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/get-user.html @@ -8,7 +8,7 @@

    getUser

    -abstract fun getUser(usename: String): User?
    +abstract fun getUser(username: String): User?


    diff --git a/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/index.html b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/index.html index 2e042df7da..2fb36ee432 100644 --- a/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/index.html +++ b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/index.html @@ -31,7 +31,7 @@ to. These permissions are represented as Strings to allow RPC im getUser -abstract fun getUser(usename: String): User? +abstract fun getUser(username: String): User? @@ -40,9 +40,9 @@ to. These permissions are represented as Strings to allow RPC im -PropertiesFileRPCUserService +RPCUserServiceImpl -class PropertiesFileRPCUserService : RPCUserService +class RPCUserServiceImpl : RPCUserService diff --git a/docs/build/html/api/net.corda.node.services/index.html b/docs/build/html/api/net.corda.node.services/index.html index ee35548085..1dd24b36d6 100644 --- a/docs/build/html/api/net.corda.node.services/index.html +++ b/docs/build/html/api/net.corda.node.services/index.html @@ -18,12 +18,6 @@ -PropertiesFileRPCUserService - -class PropertiesFileRPCUserService : RPCUserService - - - RPCUserService interface RPCUserService

    Service for retrieving User objects representing RPC users who are authorised to use the RPC system. A User @@ -33,11 +27,29 @@ to. These permissions are represented as Strings to allow RPC im +RPCUserServiceImpl + +class RPCUserServiceImpl : RPCUserService + + + User data class User +

    Functions

    + + + + + + + +
    +startProtocolPermission +fun <P : ProtocolLogic<*>> startProtocolPermission(clazz: Class<P>): String
    +fun <P : ProtocolLogic<*>> startProtocolPermission(): String
    diff --git a/docs/build/html/api/net.corda.node.services/start-protocol-permission.html b/docs/build/html/api/net.corda.node.services/start-protocol-permission.html new file mode 100644 index 0000000000..5f125ed64b --- /dev/null +++ b/docs/build/html/api/net.corda.node.services/start-protocol-permission.html @@ -0,0 +1,17 @@ + + +startProtocolPermission - + + + +net.corda.node.services / startProtocolPermission
    +
    +

    startProtocolPermission

    + +fun <P : ProtocolLogic<*>> startProtocolPermission(clazz: Class<P>): String
    + +inline fun <reified P : ProtocolLogic<*>> startProtocolPermission(): String
    +
    +
    + + diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/-init-.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/-init-.html index 9063f06485..c942d3dd1a 100644 --- a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/-init-.html +++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/-init-.html @@ -7,7 +7,7 @@ net.corda.node.utilities / AbstractJDBCHashMap / <init>

    <init>

    -AbstractJDBCHashMap(table: T, loadOnInit: Boolean = false)
    +AbstractJDBCHashMap(table: T, loadOnInit: Boolean = false, maxBuckets: Int = 256)

    A base class for a JDBC table backed hash map that iterates in insertion order by using an ever increasing sequence number on entries. Iterators supports remove() but entries are not really mutable and do not support setValue() method from MutableMap.MutableEntry.

    @@ -17,16 +17,19 @@ would be necessary if you do this.

    Subclasses must provide their own mapping to and from keys/values and the database table columns, but there are inherited columns that all tables must provide to support iteration order and hashing.

    The map operates in one of two modes.

    -
    1. loadOnInit=true where the entire table is materialised in the JVM and only writes need to perform database access.

      -
    2. loadOnInit=false where all entries with the same key hash code are materialised in the JVM on demand when accessed -via any method other than via keys/values/entries properties, and thus the whole map is not materialised.

      +
      1. loadOnInit=true where the entire table is loaded into memory in the constructor and all entries remain in memory, +with only writes needing to perform database access.

        +
      2. loadOnInit=false where all entries with the same key hash code are loaded from the database on demand when accessed +via any method other than via keys/values/entries properties, and thus the whole map is not loaded into memory. The number +of entries retained in memory is controlled indirectly by an LRU algorithm (courtesy of LinkedHashMap) and a maximum +number of hash "buckets", where one bucket represents all entries with the same hash code. There is a default value +for maximum buckets.

      All operations require a databaseTransaction to be started.

      The keys/values/entries collections are really designed just for iterating and other uses might turn out to be costly in terms of performance. Beware when loadOnInit=true, the iterator first sorts the entries which could be costly too.

      This class is not thread safe.

      -

      TODO: buckets grows forever. Support some form of LRU cache option (e.g. use LinkedHashMap.removeEldestEntry feature). -TODO: consider caching size once calculated for the first time. +

      TODO: consider caching size once calculated for the first time. TODO: buckets just use a list and so are vulnerable to poor hash code implementations with collisions. TODO: if iterators are used extensively when loadOnInit=true, consider maintaining a collection of keys in iteration order to avoid sorting each time. TODO: revisit whether we need the loadOnInit==true functionality and remove if not.

      diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/index.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/index.html index 6420c7aba2..2dd912277d 100644 --- a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/index.html +++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/index.html @@ -17,16 +17,19 @@ would be necessary if you do this.

      Subclasses must provide their own mapping to and from keys/values and the database table columns, but there are inherited columns that all tables must provide to support iteration order and hashing.

      The map operates in one of two modes.

      -
      1. loadOnInit=true where the entire table is materialised in the JVM and only writes need to perform database access.

        -
      2. loadOnInit=false where all entries with the same key hash code are materialised in the JVM on demand when accessed -via any method other than via keys/values/entries properties, and thus the whole map is not materialised.

        +
        1. loadOnInit=true where the entire table is loaded into memory in the constructor and all entries remain in memory, +with only writes needing to perform database access.

          +
        2. loadOnInit=false where all entries with the same key hash code are loaded from the database on demand when accessed +via any method other than via keys/values/entries properties, and thus the whole map is not loaded into memory. The number +of entries retained in memory is controlled indirectly by an LRU algorithm (courtesy of LinkedHashMap) and a maximum +number of hash "buckets", where one bucket represents all entries with the same hash code. There is a default value +for maximum buckets.

        All operations require a databaseTransaction to be started.

        The keys/values/entries collections are really designed just for iterating and other uses might turn out to be costly in terms of performance. Beware when loadOnInit=true, the iterator first sorts the entries which could be costly too.

        This class is not thread safe.

        -

        TODO: buckets grows forever. Support some form of LRU cache option (e.g. use LinkedHashMap.removeEldestEntry feature). -TODO: consider caching size once calculated for the first time. +

        TODO: consider caching size once calculated for the first time. TODO: buckets just use a list and so are vulnerable to poor hash code implementations with collisions. TODO: if iterators are used extensively when loadOnInit=true, consider maintaining a collection of keys in iteration order to avoid sorting each time. TODO: revisit whether we need the loadOnInit==true functionality and remove if not.

        @@ -41,7 +44,7 @@ TODO: revisit whether we need the loadOnInit==true functionality and remove if n <init> -AbstractJDBCHashMap(table: T, loadOnInit: Boolean = false)

        A base class for a JDBC table backed hash map that iterates in insertion order by using +AbstractJDBCHashMap(table: T, loadOnInit: Boolean = false, maxBuckets: Int = 256)

        A base class for a JDBC table backed hash map that iterates in insertion order by using an ever increasing sequence number on entries. Iterators supports remove() but entries are not really mutable and do not support setValue() method from MutableMap.MutableEntry.

        @@ -71,6 +74,12 @@ do not support setValue() method from MutableMap.MutableEntry. +maxBuckets + +val maxBuckets: Int + + + size open val size: Int diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/max-buckets.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/max-buckets.html new file mode 100644 index 0000000000..287ca02019 --- /dev/null +++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/max-buckets.html @@ -0,0 +1,15 @@ + + +AbstractJDBCHashMap.maxBuckets - + + + +net.corda.node.utilities / AbstractJDBCHashMap / maxBuckets
        +
        +

        maxBuckets

        + +val maxBuckets: Int
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/-init-.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/-init-.html index ea88094f78..0ba38b2057 100644 --- a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/-init-.html +++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/-init-.html @@ -7,7 +7,7 @@ net.corda.node.utilities / AbstractJDBCHashSet / <init>

        <init>

        -AbstractJDBCHashSet(table: T, loadOnInit: Boolean = false)
        +AbstractJDBCHashSet(table: T, loadOnInit: Boolean = false, maxBuckets: Int = 256)

        Base class for JDBC backed hash set that delegates to a JDBC backed hash map where the values are all Unit and not actually persisted. Iteration order is order of insertion. Iterators can remove().

        See AbstractJDBCHashMap for implementation details.

        diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/index.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/index.html index d281b1ecb2..014eaa6bce 100644 --- a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/index.html +++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/index.html @@ -22,7 +22,7 @@ <init> -AbstractJDBCHashSet(table: T, loadOnInit: Boolean = false)

        Base class for JDBC backed hash set that delegates to a JDBC backed hash map where the values are all +AbstractJDBCHashSet(table: T, loadOnInit: Boolean = false, maxBuckets: Int = 256)

        Base class for JDBC backed hash set that delegates to a JDBC backed hash map where the values are all Unit and not actually persisted. Iteration order is order of insertion. Iterators can remove().

        diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-init-.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-init-.html index 11efdb2efc..2cd712c4fd 100644 --- a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-init-.html +++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-init-.html @@ -7,7 +7,7 @@ net.corda.node.utilities / JDBCHashMap / <init>

        <init>

        -JDBCHashMap(tableName: String, loadOnInit: Boolean = false)
        +JDBCHashMap(tableName: String, loadOnInit: Boolean = false, maxBuckets: Int = 256)

        A convenient JDBC table backed hash map with iteration order based on insertion order. See AbstractJDBCHashMap for further implementation details.

        In this subclass, keys and values are represented by Blobs of Kryo serialized forms of the key and value objects. diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/index.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/index.html index 930e41290c..3666038eb3 100644 --- a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/index.html +++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/index.html @@ -35,7 +35,7 @@ likely preferrable.

        <init> -JDBCHashMap(tableName: String, loadOnInit: Boolean = false)

        A convenient JDBC table backed hash map with iteration order based on insertion order. +JDBCHashMap(tableName: String, loadOnInit: Boolean = false, maxBuckets: Int = 256)

        A convenient JDBC table backed hash map with iteration order based on insertion order. See AbstractJDBCHashMap for further implementation details.

        @@ -64,6 +64,12 @@ See AbstractJDBCHashMap f +maxBuckets + +val maxBuckets: Int + + + size open val size: Int diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/-init-.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/-init-.html index 38dae23856..af0f169c9c 100644 --- a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/-init-.html +++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/-init-.html @@ -7,7 +7,7 @@ net.corda.node.utilities / JDBCHashSet / <init>

        <init>

        -JDBCHashSet(tableName: String, loadOnInit: Boolean = false)
        +JDBCHashSet(tableName: String, loadOnInit: Boolean = false, maxBuckets: Int = 256)

        A convenient JDBC table backed hash set with iteration order based on insertion order. See AbstractJDBCHashSet and AbstractJDBCHashMap for further implementation details.

        In this subclass, elements are represented by Blobs of Kryo serialized forms of the element objects. diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/index.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/index.html index f5db2a3734..ee0e4d5f9d 100644 --- a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/index.html +++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/index.html @@ -35,7 +35,7 @@ likely preferrable.

        <init> -JDBCHashSet(tableName: String, loadOnInit: Boolean = false)

        A convenient JDBC table backed hash set with iteration order based on insertion order. +JDBCHashSet(tableName: String, loadOnInit: Boolean = false, maxBuckets: Int = 256)

        A convenient JDBC table backed hash set with iteration order based on insertion order. See AbstractJDBCHashSet and AbstractJDBCHashMap for further implementation details.

        diff --git a/docs/build/html/api/net.corda.node.utilities/-party-columns/-init-.html b/docs/build/html/api/net.corda.node.utilities/-party-columns/-init-.html index dbfc48165f..c3ad69e09d 100644 --- a/docs/build/html/api/net.corda.node.utilities/-party-columns/-init-.html +++ b/docs/build/html/api/net.corda.node.utilities/-party-columns/-init-.html @@ -7,7 +7,7 @@ net.corda.node.utilities / PartyColumns / <init>

        <init>

        -PartyColumns(name: <ERROR CLASS><String>, owningKey: <ERROR CLASS><PublicKey>)
        +PartyColumns(name: <ERROR CLASS><String>, owningKey: <ERROR CLASS><PublicKeyTree>)


        diff --git a/docs/build/html/api/net.corda.node.utilities/-party-columns/index.html b/docs/build/html/api/net.corda.node.utilities/-party-columns/index.html index 8f66be42bb..87ffff1aa5 100644 --- a/docs/build/html/api/net.corda.node.utilities/-party-columns/index.html +++ b/docs/build/html/api/net.corda.node.utilities/-party-columns/index.html @@ -17,7 +17,7 @@ <init> -PartyColumns(name: <ERROR CLASS><String>, owningKey: <ERROR CLASS><PublicKey>) +PartyColumns(name: <ERROR CLASS><String>, owningKey: <ERROR CLASS><PublicKeyTree>) @@ -34,7 +34,7 @@ owningKey -val owningKey: <ERROR CLASS><PublicKey> +val owningKey: <ERROR CLASS><PublicKeyTree> diff --git a/docs/build/html/api/net.corda.node.utilities/-party-columns/owning-key.html b/docs/build/html/api/net.corda.node.utilities/-party-columns/owning-key.html index ccc44f03be..014edee455 100644 --- a/docs/build/html/api/net.corda.node.utilities/-party-columns/owning-key.html +++ b/docs/build/html/api/net.corda.node.utilities/-party-columns/owning-key.html @@ -8,7 +8,7 @@

        owningKey

        -val owningKey: <ERROR CLASS><PublicKey>
        +val owningKey: <ERROR CLASS><PublicKeyTree>


        diff --git a/docs/build/html/api/net.corda.node.utilities/-public-key-tree-column-type/index.html b/docs/build/html/api/net.corda.node.utilities/-public-key-tree-column-type/index.html new file mode 100644 index 0000000000..da25d09305 --- /dev/null +++ b/docs/build/html/api/net.corda.node.utilities/-public-key-tree-column-type/index.html @@ -0,0 +1,38 @@ + + +PublicKeyTreeColumnType - + + + +net.corda.node.utilities / PublicKeyTreeColumnType
        +
        +

        PublicKeyTreeColumnType

        +object PublicKeyTreeColumnType
        +

        ColumnType for marshalling to/from database on behalf of PublicKeyTree.

        +
        +
        +

        Functions

        + + + + + + + + + + + + + + + +
        +notNullValueToDB +fun notNullValueToDB(value: Any): Any
        +sqlType +fun sqlType(): String
        +valueFromDB +fun valueFromDB(value: Any): Any
        + + diff --git a/docs/build/html/api/net.corda.node.utilities/-public-key-tree-column-type/not-null-value-to-d-b.html b/docs/build/html/api/net.corda.node.utilities/-public-key-tree-column-type/not-null-value-to-d-b.html new file mode 100644 index 0000000000..8f7aec50e2 --- /dev/null +++ b/docs/build/html/api/net.corda.node.utilities/-public-key-tree-column-type/not-null-value-to-d-b.html @@ -0,0 +1,15 @@ + + +PublicKeyTreeColumnType.notNullValueToDB - + + + +net.corda.node.utilities / PublicKeyTreeColumnType / notNullValueToDB
        +
        +

        notNullValueToDB

        + +fun notNullValueToDB(value: Any): Any
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.node.utilities/-public-key-tree-column-type/sql-type.html b/docs/build/html/api/net.corda.node.utilities/-public-key-tree-column-type/sql-type.html new file mode 100644 index 0000000000..1c453f6d3b --- /dev/null +++ b/docs/build/html/api/net.corda.node.utilities/-public-key-tree-column-type/sql-type.html @@ -0,0 +1,15 @@ + + +PublicKeyTreeColumnType.sqlType - + + + +net.corda.node.utilities / PublicKeyTreeColumnType / sqlType
        +
        +

        sqlType

        + +fun sqlType(): String
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.node.utilities/-public-key-tree-column-type/value-from-d-b.html b/docs/build/html/api/net.corda.node.utilities/-public-key-tree-column-type/value-from-d-b.html new file mode 100644 index 0000000000..112a43cca8 --- /dev/null +++ b/docs/build/html/api/net.corda.node.utilities/-public-key-tree-column-type/value-from-d-b.html @@ -0,0 +1,15 @@ + + +PublicKeyTreeColumnType.valueFromDB - + + + +net.corda.node.utilities / PublicKeyTreeColumnType / valueFromDB
        +
        +

        valueFromDB

        + +fun valueFromDB(value: Any): Any
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.node.utilities/-txn-note-columns/-init-.html b/docs/build/html/api/net.corda.node.utilities/-txn-note-columns/-init-.html new file mode 100644 index 0000000000..fb7aa1a5b1 --- /dev/null +++ b/docs/build/html/api/net.corda.node.utilities/-txn-note-columns/-init-.html @@ -0,0 +1,14 @@ + + +TxnNoteColumns.<init> - + + + +net.corda.node.utilities / TxnNoteColumns / <init>
        +
        +

        <init>

        +TxnNoteColumns(txId: <ERROR CLASS><SecureHash>, note: <ERROR CLASS><String>)
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.node.utilities/-txn-note-columns/index.html b/docs/build/html/api/net.corda.node.utilities/-txn-note-columns/index.html new file mode 100644 index 0000000000..4b62b3bf01 --- /dev/null +++ b/docs/build/html/api/net.corda.node.utilities/-txn-note-columns/index.html @@ -0,0 +1,42 @@ + + +TxnNoteColumns - + + + +net.corda.node.utilities / TxnNoteColumns
        +
        +

        TxnNoteColumns

        +data class TxnNoteColumns
        +
        +
        +

        Constructors

        + + + + + + + +
        +<init> +TxnNoteColumns(txId: <ERROR CLASS><SecureHash>, note: <ERROR CLASS><String>)
        +

        Properties

        + + + + + + + + + + + +
        +note +val note: <ERROR CLASS><String>
        +txId +val txId: <ERROR CLASS><SecureHash>
        + + diff --git a/docs/build/html/api/net.corda.node.utilities/-txn-note-columns/note.html b/docs/build/html/api/net.corda.node.utilities/-txn-note-columns/note.html new file mode 100644 index 0000000000..b6706c5ff3 --- /dev/null +++ b/docs/build/html/api/net.corda.node.utilities/-txn-note-columns/note.html @@ -0,0 +1,15 @@ + + +TxnNoteColumns.note - + + + +net.corda.node.utilities / TxnNoteColumns / note
        +
        +

        note

        + +val note: <ERROR CLASS><String>
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.node.utilities/-txn-note-columns/tx-id.html b/docs/build/html/api/net.corda.node.utilities/-txn-note-columns/tx-id.html new file mode 100644 index 0000000000..fb9cba9d79 --- /dev/null +++ b/docs/build/html/api/net.corda.node.utilities/-txn-note-columns/tx-id.html @@ -0,0 +1,15 @@ + + +TxnNoteColumns.txId - + + + +net.corda.node.utilities / TxnNoteColumns / txId
        +
        +

        txId

        + +val txId: <ERROR CLASS><SecureHash>
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.node.utilities/index.html b/docs/build/html/api/net.corda.node.utilities/index.html index b097bbdbcb..999af9d8f3 100644 --- a/docs/build/html/api/net.corda.node.utilities/index.html +++ b/docs/build/html/api/net.corda.node.utilities/index.html @@ -140,6 +140,13 @@ adjusted externally.

        +PublicKeyTreeColumnType + +object PublicKeyTreeColumnType

        ColumnType for marshalling to/from database on behalf of PublicKeyTree.

        + + + + SecureHashColumnType object SecureHashColumnType

        ColumnType for marshalling to/from database on behalf of SecureHash.

        @@ -168,6 +175,12 @@ our environment:

        +TxnNoteColumns + +data class TxnNoteColumns + + + UUIDStringColumnType object UUIDStringColumnType

        ColumnType for marshalling to/from database on behalf of UUID, always using a string representation.

        @@ -276,6 +289,12 @@ our environment:

        +publicKeyTree + +fun <ERROR CLASS>.publicKeyTree(name: String): <ERROR CLASS> + + + secureHash fun <ERROR CLASS>.secureHash(name: String): <ERROR CLASS> @@ -294,6 +313,12 @@ our environment:

        +txnNote + +fun <ERROR CLASS>.txnNote(txIdColumnName: String, txnNoteColumnName: String): <ERROR CLASS> + + + uuidString fun <ERROR CLASS>.uuidString(name: String): <ERROR CLASS> diff --git a/docs/build/html/api/net.corda.node.utilities/public-key-tree.html b/docs/build/html/api/net.corda.node.utilities/public-key-tree.html new file mode 100644 index 0000000000..86d4491821 --- /dev/null +++ b/docs/build/html/api/net.corda.node.utilities/public-key-tree.html @@ -0,0 +1,15 @@ + + +publicKeyTree - + + + +net.corda.node.utilities / publicKeyTree
        +
        +

        publicKeyTree

        + +fun <ERROR CLASS>.publicKeyTree(name: String): <ERROR CLASS>
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.node.utilities/txn-note.html b/docs/build/html/api/net.corda.node.utilities/txn-note.html new file mode 100644 index 0000000000..fff8b388f6 --- /dev/null +++ b/docs/build/html/api/net.corda.node.utilities/txn-note.html @@ -0,0 +1,15 @@ + + +txnNote - + + + +net.corda.node.utilities / txnNote
        +
        +

        txnNote

        + +fun <ERROR CLASS>.txnNote(txIdColumnName: String, txnNoteColumnName: String): <ERROR CLASS>
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/index.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/index.html index d5c3896c82..d5f264685f 100644 --- a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/index.html +++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/index.html @@ -143,8 +143,8 @@ will do as long as the other side registers with it.

        sendAndReceive -fun <T : Any> sendAndReceive(otherParty: Party, payload: Any): UntrustworthyData<T>
        -fun <T : Any> sendAndReceive(otherParty: Party, payload: Any, receiveType: Class<T>): UntrustworthyData<T> +fun <T : Any> sendAndReceive(otherParty: Party, payload: Any, receiveType: Class<T>): UntrustworthyData<T>
        +fun <T : Any> sendAndReceive(otherParty: Party, payload: Any): UntrustworthyData<T> diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/assemble-tx.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/assemble-tx.html index fa615aad51..0d35850cfd 100644 --- a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/assemble-tx.html +++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/assemble-tx.html @@ -8,7 +8,7 @@

        assembleTx

        -protected abstract fun assembleTx(): <ERROR CLASS><SignedTransaction, List<PublicKey>>
        +protected abstract fun assembleTx(): <ERROR CLASS><SignedTransaction, List<PublicKeyTree>>


        diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/index.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/index.html index e08783ae4a..df9ca391e2 100644 --- a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/index.html +++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/index.html @@ -106,7 +106,7 @@ access this lazily or from inside assembleTx -abstract fun assembleTx(): <ERROR CLASS><SignedTransaction, List<PublicKey>> +abstract fun assembleTx(): <ERROR CLASS><SignedTransaction, List<PublicKeyTree>> @@ -133,8 +133,8 @@ will do as long as the other side registers with it.

        receive -fun <T : Any> receive(otherParty: Party): UntrustworthyData<T>
        -fun <T : Any> receive(otherParty: Party, receiveType: Class<T>): UntrustworthyData<T> +fun <T : Any> receive(otherParty: Party, receiveType: Class<T>): UntrustworthyData<T>
        +fun <T : Any> receive(otherParty: Party): UntrustworthyData<T> @@ -146,8 +146,8 @@ will do as long as the other side registers with it.

        sendAndReceive -fun <T : Any> sendAndReceive(otherParty: Party, payload: Any, receiveType: Class<T>): UntrustworthyData<T>
        -fun <T : Any> sendAndReceive(otherParty: Party, payload: Any): UntrustworthyData<T> +fun <T : Any> sendAndReceive(otherParty: Party, payload: Any): UntrustworthyData<T>
        +fun <T : Any> sendAndReceive(otherParty: Party, payload: Any, receiveType: Class<T>): UntrustworthyData<T> diff --git a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-init-.html b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-init-.html index 53e6baa65a..8e04fe399b 100644 --- a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-init-.html +++ b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-init-.html @@ -7,16 +7,13 @@ net.corda.protocols / BroadcastTransactionProtocol / <init>

        <init>

        -BroadcastTransactionProtocol(notarisedTransaction: SignedTransaction, events: Set<ClientToServiceCommand>, participants: Set<Party>)
        +BroadcastTransactionProtocol(notarisedTransaction: SignedTransaction, participants: Set<Party>)

        Notify all involved parties about a transaction, including storing a copy. Normally this would be called via FinalityProtocol.

        Parameters

        notarisedTransaction - transaction which has been notarised (if needed) and is ready to notify nodes about.

        - -events - information on the event(s) which triggered the transaction.
        -
        participants - a list of participants involved in the transaction.

        Return
        diff --git a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/-init-.html b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/-init-.html index 2e2e26e2ec..732da11688 100644 --- a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/-init-.html +++ b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/-init-.html @@ -7,7 +7,7 @@ net.corda.protocols / BroadcastTransactionProtocol / NotifyTxRequest / <init>

        <init>

        -NotifyTxRequest(tx: SignedTransaction, events: Set<ClientToServiceCommand>)
        +NotifyTxRequest(tx: SignedTransaction)


        diff --git a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/events.html b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/events.html deleted file mode 100644 index b2530f9c38..0000000000 --- a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/events.html +++ /dev/null @@ -1,15 +0,0 @@ - - -BroadcastTransactionProtocol.NotifyTxRequest.events - - - - -net.corda.protocols / BroadcastTransactionProtocol / NotifyTxRequest / events
        -
        -

        events

        - -val events: Set<ClientToServiceCommand>
        -
        -
        - - diff --git a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/index.html b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/index.html index a68dadf9d7..0e0b6e04c1 100644 --- a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/index.html +++ b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/index.html @@ -17,7 +17,7 @@ <init> -NotifyTxRequest(tx: SignedTransaction, events: Set<ClientToServiceCommand>) +NotifyTxRequest(tx: SignedTransaction) @@ -26,12 +26,6 @@ -events - -val events: Set<ClientToServiceCommand> - - - tx val tx: SignedTransaction diff --git a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/events.html b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/events.html deleted file mode 100644 index 5ca04213c7..0000000000 --- a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/events.html +++ /dev/null @@ -1,15 +0,0 @@ - - -BroadcastTransactionProtocol.events - - - - -net.corda.protocols / BroadcastTransactionProtocol / events
        -
        -

        events

        - -val events: Set<ClientToServiceCommand>
        -
        -
        - - diff --git a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/index.html b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/index.html index 19c829faf1..888ffc75c4 100644 --- a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/index.html +++ b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/index.html @@ -14,9 +14,6 @@ notarisedTransaction - transaction which has been notarised (if needed) and is ready to notify nodes about.

        - -events - information on the event(s) which triggered the transaction.
        -
        participants - a list of participants involved in the transaction.

        Return
        @@ -41,7 +38,7 @@ a list of participants who were successfully notified of the transaction.

        <init> -BroadcastTransactionProtocol(notarisedTransaction: SignedTransaction, events: Set<ClientToServiceCommand>, participants: Set<Party>)

        Notify all involved parties about a transaction, including storing a copy. Normally this would be called via +BroadcastTransactionProtocol(notarisedTransaction: SignedTransaction, participants: Set<Party>)

        Notify all involved parties about a transaction, including storing a copy. Normally this would be called via FinalityProtocol.

        @@ -52,12 +49,6 @@ a list of participants who were successfully notified of the transaction.

        -events - -val events: Set<ClientToServiceCommand> - - - notarisedTransaction val notarisedTransaction: SignedTransaction @@ -136,8 +127,8 @@ will do as long as the other side registers with it.

        receive -fun <T : Any> receive(otherParty: Party): UntrustworthyData<T>
        -fun <T : Any> receive(otherParty: Party, receiveType: Class<T>): UntrustworthyData<T> +fun <T : Any> receive(otherParty: Party, receiveType: Class<T>): UntrustworthyData<T>
        +fun <T : Any> receive(otherParty: Party): UntrustworthyData<T> diff --git a/docs/build/html/api/net.corda.protocols/-cash-command/-exit-cash/-init-.html b/docs/build/html/api/net.corda.protocols/-cash-command/-exit-cash/-init-.html new file mode 100644 index 0000000000..c653fe529e --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-command/-exit-cash/-init-.html @@ -0,0 +1,21 @@ + + +CashCommand.ExitCash.<init> - + + + +net.corda.protocols / CashCommand / ExitCash / <init>
        +
        +

        <init>

        +ExitCash(amount: Amount<Currency>, issueRef: OpaqueBytes)
        +

        Exit cash from the ledger.

        +

        Parameters

        + +amount - the amount of currency to exit from the ledger.
        +
        + +issueRef - the reference previously specified on the issuance.
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.protocols/-cash-command/-exit-cash/amount.html b/docs/build/html/api/net.corda.protocols/-cash-command/-exit-cash/amount.html new file mode 100644 index 0000000000..ba027d15cc --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-command/-exit-cash/amount.html @@ -0,0 +1,15 @@ + + +CashCommand.ExitCash.amount - + + + +net.corda.protocols / CashCommand / ExitCash / amount
        +
        +

        amount

        + +val amount: Amount<Currency>
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.protocols/-cash-command/-exit-cash/index.html b/docs/build/html/api/net.corda.protocols/-cash-command/-exit-cash/index.html new file mode 100644 index 0000000000..6053c7109c --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-command/-exit-cash/index.html @@ -0,0 +1,50 @@ + + +CashCommand.ExitCash - + + + +net.corda.protocols / CashCommand / ExitCash
        +
        +

        ExitCash

        +class ExitCash : CashCommand
        +

        Exit cash from the ledger.

        +

        Parameters

        + +amount - the amount of currency to exit from the ledger.
        +
        + +issueRef - the reference previously specified on the issuance.
        +
        +
        +

        Constructors

        + + + + + + + +
        +<init> +ExitCash(amount: Amount<Currency>, issueRef: OpaqueBytes)

        Exit cash from the ledger.

        +
        +

        Properties

        + + + + + + + + + + + +
        +amount +val amount: Amount<Currency>
        +issueRef +val issueRef: OpaqueBytes
        + + diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/issue-ref.html b/docs/build/html/api/net.corda.protocols/-cash-command/-exit-cash/issue-ref.html similarity index 51% rename from docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/issue-ref.html rename to docs/build/html/api/net.corda.protocols/-cash-command/-exit-cash/issue-ref.html index 4c1b638097..5405b62b92 100644 --- a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/issue-ref.html +++ b/docs/build/html/api/net.corda.protocols/-cash-command/-exit-cash/issue-ref.html @@ -1,13 +1,13 @@ -ClientToServiceCommand.ExitCash.issueRef - +CashCommand.ExitCash.issueRef - -net.corda.core.contracts / ClientToServiceCommand / ExitCash / issueRef
        +net.corda.protocols / CashCommand / ExitCash / issueRef

        issueRef

        - + val issueRef: OpaqueBytes


        diff --git a/docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/-init-.html b/docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/-init-.html new file mode 100644 index 0000000000..c7f0306a14 --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/-init-.html @@ -0,0 +1,28 @@ + + +CashCommand.IssueCash.<init> - + + + +net.corda.protocols / CashCommand / IssueCash / <init>
        +
        +

        <init>

        +IssueCash(amount: Amount<Currency>, issueRef: OpaqueBytes, recipient: Party, notary: Party)
        +

        Issue cash state objects.

        +

        Parameters

        + +amount - the amount of currency to issue on to the ledger.
        +
        + +issueRef - the reference to specify on the issuance, used to differentiate pools of cash. Convention is +to use the single byte "0x01" as a default.
        +
        + +recipient - the party to issue the cash to.
        +
        + +notary - the notary to use for this transaction.
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/amount.html b/docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/amount.html new file mode 100644 index 0000000000..156250cb4e --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/amount.html @@ -0,0 +1,15 @@ + + +CashCommand.IssueCash.amount - + + + +net.corda.protocols / CashCommand / IssueCash / amount
        +
        +

        amount

        + +val amount: Amount<Currency>
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/index.html b/docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/index.html new file mode 100644 index 0000000000..686182805c --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/index.html @@ -0,0 +1,69 @@ + + +CashCommand.IssueCash - + + + +net.corda.protocols / CashCommand / IssueCash
        +
        +

        IssueCash

        +class IssueCash : CashCommand
        +

        Issue cash state objects.

        +

        Parameters

        + +amount - the amount of currency to issue on to the ledger.
        +
        + +issueRef - the reference to specify on the issuance, used to differentiate pools of cash. Convention is +to use the single byte "0x01" as a default.
        +
        + +recipient - the party to issue the cash to.
        +
        + +notary - the notary to use for this transaction.
        +
        +
        +

        Constructors

        + + + + + + + +
        +<init> +IssueCash(amount: Amount<Currency>, issueRef: OpaqueBytes, recipient: Party, notary: Party)

        Issue cash state objects.

        +
        +

        Properties

        + + + + + + + + + + + + + + + + + + + +
        +amount +val amount: Amount<Currency>
        +issueRef +val issueRef: OpaqueBytes
        +notary +val notary: Party
        +recipient +val recipient: Party
        + + diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/issue-ref.html b/docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/issue-ref.html similarity index 51% rename from docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/issue-ref.html rename to docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/issue-ref.html index ca0555b319..f0e979e7df 100644 --- a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/issue-ref.html +++ b/docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/issue-ref.html @@ -1,13 +1,13 @@ -ClientToServiceCommand.IssueCash.issueRef - +CashCommand.IssueCash.issueRef - -net.corda.core.contracts / ClientToServiceCommand / IssueCash / issueRef
        +net.corda.protocols / CashCommand / IssueCash / issueRef

        issueRef

        - + val issueRef: OpaqueBytes


        diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/notary.html b/docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/notary.html similarity index 50% rename from docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/notary.html rename to docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/notary.html index 0ff04c5dd9..ba472727ba 100644 --- a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/notary.html +++ b/docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/notary.html @@ -1,13 +1,13 @@ -ClientToServiceCommand.IssueCash.notary - +CashCommand.IssueCash.notary - -net.corda.core.contracts / ClientToServiceCommand / IssueCash / notary
        +net.corda.protocols / CashCommand / IssueCash / notary

        notary

        - + val notary: Party


        diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/recipient.html b/docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/recipient.html similarity index 50% rename from docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/recipient.html rename to docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/recipient.html index d1a463ec70..e5ba4597cd 100644 --- a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/recipient.html +++ b/docs/build/html/api/net.corda.protocols/-cash-command/-issue-cash/recipient.html @@ -1,13 +1,13 @@ -ClientToServiceCommand.PayCash.recipient - +CashCommand.IssueCash.recipient - -net.corda.core.contracts / ClientToServiceCommand / PayCash / recipient
        +net.corda.protocols / CashCommand / IssueCash / recipient

        recipient

        - + val recipient: Party


        diff --git a/docs/build/html/api/net.corda.protocols/-cash-command/-pay-cash/-init-.html b/docs/build/html/api/net.corda.protocols/-cash-command/-pay-cash/-init-.html new file mode 100644 index 0000000000..97a8d6c04c --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-command/-pay-cash/-init-.html @@ -0,0 +1,21 @@ + + +CashCommand.PayCash.<init> - + + + +net.corda.protocols / CashCommand / PayCash / <init>
        +
        +

        <init>

        +PayCash(amount: Amount<Issued<Currency>>, recipient: Party)
        +

        Pay cash to someone else.

        +

        Parameters

        + +amount - the amount of currency to issue on to the ledger.
        +
        + +recipient - the party to issue the cash to.
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.protocols/-cash-command/-pay-cash/amount.html b/docs/build/html/api/net.corda.protocols/-cash-command/-pay-cash/amount.html new file mode 100644 index 0000000000..7a20d7c47a --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-command/-pay-cash/amount.html @@ -0,0 +1,15 @@ + + +CashCommand.PayCash.amount - + + + +net.corda.protocols / CashCommand / PayCash / amount
        +
        +

        amount

        + +val amount: Amount<Issued<Currency>>
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.protocols/-cash-command/-pay-cash/index.html b/docs/build/html/api/net.corda.protocols/-cash-command/-pay-cash/index.html new file mode 100644 index 0000000000..2a40c04c01 --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-command/-pay-cash/index.html @@ -0,0 +1,50 @@ + + +CashCommand.PayCash - + + + +net.corda.protocols / CashCommand / PayCash
        +
        +

        PayCash

        +class PayCash : CashCommand
        +

        Pay cash to someone else.

        +

        Parameters

        + +amount - the amount of currency to issue on to the ledger.
        +
        + +recipient - the party to issue the cash to.
        +
        +
        +

        Constructors

        + + + + + + + +
        +<init> +PayCash(amount: Amount<Issued<Currency>>, recipient: Party)

        Pay cash to someone else.

        +
        +

        Properties

        + + + + + + + + + + + +
        +amount +val amount: Amount<Issued<Currency>>
        +recipient +val recipient: Party
        + + diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/recipient.html b/docs/build/html/api/net.corda.protocols/-cash-command/-pay-cash/recipient.html similarity index 50% rename from docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/recipient.html rename to docs/build/html/api/net.corda.protocols/-cash-command/-pay-cash/recipient.html index 8069dc7d58..c2c32e5fd4 100644 --- a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/recipient.html +++ b/docs/build/html/api/net.corda.protocols/-cash-command/-pay-cash/recipient.html @@ -1,13 +1,13 @@ -ClientToServiceCommand.IssueCash.recipient - +CashCommand.PayCash.recipient - -net.corda.core.contracts / ClientToServiceCommand / IssueCash / recipient
        +net.corda.protocols / CashCommand / PayCash / recipient

        recipient

        - + val recipient: Party


        diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/index.html b/docs/build/html/api/net.corda.protocols/-cash-command/index.html similarity index 53% rename from docs/build/html/api/net.corda.core.contracts/-client-to-service-command/index.html rename to docs/build/html/api/net.corda.protocols/-cash-command/index.html index 7305085688..9a45eca213 100644 --- a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/index.html +++ b/docs/build/html/api/net.corda.protocols/-cash-command/index.html @@ -1,17 +1,14 @@ -ClientToServiceCommand - +CashCommand - -net.corda.core.contracts / ClientToServiceCommand
        +net.corda.protocols / CashCommand

        -

        ClientToServiceCommand

        -sealed class ClientToServiceCommand
        -

        A command from the monitoring client, to the node.

        -

        Parameters

        - -id - ID used to tag event(s) resulting from a command.
        +

        CashCommand

        +sealed class CashCommand
        +

        A command to initiate the Cash protocol with.



        Types

        @@ -21,36 +18,25 @@ ExitCash -class ExitCash : ClientToServiceCommand

        Exit cash from the ledger.

        +class ExitCash : CashCommand

        Exit cash from the ledger.

        IssueCash -class IssueCash : ClientToServiceCommand

        Issue cash state objects.

        +class IssueCash : CashCommand

        Issue cash state objects.

        PayCash -class PayCash : ClientToServiceCommand

        Pay cash to someone else.

        +class PayCash : CashCommand

        Pay cash to someone else.

        -

        Properties

        - - - - - - - -
        -id -val id: UUID

        Inheritors

        @@ -58,21 +44,21 @@ diff --git a/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-failed/-init-.html b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-failed/-init-.html new file mode 100644 index 0000000000..f366f137a1 --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-failed/-init-.html @@ -0,0 +1,16 @@ + + +CashProtocolResult.Failed.<init> - + + + +net.corda.protocols / CashProtocolResult / Failed / <init>
        +
        +

        <init>

        +Failed(message: String?)
        +

        State indicating the action undertaken failed, either directly (it is not something which requires a +state machine), or before a state machine was started.

        +
        +
        + + diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/index.html b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-failed/index.html similarity index 65% rename from docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/index.html rename to docs/build/html/api/net.corda.protocols/-cash-protocol-result/-failed/index.html index 0c197f029f..ff7d318d2a 100644 --- a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/index.html +++ b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-failed/index.html @@ -1,13 +1,13 @@ -TransactionBuildResult.Failed - +CashProtocolResult.Failed - -net.corda.node.services.messaging / TransactionBuildResult / Failed
        +net.corda.protocols / CashProtocolResult / Failed

        Failed

        -class Failed : TransactionBuildResult
        +class Failed : CashProtocolResult

        State indicating the action undertaken failed, either directly (it is not something which requires a state machine), or before a state machine was started.


        @@ -19,7 +19,7 @@ state machine), or before a state machine was started.

        diff --git a/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-failed/message.html b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-failed/message.html new file mode 100644 index 0000000000..4edda739cb --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-failed/message.html @@ -0,0 +1,15 @@ + + +CashProtocolResult.Failed.message - + + + +net.corda.protocols / CashProtocolResult / Failed / message
        +
        +

        message

        + +val message: String?
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-failed/to-string.html b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-failed/to-string.html new file mode 100644 index 0000000000..1100c2c798 --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-failed/to-string.html @@ -0,0 +1,15 @@ + + +CashProtocolResult.Failed.toString - + + + +net.corda.protocols / CashProtocolResult / Failed / toString
        +
        +

        toString

        + +fun toString(): String
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/-init-.html b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/-init-.html new file mode 100644 index 0000000000..5ec98a8932 --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/-init-.html @@ -0,0 +1,17 @@ + + +CashProtocolResult.Success.<init> - + + + +net.corda.protocols / CashProtocolResult / Success / <init>
        +
        +

        <init>

        +Success(id: StateMachineRunId, transaction: SignedTransaction?, message: String?)
        +

        Parameters

        + +transaction - the transaction created as a result, in the case where the protocol completed successfully.
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/id.html b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/id.html similarity index 50% rename from docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/id.html rename to docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/id.html index 4c238af35b..a00917a1e2 100644 --- a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/id.html +++ b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/id.html @@ -1,13 +1,13 @@ -TransactionBuildResult.ProtocolStarted.id - +CashProtocolResult.Success.id - -net.corda.node.services.messaging / TransactionBuildResult / ProtocolStarted / id
        +net.corda.protocols / CashProtocolResult / Success / id

        id

        - +val id: StateMachineRunId


        diff --git a/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/index.html b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/index.html new file mode 100644 index 0000000000..b06413dd5d --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/index.html @@ -0,0 +1,62 @@ + + +CashProtocolResult.Success - + + + +net.corda.protocols / CashProtocolResult / Success
        +
        +

        Success

        +class Success : CashProtocolResult
        +

        Parameters

        + +transaction - the transaction created as a result, in the case where the protocol completed successfully.
        +
        +
        +

        Constructors

        +
        ExitCash -class ExitCash : ClientToServiceCommand

        Exit cash from the ledger.

        +class ExitCash : CashCommand

        Exit cash from the ledger.

        IssueCash -class IssueCash : ClientToServiceCommand

        Issue cash state objects.

        +class IssueCash : CashCommand

        Issue cash state objects.

        PayCash -class PayCash : ClientToServiceCommand

        Pay cash to someone else.

        +class PayCash : CashCommand

        Pay cash to someone else.

        <init> -Failed(message: String?)

        State indicating the action undertaken failed, either directly (it is not something which requires a +Failed(message: String?)

        State indicating the action undertaken failed, either directly (it is not something which requires a state machine), or before a state machine was started.

        + + + + + + +
        +<init> +Success(id: StateMachineRunId, transaction: SignedTransaction?, message: String?)
        +

        Properties

        + + + + + + + + + + + + + + + +
        +id +val id: StateMachineRunId
        +message +val message: String?
        +transaction +val transaction: SignedTransaction?
        +

        Functions

        + + + + + + + +
        +toString +fun toString(): String
        + + diff --git a/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/message.html b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/message.html new file mode 100644 index 0000000000..7c83d7afca --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/message.html @@ -0,0 +1,15 @@ + + +CashProtocolResult.Success.message - + + + +net.corda.protocols / CashProtocolResult / Success / message
        +
        +

        message

        + +val message: String?
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/to-string.html b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/to-string.html new file mode 100644 index 0000000000..25be9554b1 --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/to-string.html @@ -0,0 +1,15 @@ + + +CashProtocolResult.Success.toString - + + + +net.corda.protocols / CashProtocolResult / Success / toString
        +
        +

        toString

        + +fun toString(): String
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/transaction.html b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/transaction.html similarity index 51% rename from docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/transaction.html rename to docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/transaction.html index ab22f683f4..7b51b1adfe 100644 --- a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/transaction.html +++ b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/-success/transaction.html @@ -1,13 +1,13 @@ -TransactionBuildResult.ProtocolStarted.transaction - +CashProtocolResult.Success.transaction - -net.corda.node.services.messaging / TransactionBuildResult / ProtocolStarted / transaction
        +net.corda.protocols / CashProtocolResult / Success / transaction

        transaction

        - + val transaction: SignedTransaction?


        diff --git a/docs/build/html/api/net.corda.protocols/-cash-protocol-result/index.html b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/index.html new file mode 100644 index 0000000000..f5d42756f5 --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-protocol-result/index.html @@ -0,0 +1,52 @@ + + +CashProtocolResult - + + + +net.corda.protocols / CashProtocolResult
        +
        +

        CashProtocolResult

        +sealed class CashProtocolResult
        +
        +
        +

        Types

        + + + + + + + + + + + +
        +Failed +class Failed : CashProtocolResult

        State indicating the action undertaken failed, either directly (it is not something which requires a +state machine), or before a state machine was started.

        +
        +Success +class Success : CashProtocolResult
        +

        Inheritors

        + + + + + + + + + + + +
        +Failed +class Failed : CashProtocolResult

        State indicating the action undertaken failed, either directly (it is not something which requires a +state machine), or before a state machine was started.

        +
        +Success +class Success : CashProtocolResult
        + + diff --git a/docs/build/html/api/net.corda.protocols/-cash-protocol/-init-.html b/docs/build/html/api/net.corda.protocols/-cash-protocol/-init-.html new file mode 100644 index 0000000000..1a2feb84bf --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-protocol/-init-.html @@ -0,0 +1,18 @@ + + +CashProtocol.<init> - + + + +net.corda.protocols / CashProtocol / <init>
        +
        +

        <init>

        +CashProtocol(command: CashCommand)
        +

        Initiates a protocol that produces an Issue/Move or Exit Cash transaction.

        +

        Parameters

        + +command - Indicates what Cash transaction to create with what parameters.
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.protocols/-cash-protocol/call.html b/docs/build/html/api/net.corda.protocols/-cash-protocol/call.html new file mode 100644 index 0000000000..5ab4979b43 --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-protocol/call.html @@ -0,0 +1,17 @@ + + +CashProtocol.call - + + + +net.corda.protocols / CashProtocol / call
        +
        +

        call

        + +fun call(): CashProtocolResult
        +Overrides ProtocolLogic.call
        +

        This is where you fill out your business logic.

        +
        +
        + + diff --git a/docs/build/html/api/net.corda.protocols/-cash-protocol/command.html b/docs/build/html/api/net.corda.protocols/-cash-protocol/command.html new file mode 100644 index 0000000000..37f894b8e3 --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-protocol/command.html @@ -0,0 +1,15 @@ + + +CashProtocol.command - + + + +net.corda.protocols / CashProtocol / command
        +
        +

        command

        + +val command: CashCommand
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.protocols/-cash-protocol/index.html b/docs/build/html/api/net.corda.protocols/-cash-protocol/index.html new file mode 100644 index 0000000000..938258bd75 --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-cash-protocol/index.html @@ -0,0 +1,139 @@ + + +CashProtocol - + + + +net.corda.protocols / CashProtocol
        +
        +

        CashProtocol

        +class CashProtocol : ProtocolLogic<CashProtocolResult>
        +

        Initiates a protocol that produces an Issue/Move or Exit Cash transaction.

        +

        Parameters

        + +command - Indicates what Cash transaction to create with what parameters.
        +
        +
        +

        Constructors

        + + + + + + + +
        +<init> +CashProtocol(command: CashCommand)

        Initiates a protocol that produces an Issue/Move or Exit Cash transaction.

        +
        +

        Properties

        + + + + + + + +
        +command +val command: CashCommand
        +

        Inherited Properties

        + + + + + + + + + + + + + + + + + + + +
        +logger +val logger: <ERROR CLASS>

        This is where you should log things to.

        +
        +progressTracker +open val progressTracker: ProgressTracker?

        Override this to provide a ProgressTracker. If one is provided and stepped, the framework will do something +helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the +tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track +progress.

        +
        +psm +lateinit var psm: ProtocolStateMachine<*>

        Reference to the Fiber instance that is the top level controller for the entire flow.

        +
        +serviceHub +val serviceHub: ServiceHub

        Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is +only available once the protocol has started, which means it cannnot be accessed in the constructor. Either +access this lazily or from inside call.

        +
        +

        Functions

        + + + + + + + +
        +call +fun call(): CashProtocolResult

        This is where you fill out your business logic.

        +
        +

        Inherited Functions

        + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +getCounterpartyMarker +open fun getCounterpartyMarker(party: Party): Class<*>

        Return the marker Class which party has used to register the counterparty protocol that is to execute on the +other side. The default implementation returns the class object of this ProtocolLogic, but any Class instance +will do as long as the other side registers with it.

        +
        +receive +fun <T : Any> receive(otherParty: Party): UntrustworthyData<T>
        +fun <T : Any> receive(otherParty: Party, receiveType: Class<T>): UntrustworthyData<T>
        +send +fun send(otherParty: Party, payload: Any): Unit
        +sendAndReceive +fun <T : Any> sendAndReceive(otherParty: Party, payload: Any): UntrustworthyData<T>
        +fun <T : Any> sendAndReceive(otherParty: Party, payload: Any, receiveType: Class<T>): UntrustworthyData<T>
        +subProtocol +fun <R> subProtocol(subLogic: ProtocolLogic<R>, shareParentSessions: Boolean = false): R

        Invokes the given subprotocol by simply passing through this ProtocolLogics reference to the +ProtocolStateMachine and then calling the call method.

        +
        +track +fun track(): <ERROR CLASS><String, <ERROR CLASS><String>>?
        + + diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/index.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/index.html index 84afd0714e..afd8866c78 100644 --- a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/index.html +++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/index.html @@ -179,8 +179,8 @@ will do as long as the other side registers with it.

        receive -fun <T : Any> receive(otherParty: Party): UntrustworthyData<T>
        -fun <T : Any> receive(otherParty: Party, receiveType: Class<T>): UntrustworthyData<T> +fun <T : Any> receive(otherParty: Party, receiveType: Class<T>): UntrustworthyData<T>
        +fun <T : Any> receive(otherParty: Party): UntrustworthyData<T> @@ -192,8 +192,8 @@ will do as long as the other side registers with it.

        sendAndReceive -fun <T : Any> sendAndReceive(otherParty: Party, payload: Any): UntrustworthyData<T>
        -fun <T : Any> sendAndReceive(otherParty: Party, payload: Any, receiveType: Class<T>): UntrustworthyData<T> +fun <T : Any> sendAndReceive(otherParty: Party, payload: Any, receiveType: Class<T>): UntrustworthyData<T>
        +fun <T : Any> sendAndReceive(otherParty: Party, payload: Any): UntrustworthyData<T> diff --git a/docs/build/html/api/net.corda.protocols/-finality-protocol/-init-.html b/docs/build/html/api/net.corda.protocols/-finality-protocol/-init-.html index 397515a7a9..fb9be629aa 100644 --- a/docs/build/html/api/net.corda.protocols/-finality-protocol/-init-.html +++ b/docs/build/html/api/net.corda.protocols/-finality-protocol/-init-.html @@ -7,15 +7,12 @@ net.corda.protocols / FinalityProtocol / <init>

        <init>

        -FinalityProtocol(transaction: SignedTransaction, events: Set<ClientToServiceCommand>, participants: Set<Party>, progressTracker: ProgressTracker = tracker())
        +FinalityProtocol(transaction: SignedTransaction, participants: Set<Party>, progressTracker: ProgressTracker = tracker())

        Finalise a transaction by notarising it, then recording it locally, and then sending it to all involved parties.

        Parameters

        transaction - to commit.

        - -events - information on the event(s) which triggered the transaction.
        -
        participants - a list of participants involved in the transaction.

        Return
        diff --git a/docs/build/html/api/net.corda.protocols/-finality-protocol/events.html b/docs/build/html/api/net.corda.protocols/-finality-protocol/events.html deleted file mode 100644 index f5fe09d5d4..0000000000 --- a/docs/build/html/api/net.corda.protocols/-finality-protocol/events.html +++ /dev/null @@ -1,15 +0,0 @@ - - -FinalityProtocol.events - - - - -net.corda.protocols / FinalityProtocol / events
        -
        -

        events

        - -val events: Set<ClientToServiceCommand>
        -
        -
        - - diff --git a/docs/build/html/api/net.corda.protocols/-finality-protocol/index.html b/docs/build/html/api/net.corda.protocols/-finality-protocol/index.html index 17c4803cb4..08a164519a 100644 --- a/docs/build/html/api/net.corda.protocols/-finality-protocol/index.html +++ b/docs/build/html/api/net.corda.protocols/-finality-protocol/index.html @@ -13,9 +13,6 @@ transaction - to commit.

        - -events - information on the event(s) which triggered the transaction.
        -
        participants - a list of participants involved in the transaction.

        Return
        @@ -46,7 +43,7 @@ a list of participants who were successfully notified of the transaction.

        <init> -FinalityProtocol(transaction: SignedTransaction, events: Set<ClientToServiceCommand>, participants: Set<Party>, progressTracker: ProgressTracker = tracker())

        Finalise a transaction by notarising it, then recording it locally, and then sending it to all involved parties.

        +FinalityProtocol(transaction: SignedTransaction, participants: Set<Party>, progressTracker: ProgressTracker = tracker())

        Finalise a transaction by notarising it, then recording it locally, and then sending it to all involved parties.

        @@ -56,12 +53,6 @@ a list of participants who were successfully notified of the transaction.

        -events - -val events: Set<ClientToServiceCommand> - - - participants val participants: Set<Party> diff --git a/docs/build/html/api/net.corda.protocols/-input-state-ref-resolve-failed/-init-.html b/docs/build/html/api/net.corda.protocols/-input-state-ref-resolve-failed/-init-.html new file mode 100644 index 0000000000..0d2fdef1fc --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-input-state-ref-resolve-failed/-init-.html @@ -0,0 +1,14 @@ + + +InputStateRefResolveFailed.<init> - + + + +net.corda.protocols / InputStateRefResolveFailed / <init>
        +
        +

        <init>

        +InputStateRefResolveFailed(stateRefs: List<StateRef>)
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.protocols/-input-state-ref-resolve-failed/index.html b/docs/build/html/api/net.corda.protocols/-input-state-ref-resolve-failed/index.html new file mode 100644 index 0000000000..ef0faf9e57 --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-input-state-ref-resolve-failed/index.html @@ -0,0 +1,36 @@ + + +InputStateRefResolveFailed - + + + +net.corda.protocols / InputStateRefResolveFailed
        +
        +

        InputStateRefResolveFailed

        +class InputStateRefResolveFailed : Exception
        +
        +
        +

        Constructors

        + + + + + + + +
        +<init> +InputStateRefResolveFailed(stateRefs: List<StateRef>)
        +

        Extension Properties

        + + + + + + + +
        +rootCause +val Throwable.rootCause: Throwable
        + + diff --git a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/assemble-tx.html b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/assemble-tx.html index 6f3a519b0c..402cf51c63 100644 --- a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/assemble-tx.html +++ b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/assemble-tx.html @@ -8,7 +8,7 @@

        assembleTx

        -protected fun assembleTx(): <ERROR CLASS><SignedTransaction, List<PublicKey>>
        +protected fun assembleTx(): <ERROR CLASS><SignedTransaction, List<PublicKeyTree>>
        Overrides Instigator.assembleTx


        diff --git a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/index.html b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/index.html index 5088a0f1c8..b40dd2e723 100644 --- a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/index.html +++ b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/index.html @@ -61,7 +61,7 @@ progress.

        assembleTx -fun assembleTx(): <ERROR CLASS><SignedTransaction, List<PublicKey>> +fun assembleTx(): <ERROR CLASS><SignedTransaction, List<PublicKeyTree>> diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/-init-.html b/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/-init-.html index 4712869bb1..fac6d6336a 100644 --- a/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/-init-.html +++ b/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/-init-.html @@ -7,7 +7,7 @@ net.corda.protocols / NotaryError / SignaturesMissing / <init>

        <init>

        -SignaturesMissing(missingSigners: Set<PublicKey>)
        +SignaturesMissing(missingSigners: Set<PublicKeyTree>)


        diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/index.html b/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/index.html index c8f4308541..926f776b5b 100644 --- a/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/index.html +++ b/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/index.html @@ -17,7 +17,7 @@ <init> -SignaturesMissing(missingSigners: Set<PublicKey>) +SignaturesMissing(missingSigners: Set<PublicKeyTree>) @@ -28,7 +28,18 @@ missingSigners -val missingSigners: Set<PublicKey> +val missingSigners: Set<PublicKeyTree> + + + +

        Functions

        + + + + +
        +toString +fun toString(): String
        diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/missing-signers.html b/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/missing-signers.html index 922fdcf333..d5b70a514a 100644 --- a/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/missing-signers.html +++ b/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/missing-signers.html @@ -8,7 +8,7 @@

        missingSigners

        -val missingSigners: Set<PublicKey>
        +val missingSigners: Set<PublicKeyTree>


        diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/to-string.html b/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/to-string.html new file mode 100644 index 0000000000..419020bfa2 --- /dev/null +++ b/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/to-string.html @@ -0,0 +1,15 @@ + + +NotaryError.SignaturesMissing.toString - + + + +net.corda.protocols / NotaryError / SignaturesMissing / toString
        +
        +

        toString

        + +fun toString(): String
        +
        +
        + + diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/call.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/call.html index c6d9b32870..00c9f70ed0 100644 --- a/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/call.html +++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/call.html @@ -8,7 +8,7 @@

        call

        -open fun call(): LegallyIdentifiable
        +open fun call(): WithKey
        Overrides ProtocolLogic.call

        This is where you fill out your business logic.


        diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/index.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/index.html index 82cb2b07a7..37603a0a8d 100644 --- a/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/index.html +++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/index.html @@ -7,7 +7,7 @@ net.corda.protocols / NotaryProtocol / Client

        Client

        -class Client : ProtocolLogic<LegallyIdentifiable>
        +class Client : ProtocolLogic<WithKey>

        A protocol to be used for obtaining a signature from a NotaryService ascertaining the transaction timestamp is correct and none of its inputs have been used in another completed transaction.

        Exceptions

        @@ -102,7 +102,7 @@ access this lazily or from inside call -open fun call(): LegallyIdentifiable

        This is where you fill out your business logic.

        +open fun call(): WithKey

        This is where you fill out your business logic.

        diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/-init-.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/-init-.html index 13cff5b439..6eb8ddfc82 100644 --- a/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/-init-.html +++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/-init-.html @@ -7,7 +7,7 @@ net.corda.protocols / NotaryProtocol / Result / Success / <init>

        <init>

        -Success(sig: LegallyIdentifiable)
        +Success(sig: WithKey)


        diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/index.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/index.html index 88d624d4e8..ecfcb63638 100644 --- a/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/index.html +++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/index.html @@ -17,7 +17,7 @@ <init> -Success(sig: LegallyIdentifiable) +Success(sig: WithKey) @@ -28,7 +28,7 @@ sig -val sig: LegallyIdentifiable +val sig: WithKey diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/sig.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/sig.html index 282c6f3ec7..c4ccd3cf95 100644 --- a/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/sig.html +++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/sig.html @@ -8,7 +8,7 @@

        sig

        -val sig: LegallyIdentifiable
        +val sig: WithKey


        diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/index.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/index.html index f4935919e1..9b121f28a5 100644 --- a/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/index.html +++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/index.html @@ -143,8 +143,8 @@ will do as long as the other side registers with it.

        sendAndReceive -fun <T : Any> sendAndReceive(otherParty: Party, payload: Any, receiveType: Class<T>): UntrustworthyData<T>
        -fun <T : Any> sendAndReceive(otherParty: Party, payload: Any): UntrustworthyData<T> +fun <T : Any> sendAndReceive(otherParty: Party, payload: Any): UntrustworthyData<T>
        +fun <T : Any> sendAndReceive(otherParty: Party, payload: Any, receiveType: Class<T>): UntrustworthyData<T> diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/index.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/index.html index 4ab8b751ff..181048fa92 100644 --- a/docs/build/html/api/net.corda.protocols/-notary-protocol/index.html +++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/index.html @@ -17,7 +17,7 @@ Client -class Client : ProtocolLogic<LegallyIdentifiable>

        A protocol to be used for obtaining a signature from a NotaryService ascertaining the transaction +class Client : ProtocolLogic<WithKey>

        A protocol to be used for obtaining a signature from a NotaryService ascertaining the transaction timestamp is correct and none of its inputs have been used in another completed transaction.

        diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/assemble-shared-t-x.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/assemble-shared-t-x.html index 3bc31e5222..906922ed36 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/assemble-shared-t-x.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/assemble-shared-t-x.html @@ -8,7 +8,7 @@

        assembleSharedTX

        -protected open fun assembleSharedTX(handshake: Handshake<AutoOffer>): <ERROR CLASS><TransactionBuilder, List<PublicKey>>
        +protected open fun assembleSharedTX(handshake: Handshake<AutoOffer>): <ERROR CLASS><TransactionBuilder, List<PublicKeyTree>>


        diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/index.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/index.html index 2d7feb32ff..f010df3d8c 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/index.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/index.html @@ -51,7 +51,7 @@ progress.

        assembleSharedTX -open fun assembleSharedTX(handshake: Handshake<AutoOffer>): <ERROR CLASS><TransactionBuilder, List<PublicKey>> +open fun assembleSharedTX(handshake: Handshake<AutoOffer>): <ERROR CLASS><TransactionBuilder, List<PublicKeyTree>> diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/-init-.html index f9818906c5..d75926c8c3 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/-init-.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/-init-.html @@ -7,7 +7,7 @@ net.corda.protocols / TwoPartyDealProtocol / Handshake / <init>

        <init>

        -Handshake(payload: T, publicKey: PublicKey)
        +Handshake(payload: T, publicKey: PublicKeyTree)


        diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/index.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/index.html index 19c23778b7..ac4e318ed5 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/index.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/index.html @@ -17,7 +17,7 @@ <init> -Handshake(payload: T, publicKey: PublicKey) +Handshake(payload: T, publicKey: PublicKeyTree) @@ -34,7 +34,7 @@ publicKey -val publicKey: PublicKey +val publicKey: PublicKeyTree diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/public-key.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/public-key.html index bf14fc3c4e..718a455b9f 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/public-key.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/public-key.html @@ -8,7 +8,7 @@

        publicKey

        -val publicKey: PublicKey
        +val publicKey: PublicKeyTree


        diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/index.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/index.html index 8c99db0d8d..2c29a7b269 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/index.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/index.html @@ -187,8 +187,8 @@ will do as long as the other side registers with it.

        receive -fun <T : Any> receive(otherParty: Party): UntrustworthyData<T>
        -fun <T : Any> receive(otherParty: Party, receiveType: Class<T>): UntrustworthyData<T> +fun <T : Any> receive(otherParty: Party, receiveType: Class<T>): UntrustworthyData<T>
        +fun <T : Any> receive(otherParty: Party): UntrustworthyData<T> diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/assemble-shared-t-x.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/assemble-shared-t-x.html index 040e88b012..e6dc9b6ef7 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/assemble-shared-t-x.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/assemble-shared-t-x.html @@ -8,7 +8,7 @@

        assembleSharedTX

        -protected abstract fun assembleSharedTX(handshake: Handshake<U>): <ERROR CLASS><TransactionBuilder, List<PublicKey>>
        +protected abstract fun assembleSharedTX(handshake: Handshake<U>): <ERROR CLASS><TransactionBuilder, List<PublicKeyTree>>


        diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/index.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/index.html index 070a9c9024..f354967095 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/index.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/index.html @@ -118,7 +118,7 @@ access this lazily or from inside assembleSharedTX -abstract fun assembleSharedTX(handshake: Handshake<U>): <ERROR CLASS><TransactionBuilder, List<PublicKey>> +abstract fun assembleSharedTX(handshake: Handshake<U>): <ERROR CLASS><TransactionBuilder, List<PublicKeyTree>> @@ -164,8 +164,8 @@ will do as long as the other side registers with it.

        sendAndReceive -fun <T : Any> sendAndReceive(otherParty: Party, payload: Any, receiveType: Class<T>): UntrustworthyData<T>
        -fun <T : Any> sendAndReceive(otherParty: Party, payload: Any): UntrustworthyData<T> +fun <T : Any> sendAndReceive(otherParty: Party, payload: Any): UntrustworthyData<T>
        +fun <T : Any> sendAndReceive(otherParty: Party, payload: Any, receiveType: Class<T>): UntrustworthyData<T> diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/-init-.html index 26cfee58f9..ca5731533c 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/-init-.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/-init-.html @@ -7,7 +7,7 @@ net.corda.protocols / TwoPartyDealProtocol / SignaturesFromPrimary / <init>

        <init>

        -SignaturesFromPrimary(sellerSig: WithKey, notarySig: LegallyIdentifiable)
        +SignaturesFromPrimary(sellerSig: WithKey, notarySig: WithKey)


        diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/index.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/index.html index b9049188a1..298bbf1590 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/index.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/index.html @@ -17,7 +17,7 @@ <init> -SignaturesFromPrimary(sellerSig: WithKey, notarySig: LegallyIdentifiable) +SignaturesFromPrimary(sellerSig: WithKey, notarySig: WithKey) @@ -28,7 +28,7 @@ notarySig -val notarySig: LegallyIdentifiable +val notarySig: WithKey diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/notary-sig.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/notary-sig.html index 61be1530bb..c206497fb0 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/notary-sig.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/notary-sig.html @@ -8,7 +8,7 @@

        notarySig

        -val notarySig: LegallyIdentifiable
        +val notarySig: WithKey


        diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/-init-.html index 9622d94115..8abfbccd21 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/-init-.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/-init-.html @@ -7,7 +7,7 @@ net.corda.protocols / TwoPartyTradeProtocol / SellerTradeInfo / <init>

        <init>

        -SellerTradeInfo(assetForSale: StateAndRef<OwnableState>, price: Amount<Currency>, sellerOwnerKey: PublicKey)
        +SellerTradeInfo(assetForSale: StateAndRef<OwnableState>, price: Amount<Currency>, sellerOwnerKey: PublicKeyTree)


        diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/index.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/index.html index 09933d7251..1ef76ed8f4 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/index.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/index.html @@ -17,7 +17,7 @@ <init> -SellerTradeInfo(assetForSale: StateAndRef<OwnableState>, price: Amount<Currency>, sellerOwnerKey: PublicKey) +SellerTradeInfo(assetForSale: StateAndRef<OwnableState>, price: Amount<Currency>, sellerOwnerKey: PublicKeyTree) @@ -40,7 +40,7 @@ sellerOwnerKey -val sellerOwnerKey: PublicKey +val sellerOwnerKey: PublicKeyTree diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/seller-owner-key.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/seller-owner-key.html index 5d1107f976..81fc1d7fdc 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/seller-owner-key.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/seller-owner-key.html @@ -8,7 +8,7 @@

        sellerOwnerKey

        -val sellerOwnerKey: PublicKey
        +val sellerOwnerKey: PublicKeyTree


        diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/index.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/index.html index fe31e736cb..32d752f6fd 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/index.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/index.html @@ -176,8 +176,8 @@ will do as long as the other side registers with it.

        sendAndReceive -fun <T : Any> sendAndReceive(otherParty: Party, payload: Any, receiveType: Class<T>): UntrustworthyData<T>
        -fun <T : Any> sendAndReceive(otherParty: Party, payload: Any): UntrustworthyData<T> +fun <T : Any> sendAndReceive(otherParty: Party, payload: Any): UntrustworthyData<T>
        +fun <T : Any> sendAndReceive(otherParty: Party, payload: Any, receiveType: Class<T>): UntrustworthyData<T> diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/-init-.html index 734e28708b..700e6d3125 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/-init-.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/-init-.html @@ -7,7 +7,7 @@ net.corda.protocols / TwoPartyTradeProtocol / SignaturesFromSeller / <init>

        <init>

        -SignaturesFromSeller(sellerSig: WithKey, notarySig: LegallyIdentifiable)
        +SignaturesFromSeller(sellerSig: WithKey, notarySig: WithKey)


        diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/index.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/index.html index 8ff5958cc6..9b8c7e05c5 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/index.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/index.html @@ -17,7 +17,7 @@ <init> -SignaturesFromSeller(sellerSig: WithKey, notarySig: LegallyIdentifiable) +SignaturesFromSeller(sellerSig: WithKey, notarySig: WithKey) @@ -28,7 +28,7 @@ notarySig -val notarySig: LegallyIdentifiable +val notarySig: WithKey diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/notary-sig.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/notary-sig.html index fb72adce1e..8aa116a0c9 100644 --- a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/notary-sig.html +++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/notary-sig.html @@ -8,7 +8,7 @@

        notarySig

        -val notarySig: LegallyIdentifiable
        +val notarySig: WithKey


        diff --git a/docs/build/html/api/net.corda.protocols/index.html b/docs/build/html/api/net.corda.protocols/index.html index d6a089bc76..15755895be 100644 --- a/docs/build/html/api/net.corda.protocols/index.html +++ b/docs/build/html/api/net.corda.protocols/index.html @@ -29,6 +29,26 @@ protocols.

        +CashCommand + +sealed class CashCommand

        A command to initiate the Cash protocol with.

        + + + + +CashProtocol + +class CashProtocol : ProtocolLogic<CashProtocolResult>

        Initiates a protocol that produces an Issue/Move or Exit Cash transaction.

        + + + + +CashProtocolResult + +sealed class CashProtocolResult + + + 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 @@ -131,6 +151,12 @@ indeed valid.

        +InputStateRefResolveFailed + +class InputStateRefResolveFailed : Exception + + + NotaryException class NotaryException : Exception diff --git a/docs/build/html/building-the-docs.html b/docs/build/html/building-the-docs.html index bf5a25d152..64565b0d56 100644 --- a/docs/build/html/building-the-docs.html +++ b/docs/build/html/building-the-docs.html @@ -99,7 +99,6 @@
      3. Running the demos
      4. Node administration
      5. The Corda Configuration File
      6. -
      7. RPC Users File

Tutorials

Appendix

Tutorials

Appendix

    +
  • Load testing
  • Secure coding guidelines
  • Release process
  • Steps to cut a release
  • @@ -202,13 +202,12 @@ detail on how to use this is provided in the docs for the proxy method.

    resources. When you’re done with it, cast it to Closeable or AutoCloseable and close it. Don’t create one for every call you make - create a proxy and reuse it.

    -

    For a brief tutorial on how one can use the RPC API see Client RPC API.

    +

    For a brief tutorial on how one can use the RPC API see Client RPC API Tutorial.

    Security

    Users wanting to use the RPC library are first required to authenticate themselves with the node using a valid username -and password. These are kept in rpc-users.properties in the node base directory. This file also specifies -permissions for each user, which the RPC implementation can use to control access. The file format is described in -The Corda Configuration File.

    +and password. These are specified in the configuration file. Each user can be configured with a set of permissions which +the RPC can use for fine-grain access control.

    Observables

    @@ -269,7 +268,7 @@ This is likely to change in a future release.

Tutorials

Appendix

Tutorials

Appendix

Tutorials

Appendix

Tutorials

Appendix

-
  • RPC Users File
  • Tutorials

    Appendix

      +
    • Load testing
    • Secure coding guidelines
    • Release process
    • Steps to cut a release
    • @@ -191,7 +191,7 @@

      The Corda all-in-one corda.jar file is generated by the gradle buildCordaJAR task and defaults to reading configuration from a node.conf file in the present working directory. This behaviour can be overidden using the --config-file command line option to target configuration files with different names, or different file location (relative paths are relative to the current working directory). Also, the --base-directory command line option alters the Corda node workspace location and if specified a node.conf configuration file is then expected in the root of the workspace.

      -

      The configuration file templates used for the gradle installTemplateNodes task are to be found in the /config/dev folder. Also note that there is a basic set of defaults loaded from +

      The configuration file templates used for the gradle deployNodes task are to be found in the /config/dev folder. Also note that there is a basic set of defaults loaded from the built in resource file /node/src/main/resources/reference.conf of the :node gradle module. All properties in this can be overidden in the file configuration and for rarely changed properties this defaulting allows the property to be excluded from the configuration file.

      @@ -219,6 +219,9 @@ webAddress : "localhost:31339" extraAdvertisedServiceIds: "corda.interest_rates" networkMapAddress : "localhost:12345" useHTTPS : false +rpcUsers : [ + { user=user1, password=letmein, permissions=[ cash ] } +]

      NetworkMapService plus Simple Notary configuration file.

      @@ -292,28 +295,31 @@ useHTTPS : false  

      If null, or missing the node is declaring itself as the NetworkMapService host. Otherwise the configuration value is the remote HostAndPort string for the ArtemisMQ service on the hosting node.

      -useHTTPS:

      If false the node’s web server will be plain HTTP. If true the node will use the same certificate and private key from the <workspace>/certificates/sslkeystore.jks file as the ArtemisMQ port for HTTPS. If HTTPS is enabled then unencrypted HTTP traffic to the node’s webAddress port is not supported.

      +useHTTPS:

      If false the node’s web server will be plain HTTP. If true the node will use the same certificate and private key from the <workspace>/certificates/sslkeystore.jks file as the ArtemisMQ port for HTTPS. If HTTPS is enabled then unencrypted HTTP traffic to the node’s webAddress port is not supported.

      + + +rpcUsers:

      A list of users who are authorised to access the RPC system. Each user in the list is a config object with the +following fields:

      +
      +
      +++ + + + + + + + +
      user:Username consisting only of word characters (a-z, A-Z, 0-9 and _)
      password:The password
      permissions:A list of permission strings which RPC methods can use to control access
      +
      +

      If this field is absent or an empty list then RPC is effectively locked down.

      - -
      -

      RPC Users File

      -

      Corda also uses the rpc-users.properties file, found in the base directory, to control access to the RPC subsystem. -This is a Java properties file (details can be found in the Javadocs) -which specifies a list of users with their password and list of permissions they’re enabled for.

      -
      -
      Sample
      -
      admin=notsecure,ADMIN
      -user1=letmein,CASH,PAPER
      -
      -
      -
      -

      In this example user1 has password letmein and has permissions for CASH and PAPER. The permissions are -free-form strings which can be used by the RPC methods to control access.

      -

      If rpc-users.properties is empty or doesn’t exist then the RPC subsystem is effectively locked down.

      diff --git a/docs/build/html/creating-a-cordapp.html b/docs/build/html/creating-a-cordapp.html index eb88b92423..7d7ad81146 100644 --- a/docs/build/html/creating-a-cordapp.html +++ b/docs/build/html/creating-a-cordapp.html @@ -116,7 +116,6 @@
    • Running the demos
    • Node administration
    • The Corda Configuration File
    • -
    • RPC Users File

    Tutorials

    Appendix

      +
    • Load testing
    • Secure coding guidelines
    • Release process
    • Steps to cut a release
    • @@ -222,18 +222,22 @@ construction, where message handlers should be registered and threads started.

      Starting Nodes

      -

      To use an app you must also have a node server. To create a node server run the gradle installTemplateNodes task.

      +

      To use an app you must also have a node server. To create a node server run the gradle deployNodes task.

      This will output the node JAR to build/libs/corda.jar and several sample/standard node setups to build/nodes. For now you can use the build/nodes/nodea configuration as a template.

      Each node server by default must have a node.conf file in the current working directory. After first -execution of the node server there will be many other configuration and persistence files created in a node workspace directory. This is specified as the basedir property of the node.conf file, or else can be overidden using --base-directory=<workspace>.

      +execution of the node server there will be many other configuration and persistence files created in a node +workspace directory. This is specified as the basedir property of the node.conf file, or else can be overidden +using --base-directory=<workspace>.

      Note

      Outside of development environments do not store your node directories in the build folder.

      Warning

      -

      Also note that the bootstrapping process of the corda.jar unpacks the Corda dependencies into a temporary folder. It is therefore suggested that the CAPSULE_CACHE_DIR environment variable be set before starting the process to control this location.

      +

      Also note that the bootstrapping process of the corda.jar unpacks the Corda dependencies into a +temporary folder. It is therefore suggested that the CAPSULE_CACHE_DIR environment variable be set before +starting the process to control this location.

      @@ -408,7 +412,9 @@ is a three node example;

      You can create more configurations with new tasks that extend Cordform.

      New nodes can be added by simply adding another node block and giving it a different name, directory and ports. When you run this task it will install the nodes to the directory specified and a script will be generated (for UNIX users only -at present) to run the nodes with one command.

      +at present) to run the nodes with one command (runnodes). On MacOS X this script will run each node in a new +terminal tab, and on Linux it will open up a new XTerm for each node. On Windows the (runnodes.bat) script will run +one node per window.

      Other cordapps can also be specified if they are already specified as classpath or compile dependencies in your build.gradle.

      diff --git a/docs/build/html/data-model.html b/docs/build/html/data-model.html index c3f3f04017..299153e0cd 100644 --- a/docs/build/html/data-model.html +++ b/docs/build/html/data-model.html @@ -109,7 +109,6 @@
    • Running the demos
    • Node administration
    • The Corda Configuration File
    • -
    • RPC Users File

    Tutorials

    Appendix

    Tutorials

    Appendix

    Tutorials

    Appendix

    Tutorials

    Appendix

    Tutorials

    Appendix

      +
    • Load testing
    • Secure coding guidelines
    • Release process
    • Steps to cut a release
    • @@ -190,8 +190,11 @@ of documentation you may find useful, from highest level to lowest:

    • The Introductory white paper describes the motivating vision and background of the project. It is the kind of document your boss should read. It describes why the project exists and briefly compares it to alternative systems on the market.
    • -
    • This user guide. It describes how to use the system to write apps. It assumes you already have read the -relevant sections of the technology white paper and now wish to learn how to use it.
    • +
    • The Technical white paper describes the entire intended design from beginning to end. It is the kind of +document that you should read, or at least, read parts of. Note that because the technical white paper +describes the intended end state, it does not always align with the implementation.
    • +
    • This user guide. It describes how to use the system to write apps, as currently implemented. It assumes +you already have read the relevant sections of the technology white paper and now wish to learn how to use it.
    • The API docs.
    • Read on to learn:

      @@ -274,7 +277,6 @@ relevant sections of the technology white paper and now wish to learn how to use
    • Running the demos @@ -293,7 +295,6 @@ relevant sections of the technology white paper and now wish to learn how to use
    • Configuration File Fields
    -
  • RPC Users File
  • @@ -333,7 +334,7 @@ relevant sections of the technology white paper and now wish to learn how to use
  • Chaining transactions
  • -
  • Client RPC API
  • +
  • Client RPC API Tutorial
  • Protocol state machines

    Tutorials

    Appendix

    Tutorials

    Appendix

    Tutorials

    Appendix

      +
    • Load testing
    • Secure coding guidelines
    • Release process
    • Steps to cut a release
    • @@ -201,14 +200,25 @@ using the Standard Initial Margin Model.

      Note

      -

      The demos currently must be run from IntelliJ, this will change before M6.

      -
      -
      -

      Note

      If any demos don’t work please jump on our mailing list and let us know.

      +

      The demos can be run either from the command line, or from inside IntelliJ. Running from the command line is +recommended if you are just wanting to see them run, using IntelliJ can be helpful if you want to debug or +develop the demos themselves.

      Trader demo

      +

      This demo brings up three nodes: Bank A, Bank B and a notary/network map node that they both use. Bank A will +be the buyer, and self-issues some cash in order to acquire the commercial paper from Bank B, the seller.

      +

      To run from the command line:

      +
        +
      1. Run ./gradlew samples:trader-demo:deployNodes to create a set of configs and installs under samples/trader-demo/build/nodes
      2. +
      3. Run ./samples/trader-demo/build/nodes/runnodes (or runnodes.bat on Windows) to open up three new terminals with the three nodes.
      4. +
      5. Run ./gradlew samples:trader-demo:runBuyer to set up the buyer node with some self-issued cash. This step +is not expected to print much.
      6. +
      7. Run ./gradlew samples:trader-demo:runSeller to trigger the transaction. You can see both sides of the +trade print their progress and final transaction state in the bank node tabs/windows.
      8. +
      +

      To run from IntelliJ:

      1. Open the Corda project in IntelliJ and run the “Install” configuration
      2. Open the Corda samples project in IntelliJ and run the “Trader Demo: Run Nodes” configuration
      3. @@ -220,6 +230,22 @@ using the Standard Initial Margin Model.

      IRS demo

      +

      This demo brings up three nodes: Bank A, Bank B and a node that runs a notary, a network map and an interest rates +oracle together. The two banks agree on an interest rate swap, and then do regular fixings of the deal as the time +on a simulated clock passes.

      +

      To run from the command line:

      +
        +
      1. Run ./gradlew samples:irs-demo:deployNodes samples:irs-demo:installDist to install configs and a command line tool under samples/irs-demo/build.
      2. +
      3. Change to the samples/irs-demo/build directory.
      4. +
      5. Run ./nodes/runnodes (or runnodes.bat on Windows) to open up three new terminals with the three nodes.
      6. +
      7. Run ./install/irs-demo/bin/irs-demo --role UploadRates (or use irs-demo.bat on Windows). You should see a +message be printed to the first node (the notary/oracle/network map node) saying that it has accepted some new +interest rates.
      8. +
      9. Now run irs-demo as in step 4, but this time with --role Trade 1. The number is a trade ID. You should +see lots of activity as the nodes set up the deal, notarise it, get it signed by the oracle and so on.
      10. +
      11. Now run irs-demo --role Date 2016-12-12 to roll the simulated clock forward and see some fixings take place.
      12. +
      +

      To run from IntelliJ:

      1. Open the Corda project in IntelliJ and run the “Install” configuration
      2. Open the Corda samples project in IntelliJ and run the “IRS Demo: Run Nodes” configuration
      3. @@ -229,17 +255,24 @@ using the Standard Initial Margin Model.

      In the “IRS Demo: Run Nodes” window you’ll see a lot of activity when you run the trade and when you run the date change. The date change rolls the clock forwards and causes the nodes to agree on the fixings over a period.

      -
      -
      -

      IRS web demo

      -

      There is also an IRS web demo installed. To use this follow steps 1-3 in the IRS demo and then navigate to -http://localhost:10005/web/irsdemo and http://localhost:10005/web/irsdemo to see both node’s view of the trades.

      +

      There is also an web app as part of this demo. To use this set up the trades and then navigate to +http://localhost:10005/web/irsdemo and http://localhost:10005/web/irsdemo to see both node’s view of the ledger.

      To use the demos click the “Create Deal” button, fill in the form, then click the “Submit” button. Now you will be able to use the time controls at the top left of the home page to run the fixings. Click any individual trade in the blotter to view it.

      Attachment demo

      +

      This demo brings up three nodes, and sends a transaction containing an attachment from one to the other. To run +it from the command line (recommended for Mac/UNIX users!):

      +
        +
      1. Run ./gradlew samples:attachment-demo:deployNodes to create a set of configs and installs under samples/trader-demo/build/nodes
      2. +
      3. Run ./samples/attachment-demo/build/nodes/runnodes to open up three new terminal tabs/windows with the three nodes.
      4. +
      5. Run ./gradlew samples:attachment-demo:runRecipient, which will block waiting for something to happen.
      6. +
      7. Run ./gradlew samples:attachment-demo:runSender in another terminal window to trigger the transaction. +Now look at the other windows to see the output of the demo.
      8. +
      +

      Or you can run them from inside IntelliJ, but when done this way, all the node output is printed to a single console.

      1. Open the Corda project in IntelliJ and run the “Install” configuration
      2. Open the Corda samples project in IntelliJ and run the “Attachment Demo: Run Nodes” configuration
      3. diff --git a/docs/build/html/search.html b/docs/build/html/search.html index 29bc8d90c4..d86a21318b 100644 --- a/docs/build/html/search.html +++ b/docs/build/html/search.html @@ -98,7 +98,6 @@
      4. Running the demos
      5. Node administration
      6. The Corda Configuration File
      7. -
      8. RPC Users File

    Tutorials

    Appendix

      +
    • Load testing
    • Secure coding guidelines
    • Release process
    • Steps to cut a release
    • diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index b4c7d4c02a..0874034a73 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({envversion:49,filenames:["building-the-docs","clientrpc","codestyle","consensus","contract-catalogue","contract-irs","corda-configuration-files","creating-a-cordapp","data-model","event-scheduling","getting-set-up","index","initialmarginagreement","inthebox","merkle-trees","messaging","network-simulator","node-administration","node-explorer","oracles","persistence","protocol-state-machines","release-notes","release-process","running-the-demos","secure-coding-guidelines","transaction-data-types","tutorial-attachments","tutorial-clientrpc-api","tutorial-contract","tutorial-contract-clauses","tutorial-test-dsl","where-to-start"],objects:{},objnames:{},objtypes:{},terms:{"00z":29,"0_xx":10,"1000l":27,"17t16":29,"1mb":21,"300px":26,"8u45":10,"_before_":21,"_do_":21,"_foo":2,"abstract":[8,21,22,29,30],"boolean":[8,22,29],"break":[19,21,23],"byte":[2,8,21,31],"case":[2,3,6,7,8,12,19,20,21,22,26,27,29,30],"catch":[2,10,21,25],"class":[1,2,3,5,7,9,11,19,20,21,22,25,26,27],"default":[2,4,6,7,10,12,14,16,17,18,21,22,25,26,28,29],"enum":22,"export":[17,21,32],"final":[3,5,8,10,14,21,22,29,31],"float":[4,5,9],"function":[2,4,5,8,11,12,14,19],"import":[2,8,9,10,21,22,26,29,30,31,32],"instanceof":29,"int":[2,3,29],"long":[2,4,8,9,29],"new":[2,3,5,7,8,10,13,15,17,18,21,22,23,26,27,28,29,30,31,32],"null":[6,9,27,29],"public":[2,6,7,8,13,15,17,21,22,26,29,30,31],"return":[1,2,3,5,9,17,20,21,22,25,27,28,29,30,31,32],"short":[9,12,23],"static":[7,8,12,19,21,29,31,32],"super":[2,30],"switch":[21,22,29],"throw":[1,2,3,14,21,29,30],"transient":21,"true":[3,6,8,19,29],"try":[1,2,8,21,22,28,32],"var":21,"void":[29,30,31],"while":[16,26,29],abil:8,abl:[3,7,8,12,14,17,18,19,21,22,24,29],abort:[3,19],about:[2,3,8],abov:[2,5,8,12,14,17,21,29,30,31],absolut:[3,6,8],abstractstatereplacementprotocol:22,accept:[2,3,4,8,29],acceptablepric:21,access:[1,2,6,10,11,15],accid:21,accident:[2,25],accompani:[2,29],accord:32,accordingli:30,account:[8,22,26],accrual:5,accur:[3,12],accuraci:8,achiev:[3,8,26],achiv:14,ack:22,acknowledg:21,acronym:12,across:[4,6,8,20,22,27],act:[3,6,8,19,21],action:[9,29,32],activ:[5,9,20,22,24,29],actor:[2,8,21],actual:[3,5,10,12,19,21,25,27,29,30,31],adapt:[2,19,21],add:[2,7,8,12,14,15,17,21,25,27,29,30,31],addattach:27,addcommand:[21,29],adding:11,addinputst:[21,29],addit:[2,3,6,8,20,22,26,29],addition:[8,20,21,23],addmessagehandl:22,addoutputst:[21,29],address:[3,6,7,8,15,18,21,22,28,29],adjust:[2,5,23,29,32],admin:[6,10,18],administr:[11,13],advanc:[4,5],advantag:8,adventur:32,advertis:[1,6,29],advertisedservic:7,advic:23,affect:[10,19],affinityexecutor:2,afraid:2,after:[3,4,5,7,9,10,13,14,19,21,29],again:[5,8,19,21,29],against:5,agent:17,agentlib:7,aggreg:[8,12,29,30],agre:[5,9,12,21,24,25],agree:[5,12],agreement:[5,8,11],ahead:[21,29],aid:22,aim:[2,8],albeit:22,albertsen:22,algorithm:[8,13,22,26,29],alia:6,alice:[18,26,29],alice_key:27,aliv:21,all:[0,1,2,3,4,5,6,7,8,10,14,17,18,19,20,21,22,23,24,25,26,27,29,30,32],allclaus:30,allcomposit:30,allevi:3,allow:[1,2,3,4,5,6,7,8,9,12,15,19,20,21,22,25,26,29,31,32],allpartysignedtx:21,almost:29,along:[3,19,21,29],alongsid:29,alreadi:[2,7,9,11,12,14,19,21,22,27,29,30,31],alright:21,also:[1,2,3,4,5,6,7,8,9,10,12,14,15,16,17,18,20,21,22,24,26,27,28,29,30,31,32],alter:[6,17,21],altern:[0,2,6,11,15,16,17,18,26,29],although:[5,6,8,21,27,29,30,32],alwai:[2,8,9,17,20,21,26,29],amount:[1,4,5,8,11,12,21,22],amqp:[15,22],analysi:8,analyt:12,andresen:8,ani:[2,3,4,5,8,9,12,17,18,19,20,21,22,23,24,25,26,27,28,29,32],annot:[1,2,20,21],announc:23,anonym:8,anoth:[1,2,3,7,8,10,12,17,19,21,22,27,28,29,31],answer:[2,19],anticip:2,any:[1,4,9,12,17],anybodi:8,anyclaus:30,anycomposit:30,anyon:[3,29],anyth:[3,8,21,25,26,29,30],anywher:[19,22,29],apach:15,apart:3,api:[0,1,2,7,11,13,17,20,21,22,23,24],app:1,appear:[28,29],append:[17,21],appendix:11,appli:[2,4,5,7,8,29,30],applic:[7,8,15,19,22,25,32],applyfix:5,appoint:3,approach:[8,9,11],appropri:[2,15,20,30],approv:[8,9,21],approxim:3,april:22,arbitrari:[2,8,19,21,25,26],arbitrarili:8,architectur:[11,19],area:20,aren:[1,9,13,29,32],arg:[7,22],argument:[2,8,21,28,29],aris:8,around:[3,8,14,21,22,23,26,29,30],arrai:[8,21],arrang:21,arriv:[19,21],arrow:[5,10],art:26,artemi:[7,15],artemisaddress:6,artemismq:6,artemisport:7,articl:[3,8,9,19,21,22,29,32],artifact:7,ask:[2,19,21,29],aspect:[21,32],assembl:[8,14,29],assemblesharedtx:21,assert:[2,11],assertequ:[21,27],asset:[4,11,21,22,25,26],assetforsal:21,assetmismatchexcept:21,assettosel:21,assettypenam:21,assign:[8,19,21],assist:[9,20,21,26],associ:[3,8,9,15,20,22,26,29],assum:[3,8,11,14,21,25,29],assume:[14,21],assumpt:21,assur:12,atom:[3,8,21,22,24,29],attach:[7,8,11,14],attachment:[8,11,17],attachmentdemo:27,attack:[3,25],attch:14,attempt:[8,10,25],attent:21,attest:3,attribut:2,audit:8,authent:[1,3,22],authenticatedobject:[26,29,30],author:[2,3,23,32],authoris:[21,26],auto:[2,29],autoclos:1,autom:[8,9,29,32],automat:[0,1,3,6,7,9,15,16,20,21,22,27,29,32],avail:[0,3,5,6,7,9,16,17,21,22,23,25,27,28,29],avoid:[2,8,20,21],awai:[8,21],await:7,awar:[1,2,9,21,22,29],awg:23,awkward:[2,21],axi:5,back:[1,2,8,12,19,21,22,25,26,29],backend:22,background:[1,2,8,11],backoff:15,backport:23,backward:[21,23],bad:[2,21,29,31],balanc:[3,4,8,18,29,31],banana:26,bananast:26,banco:22,band:21,bandwidth:2,bank:[5,6,8,22,26,27,29,32],bankrupt:29,bankruptci:[3,8,12,19],barreca:22,barrel:22,base:[1,2,3,5,6,7,8,9,15,21,22,26,29],basedir:[6,7],basi:[5,9,16,17],basic:[2,3,6,8,11,14,18],bat:[12,16,18],bbva:22,bear:21,becaus:[2,3,8,9,10,17,19,21,26,28,29,30,31],becom:[2,5,8,9,21,23,26],been:[3,5,6,8,10,12,19,21,22,23,26,28,29,30],befor:[3,5,7,8,9,13,21,22,23,24,26,27,28,29,30],begin:[2,8,29,32],behav:29,behaviour:[3,4,6,17,30,31],behind:[15,21,29],believ:22,belong:14,below:[2,5,7,8,9,12,14,21,26,32],beneficiari:4,benefit:[3,21],best:[2,32],bet:19,better:[2,13,22,29],between:[2,3,5,8,9,15,16,19,20,21,22,23,24,25,26,28,29],beyond:8,big:[2,8,21,22,29],bigdecim:[19,26],bilater:[4,5,22],bill:29,bin:28,binari:[8,14,19],bind:[3,6,8,19],bip:8,bit:[26,29,31,32],bitbucket:10,bitcoinj:21,blah:2,blank:[2,17,18,29],block:[1,2,3,7,8,19,21,22,25],blockchain:[8,13,14,21,29],bloom:2,bloomfilt:2,blotter:24,blue:[5,14],bob:[18,26,29],bodi:[2,12],boil:8,boilerpl:[7,29],bond:29,bookkeep:29,boost:13,bootstrap:7,bore:29,boss:11,both:[3,4,5,8,13,19,20,21,22,24,25,26,29],bounc:21,bound:[3,21,22,29],box:32,branch:[11,14,22,23],breach:8,bread:32,breakpoint:12,breviti:30,brief:[1,22],briefli:[11,15],bring:8,broadcast:[3,8,29],broadcasttransactionprotocol:3,broke:2,broken:[22,29],broker:[6,15],brows:[12,17],browser:6,buffer:1,bug:[2,22,23],bugfix:23,bui:[21,32],buildcordajar:6,builder:[21,22,25,27],buildmerkletransact:14,buildscript:7,built:[3,6,7,14,21,22,25,29],bulk:[8,30],bullet:2,bundl:8,busi:[8,9,13,19,20,21,22,26,29,32],businesscalendar:26,butter:32,button:24,buyer:11,bytecod:[8,21,29],cach:[15,27],calcul:[3,5,9,12,14,21,25,26,29],calendar:[5,19,26],call:[1,2,3,5,8,13,17,21,22,23,25,26,27,28,29,30,31],callback:[1,2,21,22],caller:[3,29],came:21,camel:2,can:[0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,24,25,26,27,28,29,30,31,32],candid:20,cannot:[3,4,8,10,19,22,25,26,29],capabl:29,capit:2,capitan:0,capsule_cache_dir:7,captur:9,cardon:22,care:[2,3,8,21,25,31],carefulli:13,cashkt:29,cashsigningpubkei:21,cashstat:21,cast:1,catastroph:12,caught:1,caus:[2,12,24,29],cent:26,center:29,central:[26,29],ceo:26,cer:6,certain:[2,12,22,29],certainli:7,certainti:3,certif:[6,22,28],cev:10,chain:[4,8,11,19,21,22,26,29],chaincash:31,chaincashdoublespend:31,chaincashdoublespendfailswith:31,challeng:8,chanc:[2,21],chang:[0,1,2],changenotari:3,channel:21,charact:2,charg:19,charli:26,check:[2,3,6,9,10,11,14,16,19,21,22,25,26,27],checkabl:[19,22],checknotnul:29,checkpoint:22,checkstat:29,checksufficientsignatur:[3,21,26],child:[21,26],children:[21,26],childrenfor:21,choic:[2,3,8,29],choos:[3,10,18,29],chosen:[3,8,21],chronolog:9,chunk:[29,30,32],circl:16,claim:[8,29],clash:[2,20],classic:29,classpath:[7,8],claus:[11,22],clauseverifi:30,clean:[21,22],cleaner:22,cleanup:22,clear:[1,21,25,26],clearer:21,clearli:2,cli:12,click:[10,18,24],clock:[3,8,9,21,24],clone:[2,10],close:[1,3,4],closeabl:1,closer:3,closur:[2,31],cloud:17,cluster:[3,6],cmd:[14,29,30],coars:8,code:0,codebas:[2,20],cognit:8,coin:8,collabor:22,colleagu:2,collect:[1,2,17,20,22,29,30],collector:[2,17,21],collis:2,column:[7,17,20],com:[0,10],combin:[8,26,29],come:[1,8,21,22,23,25,29],command:[0,3,4,5,6,7,8,10,11,12,14,16,17,18,19,21,22,26,27,28],commanddata:[19,29,30],commercial_pap:[29,30],commercialpap:[4,20,29,30],commercialpaperlegaci:29,commit:[3,9,21,23],committe:12,common:[4,5,8,20,21,22,26,29,30,31],commonleg:5,commun:[10,21,22,25],compani:19,companion:[21,29,30],compar:[8,11,14,29],compat:[1,23],compel:3,compet:8,complementari:9,complet:[8,9,19,21,22,24,26,27,29,30,31],complex:[2,4,8,12,20,21,26,27,29],complic:[21,29,30],compon:[7,9,15,22],compos:[21,22,26,29,30],composit:[26,30],compositeclaus:30,compound:22,compris:5,comput:[5,19],computeoursignatur:21,concaten:14,concept:[3,4,8,9,14,19,21,22,29],concern:[8,21,29],concis:22,conclus:[3,8,19],concurrenthashmap:2,condit:[3,19,22,30,31],conf:[6,7],confgur:20,config:[6,7,17],configur:1,confirm:[3,10,12],conflict:[3,8],confus:21,connect:[1,6,7,13,17,18,28],consid:[2,5,8,9,19,22,23,26,29],consider:29,consist:[5,8,12,19,21,22,30],constant:[2,20,29],constantli:19,constraint:[19,21,22,29],construct:[2,3,7,11,14,20,21,22,25,26],constructor:[9,21],consum:[1,3,8,9,22,26,29],consumingtx:3,consumpt:[9,19],contact:[10,21,22],contain:[3,5,6,7,8,14,15,17,18,19,21,22,23,24,26,27,29,30,31,32],content:[2,3,7,8,9,10,17,19,21,26],context:[2,8,17,19,26],continu:[5,11],contract:3,contractreject:31,contractst:[3,9,14,20,22,26,29],contrast:[8,19,21],contribut:26,control:[1,2,3,6,7,8,10,17,20,21,22,24,25,26,29,32],conveni:[2,8,26,29],convent:[5,21,30],convers:26,convert:[3,4,5,20,21,22,26,29],convinc:[14,21,26],coordin:6,copi:[2,3,8,15,21,27,29,31,32],copyonwritearraylist:2,copyright:2,corda:[1,3,4],corda_dev_ca:6,corda_vers:7,cordacadevpass:6,cordapluginregistri:7,cordarpccli:1,cordarpcop:1,core:[4,7,8,19,21,22,26,27,29,31],corner:10,correct:[4,8,19,21,22,23,29,31],correctli:[8,19,22,29],correspond:[1,26,29],correspondingli:[2,27],cost:[1,19,29],could:[2,3,4,8,19,21,25,26,29],couldn:14,count:5,countabl:22,counter:[2,21],counterparti:[4,5,12,25],countri:[19,26],coupl:21,cours:[17,19,20,21,29,32],coven:29,cover:[3,4,8,12,19,21,26,29,32],crash:21,creat:[1,2,3],createdummyirs:5,createsomenod:21,creation:[5,8,14,29],creator:19,credenti:18,credit:[12,22],crisi:12,crisp:29,criteria:4,critic:[8,23],crop:8,crypto:22,cryptograph:[14,26],cryptographi:11,csr:22,curl:17,currenc:[4,5,18,21,22,26,29],current:[1,2,3,5,6,7,8,9,11,13,14,15,16,18,19,20,21,22,23,24,25,26,28,29,31],currentstep:21,currenttim:21,currentwallet:21,curv:5,custodi:[21,26],custom:[3,17,21,22,24,26],customis:32,cut:11,cycl:[2,21,29],dai:[3,5,17,19,21,23,26],daniel:22,danks:22,dashboard:[17,18],data:[0,2,3,4,5,7],databas:[6,7,8,11,13],dataset:[5,12],datasourc:6,datasourceclassnam:6,datasourceproperti:6,date:[3,4,5,9,11,17,23,24],dateoffset:22,daterollconvent:26,david:22,dcapsul:7,dead:15,deadlin:26,deal:[2,19,21,24,26,29],dealstat:26,debt:[4,12],debugg:7,decd098666b9657314870e192ced0c3519c2c9d395507a238338f8d003929de9:17,decd:17,decentralis:[8,19,22],decid:[10,14,19,20,29],decis:[3,8,29],declar:[2,6,31],dedic:2,dedupl:22,defaultissu:29,defin:[2,3,8,13,17,20,21,22,26,28,29,30,31,32],definit:[3,21,22,26,29,30],delai:[5,19],deleg:[3,30],delet:[2,8,21,22,29],deliber:[8,31],deliv:[4,21,26],deliveri:[13,15,21,24],demand:[3,8,21,22],demo:[6,7,11,12,13],demonstr:[12,22,24,32],denial:3,denot:14,dens:2,depend:[2,3,7,8,9,10,12,19,21,22,29],dependson:7,deploi:7,deploy:7,deploynod:[7,12],deposit:[29,31],deprec:22,deregist:15,deriv:[5,20,21,22,26,29],describ:[1,2,3,8,9,11,12,14,21,25,26,28,29],descript:2,deserv:23,design:[2,3,8,13,19,22,25,29,30,32],desir:[21,26],desktop:17,despit:[21,27,29],destroi:[4,8,29],destructur:29,detail:[1,2,3,4],detect:2,determin:[4,5,9,30],determinist:1,dev:6,develop:[2,6,7,8,11,13,20,21,22,23,24,29],devic:[6,8],devis:8,diagram:5,did:14,didn:[2,14,21,23,29],differ:[2,3,4,5,6,7,8,9,18,19,20,21,22,26,29,31],difficult:21,difficulti:30,digest:3,digit:[8,19,21,22,29],digitalsignatur:[3,19,21],direct:2,directli:[1,2,3,15,17,21,22,26,28,29,30],directori:[0,1,6,7,12,28,32],directthreadexecutor:2,dirnam:7,dirti:29,disabl:26,disadvantag:8,disagr:12,disambigu:20,discard:25,discov:8,discoveri:16,discuss:[8,21,26,29],disk:[15,21,22,26],disobei:19,displai:3,disput:[3,5,29],disrupt:15,distinct:[2,30],distribut:[3,7,8,11,13,19,21,22],distrust:[3,21],divid:3,divis:26,doc:[0,1,2,11,22,28],docker:17,docsit:[0,23],doe:[2,3,4,5,7,8,9,12,13,17,19,20,21,25,29,31,32],doesn:[2,3,6,8,10,13,17,21,25,29,31],dokka:0,dollar:[26,29,31],dollars:[29,31],domain:[22,26,29],domicil:29,domino:12,don:[1,2,8,10,13,19,21,23,24,25,26,29,30,31],done:[0,1,8,14,21,22,28,29],dot:[5,14],doubl:[8,13,18,21,29],doubt:[2,13],down:[2,6,8,18,21,27,29,30],download:[1,10,11],downsid:[2,8],drain:[1,21],draw:[22,28],drawn:28,drive:[8,32],driven:24,driver:[6,17,20,22,32],drm:19,dsl:[7,22,31],dt_socket:7,due:[2,3,5,8,9,12,13,20,21,29,30],dummi:[4,21,31],dummy1:21,dummy2:21,dummy_cash_issuer:31,dummy_notary_key:21,dummy_pubkey_1:[29,31],dummy_pubkey_2:31,dummycontract:21,dump:28,duplic:[14,21],durat:[9,19],dure:[2,5,6,7,16,17,21,22,29],dynam:[8,22,29,32],each:[1,2,3,5,7,8,9,12,14,16,19,20,21,22,23,26,28,29,30,31,32],earli:[2,4,32],earlier:25,earliest:[5,9],easi:[2,8,19,22,29],easier:[2,7,21,22,29],easiest:[1,29],easili:[2,12,21,29],econom:5,ed25519:22,edg:28,edge:28,edit:17,edition:10,editor:10,effect:[5,6,8,12,20,21,31],either:[2,3,4,5,6,8,14,20,21,26,29,31,32],elbonia:26,element:[2,8,14,30],elimin:[13,22],els:[3,7,8,19,21,26,29,30],email:21,embed:[8,13,14,17,19,22],embedd:15,emit:[1,22],emoji:27,empti:[3,6,22,29,31],emptyledg:31,emptyset:[3,27],enabl:[6,7,27,30],enact:12,encapsul:[2,26],enclos:2,encod:19,encount:[9,13],encourag:[20,27],encumb:29,encumberedst:29,encumbr:29,encumbranc:11,end:[2,3,5,8,19,21,23,30,32],endpoint:[7,15,17],enforc:[2,8,29],enforceverifyorfail:31,engin:12,english:[2,29],enjoy:22,enorm:21,enough:[2,10,12,21,29,32],ensur:[2,3,8,10,14,21,22,23,25,26,29,30],ensure:[3,10,12],enter:[7,12,31,32],entir:[3,5,8,19,21,29],entireti:5,entiti:[3,8,14,19,20,26,29],entri:[5,6,7,8,21,25,29],enumer:[5,20],environ:[2,7,19,21],envisag:29,equal:[3,21,22,26,29,30,31],equiti:20,equival:[2,5,18,26,29],especi:26,essenti:[17,19,29,30],establish:[9,15,24],etc:[2,3,4,5,12,13,18,19,21,22,23,26,29,30],euribor:[17,19],euro:26,evalu:[5,19,30],even:[1,3,8,12,13,14,19,20,21,22,29,31],event:[2,3,5,8],eventual:[3,23],ever:[2,8],everi:[1,3,8,14,15,19,20,21,22,23,25,26,29,32],everybodi:8,everyon:[3,19,29],everyth:[3,25,29,32],evid:19,evolut:8,evolv:[20,29,32],exact:3,exactli:[8,26,29],examin:[2,7,8,21,29],exampl:[0,2,3,4,5],excel:19,except:[1,2,21,25,29],exception:[2,21],excess:2,exchang:[5,21,26],exclud:6,exclus:4,execut:[3,7,8,9,16,18,21,22,26,27,29],executor:2,exhaust:22,exist:[2,3,4,5,6,7,8,9,11,20,22,26,29,31,32],exit:[4,18,21,22,29],expand:18,expect:[1,2,4,6,9,20,21,22,23,25,26,27,29,30,31],expectedtypenam:21,expens:[1,2],experi:[7,22,23,32],experienc:8,experiment:[2,21,22],explain:[2,9,21,22],explan:[2,28],explicit:[2,8,21,29],explicitli:[2,8,31],explor:[2,8,10,13,17,18,21,22,29,32],explorer:11,expos:[2,7,8,9,17,20,21,22,26,28],expose:[21,26],exposur:[4,5],express:[3,5,8,22,26,29,31],ext:7,extend:[2,3,7,13,21,22,26,29,30],extens:[2,22,25,26,29],extent:8,extern:[6,21,27,32],extraadvertisedserviceid:6,extract:[8,17,19,26,29],extractcommand:30,extrem:[3,8],face:29,facevalu:29,fact:[2,3,5,8,19,21,29,31],factor:[5,8,12],fail:[27,29,30,31],failswith:31,failur:[21,27,31],fairli:[2,12,21],fake:32,fals:[2,3,6,19,21,26,29],famili:20,familiar:[8,29],famou:[8,22],fanci:29,far:[21,24,29],fashion:[2,12,20],fast:[8,21],fault:21,featur:[1,2,6,7,8,11,12,15,19],feed:[3,19],feedback:22,feel:[29,32],fetch:[15,17,19,27],fetchtransactionsprotocol:27,few:[2,13,17,19,21,23,24,29],fiber:21,field:[2,5],file:[0,1,2],fill:[2,21,24,29],filter:[2,14,22],filtercommand:14,filteredleav:14,filteredtransact:14,filterfun:14,filterisinst:29,finalis:[3,5,21,22],finalisetransact:3,finalityprotocol:[3,27],financ:[7,21,22,32],financi:[8,9,12,21,22,26],find:[0,8,11,13,17,21,25],fine:[8,31],finish:[21,22],fire:21,firewal:21,first:[1,2,3,5,6,7,9,10,15,17,19,20,21,22,26,27,29,30,32],firstli:29,fit:[2,8],fix:[2,4,5,8,9,11,14],fixabledealst:26,fixedleg:5,fixedlegpaymentschedul:5,fixedratepaymentev:5,fixingroledecid:9,fixingsessioninitiationhandl:9,fixof:[14,19],flag:[17,32],flat:20,flesh:26,flexibl:[3,8,26],flight:[1,8],floatingleg:[5,9],floatinglegpaymentschedul:5,floatingratepaymentev:5,flow:[2,5,29,30],flux:[7,32],fly:21,focu:14,fold:2,folder:[0,6,7],follow:[0,2,3,7,8,9,10,17,18,21,24,29,30,31],font:2,foo:2,foobrokenexcept:2,foot:25,fooutil:29,forc:[8,17,22,29,31],fordai:[9,19],forev:23,forget:[21,29],form:[3,6,7,8,9,14,24,29,30],format:[0,1,2],former:28,formula:22,forth:[1,21],fortun:12,forward:[15,19,21,23,24],found:[6,10,17,19,21,23,26,32],four:29,fourpmtimelock:29,fraction:26,frame:[2,12,21],framework:[8,13,15,18,21,22,26,32],free:[3,6,8,21],freed:1,freeli:19,frequenc:5,frequent:29,fresh:[19,29,31],freshkei:21,freshli:26,from:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,31,32],fromcountri:26,front:29,frontend:13,frustrat:8,ftx:14,fulfil:[4,8],full:[2,3,4,6,12,14,15,21,28,29,30],fulli:[2,3,6,8,21,22,26],fullysign:21,fun:[3,9,14,19,21,27,29,30,31],fund:[8,12],fundament:[3,8,29],fungibl:[4,26,29,30],fungibleasset:[4,11,22],further:[5,8,22,26,30],futur:[1,3,4,6,8,11,15,19,20],fuzz:22,gain:13,garbag:[1,2,17,21],gather:29,gavin:8,gcd:8,gear:23,gener:0,generateiniti:21,generateirsandfixsom:5,generateissu:29,generatemappedobject:20,generatemov:29,generateredeem:29,generatespend:[21,29],genuin:2,get:[1,2,3,8],getamount:31,getbefor:29,getbloomfilters:2,getclass:29,getcommand:[29,30],getcontract:29,getdummy_cash_issuer:31,getdummy_pubkey_1:31,getdummy_pubkey_2:31,getencumbr:29,getfacevalu:29,getfix:5,getinput:[22,29],getinstat:22,getissuanc:29,getkei:29,getlegalcontractrefer:[29,30],getmaturityd:29,getmega_corp:31,getmega_corp_pubkey:31,getnotarysignatur:[3,21],getoutput:[22,29],getoutst:22,getowner:[29,30],getparticip:29,getprotocoltrack:21,getprotocolvers:1,getrequiredcommand:30,getresourceasstream:27,getsign:[29,30],getter:[20,29],gettimestamp:29,gettransact:21,getvalu:[29,30],git:[10,14,22,23],github:[0,6],giusepp:22,give:[3,7,8,15,21,22,27,29],given:[3,8,14,19,21,26,29],givenpric:21,glanc:18,global:[2,3,8,22,26],glue:21,gnu:0,goal:[2,8,13,23],goe:1,gone:[21,22,29],good:[2,10,14,21,29,31,32],got:[14,17,21],gover:29,govern:12,gps:3,grade:26,gradl:6,gradlew:[7,10,12,16,18,28],grammar:2,granular:8,graph:[1,8,13,17,21,22,28],graphit:17,graphstream:28,great:[12,22],greater:2,greatest:8,green:10,groom:8,group:[4,7,8,11,14,18],groupclaus:30,groupclauseverifi:30,groupingkei:30,groupstat:[29,30],guarante:[23,26],guava:[2,29],gui:21,guidelin:[11,22],hack:[8,22],had:[3,21,22,26,29],hand:[9,16,21,29],handa:22,handi:21,handler:[7,9,21],happen:[2,3,8,9,11,14,19,21,23],happi:[24,27],hard:[2,8,21,23],harder:[8,25,29],hardwar:6,hase:5,hash:[3,8,13,14,17,19,21,22,26,29],hashcod:29,haskel:22,hasn:[10,28],hassl:21,hat:23,have:[1,2,3,4,5,7,8,9,10,11,12,13,14,15,17,19,20,21,22,23,24,25,26,27,29,30,31,32],haven:29,heap:21,hearn:8,heart:29,heavi:23,heavili:8,hedg:[4,5],heirarchi:2,held:20,hell:21,hello:21,help:[2,8,9,21,29],helper:[5,21,26,29],henc:[3,5,8],her:29,here:[2,3,6,7,8,11,13,14,17,19,20,21,22,26,29,31,32],hidden:15,hide:11,hierarch:21,hierarchi:21,high:[8,21],higher:[1,2,3,10],highest:11,highli:22,highlight:22,histori:3,hit:[8,10,27],hoc:22,hocon:6,hold:[8,14,22],holder:[2,8,29],holidai:[5,19,26],home:[10,18,24],homepath:7,hood:31,hopefulli:32,hospit:21,host:[6,7],hostandport:6,hostil:25,hotspot:2,hour:21,hous:18,how:[1,2,4,8],howev:[3,4,5,6,8,14,19,20,21,26,27,29,30,31],html:[0,2],http:[0,6,10,12,17,19,21,24,27,29,30,32],https:6,hub:21,human:[3,6,8,19,21],hundr:21,hurt:21,ide:[10,13,17,22],idea:[2,8,10,13,21,32],ideal:[21,29],ident:[3,6,8,14,15,19,21,22,26,29,30,31],identicon:22,identifi:[5,8,12,14,15,17,19,26],identiti:[3,21,26],identityless:8,ifmatch:22,ifnotmatch:22,ignor:[6,21,29,30],illegalargumentexcept:[2,21,29,30,31],illegalstateexcept:[2,29,30],illustr:26,illustrat:2,imag:14,imagin:[2,21,29],immedi:[1,8],immut:[2,5,8,19,29],immutabl:[2,8],immutablelist:29,imper:2,implement:[1,2,3,4,5,7,8],impli:21,implic:[3,8,21],implicitli:5,important:23,importattach:27,impos:[19,29],imposs:[8,14,19],improv:[22,23,29,30],improve:8,improvement:22,inadvert:29,includ:[2,3,4,6,8,10,11],inclus:14,incom:22,incompat:31,inconveni:29,incorpor:19,increas:[2,12],increment:1,indent:2,independ:[3,12,19,20,30],index:[5,8,9,10,20,23,29],indexsourc:9,indic:[1,2,5,9,21,22,29],individu:[2,12,18,24,29,31],indivis:26,industri:[12,13,17],infer:31,influenc:17,info:[20,21],inform:[2,3,8,18,21,22,26,27,29],infrastructur:[1,8,13,17,21,22,29],inher:8,inherit:[2,29,30],initi:[3,12,21,22,24,32],initial:11,initialis:[16,20,21],inner:30,inoutgroup:[29,30],input:[3,4,8,12,14,18,19,21,22,27,28,29,30,31],inputcash:31,inputindex:3,insert:[2,3,17,19,20,21],insid:[1,8,14,21,25,29],instal:[0,6,7,9,10,22,24,28,29],installdist:28,installtemplatenod:[6,7],instanc:2,instance:31,instant:[2,9,21,26,29],instanti:[8,9,21,22],instat:31,instead:[2,8,13,15,21,22,26,29,32],instigat:3,institut:8,instruct:[17,27],instrument:[4,5,9],insuffici:8,insufficientbalanceexcept:29,integ:[1,22,26,29],integer:29,integr:[2,8,12,14,17,19,20,21,22,27],intellig:2,intend:[2,4,7,8,17,18,19,20,21,25,26,31],intent:[19,22,29],intention:2,inter:22,interact:[1,2,8,15,19,21,22,29],interchang:26,interest:1,interest_r:6,interfac:[1,2,4,9,11,13,15],interior:22,interledg:22,intermediari:[12,26],intern:[2,7,15,17,20,21,22,26,29],internalis:2,interop:[13,22,29],interpol:26,interpret:[2,8],intersect:29,interv:26,intesa:22,introduc:[2,3,9,19,22,29],introductori:11,intuit:2,invalid:[3,19,21,26,29],invari:29,investig:21,invoc:[1,21],invoic:27,invok:[1,2,8,9,17,21,22],invoke:21,invokeprotocolasync:21,involv:[3,4,8,21,26,29,32],ipsa:19,irrelev:9,irs:[4,5,11,13,19,22],irsdemo:[6,14,24],irsexport:5,irstest:5,irsutil:5,isbefor:29,isda:[12,22],isempti:29,isinstanc:21,isn:[1,2,8,21,25,26,29,32],isnotempti:27,isol:30,issu:[3,4,8,12,14,18,19,21,22,23,26,28,29,30,31,32],issuanc:[4,26,29,30],issue:[4,29,30],issuedbi:31,issuer:[4,8,18,21,26,29,31],item:29,iter:[21,22,23,29],itself:[1,3,5,6,8,9,12,15,17,19,20,21,22,27,28,29,31],jar:[0,6,7,8,12,17,22,27],jarandsourc:7,java:[1,2,6,7,8,9,12,13,17,20,21,22,26,27,29,30,31,32],javaclass:21,javacommercialpap:29,javadoc:[2,6,7],javadocjar:7,javafx:22,javatesthelp:31,jdbc:[6,7,17,20,22],jdbcdatasourc:6,jdbcx:6,jdk1:10,jdk:[10,22,26,29],jdwp:7,jetbrain:[10,13],jms:15,jmx2graphit:17,jmx:17,jmxtran:17,job:[21,32],johann:22,join:[15,20,22,29],jolokia:17,jpa:20,json:[6,17,32],judgement:2,jump:24,just:[1,2,8,10,12,15,17,21,22,25,26,27,28,29,31,32],jvm:[1,7,8,13,17,21,25,32],kdoc:2,keep:[8,21,29],kei:[2,4,6,8,13,19,21,22],kept:[1,21],keymanagementservic:21,keypair:[21,29],keystor:6,keystorepassword:6,keyword:[2,31],kick:21,kind:[8,11,19,21,25,26,29,32],know:[1,3,8,9,13,14,19,21,24,25,29,30,31],knowledg:19,known:[5,8,12,14,21,23],korea:29,kotlin:[0,2,10,11],kryo:21,label:[21,31],lack:8,lambda:[21,31],land:5,lang:31,languag:[1,2,7,8,10,13,21,22,26,29,32],larg:[8,15,19,21,22,24,26,27,29,32],larger:[2,8,25],last:[21,23,31],lateinit:21,latenc:3,later:[1,2,13,19,20,21,22,25,26,29,30],latest:[2,10,22],latex:22,latter:[2,28,29],launch:9,layer:[6,8,15,19,20,21,22],layout:[7,16],ldap:22,lead:[2,8],leaf:14,leak:[1,3,8,21],learn:[8,11,21,24,26,29,32],least:[27,29],leav:[2,14,18,21,26],ledger:[3,4,5,8,11,17,19,20,21,22,26,27,29,31],ledgertransact:[21,22,26],leewai:25,left:[16,21,24,30,31],leg:[5,9],legal:[3,6,8,19,26,29],legalcontractrefer:[29,30],legallyidentifi:[3,19,21],less:[21,22,27],let:[2,8,9,14,15,17,19,21,22,24,26,27,28,29,31],letmein:6,letter:[2,15],level:[2,3,5,10,11,12,14,15,18,21,25,26,29,30,31],lib:[0,7],liber:2,libor:[5,17,19],librari:[1,2,6,12,17,19,21,22,26,28,29],licens:[2,12],life:[21,29,32],lifecycl:4,lifecyl:4,lifetim:5,lightweight:21,like:[1,2,3,5,8,9,10,14,15,17,19,21,22,23,26,29,30,32],likewis:29,limit:[4,8,29],line:0,linear:26,linearst:26,liner:2,link:[2,8,19,21,22,26],linkabl:8,linkag:8,linux:[17,22],list:[0,3,6,8,14,19,20,21,22,23,24,26,28,29,30],listen:2,listenablefutur:[3,21],listof:[21,29],liter:8,littl:[2,21,29,31],live:[5,12,21,22],livelock:8,load:[3,6,7,8,21,22,26,27,29,32],loan:[4,5,19],local:[0,6,7,8,10,17,20,21,22,28,31],locald:19,localhost:[6,12,17,18,24,28],lock:[2,4,6,20,29],log4j:22,log:[1,7,17,21,22,24,30],log_sender:27,logger:21,logic:[3,8,9,15,21,22,25,26,27,29,30,32],login:[7,18,28],london:[6,7,27],longer:[2,5,6,21,22],look:[2,5,15,17,19,21,23,26,27,29,30,31,32],lookup:6,loop:[2,5,28,29],loquitur:19,loss:19,lot:[2,5,8,22,24,25,29,32],low:[3,21],lower:2,lowest:[11,15],lurch:21,mac:17,machin:[6,8,9,11],made:[2,5,8,21,22,23,26],mai:[1,2,3,7,8,11,15,16,17,19,21,22,23,25,26,29,30,31,32],mail:[23,24],main:[6,9,15,21,22,27,32],mainstream:13,maintain:[3,8,29],maintan:19,mainten:15,major:[21,23],make:[0,1,2,3,5,7,8,11,19,21,22,23,25,27],maker:13,maketransact:21,malici:[21,25],manag:[6,8,15,17,21,22,29],mandatori:29,mani:[2,3,7,8,9,19,21,22,26,27,29],manipul:26,manner:[8,21,22,29],manual:[3,7,9,16,21],map:[2,3,5,6,11],mappabl:29,mappedschema:20,margin:11,mark:[1,2,4,20,21,29],markdown:2,marker:[21,25],market:11,marshal:1,master:[11,23],match:[1,8,14,21,25,26,27,30],math:11,mathemat:26,matter:[12,21,29],matur:[3,4,5,17,19,29],maturityd:29,maven:[7,10,22,29],mavenloc:7,mavenpubl:7,maximis:8,maximum:8,maybestx:21,maybetraderequest:21,mbean:17,mean:[2,3,8,9,12,14,19,21,26],meaning:[3,4],meaningfulli:27,meant:21,measur:[5,12],mechan:22,meet:29,mega_corp:[21,31],mega_corp_key:21,mega_corp_pubkey:31,megacorp:21,member:[5,22],memori:[3,15,21],menlo:2,mention:[9,21,29],menu:10,mere:5,merg:[8,22,26,29],mergeabl:29,merkl:11,merkleroot:14,merkletreeexcept:14,mess:21,messag:[1,2,6,7,8,11,13],messagingserveraddress:6,messagingservic:15,met:26,metadata:27,method:[1,2,3,6,9,17,20,21,22,25,26,29],metric:[12,17],micro:[22,30],mid:3,middl:[2,21],might:[2,5,8,10,19,20,21,25,29],mike:8,mileston:11,mind:[2,19,21],mine:8,miner:8,mini_corp_pubkey:21,minim:[8,21],minimis:[3,4,8,15],minimum:[1,5,8,26],minor:[22,23],minu:29,minut:[13,19,21],mismatch:[8,29,31],miss:[2,6,21,29,31,32],missingsig:21,mission:17,mistak:[22,25],mix:[2,22],mock:21,mocknetwork:21,mocknod:21,mockservic:26,mode:[16,22],model:2,modest:8,modif:[26,29],modifi:[3,4,5,7,10,21,26,29,30],modul:[2,6,21,22,29],moment:[21,22],monei:[19,29],monitor:[2,11],month:[5,21,23],more:[1,2,3,4,5,6,7,8,12,13,14,17,19,20,21,22,24,26,27,29],moreexecutor:2,mortensen:22,most:[2,5,8,17,21,29],mostli:29,motiv:11,move:[4,8,18,21,22,23,29,30,31],movement:[21,29],much:[2,8,13,20,21,22,25,29,32],multi:[2,11,15,21,22],multilater:[4,22],multipl:1,multipli:5,must:[1,2,3,4,6,7,8,9,17,19,20,21,22,24,25,26,27,29,30,32],mustafa:22,mutabl:[2,8,26,29],mutat:8,mutual:[3,4,21,25],myfil:17,mykei:26,mykeypair:21,mylegalnam:6,mysql:13,nail:2,namedbyhash:11,nameserv:6,namespac:21,narrow:[2,18],nativ:21,natixi:22,natur:29,naval:3,navig:[7,12,24],navistar:3,nearestc:[6,7],neat:31,necessari:[2,3,22,23],necessarili:[20,26],nee:22,need:[0,2,3,5,8,9,12,14,17,21,22,23,25,26,27,28,29,30,31,32],neg:26,negoti:[8,26],neither:21,nest:21,net:[4,5,7,21,22,27,29,31],network:[3,6,8,9,11,13,14],networkmap:7,networkmapaddress:[6,7],networkmapcach:[6,21],networkmapservic:6,neutral:13,never:[2,3,8,29],newli:9,newnotari:3,newowner:29,newsecurerandom:22,next:[2,5,9,10,14,16,21,22,25,29],nextfixingof:9,nextscheduledact:9,nfinal:27,nice:[19,29],nio:2,noddi:17,node:[1,4,6],node_dir:7,nodea:[6,7],nodeb:7,nodeinfo:[6,21],nodeinterestr:19,nodeservic:19,non:[0,1,2,3,4,6,8,11,15,21,22,26],none:[9,12,14,20,21,30],nonemptyset:22,nordea:22,normal:[1,3,4,5,7,14,16,21,22,26,27,29,30],north:29,notabl:2,notaris:[3,8,21,22,26,29],notary:21,notarychang:22,notarychangeprotocol:3,notaryexcept:3,notarynod:21,notaryprotocol:[3,21],notaryservic:22,notarysig:21,notarysignatur:21,notarytous:26,note:[0,2,4,5,6,7,8,11,12,21],noth:[2,8,9,21,22,25,29],notic:2,notif:[15,27],notifi:[3,15,16],notion:[5,8,22,29],notnul:[29,30],notsecur:6,now:[2,7,8,10,11,14,17,21,22,24,26,28,29,31,32],nugget:29,nullabl:29,nullpublickei:29,number:[2,4,5,8,12,18,19,21,23,24,26,29],numer:8,obj:29,object:[1,2,4,5,8,9,11,13,15,17,19],oblig:[4,5,22,26],obligor:4,observ:[1,3,5,8,9,21,22],observatori:3,obsolet:[9,22],obtain:2,obviou:[2,3,8,19],obvious:5,occur:[3,9,21,29],occurr:3,odd:29,off:11,offer:[20,21],offlin:15,offset:5,often:[2,4,5,8,19,21,29],oftenor:19,oil:[22,31],old:[3,21,22,29],omit:[9,12],onc:[1,2,3,21,23,26,29],once:[0,3,5,7,9,16,20,21,26,27,29,32],onchainasset:4,one:[3,14],ongo:1,onledgerasset:29,onli:[1,2,3,5,6,7,8,9,13,14,15,16,17,18,19,21,22,23,25,26,29,30,32],only:21,onto:[1,2,21,29],open:[3,8,10,12,17,21,22,24],openattach:27,opengamma:[12,22],openjdk:10,oper:[5,6,9,17,19,21,22,25,26,29],opt:7,optim:2,option:[0,2,5,6,9,16,20,21,22,29,30,32],oracl:[5,8,10,11,13,14,15,17],orchestr:[13,22,32],ordain:5,order:[0,1,2,3,4,5,8,12,13,16,19,20,21,22,26,27,28,29,30],ordinari:[8,21,22,29],org:[0,6,10,29,30],organis:20,orient:11,origin:[14,20,22,26,27,29],originalst:3,orm:20,otc:20,other:[2,3,4,5,6,7,8,9,12,13,14,16,18,19,20,21,22,25,26,27,29,31],otherparti:21,othersid:[21,27],otherwis:[1,2,6,7,9,21,25,29],our:[2,3,8,9,14,21,22,23,24,26,28,29,31],ourselv:[21,29,32],oursignatur:21,out:[2,3,4,8,9,10,12,14,15,17,19,21,22,23,25,26,29,30],outcom:21,outer:30,outermost:30,outlin:[8,21],outpoint:8,output:[3,4,7,8,14,18,19,21,22,27,28,29,30,31],outref:21,outsid:[7,8,19,21,32],outstand:4,over:[2,3,5,6,7,8,14,15,17,19,20,21,24,26,29],overal:[3,9,31],overdu:9,overflow:2,overidden:[6,7],overload:[21,26],overnight:26,overrid:[9,21,29,30],overwhelm:8,own:[2,3,4,7,9,17,18,19,20,21,22,23,26,29,31,32],ownablest:[21,26,29],owner:[9,21,26,29,30,31],ownership:[21,29],owningkei:[14,21,29],ozturk:22,p2p:22,pack:29,packag:[20,22,26],packet:8,page:[10,19,23,24],pai:[4,11,12],paid:[4,5,8,12,29],pair:[8,21,26,29],parallel:[1,8,19],parallelis:8,paramet:[1,2,9,21,26,29,30],parameteris:8,parent:21,pars:[6,19,26,29,32],part:[1,2,3,4,7,8,9,14,20,21,22,25,26,32],parti:[2,3,4,5,8,9,11,12,14,15,18,19],partial:[3,8,14,21,25,29,31],partialtx:[14,21],particip:[3,8,22,29,32],particular:[2,3,8,11,14,17,20,21,22,26],partner:12,partyandrefer:[2,29],partynod:21,partyrefer:[2,29],pascal:2,pass:[3,14,20,21,27,28,29,30],password:[1,6,7,17,18,22,28],past:[2,24,29,32],patch:[2,22],path:[2,6,7,9,15,17,22,29],pattern:[2,8,28],paus:[7,16],paye:8,payer:[5,8],payment:[4,5,8,9,12,19,21,24,29],pdf:[19,27],peer:[13,14,19,21,29],penni:[26,29],peopl:[2,8,13,21,29],per:[2,7,8,9,11],perform:[2,3,5,8,9,12,19,21,22,24,26,27,29,30],perhap:[2,8,15,29],period:[5,24],perman:[27,29],permiss:[1,6,13,22],persist:6,persistentst:20,perspect:[8,21,29],phase:22,phrase:19,physic:[3,22],pick:[15,21,22,23,29,32],piec:[2,3,8,21,26,29,31],pip:0,pki:[8,22],place:[0,2,5,8,9,12,13,14,15,19,21,22,23,26,29,32],plai:[8,11],plain:6,plan:[8,19,21,22],platform:[3,5,7,8,9,13,14,19,21,25,26,29],pleas:[2,8,10,20,22,24,27],plu:[6,26],pluggabl:22,plugin:6,pluginservicehub:22,point:[1,2,3,4,7,8,17,19,20,21,23,25,29],pointer:[3,21,26],pointless:2,polish:22,polit:12,pool:[2,8],poor:8,pop:10,popular:13,popup:10,port:[6,7,18,22,23,28],portfolio:[11,12,22],posess:21,posit:[2,3,8,21,29],possess:3,possibl:[8,12,19,21,27,29],postgr:13,potenti:[2,3,12,13,21,29],pound:[26,29],power:[6,8],practic:[6,8,12,22,29],pre:[0,5,21,29,31,32],preced:29,precis:[3,8,13],precondit:[2,29],prefer:[2,20],prefix:[2,20],preliminari:12,prepar:[8,22,29],present:[3,4,5,6,7,13,20,21,22,26,29,30],preserv:[3,8],pretend:[17,26],pretti:[8,21],prevent:[12,25,29],previou:[8,21,22,26,31],previous:[5,9,19,22],price:[8,19,21],primari:19,primarili:4,primit:[26,31],print:[1,17,22,24,25,28],println:27,priv:21,privaci:[2,3,8,13,21,22,29],privat:[2,6,8,20,21,27,29,32],privatefoo:2,probabl:[10,29,32],problem:[3,8,19,21],proce:21,procedur:[21,29],process:[1,3,5,7,8,9,11],processor:8,produc:[0,9,29,31],product:[2,7,9,12,13,22,23,26],profound:8,program:[1,2,8,17,22,24,26,29,32],progress:[3,5,11,16],progresstrack:21,project:[7,10,11,12,22,24,29],prolif:22,promis:22,proof:[4,8,14],propag:[1,17,21,29,30],properli:[21,25],properti:1,proport:12,propos:[11,21,25],proprietari:[12,22],prose:[19,26,29],prospectus_hash:27,protect:[12,21],protocollog:[9,21],protocollogicreffactori:9,protocoltrack:21,protocolvers:1,prototyp:[2,13,19,22,29],prove:[3,8,29],proven:12,provid:[0,1,2,3,4,5,6,7,8,14,15,16,17,18,19,20,21,22,25,26,29,32],provision:26,proxi:[1,28],pseudo:19,pseudonom:26,ptx:[3,21,27],pubkei:31,publicfoo:2,publickei:[11,21],publickeytre:26,publish:7,pull:10,punish:19,purchas:[21,24],pure:[4,8,19],purpos:[3,4,20,21,26,28,29],push:[1,23],put:[2,11,21,23,28],python:0,qualifi:6,quantiti:[8,26,29],quasar:[7,21],quasarscan:7,queri:[1,5,6,9,19,20,22,28],queryablest:20,question:[2,3,9,10,19,26],queu:15,queue:[1,2,15,21],quick:19,quickcheck:22,quickli:[8,25,29],quit:[1,2,3,21,29],r3corda:7,r3dlg:23,r3prototyp:[0,10,28],r3repositori:10,raft:22,rais:[3,30],ran:28,random:[8,9,22,26],randomis:22,rang:[3,20],rapid:[2,7,13,23],rare:[6,26],rate:2,ratesfixprotocol:14,rather:[2,8,15,21,22,29],raw:[15,17,21],rdbms:[20,22],rdms:22,reach:[3,5,8,9,12,19],reachabl:21,reactiv:22,read:[2,6,7,8,11,13,14,17,21,22,24,29,32],readabl:[6,13,21],readi:[3,21,23,29],readili:[26,30],readme:2,real:[2,12,19,22,26,29,32],realis:21,realist:26,realiti:5,realli:[2,3,8,14,21,29],reason:[2,3,5,8,21,22,25,26,29],reassign:29,recal:5,receiv:[1,4,5,8,12,19,21,22,23,24,25,27,29],receiveandcheckproposedtransact:21,receiveandvalidatetraderequest:21,recent:22,recipi:[4,8,24,27,29],recognis:[8,21,29],recommend:[2,15,32],record:[3,9,20,21,27],recordtransact:21,recreat:21,red:[5,10,14],redeem:[4,29,30],redempt:29,redesign:22,reduc:[2,7,12,29],redund:2,ref:[21,26,31],refactor:22,refer:[2,3,4,5,6,8,9,12,19,21,22,26,27,29,31],referenc:[3,27],refin:22,reflect:[11,21,22,29,30],refresh:22,refus:10,regard:3,regardless:21,regener:[5,23],regist:[2,7,15,16,17,21,32],registerprotocoliniti:21,regul:29,regular:[17,21,26,29],reissu:29,reissuanc:8,reject:29,rel:[6,7,8,30],relabelablestep:21,relai:27,relat:[5,9,11],relationship:29,relax:22,releas:[1,11,12],relev:[7,8,9,11,22,26,29,30],reli:[1,7,8,12,22,25],relianc:8,relic:17,religi:2,remain:[7,9,21,29],remeb:10,rememb:[2,9,10,25],remind:[21,25],remot:[6,7,10,27],remov:[14,21,22,23,29],renam:[21,22],render:[2,16,21,22],renderifsupport:27,repeat:[2,5,21],replac:[3,5,10,12,17,22,23,26,29],replai:22,replic:8,repoint:3,report:[21,30],repositori:[2,7,10,22,23,24],repres:[2,4,5,8,19,20,21,22,26,28,29],represent:[5,20],request:[1,3,8,15,19,20,21,22,25,27],requestingparti:3,requiredcommand:[22,30],requiresinglecommand:[29,30],requirethat:[29,30],research:22,resel:19,reset:[5,16],reshap:8,resolut:[3,8,21],resolv:[2,12,21,26,29],resolvefromtwohash:21,resolvetransactionsprotocol:[21,27],resolvetransactionsprotocoltest:21,resourc:[1,6,8,21],respect:[2,8,21,24],respend:8,respond:21,respons:[1,3,8,9,15,20,21],rest:[3,8,13,17,21,22,32],restart:[10,21],restor:21,restrict:[2,12],restructur:30,restructuredtext:0,result:[2,3,5,6,8,12,18,19,20,21,22,25,29,30],resum:[21,22],resurrect:21,retain:15,rethrown:1,retri:[13,15,21],retriev:[3,5,21,27],retrieveoutput:31,reus:[1,8,31],reusabl:[19,22,27],reveal:[3,8,14,21,22],revers:21,revert:4,review:[2,22,23],revis:5,rewrit:21,richer:7,right:[2,10,17,21,22,23,25,32],rightmost:14,rigid:8,rigidli:2,risk:[12,21],robert:22,robust:22,role:[8,9,27,28,32],roll:[5,21,22,24],rollov:[26,29],root:[6,7,14,23],rotat:22,roughli:[3,23],rout:[15,21,22],row:[17,18,20,26,29],rpcexception:1,rpcreturnsobserv:1,rpcsincevers:1,rui:22,ruin:31,rule:[2,12,19,21,22,29],run:[0,1,2],rundemonod:[18,22],runnetwork:21,runnod:12,runrecipi:27,runsend:27,runtim:[2,21],safe:[1,2,8,21,25],sai:[2,3,8,12,29],sake:12,sale:[24,29],same:[1,2,3,4,5,6,8,9,19,21,22,26,29,30,31],sampl:[6,7,12,21,22,24],sanction:29,sandbox:[8,9,13,22,25],saniti:21,santiago:22,satisfi:[26,29],save:[2,21,22,29],saw:28,scala:[13,29],scalabl:[2,8],scale:[5,25],scan:7,scenario:[8,26,32],scene:[21,29],schedul:5,schedulablest:9,scheduledact:9,schema:11,schemaopt:20,schemaservic:20,scheme:14,scope:[8,18,30],scotiabank:22,scrape:17,scratch:[26,32],screen:[2,10,18,22,29],script:[0,7,8],scroll:24,scrub:21,seamless:13,search:[10,18,29],second:[5,21,24,26,29],secondari:21,secp256r1:22,secret:6,section:[6,8,11,22,23],securehash:[3,14,26,29,30],securerandom:22,see:[0,1,2,3,4,5,6,7,9,14,19,20,21,22,24,26,27,28,29,30,32],seed:21,seek:[8,22],seem:8,seen:[2,5,19,21,29],segment:7,select:[3,10,20,22,29,30],self:[7,22,28],sell:[21,29,32],seller:11,sellerownerkei:21,sellersig:21,sellertradeinfo:21,semi:8,send:[2,3,8,14,15,17,19,21,22,23,24,27,29,31],sendandrec:21,sender:[8,21,24,27],sendsignatur:21,sens:[5,19,29],sensit:[9,12,14,25],sent:[9,21,22,26,29],separ:[3,7,8,14,15,17,19,21,26,29],septemb:12,sequenc:[8,22],sequenti:21,seri:21,serial:[1,13,29],serialis:[1,2,8,13,21,29],seriou:[8,23],serious:32,serv:7,server:[1,6,7,13,15,17,22,29,32],servicehub:[3,7,15,21,27],servicehubintern:[3,7,21,22],servicetyp:6,session:[9,15,22],sessionid:9,set:[3,5,6,7,8,9],setof:[21,27,30],setter:[20,29],settim:[21,26],settl:[4,21,26,27],settlement:[4,21],setup:[7,9,16,21],sever:[6,7,8,20,21,29,31,32],sha256:[14,26,29,30],sha256sum:17,sha:[8,17],shape:8,share:[4,5,8,12,19,21,22,25,27,29,32],shasum:17,she:29,shell:12,shoot:25,shortcut:13,shorthand:31,should:[2,3,4,7,8,9,10,11,12,13,14,20,21,22,24,25,26,28,29,30,31,32],shoulder:2,shouldn:[14,21,28,29],show:[8,10,13,16,18,22,24],shown:[6,16,21,26],shut:27,shutdown:21,side:[1,8,9,16,19,21,25,26,27,28],sidebar:16,sig:[22,29],sign:[3,5,8,13,14,15,19,21,22,25,26,29,30,31],signatureexcept:21,signaturesfromsel:21,signedtransact:[3,21,26,29],signer:[14,19,29,30],signific:[8,22],significantli:[5,26,27],signoff:3,signwith:[21,26,27,29],signwithecdsa:21,signwithourkei:21,silver:2,similar:[2,8,21,22,29,30],similarli:20,simm:11,simmvaluationdemo:[12,24],simpl:[1,2,4,5,6,8,12,13,17,21,22,26,27,28,29,30],simplecash:31,simplecashdoesntcompil:31,simplecashfailswith:31,simplecashsuccess:31,simplecashtweaksuccess:31,simplecashtweaksuccesstopleveltransact:31,simplenotaryservic:3,simpler:[8,13],simplest:[8,21,29,32],simpli:[2,7,8,15,20,21,22,26,29,31],simplif:22,simplifi:[2,4,8,26,29,32],simul:[6,11],simultan:[8,21,26,29],sinc:29,singl:[1,2,4,8,11,17,19,21,22,26,29,30],singlemessagerecipi:15,singleton:[21,29,30],site:[2,22,23],situat:[2,8,14],size:[2,5,8,21,29,30],skeleton:21,skip:[21,26,29],sleep:27,slf4j:21,slightli:29,slip:23,slot:22,slow:[2,8],slowest:8,small:[1,8,9,19,21,24,25,29],smaller:[22,30],smallest:26,smart:[11,13,19,21,22],smooth:29,snake:31,snapshot:[8,22,23,28],snide:0,snippet:[3,21],socket:17,softwar:[8,21,23,25,32],sofu:22,sold:[21,26],solut:21,solv:[8,19,21],solvenc:19,some:[2,3,4,8,9,12,13,14,17,19,20,21,22,24,26,28,29,30,31,32],somed:29,someon:[3,8,29],someth:[1,2,5,8,10,21,22,29,30,32],sometim:[8,17,21,26],somewhat:[1,8,21,22],somewher:29,soon:[22,29],sophist:8,sort:[19,21,22],sound:[2,21,29],sourc:[5,6,7,9,10,11,12,17,19,21,22,28,29],sourcejar:7,sparingli:2,speak:22,spec:22,special:[1,3,8,21,31],specif:[1,3,4,7,8,9,15,17,21,22,26,27,29,30],specifi:[0,1,2,3,4,6,7,8,13,14,20,21,22,26,29,30,31,32],speed:[8,21],spend:[8,13,21,25,29],spent:[8,28,29,31],sphinx:0,sphinx_rtd_them:0,spirit:22,spline:26,split:[8,14,15,22,26,29,30],splittabl:29,spot:22,spread:[3,21],spreadsheet:19,sql:[13,20,22],src:[6,21,27,32],ssl:22,sslkeystor:6,stabilis:23,stabl:23,stack:21,stage:[2,4,21,26,29,32],stai:[8,29],stake:8,standalon:[19,22],standard:[2,7,12,17,21,22,24,26,28,29,30],standardis:[8,26],start:[1,2,5],startprotocol:[3,21,27],startup:[17,22],state:[3,4,5],stateandref:[3,21,26,29],statehistori:3,stateless:8,statemachinemanag:21,statement:[2,8,19,21,29],stateref:[3,8,9,14,20,26],statesoftyp:[21,29],statist:17,status:8,stem:29,step:[3,9,11],still:[3,8,9,19,21,22,29,32],stock:[8,19],stop:[2,21,27],stopnod:21,storag:[6,8,21,26,27],storageservic:27,store:[3,6,7,21,22,26,27,29],stori:[2,22],straightforward:[21,29],stream:[1,15,21,22,28],stress:2,strictli:[5,8],string:[6,19,21,26,29],strip:29,strong:13,structur:[2,8,10,13,14,19,21,22,26,29],stub:[12,22],studi:29,stuff:2,stx1:21,stx2:21,stx:[21,26],sub:[1,2,21],subclass:[4,20,21,26,29],subclaus:30,subdirectori:12,subgroup:8,subject:[6,7,12],submiss:19,submit:[2,3,15,21,22,24],subproject:7,subprotocol:[3,11],subscrib:[1,15,22,27],subsequ:[29,31],subset:[4,14],substitut:6,subsystem:[6,15],subtask:21,subtl:[2,8],subtract:26,subvert:25,success:27,successor:[3,9,13],succinct:2,sudo:0,suffer:[8,12],suffic:21,suffici:[8,19,23,26],suggest:[7,15,29],suggestinterestrateannouncementtimewindow:9,suit:[22,27],suitabl:[9,15,23],sukrit:22,sum:[12,29,31],sumcashbi:[21,29],summari:[11,22,23,26],summaris:8,sun:2,superclass:[4,22,26],superior:2,supersed:8,supertyp:29,suppli:4,support:[1,2,3,4,5,6,7,8,11,13,15,17,18,19,20,21,22],supportedschema:20,suppos:[21,29],suppress:[2,22],suppresswarn:2,sure:[3,22,23,25,27,29,32],surfac:21,surround:2,surviv:21,suspend:[3,7,11],swapping_signatures:21,swapsignatureswithsel:21,symbol:10,sync:29,synchronis:[2,3,8],syntax:[13,29],system:[1,3,7,8,11,13,14,17,18,20,21,22,27,29],tab:[2,10],tabl:[7,17,18,20,22],tackl:[22,30],tag:[1,2,23],take:[2,5,9,13,14,21,22,23,25,26,29,30,31],taken:29,talk:21,tamper:21,target:[0,2,6,8,12,13,17,21],task:[6,7,8,9,21],tcp:[7,17],team:10,tear:11,teardown:21,techniqu:[2,8,13,19],technolog:11,tediou:29,tell:[0,21,28],templat:6,temporari:7,temporarili:[21,23],tempt:[25,29],ten:29,tenor:[5,17,19,26],term:[4,6,8,9,12,15,26,30],termin:[5,17,21,28],terminolog:8,test:[0,4,6,7,10,11,15,18,19],testnet:[7,22],testtimelock:29,text:[2,10,17,22,31],than:[1,2,3,7,8,15,17,21,22,26,29],thank:22,thedao:22,thei:[2,3,4,5,6,7,8,9,12,14,16,17,19,20,21,22,23,25,26,27,29,30],them:[1,2,3,5,8,9,10,13,14,15,17,20,21,22,23,24,26,27,28,29,30,31,32],theme:25,themselv:[1,15,16,19,21,25,26,29],theori:[11,19],therefor:[1,7,8,10,12,13,21,23,25,29],thi:[0,1,2,3,4,5,6,7,8,9,10,11,12,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32],thin:15,thing:[2,8,9,11,13,19,21,22,25,26],think:[2,8,10,15,21,25,29],third:[8,12,14,22],thisstateref:9,thorough:21,those:[3,8,9,12,17,21,25,29],though:[14,17,21,29],thought:[8,13],thousand:31,threadsaf:2,three:[7,14,18,21,26,29],threshold:[22,26],through:[1,5,8,9,15,16,17,21,22,27,29,30,31,32],throughput:[3,8],throwifsignaturesaremiss:21,thrown:[1,21,25,29],thu:[2,3,6,8,9,17,19,22,26,29],ticket:21,tidi:21,tighten:29,tightli:21,time:[2,3,4,5,7,8,9,11,12,16,17,19,20,21,22,24,26,27],timelin:29,timem:29,timeout:1,timestamp:2,titl:10,tls:[15,22],todo:[2,21,29],togeth:[4,8,14,22,29,30],token:[21,26,30],told:2,toledgertransact:26,toler:[3,9],too:[2,21,29],took:21,tool:[13,15,17,18,20,21,22],toolbar:10,top:[2,8,10,15,18,21,22,24,28,30],topic:[15,29,32],topicsess:[15,22],toplevel:31,topriv:21,torn:22,tosignedtransact:[3,21,26,27,29],tostr:[2,21,29],tostringsshort:21,total:[8,26],toward:[22,23],towiretransact:[14,26],trace:[21,30],track:[8,9,11,15],tracker:21,trade:[3,5,11,12,13,19],tradeoff:2,trader:[11,22],traderdemo:32,traderequest:21,tradit:8,traffic:[6,8,16],transact:[3,4,8,9,11,12],transactionbuild:[3,21,22,26,27,29],transactionforcontract:[29,30],transactionforverif:29,transactionst:[3,14,22,26],transactiontyp:[21,22,27],transactionverificationexcept:31,transfer:[25,29,31],transit:[25,26,29,32],transmit:[11,22],transport:7,travel:29,treat:[7,25,29],tree:11,tri:[8,22,29],tricki:[8,21],trigger:[3,4,9,19,21,30],trim:30,trivial:[2,8,27],trust:[4,6,8,25],trustpass:6,truststor:6,truststorepassword:6,truth:21,tupl:2,ture:8,turn:[8,21,26,29,30,31,32],tutori:[1,4,11,13,19,21,22,27,28,29,30,31,32],tweak:[22,31],twice:31,two:[2,3,4,5,7,8,9,11,12],twopartydealprotocol:9,twopartytradeprotocol:21,txb:26,txbit:21,txhash:[8,21,28,29],txt:17,type:[2,3,4,5,7,8,9,11,12,14],typenam:21,typeonlycommanddata:29,typesaf:6,typetobui:21,typic:[8,9,15,17,20,21,25,26,27,29,32],ugli:21,ultimat:17,unaccept:21,unacceptablepriceexcept:21,unavoid:21,unconsum:20,under:[0,7,12,22,23,26,29,30,31,32],underli:[4,5,8,21,22,26],underscor:2,understand:[8,16,17,29,30,32],unencrypt:6,unexpect:[21,25],unfinish:21,unfortun:[21,25,29],unicredit:22,unifi:[22,32],uniform:9,unindex:10,uniqu:[3,8,19,21,22,26,27],uniqueidentifi:[11,22],unit:[3,8,10,11,15,19],univers:22,unix:[7,12,17],unknow:3,unknown:26,unless:[2,19,21,23,28,29,32],unlik:29,unlike:[4,10],unlock:6,unnatur:8,unpack:[7,29],unprocess:30,unqiu:9,unread:21,unrecognis:29,unrel:29,unschedul:9,unserialis:21,unset:5,unspent:8,unstarted:21,unsubscrib:1,unsubscript:1,unsupportedoperationexcept:[1,29],until:[1,3,5,8,9,21,22,23,31,32],untrust:21,untrustworthydata:[21,22,25],unverifiedtransact:31,unwrap:[21,22],upcom:[9,22],updat:[1,7,8,15,21,22,23,27,28,29],update:10,upgrad:[10,20,21,22,29],upgrade:[10,22],uphold:29,upload:11,upon:[5,7,21,29],upward:23,url:[6,7,10,17,22],usabl:[22,23,29],usag:[2,11],usd:18,use:[2,4,8],usehttps:6,useless:29,user1:[6,18,28],user:[0,1,2],usernam:[1,17,18],usr:0,usual:[2,8,29],usualli:23,utc:9,util:[3,7,22,26,28,29],uuid:[22,26],vagu:2,val:[2,3,9,14,19,21,26,27,29,30,31],valid:1,validatedtransact:[21,27],validatingnotaryservic:3,validfrom:29,valu:[2,3,4,5,6,8,12,14,18,19,21,22,24,29,30,31],valuabl:19,valuat:[5,12,22,24],vanilla:[4,5],vari:11,variabl:[2,5,7,8,21,29],variant:29,variou:[2,8,12,17,21,25,29],vault:[18,20,22],vcs:10,vega:22,vehicl:8,vendor:[13,17],verbos:29,veri:[2,4,8,12,13,19,21,25,29,31,32],verif:[4,8,13,14,22],verifi:[3,8,11,14,19,21,22,26,27],verifiedtransact:28,verifyclaus:30,verifypropos:22,verifysignatur:21,versa:[4,5,8,21,26],versu:21,vertic:2,vet:25,via:[0,2,5,8,9,12,15,16,17,19,20,21,22,24,25,27,32],vice:[4,5,8,21,26],view:[2,5],virtual:[8,25],visibl:[3,8,14,18],vision:11,visual:22,visualis:[15,28],vital:21,wai:[1,2,3,7,8,9,12,14,15,17,19,20,21,22,29,31,32],wait:[9,10,21,22,24],wake:22,wallet:[8,9,21,22,29],walletservic:21,want:[1,2,8,10,14,17,19,21,22,25,26,29,31,32],warn:1,watch:25,weak:[19,26],wear:23,web:[6,7,11,12,13,17,19,22],webaddress:6,webapp:22,webport:7,websocket:21,weekend:5,weight:26,well:[0,2,3,5,8,9,13,14,17,21,22,27,29,30],went:2,were:[2,8,12,19,21,29],what:[2,3,4,5,8,9,10,11,12],whatev:[2,21,26],when:[1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,21,22,24,25,26,27,29,31],whenev:2,where:[1,2,3,7,8,11,14,17,18,19,20,21,22,23,26,27],wherea:5,wherev:17,whether:[1,3,4,19,21,26,30],which:[0,1,2,3,4,5,6,7,8,9,12,13,14,15,16,17,19,20,21,22,23,24,26,27,29,30,31,32],whilst:[8,19,21,22,25,29],white:[11,22],whitelist:[4,7,9,21],who:[2,8,12,13,21,22,26,29],whole:[3,14,31],whom:[4,8],whose:[4,17,26],why:[2,8,11,13],wide:[2,14],widescreen:2,widespread:2,widget:18,width:[2,26],wiki:[8,29,30],wikipedia:[29,30],window:[3,7,8,10,12,16,17,18,21,24],wiretransact:[3,14,19,21,26],wish:[7,8,11,12,19,20,21,22,26,29,32],within:[0,2,3,6,8,17,20,24,27,29,31],withitem:[26,29],withkei:21,withnewown:[21,29],without:[2,3],withoutissu:[21,29],withoutown:[29,30],withowner:29,won:[15,18,19,21,22,29,31],word:[2,3],work:[1,2,3,5,6,7,8,9,10,13,17,19,21,22,24,26,27,28,29],worker:2,workspac:[6,7],world:[6,8,12,16,19,21,29,31],worn:29,worri:[2,13,21,29],worst:8,worth:[2,25,29],worthless:19,would:[1,2,3,4,5,7,8,12,13,17,19,21,25,26,27,29,30,32],wouldn:19,wrap:[2,15,17,21,22,25,26,29,30,32],wrapper:[2,3,21],write:[2,3,11,13,14,15,17],written:[0,1,5,8,13,22,29],wrong:[1,2,21,31],wrote:8,wtx:[3,14,19,21],www:[0,10],year:[5,21],yet:[2,3,5,8,13,21,22,26,28],yield:8,york:7,you:[0,1,2,3,7,8,9,10,11,12,13,14,15,17,18,19,20,21,22,24,25,26,29,30,31,32],your:[1,2],your_usernam:10,yourself:[8,9,25,26],zero:[8,29],zip:[8,17,27],zone:9,zoneddatetim:9},titles:["Building the documentation","Client RPC","Code style guide","Consensus model","Contract catalogue","Interest Rate Swaps","The Corda Configuration File","Creating a Cordapp","Data model","Event scheduling","Getting set up","Welcome to the Corda!","Initial Margin Agreements","What’s included?","Transaction Tear-offs","Networking and messaging","Network Simulator","Node administration","Node Explorer","Writing oracle services","Persistence","Protocol state machines","Release notes","Release process","Running the demos","Secure coding guidelines","Data types","Using attachments","Client RPC API","Writing a contract","Writing a contract using clauses","Writing a contract test","Where to start"],titleterms:{"class":[29,30],"function":[21,29],about:10,access:17,adding:29,administr:17,adopt:8,against:7,agreement:12,amount:26,api:[28,29],app:[7,12],approach:19,assert:19,assertion:2,asset:29,attach:[17,27],attachment:[24,27],basic:19,bitcoin:8,build:[0,7],buyer:21,cash:[4,26],catalogu:4,chain:31,chang:3,check:29,claus:[29,30],client:[1,28],code:[2,25,29],command:29,comment:2,commerci:[4,29,30],commod:4,comparison:8,compil:2,complain:10,con:8,configur:6,consensu:3,construct:29,continu:19,contract:[4,25,29,30,31],corda:[6,7,11,14],cordapp:7,cordform:7,creat:[5,7],cryptographi:26,cut:23,data:[8,14,19,26],databas:17,date:26,debug:[7,30],demo:[18,24,27,32],detail:5,document:0,download:17,encumbranc:29,error:[1,2],ethereum:8,event:9,exampl:[6,9,14],explorer:18,featur:21,field:6,file:6,fix:17,format:6,fungibleasset:26,futur:21,gener:[2,29],get:10,gradl:7,group:[29,30],guid:2,guidelin:25,handl:1,happen:29,hide:14,how:[9,29],implement:[9,21],includ:13,initial:12,install:7,instanc:5,intellij:10,interest:[4,5,17],interfac:[16,18],introduct:[9,12,19,21],irs:24,kei:26,kotlin:13,lack:10,length:2,lifecycl:[5,26],line:2,locat:6,machin:21,make:29,map:[15,20],margin:12,math:26,merkl:14,messag:15,mileston:22,model:[3,8],monitor:17,multi:[26,29],multipl:3,name:2,namedbyhash:26,network:[15,16],node:[7,17,18],non:29,notari:3,note:22,object:20,obligat:4,observabl:1,obtain:3,off:14,oracl:19,orient:29,overview:8,pai:19,paper:[4,29,30],parti:[21,26,29],particular:29,per:19,persist:[7,20],plai:19,plugin:7,portfolio:24,pro:8,process:[12,23],progress:21,properti:2,protocol:[1,21,25],publickei:26,put:29,rate:[4,5,17],rational:8,relat:20,releas:[22,23],requir:[0,29],rpc:[1,6,28],run:[3,12,18,24],safeti:1,schedul:9,schema:20,sdk:10,secur:[1,25],seller:21,servic:[3,7,15,19],set:10,signatur:[3,26],simm:[12,24],simul:16,singl:31,smart:29,space:2,start:[7,21,29,32],state:[7,21,26,29],step:[12,23],style:[2,8],subprotocol:21,summari:30,support:26,suspend:21,swap:[4,5],tear:14,technic:5,templat:7,test:[21,29,31],theori:21,thing:29,thread:[1,2],time:29,timestamp:3,track:21,trade:21,tradeoff:8,trader:[24,32],transact:[14,26,29,31],transmit:29,tree:[14,26],two:[19,21],type:[15,26],uniqueidentifi:26,unit:21,upload:17,usag:14,user:6,using:[7,27,29],utxo:8,valid:3,vari:19,verif:26,verifi:29,version:[1,21],view:7,warn:2,web:24,welcom:11,what:13,where:[29,32],wire:1,without:10,write:[19,29,30,31],your:[7,17,21,29]}}) \ No newline at end of file +Search.setIndex({envversion:49,filenames:["building-the-docs","clientrpc","codestyle","consensus","contract-catalogue","contract-irs","corda-configuration-files","creating-a-cordapp","data-model","event-scheduling","getting-set-up","index","initialmarginagreement","inthebox","loadtesting","merkle-trees","messaging","network-simulator","node-administration","node-explorer","oracles","persistence","protocol-state-machines","release-notes","release-process","running-the-demos","secure-coding-guidelines","transaction-data-types","tutorial-attachments","tutorial-clientrpc-api","tutorial-contract","tutorial-contract-clauses","tutorial-test-dsl","where-to-start"],objects:{},objnames:{},objtypes:{},terms:{"00z":30,"0_xx":10,"10000l":14,"1000l":28,"17t16":30,"1mb":22,"300px":27,"5000l":14,"8u45":10,"_before_":22,"_do_":22,"_foo":2,"abstract":[8,22,23,30,31],"boolean":[8,14,23,30],"break":[20,22,24],"byte":[2,8,22,32],"case":[2,3,6,7,8,12,14,20,21,22,23,27,28,30,31],"catch":[2,10,22,26],"class":[],"default":[2,4,6,7,10,12,14,15,17,18,19,22,23,26,27,30],"enum":[23,29],"export":[18,22,33],"final":[3,5,8,10,15,22,23,25,29,30,32],"float":[4,5,9],"function":[],"import":[2,8,9,10,22,23,27,30,31,32,33],"instanceof":30,"int":[2,3,14,30],"long":[2,4,8,9,14,30],"new":[2,3,5,7,8,10,13,16,18,19,22,23,24,25,27,28,29,30,31,32,33],"null":[6,9,14,28,30],"public":[2,6,7,8,13,16,18,22,23,27,30,31,32],"return":[1,2,3,5,9,14,18,21,22,23,26,28,29,30,31,32,33],"short":[9,12,24],"static":[7,8,12,20,22,30,32,33],"super":[2,31],"switch":[22,23,30],"throw":[1,2,3,14,15,22,29,30,31],"transient":22,"true":[3,6,8,14,20,29,30],"try":[1,2,8,22,23,29,33],"var":[22,29],"void":[30,31,32],"while":[17,27,29,30],abil:8,abl:[3,7,8,12,15,18,19,20,22,23,25,30],abort:[3,20],about:[],abov:[2,5,8,12,15,18,22,30,31,32],absent:6,absolut:[3,6,8],abstractstatereplacementprotocol:23,accept:[2,3,4,8,25,30],acceptablepric:22,access:[],accid:22,accident:[2,26],accompani:[2,30],accord:33,accordingli:31,account:[8,14,23,27],accrual:5,accur:[3,12],accuraci:8,achiev:[3,8,27],achiv:15,ack:23,acknowledg:22,acquir:25,acronym:12,across:[4,6,8,14,21,23,28],act:[3,6,8,20,22],action:[9,14,30,33],activ:[5,9,14,21,23,25,30],actor:[2,8,22],actual:[3,5,10,12,14,20,22,26,28,30,31,32],adapt:[2,20,22],add:[2,7,8,12,14,15,16,18,22,26,28,29,30,31,32],addattach:28,addcommand:[22,30],addedg:29,adding:[],addinputst:[22,30],addit:[2,3,6,8,21,23,27,30],addition:[8,21,22,24],addmessagehandl:23,addnod:29,addoutputst:[22,30],address:[3,6,7,8,16,19,22,23,30],addvaulttransactionnot:29,adjust:[2,5,24,30,33],admin:[10,19],administr:[],advanc:[4,5],advantag:8,adventur:33,advertis:[1,6,29,30],advertisedservic:[7,29],advic:24,affect:[10,20],affinityexecutor:2,afraid:2,after:[3,4,5,7,9,10,13,14,15,20,22,30],again:[5,8,14,20,22,30],against:[],agent:[14,18],agentlib:7,aggreg:[8,12,30,31],agre:[5,9,12,22,25,26],agree:[5,12],agreement:[],ahead:[22,30],aid:23,aim:[2,8,14],albeit:23,albertsen:23,algorithm:[8,13,23,27,30],alia:6,alice:[19,27,29,30],alice_key:28,align:11,aliv:22,all:[0,1,2,3,4,5,6,7,8,10,14,15,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33],allclaus:31,allcomposit:31,allevi:3,allow:[1,2,3,4,5,6,7,8,9,12,14,16,20,21,22,23,26,27,30,32,33],allpartysignedtx:22,almost:30,along:[3,20,22,30],alongsid:30,alreadi:[2,7,9,11,12,15,20,22,23,28,30,31,32],alright:22,also:[1,2,3,4,5,6,7,8,9,10,12,14,15,16,17,18,19,21,22,23,25,27,28,30,31,32,33],alter:[6,18,22],altern:[0,2,6,11,16,17,18,19,27,30],although:[5,6,8,22,28,30,31,33],alwai:[2,8,9,11,18,21,22,27,30],amount:[],amqp:[16,23],analysi:8,analyt:12,andresen:8,ani:[2,3,4,5,8,9,12,18,19,20,21,22,23,24,25,26,27,28,29,30,33],annot:[1,2,21,22],announc:24,anonym:8,anoth:[1,2,3,7,8,10,12,18,20,22,23,25,28,30,32],answer:[2,20],anticip:2,any:[1,4,9,12,18,29],anybodi:8,anyclaus:31,anycomposit:31,anyon:[3,30],anyth:[3,8,22,26,27,30,31],anywher:[20,23,30],apach:16,apart:3,api:[],app:[],appear:30,append:[18,22],appendix:11,appli:[2,4,5,7,8,14,30,31],applic:[7,8,16,20,23,26,33],applyfix:5,appoint:3,approach:[],appropri:[2,16,21,31],approv:[8,9,22],approxim:3,april:23,arbitrari:[2,8,20,22,26,27,29],arbitrarili:8,architectur:[11,20],area:21,aren:[1,9,13,30,33],arg:[7,23,29],argument:[2,8,14,22,29,30],aris:8,around:[3,8,15,22,23,24,27,29,30,31],arrai:[8,22,29],arrang:22,arriv:[20,22],arrow:[5,10],art:27,artemi:[7,16],artemisaddress:[6,29],artemismq:6,artemisport:7,articl:[3,8,9,20,22,23,30,33],artifact:7,ask:[2,20,22,30],aspect:[22,33],assembl:[8,15,30],assemblesharedtx:22,assert:[],assertequ:[22,28],asset:[],assetforsal:22,assetmismatchexcept:22,assettosel:22,assettypenam:22,assign:[8,20,22],assist:[9,21,22,27],associ:[3,8,9,16,21,23,27,30],assum:[3,8,11,14,15,22,26,29,30],assume:[15,22],assumpt:22,assur:12,asynchron:14,atom:[3,8,22,23,25,30],attach:[],attachment:[],attachmentdemo:28,attack:[3,26],attch:15,attempt:[8,10,26],attent:22,attest:3,attribut:2,audit:8,authent:[1,3,23,29],authenticatedobject:[27,30,31],author:[2,3,24,33],authoris:[6,22,27],auto:[2,30],autoclos:1,autom:[8,9,30,33],automat:[0,1,3,6,7,9,16,17,21,22,23,28,30,33],avail:[0,3,5,6,7,9,17,18,22,23,24,26,28,30],avoid:[2,8,21,22],awai:[8,22],await:7,awar:[1,2,9,22,23,30],awg:24,awkward:[2,22],axi:5,back:[1,2,8,12,20,22,23,26,27,30],backend:23,background:[1,2,8,11],backoff:16,backport:24,backward:[22,24],bad:[2,22,30,32],balanc:[3,4,8,19,30,32],banana:27,bananast:27,banco:23,band:22,bandwidth:2,bank:[5,6,8,23,25,27,28,30,33],bankrupt:30,bankruptci:[3,8,12,20],barreca:23,barrel:23,base:[2,3,5,6,7,8,9,14,16,22,23,27,30],basedir:[6,7],basedirectori:29,basi:[5,9,17,18],basic:[],bat:[7,12,17,19,25],batch:14,bbva:23,bear:22,becaus:[2,3,8,9,10,11,18,20,22,27,30,31,32],becom:[2,5,8,9,22,24,27],been:[3,5,6,8,10,12,20,22,23,24,27,30,31],befor:[3,5,7,8,9,13,14,22,23,24,27,28,30,31],begin:[2,8,11,30,33],behav:30,behaviour:[3,4,6,14,18,31,32],behind:[16,22,30],believ:23,belong:15,below:[2,5,7,8,9,12,15,22,27,33],beneficiari:4,benefit:[3,22],best:[2,33],bet:20,better:[2,13,23,30],between:[2,3,5,8,9,16,17,20,21,22,23,24,25,26,27,29,30],beyond:8,big:[2,8,22,23,30],bigdecim:[20,27],bilater:[4,5,23],bill:30,bin:[25,29],binari:[8,15,20,29],bind:[3,6,8,20],bip:8,bit:[27,30,32,33],bitbucket:10,bitcoinj:22,blah:2,blank:[2,18,19,30],block:[1,2,3,7,8,20,22,23,25,26],blockchain:[8,13,15,22,30],bloom:2,bloomfilt:2,blotter:25,blue:[5,15],bob:[19,27,30],bodi:[2,12],boil:[8,14],boilerpl:[7,30],bond:30,bookkeep:30,boost:13,bootstrap:7,bore:30,boss:11,both:[3,4,5,8,13,14,20,21,22,23,25,26,27,30],bounc:22,bound:[3,22,23,30],box:33,branch:[11,15,23,24],breach:8,bread:33,breakpoint:12,breviti:31,brief:[1,23],briefli:[11,16],bring:[8,14,25],broadcast:[3,8,30],broadcasttransactionprotocol:3,broke:2,broken:[23,30],broker:[6,16],brows:[12,18],browser:6,buffer:1,bug:[2,23,24],bugfix:24,bui:[22,33],buildcordajar:6,builder:[22,23,26,28],buildmerkletransact:15,buildscript:7,built:[3,6,7,15,22,23,26,30],bulk:[8,31],bullet:2,bundl:8,busi:[8,9,13,20,21,22,23,27,30,33],businesscalendar:27,butter:33,button:25,buyer:[],bytecod:[8,22,30],cach:[16,28],calcul:[3,5,9,12,15,22,26,27,30],calendar:[5,20,27],call:[1,2,3,5,8,13,18,22,23,24,26,27,28,29,30,31,32],callback:[1,2,22,23],caller:[3,30],came:22,camel:2,can:[0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,25,26,27,28,29,30,31,32,33],candid:21,cannot:[3,4,8,10,20,23,26,27,30],capabl:30,capit:2,capitan:0,capsul:17,capsule_cache_dir:7,captur:9,cardon:23,care:[2,3,8,22,26,32],carefulli:13,cashcommand:[14,29],cashkt:30,cashprotocol:29,cashsigningpubkei:22,cashstat:22,cast:1,catastroph:12,caught:1,caus:[2,12,25,30],cbc:14,cent:27,center:30,central:[27,30],ceo:27,cer:6,certain:[2,12,23,30],certainli:7,certainti:3,certif:[6,14,23,29],certificatespath:29,cev:10,chain:[],chaincash:32,chaincashdoublespend:32,chaincashdoublespendfailswith:32,challeng:8,chanc:[2,22],chang:[],changenotari:3,channel:22,charact:[2,6],charg:20,charli:27,check:[],checkabl:[20,23],checknotnul:30,checkpoint:23,checkstat:30,checksufficientsignatur:[3,22,27],child:[22,27],children:[22,27],childrenfor:22,choic:[2,3,8,30],choos:[3,10,19,30],chosen:[3,8,14,22],chronolog:9,chunk:[30,31,33],circl:17,claim:[8,30],clash:[2,21],classic:30,classpath:[7,8],claus:[],clauseverifi:31,clean:[22,23],cleaner:23,cleanup:23,clear:[1,14,22,26,27],cleardatabasebeforerun:14,clearer:22,clearli:2,cli:12,click:[10,19,25],clock:[3,8,9,22,25],clone:[2,10],close:[1,3,4],closeabl:1,closer:3,closur:[2,32],cloud:18,cluster:[],cmd:[15,30,31],coars:8,code:[],codebas:[2,21],cognit:8,coin:8,collabor:23,collaps:14,colleagu:2,collect:[1,2,14,18,21,23,30,31],collector:[2,18,22],collis:2,column:[7,18,21],com:[0,10],combin:[8,27,30],come:[1,8,22,23,24,26,30],command:[],commanddata:[20,30,31],commercial_pap:[30,31],commercialpap:[4,21,30,31],commercialpaperlegaci:30,commit:[3,9,22,24],committe:12,common:[4,5,8,21,22,23,27,30,31,32],commonleg:5,commun:[10,22,23,26],compani:20,companion:[22,30,31],compar:[8,11,15,30],compat:[1,24],compel:3,compet:8,complementari:9,complet:[8,9,20,22,23,25,27,28,30,31,32],complex:[2,4,8,12,21,22,27,28,30],complic:[22,30,31],compon:[7,9,16,23],compos:[22,23,27,30,31],composit:[27,31],compositeclaus:31,compound:23,compris:5,comput:[5,20],computeoursignatur:22,concaten:15,concept:[3,4,8,9,15,20,22,23,30],concern:[8,22,30],concis:23,conclus:[3,8,20],concurr:14,concurrenthashmap:2,condit:[3,14,20,23,31,32],conf:[6,7],confgur:21,config:[6,7,14,18,25,29],configur:[],confirm:[3,10,12],conflict:[3,8,14],confus:22,connect:[1,6,7,13,14,18,19,29],consid:[2,5,8,9,20,23,24,27,30],consider:30,consist:[5,6,8,12,14,20,22,23,31],consol:[25,29],constant:[2,21,30],constantli:20,constraint:[20,22,23,30],construct:[],constructor:[9,22],consum:[1,3,8,9,23,27,30],consumingtx:3,consumpt:[9,20],contact:[10,22,23],contain:[3,5,6,7,8,15,16,18,19,20,22,23,24,25,27,28,30,31,32,33],content:[2,3,7,8,9,10,18,20,22,27],context:[2,8,18,20,27],continu:[],contract:[],contractreject:32,contractst:[3,9,15,21,23,27,29,30],contrast:[8,20,22],contribut:27,control:[1,2,3,6,7,8,10,18,21,22,23,25,26,27,30,33],conveni:[2,8,27,30],convent:[5,22,31],convers:27,convert:[3,4,5,21,22,23,27,30],convinc:[15,22,27],coordin:6,copi:[2,3,8,16,22,28,30,32,33],copyonwritearraylist:2,copyright:2,copyvault:14,corda:[],corda_dev_ca:6,corda_vers:7,cordacadevpass:[6,29],cordapluginregistri:7,cordarpccli:[1,29],cordarpcop:[1,29],core:[4,7,8,14,20,22,23,27,28,30,32],corner:10,correct:[4,8,20,22,23,24,30,32],correctli:[8,20,23,30],correspond:[1,14,27,30],correspondingli:[2,28],cost:[1,20,30],could:[2,3,4,8,14,20,22,26,27,30],couldn:15,count:5,countabl:23,counter:[2,22],counterparti:[4,5,12,26],countri:[20,27],coupl:[14,22,29],cours:[14,18,20,21,22,30,33],coven:30,cover:[3,4,8,12,20,22,27,30,33],cpu:14,crash:22,creat:[],createdummyirs:5,createsomenod:22,creation:[5,8,15,30],creator:20,credenti:19,credit:[12,23],crisi:12,crisp:30,criteria:4,critic:[8,24],crop:8,crypto:23,cryptograph:[15,27],cryptographi:[],csr:23,curl:18,currenc:[4,5,14,19,22,23,27,30],current:[1,2,3,5,6,7,8,9,11,13,14,15,16,17,19,20,21,22,23,24,26,27,29,30,32],currentstep:22,currenttim:22,currentwallet:22,curv:5,custodi:[22,27],custom:[3,18,22,23,25,27],customis:33,cut:[],cutoff:14,cycl:[2,22,30],dai:[3,5,18,20,22,24,27],daniel:23,danks:23,dashboard:[18,19],data:[],databas:[],dataset:[5,12],datasourc:6,datasourceclassnam:6,datasourceproperti:6,datastructur:14,date:[],dateoffset:23,daterollconvent:27,david:23,dcapsul:7,dead:16,deadlin:27,deal:[2,20,22,25,27,30],dealstat:27,debt:[4,12],debugg:7,decd098666b9657314870e192ced0c3519c2c9d395507a238338f8d003929de9:18,decd:18,decentralis:[8,20,23],decid:[10,15,20,21,30],decis:[3,8,30],declar:[2,6,32],dedic:2,dedupl:23,defaultissu:30,defin:[2,3,8,13,14,18,21,22,23,27,29,30,31,32,33],definit:[3,22,23,27,30,31],delai:[5,20],deleg:[3,31],delet:[2,8,22,23,30],deliber:[8,32],deliv:[4,22,27],deliveri:[13,16,22,25],demand:[3,8,22,23],demo:[],demonstr:[12,23,25,33],denial:3,denot:15,dens:2,depend:[2,3,7,8,9,10,12,20,22,23,30],dependson:7,deploi:7,deploy:7,deploynod:[6,7,12,25],deployvisualis:17,deposit:[30,32],deprec:23,deregist:16,deriv:[5,21,22,23,27,30],describ:[2,3,8,9,11,12,14,15,22,26,27,30],descript:2,deserv:[14,24],design:[2,3,8,11,13,20,23,26,30,31,33],desir:[22,27],desktop:18,despit:[22,28,30],destroi:[4,8,30],destructur:30,detail:[],detect:2,determin:[4,5,9,31],determinist:[1,14],dev:[6,14],develop:[2,6,7,8,11,13,21,22,23,24,25,30],devic:[6,8],devis:8,diagram:5,did:15,didn:[2,15,22,24,30],differ:[2,3,4,5,6,7,8,9,14,19,20,21,22,23,27,29,30,32],difficult:22,difficulti:31,digest:3,digit:[8,20,22,23,30],digitalsignatur:[3,20,22],direct:2,directli:[1,2,3,16,18,22,23,27,29,30,31],directori:[0,6,7,12,14,25,33],directthreadexecutor:2,dirnam:7,dirti:30,disabl:27,disadvantag:8,disagr:12,disambigu:21,discard:26,discov:8,discoveri:17,discuss:[8,22,27,30],disk:[16,22,23,27],disobei:20,displai:[3,29],disput:[3,5,30],disrupt:[14,16],disruptionpattern:14,disruptionspec:14,distinct:[2,31],distribut:[3,7,8,11,13,20,22,23],distrust:[3,22],divid:3,divis:27,doc:[0,1,2,11,23,29],docker:18,docsit:[0,24],doe:[2,3,4,5,7,8,9,11,12,13,18,20,21,22,26,30,32,33],doesn:[2,3,8,10,13,18,22,26,30,32],dokka:0,dollar:[27,30,32],dollars:[30,32],domain:[23,27,30],domicil:30,domino:12,don:[1,2,8,10,13,14,20,22,24,25,26,27,30,31,32],done:[0,1,8,14,15,22,23,25,29,30],dot:[5,15],doubl:[8,13,19,22,30],doubt:[2,13],down:[2,6,8,14,19,22,28,30,31],download:[],downsid:[2,8],drain:[1,22],draw:[23,29],drawn:29,drive:[8,33],driven:25,driver:[6,18,21,23,29,33],driverdirectori:29,drm:20,dsl:[7,23,32],dt_socket:7,due:[2,3,5,8,9,12,13,21,22,30,31],dummi:[4,22,32],dummy1:22,dummy2:22,dummy_cash_issuer:32,dummy_notary_key:22,dummy_pubkey_1:[30,32],dummy_pubkey_2:32,dummycontract:22,dump:29,duplic:[15,22],durat:[9,20],durationsecond:14,dure:[2,5,6,7,17,18,22,23,30],dynam:[8,23,30,33],each:[1,2,3,5,6,7,8,9,14,15,17,20,21,22,23,24,27,29,30,31,32,33],earli:[2,4,33],earlier:26,earliest:[5,9],easi:[2,8,20,23,30],easier:[2,7,22,23,30],easiest:[1,30],easili:[2,12,22,30],econom:5,ed25519:23,edg:29,edge:29,edit:18,edition:10,editor:10,effect:[5,6,8,12,21,22,32],either:[2,3,4,5,6,8,14,15,21,22,25,27,29,30,32,33],elbonia:27,element:[2,8,15,31],elimin:[13,23],els:[3,7,8,20,22,27,29,30,31],email:22,embed:[8,13,15,18,20,23],embedd:16,emit:[1,23],emoji:28,empti:[3,6,23,30,32],emptyledg:32,emptyset:[3,28],enabl:[6,7,28,31],enact:12,enc:14,encapsul:[2,27],enclos:2,encod:20,encount:[9,13],encourag:[21,28],encumb:30,encumberedst:30,encumbr:30,encumbranc:[],end:[2,3,5,8,11,14,20,22,24,31,33],endpoint:[7,16,18],enforc:[2,8,30],enforceverifyorfail:32,engin:12,english:[2,30],enjoy:23,enorm:22,enough:[2,10,12,22,30,33],ensur:[2,3,8,10,15,22,23,24,26,27,30,31],ensure:[3,10,12],enter:[7,12,32,33],entir:[3,5,8,11,20,22,30],entireti:5,entiti:[3,8,15,20,21,27,30],entri:[5,6,7,8,22,26,30],enumer:[5,21],environ:[2,7,20,22],envisag:30,equal:[3,22,23,27,30,31,32],equiti:21,equival:[2,5,19,27,30],especi:27,essenti:[18,20,30,31],establish:[9,16,25],etc:[2,3,4,5,12,13,19,20,22,23,24,27,30,31],euribor:[18,20],euro:27,evalu:[5,20,31],even:[1,3,8,12,13,15,20,21,22,23,30,32],event:[],eventu:14,eventual:[3,24],ever:[2,8],everi:[1,3,8,14,15,16,20,21,22,23,24,26,27,30,33],everybodi:8,everyon:[3,20,30],everyth:[3,26,29,30,33],evid:20,evolut:8,evolv:[21,30,33],exact:3,exactli:[8,27,30],examin:[2,7,8,22,30],exampl:[],exce:14,excel:20,except:[1,2,22,26,30],exception:[2,22],excess:2,exchang:[5,22,27],exclud:6,exclus:4,execut:[3,7,8,9,14,17,19,22,23,27,28,30],executor:2,exhaust:23,exist:[2,3,4,5,7,8,9,11,21,23,27,29,30,32,33],exit:[4,19,22,23,29,30],exitcash:29,expand:19,expect:[1,2,4,6,9,14,21,22,23,24,25,26,27,28,30,31,32],expectedtypenam:22,expens:[1,2],experi:[7,23,24,33],experienc:8,experiment:[2,22,23],explain:[2,9,14,22,23],explan:[2,29],explicit:[2,8,22,30],explicitli:[2,8,32],explor:[2,8,10,13,18,19,22,23,30,33],explorer:[],expos:[2,7,8,9,18,21,22,23,27,29],expose:[22,27],exposur:[4,5],express:[3,5,8,23,27,30,32],ext:7,extend:[2,3,7,13,22,23,27,30,31],extens:[2,23,26,27,30],extent:8,extern:[6,22,28,33],extraadvertisedserviceid:6,extract:[8,18,20,27,30],extractcommand:31,extrem:[3,8,14],face:30,facevalu:30,fact:[2,3,5,8,20,22,30,32],factor:[5,8,12],fail:[28,30,31,32],failswith:32,failur:[22,28,32],fairli:[2,12,22],fake:33,fals:[2,3,6,20,22,27,30],famili:21,familiar:[8,30],famou:[8,23],fanci:30,far:[22,25,30],fashion:[2,12,21],fast:[8,22],fault:22,featur:[],feed:[3,20],feedback:23,feel:[30,33],fetch:[16,18,20,28],fetchtransactionsprotocol:28,few:[2,13,18,20,22,24,25,30],fiber:22,field:[],file:[],fill:[2,22,25,30],filter:[2,14,15,23],filtercommand:15,filteredleav:15,filteredtransact:15,filterfun:15,filterisinst:30,finalis:[3,5,22,23],finalisetransact:3,finalityprotocol:[3,28],financ:[7,22,23,33],financi:[8,9,12,22,23,27],find:[0,8,11,13,18,22,26],fine:[1,8,32],finish:[22,23],fire:22,firewal:22,first:[1,2,3,5,6,7,9,10,16,18,20,21,22,23,25,27,28,29,30,31,33],firstli:30,fit:[2,8],fix:[],fixabledealst:27,fixedleg:5,fixedlegpaymentschedul:5,fixedratepaymentev:5,fixingroledecid:9,fixingsessioninitiationhandl:9,fixof:[15,20],flag:[18,33],flat:21,flesh:27,flexibl:[3,8,27],flight:[1,8],floatingleg:[5,9],floatinglegpaymentschedul:5,floatingratepaymentev:5,flow:[2,5,30,31],flux:[7,33],fly:22,focu:15,fold:[2,29],folder:[0,6,7],follow:[0,2,3,6,7,8,9,10,14,18,19,22,30,31,32],font:2,foo:2,foobrokenexcept:2,foot:26,fooutil:30,forc:[8,18,23,30,32],fordai:[9,20],foreach:29,forev:24,forget:[22,30],form:[3,7,8,9,15,25,30,31],format:[],former:29,formula:23,forth:[1,22],fortun:12,forward:[16,20,22,24,25],found:[6,10,18,20,22,24,27,33],four:30,fourpmtimelock:30,fraction:27,frame:[2,12,22],framework:[8,13,14,16,19,22,23,27,33],free:[3,8,22],freed:1,freeli:20,frequenc:5,frequent:30,fresh:[20,30,32],freshkei:22,freshli:27,from:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,17,18,19,20,21,22,23,24,25,26,27,28,30,32,33],fromcountri:27,front:30,frontend:13,frustrat:8,ftx:15,fulfil:[4,8],full:[2,3,4,6,12,15,16,22,29,30,31],fulli:[2,3,6,8,22,23,27],fullnodeconfigur:29,fullysign:22,fun:[3,9,14,15,20,22,28,29,30,31,32],fund:[8,12],fundament:[3,8,30],fungibl:[4,27,30,31],fungibleasset:[],further:[5,8,14,23,27,31],futur:[],futuretransact:29,fuzz:23,gain:13,garbag:[1,2,18,22],gather:[14,30],gatherfrequ:14,gatherremotest:14,gavin:8,gcd:8,gear:24,gener:[],generatecount:14,generateiniti:22,generateirsandfixsom:5,generateissu:30,generatemappedobject:21,generatemov:30,generateredeem:30,generatespend:[22,30],generatetransact:29,genuin:2,get:[],getamount:32,getbefor:30,getbloomfilters:2,getclass:30,getcommand:[30,31],getcontract:30,getdummy_cash_issuer:32,getdummy_pubkey_1:32,getdummy_pubkey_2:32,getencumbr:30,getfacevalu:30,getfix:5,getinput:[23,30],getinstat:23,getissuanc:30,getkei:30,getlegalcontractrefer:[30,31],getmaturityd:30,getmega_corp:32,getmega_corp_pubkey:32,getnotarysignatur:[3,22],getoutput:[23,30],getoutst:23,getowner:[30,31],getparticip:30,getprotocoltrack:22,getprotocolvers:1,getrequiredcommand:31,getresourceasstream:28,getresultorthrow:14,getsign:[30,31],getter:[21,30],gettimestamp:30,gettransact:22,getvalu:[30,31],getvaulttransactionnot:29,git:[10,15,23,24],github:[0,6],giusepp:23,give:[3,7,8,16,22,23,28,30],given:[3,8,15,20,22,27,29,30],givenpric:22,glanc:19,global:[2,3,8,23,27],glue:22,gnu:0,goal:[2,8,13,24],goe:1,gone:[22,23,30],good:[2,10,15,22,30,32,33],got:[15,18,22],gover:30,govern:12,gps:3,grade:27,gradl:[],gradlew:[7,10,12,14,17,19,25,29],grain:1,grammar:2,granular:8,graph:[1,8,13,18,22,23,29],graphit:18,graphstream:29,great:[12,23],greater:2,greatest:8,green:10,groom:8,group:[],groupclaus:31,groupclauseverifi:31,groupingkei:31,groupstat:[30,31],guarante:[24,27],guava:[2,30],gui:22,guidelin:[],hack:[8,23],had:[3,22,23,27,30],hand:[9,17,22,30],handa:23,handi:22,handler:[7,9,22],happen:[],happi:[25,28],hard:[2,8,22,24],harder:[8,26,30],hardwar:6,hase:5,hash:[3,8,13,15,18,20,22,23,27,29,30],hashcod:30,hashmap:14,haskel:23,hasn:[10,14],hassl:22,hat:24,have:[1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,18,20,21,22,23,24,25,26,27,28,29,30,31,32,33],haven:30,head:29,heap:22,hearn:8,heart:30,heavi:24,heavili:8,hedg:[4,5],heirarchi:2,held:21,hell:22,hello:22,help:[2,8,9,22,25,30],helper:[5,22,27,30],henc:[3,5,8],her:30,here:[2,3,6,7,8,11,13,15,18,20,21,22,23,27,29,30,32,33],herself:29,hidden:16,hide:[],hierarch:22,hierarchi:22,high:[8,22],higher:[1,2,3,10],highest:11,highli:23,highlight:23,histori:3,hit:[8,10,28],hoc:23,hocon:6,hold:[8,14,15,23],holder:[2,8,30],holidai:[5,20,27],home:[10,19,25],homepath:7,hood:32,hopefulli:33,hospit:22,host1:14,host2:14,host:[6,7,14],hostandport:6,hostil:26,hotspot:2,hour:22,hous:19,how:[],howev:[3,4,5,6,8,15,20,21,22,27,28,30,31,32],html:[0,2],http:[0,6,10,12,18,20,22,25,28,30,31,33],https:6,hub:22,human:[3,6,8,20,22],hundr:22,hurt:22,ide:[10,13,18,23],idea:[2,8,10,13,22,33],ideal:[22,30],ident:[3,6,8,14,15,16,20,22,23,27,29,30,31,32],identicon:23,identifi:[5,8,12,15,16,18,20,27],identiti:[3,22,27],identityless:8,ifmatch:23,ifnotmatch:23,ignor:[6,22,30,31],illegalargumentexcept:[2,22,29,30,31,32],illegalstateexcept:[2,30,31],illustr:27,illustrat:2,imag:15,imagin:[2,22,30],immedi:[1,8],immut:[2,5,8,20,30],immutabl:[2,8],immutablelist:30,imper:2,implement:[],impli:22,implic:[3,8,22],implicitli:5,important:24,importattach:28,impos:[20,30],imposs:[8,15,20],improv:[23,24,30,31],improve:8,improvement:23,inadvert:30,includ:[],inclus:15,incom:23,incompat:32,incomplet:14,inconveni:30,incorpor:20,increas:[2,12],increment:1,indent:2,independ:[3,12,20,21,31],index:[5,8,9,10,21,24,30],indexsourc:9,indic:[1,2,5,9,22,23,30],indicat:14,individu:[],indivis:27,industri:[12,13,18],infer:32,influenc:18,info:[21,22,29],inform:[2,3,8,19,22,23,27,28,30],infrastructur:[1,8,13,18,22,23,30],inher:8,inherit:[2,30,31],initi:[3,12,14,22,23,25,29,33],initial:[],initialis:[17,21,22],inner:31,inoutgroup:[30,31],input:[3,4,8,12,14,15,19,20,22,23,28,29,30,31,32],inputcash:32,inputindex:3,insert:[2,3,18,20,21,22],insid:[1,8,15,22,25,26,30],inspect:14,instal:[0,6,7,9,10,23,25,29,30],installdist:[25,29],instanc:[],instance:32,instant:[2,9,22,27,30],instanti:[8,9,22,23],instat:32,instead:[2,8,13,16,22,23,27,30,33],instigat:3,institut:8,instruct:[18,28],instrument:[4,5,9],insuffici:8,insufficientbalanceexcept:30,integ:[1,23,27,30],integer:30,integr:[2,8,12,15,18,20,21,22,23,28],intellig:2,intend:[2,4,7,8,11,18,19,20,21,22,26,27,32],intent:[20,23,30],intention:2,inter:23,interact:[1,2,8,16,20,22,23,30],interchang:27,interest:[],interest_r:6,interfac:[],interior:23,interleav:14,interledg:23,intermediari:[12,27],intern:[2,7,16,18,21,22,23,27,30],internalis:2,interop:[13,23,30],interpol:27,interpret:[2,8,14],intersect:30,interv:[14,27],intesa:23,introduc:[2,3,9,20,23,30],introductori:11,intuit:2,invalid:[3,20,22,27,30],invari:[14,30],investig:22,invoc:[1,22],invoic:28,invok:[1,2,8,9,18,22,23],invoke:22,invokeprotocolasync:22,involv:[3,4,8,22,27,30,33],ipsa:20,irrelev:9,irs:[],irsdemo:[6,15,25],irsexport:5,irstest:5,irsutil:5,isbefor:30,isconsist:14,isda:[12,23],isempti:30,isinstanc:22,isn:[1,2,8,22,26,27,30,33],isnotari:29,isnotempti:28,isol:31,issu:[3,4,8,12,14,15,19,20,22,23,24,25,27,29,30,31,32,33],issuanc:[4,27,30,31],issue:[4,14,29,30,31],issuecash:[14,29],issuedbi:32,issuer:[4,8,19,22,27,30,32],issueref:29,item:30,iter:[22,23,24,30],iterabl:29,itself:[1,3,5,6,8,9,12,16,18,20,21,22,23,28,29,30,32],jar:[0,6,7,8,17,18,23,28],jarandsourc:7,java:[1,2,7,8,9,13,18,21,22,23,27,28,30,31,32,33],javaclass:22,javacommercialpap:30,javadoc:[2,7],javadocjar:7,javafx:23,javatesthelp:32,jdbc:[6,7,18,21,23],jdbcdatasourc:6,jdbcx:6,jdk1:10,jdk:[10,23,27,30],jdwp:7,jetbrain:[10,13],jms:16,jmx2graphit:18,jmx:18,jmxtran:18,job:[14,22,33],jobs:14,johann:23,join:[16,21,23,30],jolokia:18,jpa:21,json:[6,18,33],judgement:2,jump:25,just:[1,2,8,10,12,14,16,18,22,23,25,26,27,28,29,30,32,33],jvm:[1,7,8,13,18,22,26,33],kdoc:2,keep:[8,22,30],kei:[],kept:22,keymanagementservic:22,keypair:[22,30],keystor:6,keystorepassword:[6,29],keyword:[2,32],kick:22,kill:14,kind:[8,11,20,22,26,27,30,33],knob:14,know:[1,3,8,9,13,15,20,22,25,26,30,31,32],knowledg:20,known:[5,8,12,15,22,24],korea:30,kotlin:[],kryo:22,label:[22,32],lack:[],lambda:[22,32],land:5,lang:32,languag:[1,2,7,8,10,13,22,23,27,30,33],larg:[8,16,20,22,23,25,27,28,30,33],larger:[2,8,26],last:[14,22,24,32],lateinit:22,latenc:3,later:[1,2,13,20,21,22,23,26,27,29,30,31],latest:[2,10,23],latex:23,latter:[2,29,30],launch:9,layer:[6,8,16,20,21,22,23],layout:[7,17],ldap:23,lead:[2,8],leaf:15,leak:[1,3,8,22],learn:[8,11,22,25,27,30,33],least:[11,14,28,30],leav:[2,15,19,22,27],ledger:[3,4,5,8,11,18,20,21,22,23,25,27,28,30,32],ledgertransact:[22,23,27],leewai:26,left:[17,22,25,31,32],leg:[5,9],legal:[3,6,8,20,27,30],legalcontractrefer:[30,31],legalident:29,legallyidentifi:[3,20,22],less:[22,23,28],let:[2,8,9,14,15,16,18,20,22,23,25,27,28,29,30,32],letmein:6,letter:[2,16],level:[2,3,5,10,11,12,14,15,16,19,22,26,27,30,31,32],lib:[0,7,17],liber:2,libor:[5,18,20],librari:[1,2,6,12,18,20,22,23,27,29,30],licens:[2,12],life:[22,30,33],lifecycl:[],lifecyl:4,lifetim:5,lightweight:22,like:[1,2,3,5,8,9,10,14,15,16,18,20,22,23,24,27,29,30,31,33],likewis:30,limit:[4,8,14,30],line:[],linear:27,linearst:27,liner:2,link:[2,8,20,22,23,27],linkabl:8,linkag:8,linux:[7,18,23],list:[0,3,6,8,14,15,20,21,22,23,24,25,27,29,30,31],listen:[2,29],listenablefutur:[3,22],listof:[22,29,30],liter:8,littl:[2,22,30,32],live:[5,12,22,23],livelock:8,load:[],loadtest:14,loan:[4,5,20],local:[0,6,7,8,10,14,18,21,22,23,32],localcertificatesbasedirectori:14,locald:20,localhost:[6,12,18,19,25],localtunnelstartingport:14,lock:[2,4,6,21,30],log4j:23,log:[1,7,18,22,23,25,31],log_sender:28,logger:22,logic:[3,8,9,16,22,23,26,27,28,30,31,33],logictyp:29,login:[7,19,29],london:[6,7,28],longer:[2,5,6,22,23],longrang:14,look:[2,5,14,16,18,20,22,24,25,27,28,30,31,32,33],lookup:6,loop:[2,5,14,29,30],loquitur:20,loss:20,lot:[2,5,8,23,25,26,30,33],low:[3,22],lower:2,lowest:[11,16],lurch:22,mac:[18,25],machin:[],macos:7,made:[2,5,8,22,23,24,27],mai:[1,2,3,7,8,11,14,16,17,18,20,22,23,24,26,27,29,30,31,32,33],mail:[24,25],main:[6,9,14,16,22,23,28,29,33],mainstream:13,maintain:[3,8,30],maintan:20,mainten:16,major:[22,24],make:[],maker:13,maketransact:22,malici:[22,26],manag:[6,8,14,16,18,22,23,30],mandatori:30,mani:[2,3,7,8,9,14,20,22,23,27,28,30],manipul:27,manner:[8,22,23,30],manual:[3,7,9,17,22],map:[],mapchang:29,mappabl:30,mappedschema:21,margin:[],mark:[1,2,4,21,22,30],markdown:2,marker:[22,26],market:11,marshal:1,master:[11,24],match:[1,8,15,22,26,27,28,31],math:[],mathemat:27,matter:[12,22,30],matur:[3,4,5,18,20,30],maturityd:30,maven:[7,10,23,30],mavenloc:7,mavenpubl:7,maximis:8,maximum:8,maybestx:22,maybetraderequest:22,mbean:18,mean:[2,3,8,9,12,14,15,20,22,27],meandref:29,meaning:[3,4],meaningfulli:28,meant:[14,22],meanwhil:29,measur:[5,12],mechan:23,meet:30,mega_corp:[22,32],mega_corp_key:22,mega_corp_pubkey:32,megacorp:22,member:[5,23],memori:[3,16,22],menlo:2,mention:[9,22,30],menu:10,mere:5,merg:[8,23,27,30],mergeabl:30,merkl:[],merkleroot:15,merkletreeexcept:15,mess:22,messag:[],messagingserveraddress:6,messagingservic:16,met:27,metadata:28,method:[1,2,3,6,9,14,18,21,22,23,26,27,30],metric:[12,18],micro:[23,31],mid:3,middl:[2,22],might:[2,5,8,10,20,21,22,26,30],mike:8,mileston:[],min:29,mind:[2,20,22],mine:8,miner:8,mini_corp_pubkey:22,minim:[8,22],minimis:[3,4,8,16],minimum:[1,5,8,27],minor:[23,24],minu:30,minut:[13,20,22],mismatch:[8,30,32],miss:[2,6,22,30,32,33],missingsig:22,mission:18,mistak:[23,26],mix:[2,23],mock:22,mocknetwork:22,mocknod:22,mockservic:27,mode:[17,23],model:[],modest:8,modif:[27,30],modifi:[3,4,5,7,10,22,27,30,31],modul:[2,6,22,23,30],moment:[22,23],monei:[20,30],monitor:[],month:[5,22,24],more:[1,2,3,4,5,6,7,8,12,13,15,18,20,21,22,23,25,27,28,30],moreexecutor:2,mortensen:23,most:[2,5,8,18,22,30],mostli:30,motiv:11,move:[4,8,19,22,23,24,29,30,31,32],movement:[22,30],much:[2,8,13,21,22,23,25,26,30,33],multi:[],multigraph:29,multilater:[4,23],multipl:[],multipli:5,must:[1,2,3,4,6,7,8,9,18,20,21,22,23,26,27,28,30,31,33],mustafa:23,mutabl:[2,8,27,30],mutat:8,mutual:[3,4,22,26],myfil:18,mykei:27,mykeypair:22,mylegalnam:6,mysql:13,nail:2,namedbyhash:[],nameserv:6,namespac:22,narrow:[2,19],nativ:22,natixi:23,natur:30,naval:3,navig:[7,12,25],navistar:3,nearestc:[6,7],neat:32,necessari:[2,3,23,24],necessarili:[21,27],nee:23,need:[0,2,3,5,8,9,12,14,15,18,22,23,24,26,27,28,29,30,31,32,33],neg:27,negoti:[8,27],neither:22,nest:22,net:[4,5,7,22,23,28,30,32],network:[],networkmap:7,networkmapaddress:[6,7],networkmapcach:[6,22,29],networkmapservic:6,networkmapupd:29,neutral:13,never:[2,3,8,30],newli:9,newnotari:3,newowner:30,newsecurerandom:23,next:[2,5,9,10,15,17,22,23,26,30],nextdoubl:29,nextfixingof:9,nextlong:29,nextscheduledact:9,nfinal:28,nice:[20,30],nio:2,noddi:18,node:[],node_dir:7,nodea:[6,7],nodeb:7,nodefilt:14,nodehandl:14,nodehost:14,nodeident:29,nodeinfo:[6,22,29],nodeinterestr:20,nodeservic:20,nodesslconfigur:29,nodisruptionwindowm:14,non:[],none:[9,12,15,21,22,31],nonemptyset:23,nordea:23,normal:[1,3,4,5,7,14,15,17,22,23,27,28,30,31],north:30,notabl:2,notaris:[3,8,22,23,25,27,30],notary:22,notarychang:23,notarychangeprotocol:3,notaryexcept:3,notaryident:29,notarynod:22,notaryprotocol:[3,22],notaryservic:23,notarysig:22,notarysignatur:22,notarytous:27,note:[],noth:[2,8,9,22,23,26,30],notic:2,notif:[14,16,28],notifi:[3,16,17],notion:[5,8,23,30],notnul:[30,31],now:[2,7,8,10,11,15,18,22,23,25,27,29,30,32,33],nugget:30,nullabl:30,nullpublickei:30,number:[2,4,5,8,12,14,19,20,22,24,25,27,30],numer:8,obj:30,object:[],oblig:[4,5,23,27],obligor:4,observ:[1,3,5,8,9,14,22,23,29],observatori:3,obsolet:[9,23],obtain:[],obviou:[2,3,8,20],obvious:5,occur:[3,9,22,30],occurr:3,odd:30,off:[],offer:[21,22],offlin:16,offset:5,often:[2,4,5,8,20,22,30],oftenor:20,oil:[23,32],old:[3,22,23,30],omit:[9,12],onc:[1,2,3,22,24,27,30],once:[0,3,5,7,9,17,21,22,27,28,30,33],onchainasset:4,one:[3,15],ongo:1,onledgerasset:30,onli:[1,2,3,5,6,7,8,9,13,15,16,17,18,19,20,22,23,24,26,27,30,31,33],only:22,onto:[1,2,22,30],opaquebyt:29,open:[3,7,8,10,12,18,22,23,25],openattach:28,opengamma:[12,23],openjdk:10,openssl:14,oper:[5,6,9,18,20,22,23,26,27,30],opt:[7,14],optim:2,option:[0,2,5,6,9,14,17,21,22,23,30,31,33],oracl:[],orchestr:[13,23,33],ordain:5,order:[0,1,2,3,4,5,8,12,13,14,17,20,21,22,23,25,27,28,29,30,31],ordinari:[8,22,23,30],org:[0,6,10,30,31],organis:21,orient:[],origin:[15,21,23,27,28,30],originalst:3,orm:21,otc:21,other:[2,3,4,5,6,7,8,9,12,13,14,15,17,19,20,21,22,23,25,26,27,28,30,32],otherparti:22,othersid:[22,28],otherwis:[1,2,6,7,9,22,26,30],our:[2,3,8,9,14,15,22,23,24,25,27,29,30,32],ourselv:[22,30,33],oursignatur:22,out:[2,3,4,8,9,10,12,15,16,18,20,22,23,24,26,27,29,30,31],outcom:22,outer:31,outermost:31,outlin:[8,22],outpoint:8,output:[3,4,7,8,15,19,20,22,23,25,28,29,30,31,32],outref:22,outsid:[7,8,20,22,33],outstand:4,over:[2,3,5,6,7,8,14,15,16,18,20,21,22,25,27,30],overal:[3,9,32],overdu:9,overflow:2,overidden:[6,7],overload:[22,27],overnight:27,overrid:[9,14,22,29,30,31],overutilis:14,overwhelm:8,own:[2,3,4,7,9,14,18,19,20,21,22,23,24,27,29,30,32,33],ownablest:[22,27,30],ownedquant:29,owner:[9,22,27,30,31,32],ownership:[22,30],owningkei:[15,22,30],ozturk:23,p2p:23,pack:30,packag:[21,23,27],packet:8,page:[10,20,24,25],pai:[],paid:[4,5,8,12,30],pair:[8,22,27,29,30],paragraph:14,parallel:[1,8,14,20],parallelis:8,param:14,paramet:[1,2,9,14,22,27,30,31],parameteris:[8,14],parent:22,pars:[6,20,27,30,33],part:[1,2,3,4,7,8,9,11,14,15,21,22,23,25,26,27,33],parti:[],partial:[3,8,15,22,26,30,32],partialtx:[15,22],particip:[3,8,23,30,33],particular:[],partner:12,partyandrefer:[2,29,30],partynod:22,partyrefer:[2,30],pascal:2,pass:[3,14,15,21,22,25,28,30,31],password:[1,6,7,18,19,23,29],past:[2,25,30,33],patch:[2,23],path:[2,6,7,9,14,16,18,23,29,30],path_to_loadtest_conf:14,pattern:[2,8,29],paus:[7,17],paycash:29,paye:8,payer:[5,8],payment:[4,5,8,9,12,20,22,25,30],pdf:[20,28],peer:[13,15,20,22,30],penni:[27,30],peopl:[2,8,13,22,30],per:[],perform:[2,3,5,8,9,12,14,20,22,23,25,27,28,30,31],perhap:[2,8,16,30],period:[5,25],perman:[28,30],permiss:[1,6,13,23,29],persist:[],persistentst:21,perspect:[8,22,30],phase:23,phrase:20,physic:[3,23],pick:[16,22,23,24,30,33],piec:[2,3,8,14,22,27,30,32],pip:0,pki:[8,23],place:[0,2,5,8,9,12,13,15,16,20,22,23,24,25,27,29,30,33],plai:[],plain:6,plan:[8,20,22,23],platform:[3,5,7,8,9,13,15,20,22,26,27,30],pleas:[2,8,10,21,23,25,28],ploadtest:14,plu:[6,27],pluggabl:23,plugin:[],pluginservicehub:23,point:[1,2,3,4,7,8,14,18,20,21,22,24,26,30],pointer:[3,22,27],pointless:2,polish:23,polit:12,poll:14,pool:[2,8],poor:8,pop:10,popular:13,popup:10,port:[6,7,14,19,23,24],portfolio:[],posess:22,posit:[2,3,8,22,30],possess:3,possibl:[8,12,14,20,22,28,30],postgr:13,potenti:[2,3,12,13,22,30],pound:[27,30],power:[6,8],practic:[6,8,12,23,30],pre:[0,5,22,30,32,33],preced:30,precis:[3,8,13],precondit:[2,30],predict:14,prefer:[2,21],prefix:[2,21],preliminari:12,prepar:[8,23,30],present:[3,4,5,6,7,13,14,21,22,23,27,30,31],preserv:[3,8],pretend:[18,27],pretti:[8,22],prevent:[12,26,30],previou:[8,14,22,23,27,32],previous:[5,9,20,23],price:[8,20,22],primari:20,primarili:4,primit:[27,32],print:[1,18,23,25,26,29],println:[28,29],printorvisualis:29,priv:22,privaci:[2,3,8,13,22,23,30],privat:[2,6,8,21,22,28,30,33],privatefoo:2,probabl:[10,30,33],problem:[3,8,20,22],proce:22,procedur:[22,30],process:[],processor:[8,14],produc:[0,9,17,30,32],product:[2,7,9,12,13,23,24,27],profound:8,program:[1,2,8,18,23,25,27,30,33],progress:[],progresstrack:22,project:[7,10,11,12,23,25,30],prolif:23,promis:23,proof:[4,8,15],propag:[1,18,22,30,31],properli:[22,26],properti:[],proport:12,propos:[11,22,26],proprietari:[12,23],prose:[20,27,30],prospectus_hash:28,protect:[12,22],protocolhandl:29,protocollog:[9,22,29],protocollogicreffactori:9,protocoltrack:22,protocolvers:1,prototyp:[2,13,20,23,30],prove:[3,8,30],proven:12,provid:[0,1,2,3,4,5,6,7,8,14,15,16,17,18,19,20,21,22,23,26,27,30,33],provision:27,proxi:[1,29],pseudo:20,pseudonom:27,ptx:[3,22,28],pubkei:32,publicfoo:2,publickei:[],publickeytre:27,publish:7,pull:10,punish:20,purchas:[22,25],pure:[4,8,20],purpos:[3,4,21,22,27,29,30],push:[1,24],put:[],python:0,qualifi:6,quantiti:[8,14,27,29,30],quasar:[7,22],quasarscan:7,queri:[1,5,6,9,20,21,23,29],queryablest:21,question:[2,3,9,10,20,27],queu:16,queue:[1,2,16,22],quick:20,quickcheck:23,quickli:[8,26,30],quit:[1,2,3,22,30],r3cev:14,r3corda:7,r3dlg:24,r3prototyp:[0,10],r3repositori:10,raft:23,rais:[3,31],random:[8,9,14,23,27,29],randomis:23,randomli:[14,29],rang:[3,21],rapid:[2,7,13,24],rare:[6,27],rate:[],ratesfixprotocol:15,rather:[2,8,16,22,23,29,30],raw:[16,18,22],rdbms:[21,23],rdms:23,reach:[3,5,8,9,12,20],reachabl:22,react:14,reactiv:23,read:[2,6,7,8,11,13,15,18,22,23,25,30,33],readabl:[6,13,22],readi:[3,22,24,30],readili:[27,31],readme:2,real:[2,12,20,23,27,30,33],realis:22,realist:27,realiti:5,realli:[2,3,8,15,22,30],reason:[2,3,5,8,14,22,23,26,27,30],reassign:30,recal:5,receiv:[1,4,5,8,12,14,20,22,23,24,25,26,28,30],receiveandcheckproposedtransact:22,receiveandvalidatetraderequest:22,recent:23,recipi:[4,8,25,28,30],recognis:[8,22,30],recommend:[2,16,25,33],record:[3,9,21,22,28,29],recordtransact:22,recreat:22,red:[5,10,15],redeem:[4,30,31],redempt:30,redesign:23,reduc:[2,7,12,30],redund:2,ref:[22,27,29,32],refactor:23,refer:[2,3,4,5,6,8,9,12,20,22,23,27,28,30,32],referenc:[3,28],refin:23,reflect:[11,14,22,23,30,31],refresh:23,refus:10,regard:3,regardless:22,regener:[5,24],regist:[2,7,16,17,18,22,33],registerprotocoliniti:22,regul:30,regular:[18,22,25,27,30],reissu:30,reissuanc:8,reject:30,rel:[6,7,8,31],relabelablestep:22,relai:28,relat:[],relationship:30,relax:[14,23],releas:[],relev:[7,8,9,11,23,27,30,31],reli:[1,7,8,12,23,26],relianc:8,relic:18,religi:2,remain:[7,9,22,30],remeb:10,rememb:[2,9,10,26],remind:[22,26],remot:[6,7,10,14,28],remotemessagingport:14,remotenodedirectori:14,remotesystemdservicenam:14,remov:[15,22,23,24,29,30],renam:[22,23],render:[2,17,22,23],renderifsupport:28,repeat:[2,5,22],replac:[3,5,10,12,18,23,24,27,30],replai:23,replic:8,repoint:3,report:[22,31],repositori:[2,7,10,23,24,25],repres:[2,4,5,8,14,20,21,22,23,27,29,30],represent:[5,21],request:[1,3,8,14,16,20,21,22,23,26,28],requestingparti:3,requiredcommand:[23,31],requiresinglecommand:[30,31],requirethat:[30,31],research:23,resel:20,reset:[5,17],reshap:8,resolut:[3,8,22],resolv:[2,12,22,27,30],resolvefromtwohash:22,resolvetransactionsprotocol:[22,28],resolvetransactionsprotocoltest:22,resourc:[1,6,8,14,22],respect:[2,8,22,25],respend:8,respond:22,respons:[1,3,8,9,16,21,22],rest:[3,8,13,18,22,23,33],restart:[10,22],restor:22,restrict:[2,12],restructur:31,restructuredtext:0,result:[2,3,5,6,8,12,19,20,21,22,23,26,29,30,31],resum:[22,23],resurrect:22,retain:16,rethrown:1,retri:[13,16,22],retriev:[3,5,22,28,29],retrieveoutput:32,reus:[1,8,32],reusabl:[20,23,28],reveal:[3,8,15,22,23],revers:22,revert:4,review:[2,23,24],revis:5,rewrit:22,richer:7,right:[2,10,18,22,23,24,26,33],rightmost:15,rigid:8,rigidli:2,risk:[12,22],robert:23,robust:23,role:[8,9,25,28,33],roll:[5,22,23,25],rollov:[27,30],root:[6,7,15,24],rotat:23,roughli:[3,24],rout:[16,22,23],row:[18,19,21,27,30],rpcexception:1,rpcreturnsobserv:[1,29],rpcsincevers:1,rpcuser:[6,29],rui:23,ruin:32,rule:[2,12,20,22,23,30],run:[],runbuy:25,rundemonod:[19,23],runnetwork:22,runnod:[7,12,25],runparamet:14,runrecipi:[25,28],runsel:25,runsend:[25,28],runshellcommandgetoutput:14,runtim:[2,22],safe:[1,2,8,22,26,29],sai:[2,3,8,12,14,25,30],sake:12,sale:[25,30],same:[1,2,3,4,5,6,8,9,14,20,22,23,27,30,31,32],sampl:[7,12,17,22,23,25],sanction:30,sandbox:[8,9,13,23,26],saniti:22,santiago:23,satisfi:[27,30],save:[2,22,23,30],scala:[13,30],scalabl:[2,8],scale:[5,26],scan:7,scenario:[8,27,33],scene:[22,30],schedul:[],schedulablest:9,scheduledact:9,schema:[],schemaopt:21,schemaservic:21,scheme:15,scope:[8,19,31],scotiabank:23,scrape:18,scratch:[27,33],screen:[2,10,19,23,30],script:[0,7,8],scroll:25,scrub:22,seamless:13,search:[10,19,30],second:[5,14,22,25,27,30],secondari:22,secp256r1:23,secret:6,section:[6,8,11,14,23,24],securehash:[3,15,27,29,30,31],securerandom:23,see:[0,1,2,3,4,5,6,7,9,14,15,20,21,22,23,25,27,28,29,30,31,33],seed:22,seek:[8,23],seem:8,seen:[2,5,20,22,30],segment:7,select:[3,10,21,23,30,31],self:[7,14,23,25],selfissuecommand:14,selfissuest:14,selfissuetest:14,sell:[22,30,33],seller:[],sellerownerkei:22,sellersig:22,sellertradeinfo:22,semi:8,send:[2,3,8,15,16,18,20,22,23,24,25,28,30,32],sendandrec:22,sender:[8,22,25,28],sendsignatur:22,sens:[5,20,30],sensit:[9,12,15,26],sent:[9,22,23,27,30],separ:[3,7,8,15,16,18,20,22,27,30],septemb:12,sequenc:[8,23],sequenti:22,seri:22,serial:[1,13,30],serialis:[1,2,8,13,22,30],seriou:[8,24],serious:33,serv:7,server:[1,6,7,13,16,18,23,30,33],servicehub:[3,7,16,22,28],servicehubintern:[3,7,22,23],serviceinfo:29,servicetyp:6,session:[9,16,23],sessionid:9,set:[],setof:[22,28,29,31],setter:[21,30],settim:[22,27],settl:[4,22,27,28],settlement:[4,22],setup:[7,9,17,22],sever:[6,7,8,21,22,29,30,32,33],sha256:[15,27,30,31],sha256sum:18,sha:[8,18],shape:8,share:[4,5,8,12,20,22,23,26,28,30,33],shasum:18,she:30,shell:[12,14],shoot:26,shortcut:13,shorthand:32,should:[2,3,4,7,8,9,10,11,12,13,14,15,21,22,23,25,26,27,29,30,31,32,33],shoulder:2,shouldn:[15,22,30],show:[8,10,13,17,19,23,25],shown:[6,17,22,27],shut:28,shutdown:22,side:[1,8,9,17,20,22,25,26,27,28],sidebar:17,sig:[23,30],sign:[3,5,8,13,15,16,20,22,23,25,26,27,30,31,32],signatureexcept:22,signaturesfromsel:22,signedtransact:[3,22,27,29,30],signer:[15,20,30,31],signific:[8,23],significantli:[5,14,27,28],signoff:3,signwith:[22,27,28,30],signwithecdsa:22,signwithourkei:22,silver:2,similar:[2,8,22,23,30,31],similarli:21,simm:[],simmvaluationdemo:[12,25],simpl:[1,2,4,5,6,8,12,13,14,18,22,23,27,28,29,30,31],simplecash:32,simplecashdoesntcompil:32,simplecashfailswith:32,simplecashsuccess:32,simplecashtweaksuccess:32,simplecashtweaksuccesstopleveltransact:32,simplenotaryservic:3,simpler:[8,13],simplest:[8,22,30,33],simpli:[2,7,8,14,16,21,22,23,27,30,32],simplif:23,simplifi:[2,4,8,27,30,33],simul:[],simultan:[8,22,27,30],sinc:30,singl:[],singlemessagerecipi:16,singleton:[22,30,31],site:[2,23,24],situat:[2,8,15],size:[2,5,8,22,29,30,31],skeleton:22,skip:[22,27,30],sleep:[14,28,29],slf4j:22,slightli:30,slip:24,slot:23,slow:[2,8,14],slowest:8,small:[1,8,9,20,22,25,26,30],smaller:[23,31],smallest:27,smart:[],smooth:30,snake:32,snapshot:[8,23,24,29],snide:0,snippet:[3,22],socket:18,softwar:[8,22,24,26,33],sofu:23,sold:[22,27],solut:22,solv:[8,20,22],solvenc:20,some:[2,3,4,8,9,12,13,14,15,18,20,21,22,23,25,27,29,30,31,32,33],somed:30,somehow:14,someon:[3,8,30],someth:[1,2,5,8,10,22,23,25,30,31,33],sometim:[8,18,22,27],someusernam:14,somewhat:[1,8,14,22,23],somewher:30,soon:[23,30],sophist:8,sort:[20,22,23],sound:[2,22,30],sourc:[5,6,7,9,10,11,12,18,20,22,23,29,30],sourcejar:7,sparingli:2,speak:23,spec:23,special:[1,3,8,22,32],specif:[1,3,4,7,8,9,14,16,18,22,23,27,28,30,31],specifi:[0,1,2,3,4,6,7,8,13,14,15,21,22,23,27,30,31,32,33],speed:[8,22],spend:[8,13,22,26,30],spent:[8,30,32],sphinx:0,sphinx_rtd_them:0,spin:14,spirit:23,spline:27,split:[8,15,16,23,27,30,31],splittabl:30,splittablerandom:[14,29],spot:23,spread:[3,22],spreadsheet:20,sql:[13,21,23],src:[6,22,28,33],ssh:14,sshuser:14,ssl:23,sslconfig:29,sslkeystor:6,stabilis:24,stabl:24,stack:22,stage:[2,4,22,27,30,33],stai:[8,30],stake:8,standalon:[17,20,23],standard:[2,7,12,18,22,23,25,27,29,30,31],standardis:[8,27],start:[],startnod:29,startprotocol:[3,22,28,29],startprotocoldynam:29,startprotocolpermiss:29,startup:[18,23],startwith:29,state:[],stateandref:[3,22,27,29,30],statehistori:3,stateless:8,statemachineinfo:29,statemachinemanag:22,statemachinerecordedtransactionmap:29,statemachinesandupd:29,statemachinetransactionmap:29,statemachineupd:29,statement:[2,8,20,22,30],stateref:[3,8,9,15,21,27],statesoftyp:[22,30],statist:18,status:8,stem:30,step:[],still:[3,8,9,20,22,23,30,33],stock:[8,20],stone:14,stop:[2,22,28],stopnod:22,storag:[6,8,22,27,28],storageservic:28,store:[3,6,7,22,23,27,28,30],stori:[2,23],straightforward:[22,30],strain:14,straincpu:14,stream:[1,16,22,23,29],stress:[2,14],strictli:[5,8],string:[6,14,20,22,27,29,30],strip:30,strong:13,structur:[2,8,10,13,15,20,22,23,27,30],stub:[12,23],studi:30,stuff:2,stx1:22,stx2:22,stx:[22,27],sub:[1,2,22],subclass:[4,21,22,27,30],subclaus:31,subgroup:8,subject:[6,7,12],submiss:20,submit:[2,3,14,16,22,23,25],subproject:7,subprotocol:[],subscrib:[1,16,23,28,29],subsequ:[30,32],subset:[4,15],substitut:6,subsystem:16,subtask:22,subtl:[2,8],subtract:27,subvert:26,success:28,successfulli:29,successor:[3,9,13],succinct:2,sudo:0,suffer:[8,12],suffic:22,suffici:[8,20,24,27,29],suggest:[7,16,30],suggestinterestrateannouncementtimewindow:9,suit:[23,28],suitabl:[9,16,24],sukrit:23,sum:[12,14,29,30,32],sumcashbi:[22,30],summari:[],summaris:8,sun:2,superclass:[4,23,27],superior:2,supersed:8,supertyp:30,suppli:[4,14],support:[],supportedschema:21,suppos:[22,30],suppress:[2,23],suppresswarn:2,sure:[3,23,24,26,28,30,33],surfac:22,surround:2,surviv:22,suspend:[],swapping_signatures:22,swapsignatureswithsel:22,symbol:10,sync:30,synchronis:[2,3,8],syntax:[13,30],system:[1,3,6,7,8,11,13,14,15,18,19,21,22,23,28,30],systemd:14,tab:[2,7,10,25],tabl:[7,18,19,21,23],tackl:[23,31],tag:[1,2,24],take:[2,5,9,13,14,15,22,23,24,25,26,27,30,31,32],taken:30,talk:22,tamper:22,target:[0,2,6,8,12,13,17,18,22],task:[6,7,8,9,22],tcp:[7,18],team:10,tear:[],teardown:22,techniqu:[2,8,13,20],technolog:11,tediou:30,tell:[0,22,29],templat:[],temporari:7,temporarili:[22,24],tempt:[26,30],ten:30,tenor:[5,18,20,27],term:[4,6,8,9,12,16,27,31],termin:[5,7,18,22,25],terminolog:8,test:[],testnam:14,testnet:[7,23],testtimelock:30,text:[2,10,18,23,32],than:[1,2,3,7,8,16,18,22,23,27,30],thank:23,thedao:23,thei:[2,3,4,5,7,8,9,12,14,15,17,18,20,21,22,23,24,25,26,27,28,30,31],them:[1,2,3,5,8,9,10,13,14,15,16,18,21,22,23,24,25,27,28,29,30,31,32,33],theme:26,themselv:[1,14,16,17,20,22,25,26,27,29,30],theori:[],therefor:[1,7,8,10,12,13,22,24,26,30],thi:[0,1,2,3,4,5,6,7,8,9,10,11,12,14,15,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],thin:16,thing:[],think:[2,8,10,16,22,26,30],third:[8,12,15,23],thisstateref:9,thorough:22,those:[3,8,9,12,18,22,26,30],though:[15,18,22,30],thought:[8,13],thousand:32,threadsaf:2,three:[7,15,19,22,25,27,30],threshold:[23,27],through:[1,5,8,9,16,17,18,22,23,28,30,31,32,33],throughput:[3,8],throwifsignaturesaremiss:22,thrown:[1,22,26,30],thu:[2,3,6,8,9,18,20,23,27,30],ticket:22,tidi:22,tighten:30,tightli:22,time:[],timelin:30,timem:30,timeout:1,timestamp:[],titl:10,tls:[16,23],todo:[2,22,30],togeth:[4,8,15,23,25,30,31],token:[22,27,31],told:2,toledgertransact:27,toler:[3,9],too:[2,22,30],took:22,tool:[13,14,16,17,18,19,21,22,23,25],toolbar:10,top:[2,8,10,14,16,19,22,23,25,29,31],topic:[16,30,33],topicsess:[16,23],toplevel:32,topriv:22,torn:23,tosignedtransact:[3,22,27,28,30],tostr:[2,22,30],tostringsshort:22,total:[8,14,27],toward:[23,24],towiretransact:[15,27],trace:[22,31],track:[],tracker:22,trade:[],tradeoff:[],trader:[],traderdemo:33,traderequest:22,tradit:8,traffic:[6,8,17],transact:[],transactionbuild:[3,22,23,27,28,30],transactionforcontract:[30,31],transactionforverif:30,transactionst:[3,15,23,27],transactiontyp:[22,23,28],transactionverificationexcept:32,transfer:[26,30,32],transit:[26,27,30,33],transmit:[],transport:7,travel:30,treat:[7,26,30],tree:[],tri:[8,23,30],tricki:[8,22],trigger:[3,4,9,14,20,22,25,31],trim:31,trivial:[2,8,28],trust:[4,6,8,26],trustpass:[6,29],truststor:6,truststorepassword:[6,29],truth:22,tupl:2,ture:8,turn:[8,22,27,30,31,32,33],tutori:[],tweak:[14,23,32],twice:32,two:[],twopartydealprotocol:9,twopartytradeprotocol:22,txb:27,txbit:22,txhash:[8,22,29,30],txnid:29,txnnote:29,txt:18,type:[],typenam:22,typeonlycommanddata:30,typesaf:6,typetobui:22,typic:[8,9,16,18,21,22,26,27,28,30,33],ugli:22,ultimat:18,unaccept:22,unacceptablepriceexcept:22,unavoid:22,unconsum:21,under:[0,7,12,14,23,24,25,27,30,31,32,33],underli:[4,5,8,22,23,27],underscor:2,understand:[8,17,18,30,31,33],unencrypt:6,unexpect:[22,26],unfinish:22,unfortun:[22,26,30],unicredit:23,unifi:[23,33],uniform:9,unindex:10,uniqu:[3,8,20,22,23,27,28],uniqueidentifi:[],unit:[],univers:23,unix:[7,12,18,25],unknow:3,unknown:27,unless:[2,20,22,24,30,33],unlik:30,unlike:[4,10],unlock:6,unnatur:8,unpack:[7,30],unprocess:31,unqiu:9,unread:22,unrecognis:30,unrel:30,unschedul:9,unserialis:22,unset:5,unspent:8,unstarted:22,unsubscrib:1,unsubscript:1,unsupportedoperationexcept:[1,30],until:[1,3,5,8,9,22,23,24,32,33],untrust:22,untrustworthydata:[22,23,26],unverifiedtransact:32,unwrap:[22,23],upcom:[9,23],updat:[1,7,8,14,16,22,23,24,28,29,30],update:[10,29],upgrad:[10,21,22,23,30],upgrade:[10,23],uphold:30,upload:[],uploadrat:25,upon:[5,7,22,30],upward:24,urandom:14,url:[6,7,10,18,23],usabl:[23,24,30],usag:[],usage:29,usd:[14,19,29],use:[2,4,8],usehttps:6,useless:30,user1:[6,19],user:[0,1,2,6,7,8,10,11,13,14,19,20,22,23,25,29],usernam:[1,6,18,19],usr:0,usual:[2,8,30],usualli:24,utc:9,util:[3,7,23,27,29,30],utilis:29,uuid:[23,27],vagu:2,val:[2,3,9,14,15,20,22,27,28,29,30,31,32],valid:[],validatedtransact:[22,28],validatingnotaryservic:[3,29],validfrom:30,valu:[2,3,4,5,6,8,12,15,19,20,22,23,25,30,31,32],valuabl:20,valuat:[5,12,23,25],valueof:29,vanilla:[4,5],vararg:29,vari:[],variabl:[2,5,7,8,22,30],variant:30,variou:[2,8,12,18,22,26,30],vault:[14,19,21,23,29],vaultandupdat:29,vaultsselfissu:14,vcs:10,vega:23,vehicl:8,vendor:[13,18],verbos:30,veri:[2,4,8,12,13,20,22,26,30,32,33],verif:[],verifi:[],verifiedtransact:29,verifyclaus:31,verifypropos:23,verifysignatur:22,versa:[4,5,8,22,27],versu:22,vertic:2,vet:26,via:[0,2,5,8,9,12,16,17,18,20,21,22,23,25,26,28,33],vice:[4,5,8,22,27],view:[],virtual:[8,26],visibl:[3,8,15,19,29],vision:11,visual:23,visualis:[16,17,29],vital:22,wai:[1,2,3,7,8,9,12,14,15,16,18,20,21,22,23,25,30,32,33],wait:[9,10,14,22,23,25],waitforallnodestofinish:29,wake:23,wallet:[8,9,22,23,30],walletservic:22,want:[1,2,8,10,14,15,18,20,22,23,25,26,27,30,32,33],warn:[],watch:26,weak:[20,27],wear:24,web:[6,7,12,13,18,20,23,25],webaddress:6,webapp:23,webport:7,websocket:22,weekend:5,weight:27,well:[0,2,3,5,8,9,13,15,18,22,23,28,29,30,31],went:2,were:[2,8,12,20,22,30],what:[],whatev:[2,17,22,27],when:[1,2,3,4,5,6,7,8,9,12,14,16,17,18,19,20,21,22,23,25,26,27,28,29,30,32],whenev:2,where:[],wherea:5,wherev:18,whether:[1,3,4,14,20,22,27,31],which:[0,1,2,3,4,5,6,7,8,9,12,13,14,15,16,17,18,20,21,22,23,24,25,27,28,29,30,31,32,33],whilst:[8,20,22,23,26,30],white:[11,23],whitelist:[4,7,9,22],who:[2,6,8,12,13,22,23,27,30],whole:[3,15,32],whom:[4,8],whose:[4,18,27],why:[2,8,11,13],wide:[2,15],widescreen:2,widespread:2,widget:19,width:[2,27],wiki:[8,30,31],wikipedia:[30,31],window:[3,7,8,10,12,17,18,19,22,25],wiretransact:[3,15,20,22,27],wish:[7,8,11,12,20,21,22,23,27,30,33],within:[0,2,3,6,8,18,21,25,28,30,32],withitem:[27,30],withkei:22,withnewown:[22,30],without:[],withoutissu:[22,30],withoutown:[30,31],withowner:30,won:[16,19,20,22,23,29,30,32],word:[2,3,6],work:[1,2,3,5,6,7,8,9,10,13,14,18,20,22,23,25,27,28,29,30],worker:2,workspac:[6,7],world:[6,8,12,17,20,22,30,32],worn:30,worri:[2,13,22,30],worst:8,worth:[2,26,30],worthless:20,would:[1,2,3,4,5,7,8,12,13,18,20,22,26,27,28,30,31,33],wouldn:20,wrap:[2,16,18,22,23,26,27,30,31,33],wrapper:[2,3,22,29],write:[],written:[0,1,5,8,13,23,30],wrong:[1,2,22,32],wrote:8,wtx:[3,15,20,22],www:[0,10],xterm:7,year:[5,22],yet:[2,3,5,8,13,22,23,27],yield:8,york:7,you:[0,1,2,3,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,25,26,27,30,31,32,33],your:[],your_usernam:10,yourself:[8,9,26,27],zero:[8,30],zip:[8,18,28],zone:9,zoneddatetim:9},titles:["Building the documentation","Client RPC","Code style guide","Consensus model","Contract catalogue","Interest Rate Swaps","The Corda Configuration File","Creating a Cordapp","Data model","Event scheduling","Getting set up","Welcome to the Corda!","Initial Margin Agreements","What’s included?","Load testing","Transaction Tear-offs","Networking and messaging","Network Simulator","Node administration","Node Explorer","Writing oracle services","Persistence","Protocol state machines","Release notes","Release process","Running the demos","Secure coding guidelines","Data types","Using attachments","Client RPC API Tutorial","Writing a contract","Writing a contract using clauses","Writing a contract test","Where to start"],titleterms:{"class":[30,31],"function":[22,30],about:10,access:18,adding:30,administr:18,adopt:8,against:7,agreement:12,amount:27,api:[29,30],app:[7,12],approach:20,assert:20,assertion:2,asset:30,attach:[18,28],attachment:[25,28],basic:20,bitcoin:8,build:[0,7],buyer:22,cash:[4,27],catalogu:4,chain:32,chang:3,check:30,claus:[30,31],client:[1,29],cluster:14,code:[2,26,30],command:30,comment:2,commerci:[4,30,31],commod:4,comparison:8,compil:2,complain:10,con:8,configur:[6,14],consensu:3,construct:30,continu:20,contract:[4,26,30,31,32],corda:[6,7,11,15],cordapp:7,cordform:7,creat:[5,7],cryptographi:27,cut:24,data:[8,15,20,27],databas:18,date:27,debug:[7,31],demo:[19,25,28,33],detail:5,document:0,download:18,encumbranc:30,error:[1,2],ethereum:8,event:9,exampl:[6,9,15],explorer:19,featur:22,field:6,file:6,fix:18,format:6,fungibleasset:27,futur:22,gener:[2,30],get:10,gradl:7,group:[30,31],guid:2,guidelin:26,handl:1,happen:30,hide:15,how:[9,14,30],implement:[9,22],includ:13,individu:14,initial:12,install:7,instanc:5,intellij:10,interest:[4,5,18],interfac:[17,19],introduct:[9,12,20,22],irs:25,kei:27,kotlin:13,lack:10,length:2,lifecycl:[5,27],line:2,load:14,locat:6,machin:22,make:30,map:[16,21],margin:12,math:27,merkl:15,messag:16,mileston:23,model:[3,8],monitor:18,multi:[27,30],multipl:3,name:2,namedbyhash:27,network:[16,17],node:[7,18,19],non:30,notari:3,note:23,object:21,obligat:4,observabl:1,obtain:3,off:15,oracl:20,orient:30,overview:8,pai:20,paper:[4,30,31],parti:[22,27,30],particular:30,per:20,persist:[7,21],plai:20,plugin:7,portfolio:25,pro:8,process:[12,24],progress:22,properti:2,protocol:[1,22,26],publickei:27,put:30,rate:[4,5,18],rational:8,relat:21,releas:[23,24],requir:[0,30],rpc:[1,29],run:[3,12,14,19,25],safeti:1,schedul:9,schema:21,sdk:10,secur:[1,26],seller:22,servic:[3,7,16,20],set:10,signatur:[3,27],simm:[12,25],simul:17,singl:32,smart:30,space:2,start:[7,22,30,33],state:[7,22,27,30],step:[12,24],style:[2,8],subprotocol:22,summari:31,support:27,suspend:22,swap:[4,5],tear:15,technic:5,templat:7,test:[14,22,30,32],theori:22,thing:30,thread:[1,2],time:30,timestamp:3,track:22,trade:22,tradeoff:8,trader:[25,33],transact:[15,27,30,32],transmit:30,tree:[15,27],tutori:29,two:[20,22],type:[16,27],uniqueidentifi:27,unit:22,upload:18,usag:15,using:[7,28,30],utxo:8,valid:3,vari:20,verif:27,verifi:30,version:[1,22],view:7,warn:2,welcom:11,what:13,where:[30,33],wire:1,without:10,write:[14,20,30,31,32],your:[7,18,22,30]}}) \ No newline at end of file diff --git a/docs/build/html/secure-coding-guidelines.html b/docs/build/html/secure-coding-guidelines.html index 90eb007232..bf33ece3fd 100644 --- a/docs/build/html/secure-coding-guidelines.html +++ b/docs/build/html/secure-coding-guidelines.html @@ -32,7 +32,7 @@ - + @@ -100,7 +100,6 @@
    • Running the demos
    • Node administration
    • The Corda Configuration File
    • -
    • RPC Users File

    Tutorials

    Appendix

  • diff --git a/docs/build/html/transaction-data-types.html b/docs/build/html/transaction-data-types.html index be0f377740..a149c8f108 100644 --- a/docs/build/html/transaction-data-types.html +++ b/docs/build/html/transaction-data-types.html @@ -115,7 +115,6 @@
  • Running the demos
  • Node administration
  • The Corda Configuration File
  • -
  • RPC Users File
  • Tutorials

    Appendix

    Tutorials

      @@ -108,7 +107,7 @@
    • Writing a contract
    • Writing a contract using clauses
    • Writing a contract test
    • -
    • Client RPC API
    • +
    • Client RPC API Tutorial
    • Protocol state machines
    • Writing oracle services
    • Using attachments
        @@ -129,6 +128,7 @@

      Appendix

      Tutorials

      Appendix

        +
      • Load testing
      • Secure coding guidelines
      • Release process
      • Steps to cut a release
      • @@ -164,7 +164,7 @@
        • Docs »
        • -
        • Client RPC API
        • +
        • Client RPC API Tutorial
        • @@ -178,46 +178,189 @@
          -
          -

          Client RPC API

          -

          In this tutorial we will build a simple command line utility that connects to a node and dumps the transaction graph to -the standard output. We will then put some simple visualisation on top. For an explanation on how the RPC works see -Client RPC.

          -

          We start off by connecting to the node itself. For the purposes of the tutorial we will run the Trader demo on some -local port and connect to the Buyer side. We will pass in the address as a command line argument. To connect to the node -we also need to access the certificates of the node, we will access the node’s certificates directory directly.

          -

          Now we can connect to the node itself using a valid RPC login. By default the user user1 is available with password test.

          -

          proxy now exposes the full RPC interface of the node:

          +
          +

          Client RPC API Tutorial

          +

          In this tutorial we will build a simple command line utility that +connects to a node, creates some Cash transactions and meanwhile dumps +the transaction graph to the standard output. We will then put some +simple visualisation on top. For an explanation on how the RPC works +see Client RPC.

          +

          We start off by connecting to the node itself. For the purposes of the tutorial we will use the Driver to start up a notary and a node that issues/exits and moves Cash around for herself. To authenticate we will use the certificates of the nodes directly.

          +

          Note how we configure the node to create a user that has permission to start the CashProtocol.

          +
          enum class PrintOrVisualise {
          +    Print,
          +    Visualise
          +}
          +
          +fun main(args: Array<String>) {
          +    if (args.size < 1) {
          +        throw IllegalArgumentException("Usage: <binary> [Print|Visualise]")
          +    }
          +    val printOrVisualise = PrintOrVisualise.valueOf(args[0])
          +
          +    val baseDirectory = Paths.get("build/rpc-api-tutorial")
          +    val user = User("user", "password", permissions = setOf(startProtocolPermission<CashProtocol>()))
          +
          +    driver(driverDirectory = baseDirectory) {
          +        startNode("Notary", advertisedServices = setOf(ServiceInfo(ValidatingNotaryService.type)))
          +        val node = startNode("Alice", rpcUsers = listOf(user)).get()
          +        val sslConfig = object : NodeSSLConfiguration {
          +            override val certificatesPath = baseDirectory / "Alice" / "certificates"
          +            override val keyStorePassword = "cordacadevpass"
          +            override val trustStorePassword = "trustpass"
          +        }
          +
          +
          +

          Now we can connect to the node itself using a valid RPC login. We login using the configured user.

          +
                  val client = CordaRPCClient(FullNodeConfiguration(node.config).artemisAddress, sslConfig)
          +        client.start("user", "password")
          +        val proxy = client.proxy()
          +
          +        thread {
          +            generateTransactions(proxy)
          +        }
          +
          +
          +

          We start generating transactions in a different thread (generateTransactions to be defined later) using proxy, which exposes the full RPC interface of the node:

          +
              /**
          +     * Returns a pair of currently in-progress state machine infos and an observable of future state machine adds/removes.
          +     */
          +    @RPCReturnsObservables
          +    fun stateMachinesAndUpdates(): Pair<List<StateMachineInfo>, Observable<StateMachineUpdate>>
          +
          +    /**
          +     * Returns a pair of head states in the vault and an observable of future updates to the vault.
          +     */
          +    @RPCReturnsObservables
          +    fun vaultAndUpdates(): Pair<List<StateAndRef<ContractState>>, Observable<Vault.Update>>
          +
          +    /**
          +     * Returns a pair of all recorded transactions and an observable of future recorded ones.
          +     */
          +    @RPCReturnsObservables
          +    fun verifiedTransactions(): Pair<List<SignedTransaction>, Observable<SignedTransaction>>
          +
          +    /**
          +     * Returns a snapshot list of existing state machine id - recorded transaction hash mappings, and a stream of future
          +     * such mappings as well.
          +     */
          +    @RPCReturnsObservables
          +    fun stateMachineRecordedTransactionMapping(): Pair<List<StateMachineTransactionMapping>, Observable<StateMachineTransactionMapping>>
          +
          +    /**
          +     * Returns all parties currently visible on the network with their advertised services and an observable of future updates to the network.
          +     */
          +    @RPCReturnsObservables
          +    fun networkMapUpdates(): Pair<List<NodeInfo>, Observable<NetworkMapCache.MapChange>>
          +
          +    /**
          +     * Start the given protocol with the given arguments, returning an [Observable] with a single observation of the
          +     * result of running the protocol.
          +     */
          +    @RPCReturnsObservables
          +    fun <T: Any> startProtocolDynamic(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): ProtocolHandle<T>
          +
          +    /**
          +     * Returns Node's identity, assuming this will not change while the node is running.
          +     */
          +    fun nodeIdentity(): NodeInfo
          +
          +    /*
          +     * Add note(s) to an existing Vault transaction
          +     */
          +    fun addVaultTransactionNote(txnId: SecureHash, txnNote: String)
          +
          +    /*
          +     * Retrieve existing note(s) for a given Vault transaction
          +     */
          +    fun getVaultTransactionNotes(txnId: SecureHash): Iterable<String>
          +
          +

          The one we need in order to dump the transaction graph is verifiedTransactions. The type signature tells us that the RPC will return a list of transactions and an Observable stream. This is a general pattern, we query some data and the node will return the current snapshot and future updates done to it.

          +
                  val (transactions: List<SignedTransaction>, futureTransactions: Observable<SignedTransaction>) = proxy.verifiedTransactions()
          +
          +

          The graph will be defined by nodes and edges between them. Each node represents a transaction and edges represent output-input relations. For now let’s just print NODE <txhash> for the former and EDGE <txhash> <txhash> for the latter.

          -

          Now we can start the trader demo as per described in Running the demos:

          -
          # Build the demo
          -./gradlew installDist
          -# Start the buyer
          -./build/install/r3prototyping/bin/trader-demo --role=BUYER
          +
                  when (printOrVisualise) {
          +            PrintOrVisualise.Print -> {
          +                futureTransactions.startWith(transactions).subscribe { transaction ->
          +                    println("NODE ${transaction.id}")
          +                    transaction.tx.inputs.forEach { input ->
          +                        println("EDGE ${input.txhash} ${transaction.id}")
          +                    }
          +                }
          +            }
           
          -

          In another terminal we can connect to it with our client:

          -
          # Connect to localhost:31337
          -./docs/source/example-code/build/install/docs/source/example-code/bin/client-rpc-tutorial localhost:31337 Print
          +

          Now we just need to create the transactions themselves!

          +
          fun generateTransactions(proxy: CordaRPCOps) {
          +    var ownedQuantity = proxy.vaultAndUpdates().first.fold(0L) { sum, state ->
          +        sum + (state.state.data as Cash.State).amount.quantity
          +    }
          +    val issueRef = OpaqueBytes.of(0)
          +    val notary = proxy.networkMapUpdates().first.first { it.advertisedServices.any { it.info.type.isNotary() } }.notaryIdentity
          +    val me = proxy.nodeIdentity().legalIdentity
          +    val meAndRef = PartyAndReference(me, issueRef)
          +    while (true) {
          +        Thread.sleep(1000)
          +        val random = SplittableRandom()
          +        val n = random.nextDouble()
          +        if (ownedQuantity > 10000 && n > 0.8) {
          +            val quantity = Math.abs(random.nextLong()) % 2000
          +            proxy.startProtocol(::CashProtocol, CashCommand.ExitCash(Amount(quantity, USD), issueRef))
          +            ownedQuantity -= quantity
          +        } else if (ownedQuantity > 1000 && n < 0.7) {
          +            val quantity = Math.abs(random.nextLong() % Math.min(ownedQuantity, 2000))
          +            proxy.startProtocol(::CashProtocol, CashCommand.PayCash(Amount(quantity, Issued(meAndRef, USD)), me))
          +        } else {
          +            val quantity = Math.abs(random.nextLong() % 1000)
          +            proxy.startProtocol(::CashProtocol, CashCommand.IssueCash(Amount(quantity, USD), issueRef, me, notary))
          +            ownedQuantity += quantity
          +        }
          +    }
          +}
           
          -

          We should see some NODE-s printed. This is because the buyer self-issues some cash for the demo. -Unless we ran the seller before we shouldn’t see any EDGE-s because the cash hasn’t been spent yet.

          -

          In another terminal we can now start the seller:

          -
          # Start sellers in a loop
          -for i in {0..9} ; do ./build/install/r3prototyping/bin/trader-demo --role=SELLER ; done
          -
          -
          -

          We should start seeing new NODE-s and EDGE-s appearing.

          +

          We utilise several RPC functions here to query things like the notaries in the node cluster or our own vault.

          +

          Then in a loop we generate randomly either an Issue, a Pay or an Exit transaction.

          +

          The RPC we need to initiate a Cash transaction is startProtocolDynamic which may start an arbitrary protocol, given sufficient permissions to do so. We won’t use this function directly, but rather a type-safe wrapper around it startProtocol that type-checks the arguments for us.

          +

          Finally we have everything in place: we start a couple of nodes, connect to them, and start creating transactions while listening on successfully created ones, which are dumped to the console. We just need to run it!:

          +
          +
          # Build the example +./gradlew docs/source/example-code:installDist +# Start it +./docs/source/example-code/build/install/docs/source/example-code/bin/client-rpc-tutorial Print

          Now let’s try to visualise the transaction graph. We will use a graph drawing library called graphstream

          -

          If we run the client with Visualise we should see a simple graph being drawn as new transactions are being created -by the seller runs.

          -

          That’s it! We saw how to connect to the node and stream data from it.

          +
                      PrintOrVisualise.Visualise -> {
          +                val graph = MultiGraph("transactions")
          +                transactions.forEach { transaction ->
          +                    graph.addNode<Node>("${transaction.id}")
          +                }
          +                transactions.forEach { transaction ->
          +                    transaction.tx.inputs.forEach { ref ->
          +                        graph.addEdge<Edge>("$ref", "${ref.txhash}", "${transaction.id}")
          +                    }
          +                }
          +                futureTransactions.subscribe { transaction ->
          +                    graph.addNode<Node>("${transaction.id}")
          +                    transaction.tx.inputs.forEach { ref ->
          +                        graph.addEdge<Edge>("$ref", "${ref.txhash}", "${transaction.id}")
          +                    }
          +                }
          +                graph.display()
          +            }
          +        }
          +        waitForAllNodesToFinish()
          +    }
          +
          +}
          +
          +
          +

          If we run the client with Visualise we should see a simple random graph being drawn as new transactions are being created.

          diff --git a/docs/build/html/tutorial-contract-clauses.html b/docs/build/html/tutorial-contract-clauses.html index 6b8aafd4e6..654dd0f272 100644 --- a/docs/build/html/tutorial-contract-clauses.html +++ b/docs/build/html/tutorial-contract-clauses.html @@ -100,7 +100,6 @@
        • Running the demos
        • Node administration
        • The Corda Configuration File
        • -
        • RPC Users File

        Tutorials

          @@ -115,7 +114,7 @@
      • Writing a contract test
      • -
      • Client RPC API
      • +
      • Client RPC API Tutorial
      • Protocol state machines
      • Writing oracle services
      • Using attachments
      • @@ -133,6 +132,7 @@

      Appendix

      Tutorials

      Appendix

      Tutorials

    • -
    • Client RPC API
    • +
    • Client RPC API Tutorial
    • Protocol state machines
    • Writing oracle services
    • Using attachments
    • @@ -130,6 +129,7 @@

    Appendix

    Tutorials

    Appendix