Regen docsite

This commit is contained in:
Mike Hearn 2016-08-09 12:21:07 +02:00
parent e18a80beb2
commit 4e0468333d
438 changed files with 7190 additions and 1204 deletions

View File

@ -23,8 +23,8 @@ States contain arbitrary data, but they always contain at minimum a hash of the
Contract code (or just "contracts" in the rest of this document) are globally shared pieces of business logic.
Contracts define a **verify function**, which is a pure function given the entire transaction as input. To be considered
valid, the transaction must be **accepted** by the verify function of every contract pointed to by the
input and output states.
valid, the transaction must be **accepted** by the verify function of every contract pointed to by the input and output
states.
Beyond inputs and outputs, transactions may also contain **commands**, small data packets that
the platform does not interpret itself, but which can parameterise execution of the contracts. They can be thought of as

View File

@ -8,6 +8,7 @@ so far. We have:
how this works in :doc:`protocol-state-machines`.
2. The IRS demo, which shows two nodes establishing an interest rate swap between them and performing fixings with a
rates oracle, all driven via the HTTP API.
3. The IRS demo web interface - a web interface to the IRS demo.
The demos create node data directories in the root of the project. If something goes wrong with them, blow away the
directories and try again.
@ -29,7 +30,7 @@ Open two terminals, and in the first run:
**Other**::
Other: ./gradlew installDist && ./build/install/r3prototyping/bin/trader-demo --role=BUYER
./gradlew installDist && ./build/install/r3prototyping/bin/trader-demo --role=BUYER
It will compile things, if necessary, then create a directory named trader-demo/buyer with a bunch of files inside and
start the node. You should see it waiting for a trade to begin.
@ -96,3 +97,53 @@ can see the other terminals whilst you run this command!:
**Other**::
./build/install/r3prototyping/bin/irsdemo --role=Date 2017-01-30
IRS web demo
------------
To install the web demo please follow these steps;
1. Install Node: https://nodejs.org/en/download/ and ensure the npm executable is on your classpath
2. Open a terminal
3. Run `npm install -g bower` or `sudo npm install -g bower` if on a *nix system.
4. In the terminal navigate to `<corda>/src/main/resources/com/r3corda/demos/irswebdemo`
5. Run `bower install`
To run the web demo, run the first two steps from the IRS Demo:
Open two terminals and in the first:
**Windows**::
gradlew.bat installDist & .\build\install\r3prototyping\bin\irsdemo.bat --role=NodeA
**Other**::
./gradlew installDist && ./build/install/r3prototyping/bin/irsdemo --role=NodeA
And in the second run:
**Windows**::
.\build\install\r3prototyping\bin\irsdemo.bat --role=NodeB
**Other**::
./build/install/r3prototyping/bin/irsdemo --role=NodeB
Now open your web browser to this URL:
.. note:: If using a custom node port address or port those must be used instead.
**Node A**:
http://localhost:31338/web/irsdemo
**Node B**:
http://localhost:31340/web/irsdemo
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.

View File

@ -77,6 +77,31 @@ in place of the attachments themselves (see also :doc:`data-model`). Once signed
resolving the attachment references to the attachments. Commands with valid signatures are encapsulated in the
``AuthenticatedObject`` type.
When constructing a new transaction from scratch, you use ``TransactionBuilder``, which is a mutable transaction that
can be signed once modification of the internals is complete. It is typical for contract classes to expose helper
methods that can contribute to a ``TransactionBuilder``.
Here's an example of building a transaction that creates an issuance of bananas (note that bananas are not a real
contract type in the library):
.. container:: codeset
.. sourcecode:: kotlin
val notaryToUse: Party = ...
val txb = TransactionBuilder(notary = notaryToUse).withItems(BananaState(Amount(20, Bananas), fromCountry = "Elbonia"))
txb.signWith(myKey)
txb.setTime(Instant.now(), notaryToUse, 30.seconds)
// We must disable the check for sufficient signatures, because this transaction is not yet notarised.
val stx = txb.toSignedTransaction(checkSufficientSignatures = false)
// Alternatively, let's just check it verifies pretending it was fully signed. To do this, we get
// a WireTransaction, which is what the SignedTransaction wraps. Thus by verifying that directly we
// skip signature checking.
txb.toWireTransaction().toLedgerTransaction(services).verify()
In a unit test, you would typically use a freshly created ``MockServices`` object, or more realistically, you would
write your tests using the :doc:`domain specific language for writing tests <tutorial-test-dsl>`.
Party and PublicKey
-------------------

View File

@ -43,7 +43,7 @@ We start with the empty ledger:
}
The DSL keyword ``ledger`` takes a closure that can build up several transactions and may verify their overall
correctness.
correctness. A ledger is effectively a fresh world with no pre-existing transactions or services within it.
Let's add a Cash transaction:
@ -54,7 +54,7 @@ Let's add a Cash transaction:
@Test
fun simpleCashDoesntCompile() {
val inState = Cash.State(
amount = 1000.DOLLARS `issued by` MEGA_CORP.ref(1, 1),
amount = 1000.DOLLARS `issued by` DUMMY_CASH_ISSUER,
owner = DUMMY_PUBKEY_1
)
ledger {
@ -69,7 +69,7 @@ Let's add a Cash transaction:
@Test
public void simpleCashDoesntCompile() {
Cash.State inState = new Cash.State(
issuedBy(DOLLARS(1000), getMEGA_CORP().ref((byte)1, (byte)1)),
issuedBy(DOLLARS(1000), getDUMMY_CASH_ISSUER()),
getDUMMY_PUBKEY_1()
);
ledger(l -> {
@ -139,7 +139,10 @@ last line of ``transaction``:
The code finally compiles. When run, it produces the following error::
com.r3corda.core.contracts.TransactionVerificationException$ContractRejection: java.lang.IllegalArgumentException: Failed requirement: for deposit [0101] at issuer MegaCorp the amounts balance
com.r3corda.core.contracts.TransactionVerificationException$ContractRejection: java.lang.IllegalArgumentException: Failed requirement: for deposit [01] at issuer Snake Oil Issuer the amounts balance
.. note:: The reference here to the 'Snake Oil Issuer' is because we are using the pre-canned ``DUMMY_CASH_ISSUER``
identity as the issuer of our cash.
The transaction verification failed, because the sum of inputs does not equal the sum of outputs. We can specify that
this is intended behaviour by changing ``this.verifies()`` to ``this `fails with` "the amounts balance"``:

View File

@ -147,12 +147,24 @@ properties loaded from the attachments. And perhaps the authenticated user for
</tr>
<tr>
<td>
<a href="../com.r3corda.node.services.messaging/-artemis-messaging-service/index.html">com.r3corda.node.services.messaging.ArtemisMessagingService</a></td>
<a href="../com.r3corda.node.services.messaging/-artemis-messaging-client/index.html">com.r3corda.node.services.messaging.ArtemisMessagingClient</a></td>
<td>
<p>This class implements the <a href="../com.r3corda.core.messaging/-messaging-service/index.html">MessagingService</a> API using Apache Artemis, the successor to their ActiveMQ product.
Artemis is a message queue broker and here, we embed the entire server inside our own process. Nodes communicate
with each other using an Artemis specific protocol, but it supports other protocols like AMQP/1.0
as well for interop.</p>
Artemis is a message queue broker and here we run a client connecting to the specified broker instance <a href="../com.r3corda.node.services.messaging/-artemis-messaging-server/index.html">ArtemisMessagingServer</a></p>
</td>
</tr>
<tr>
<td>
<a href="../com.r3corda.node.services.messaging/-artemis-messaging-component/index.html">com.r3corda.node.services.messaging.ArtemisMessagingComponent</a></td>
<td>
<p>The base class for Artemis services that defines shared data structures and transport configuration</p>
</td>
</tr>
<tr>
<td>
<a href="../com.r3corda.node.services.messaging/-artemis-messaging-server/index.html">com.r3corda.node.services.messaging.ArtemisMessagingServer</a></td>
<td>
<p>This class configures and manages an Apache Artemis message queue broker.</p>
</td>
</tr>
<tr>
@ -357,6 +369,23 @@ that delegates to the supplied list of clauses.</p>
</tr>
<tr>
<td>
<a href="../com.r3corda.core.contracts/-commodity/index.html">com.r3corda.core.contracts.Commodity</a></td>
<td>
</td>
</tr>
<tr>
<td>
<a href="../com.r3corda.contracts.asset/-commodity-contract/index.html">com.r3corda.contracts.asset.CommodityContract</a></td>
<td>
<p>A commodity contract represents an amount of some commodity, tracked on a distributed ledger. The design of this
contract is intentionally similar to the <a href="../com.r3corda.contracts.asset/-cash/index.html">Cash</a> contract, and the same commands (issue, move, exit) apply, the
differences are in representation of the underlying commodity. Issuer in this context means the party who has the
commodity, or is otherwise responsible for delivering the commodity on demand, and the deposit reference is use for
internal accounting by the issuer (it might be, for example, a warehouse and/or location within a warehouse).</p>
</td>
</tr>
<tr>
<td>
<a href="../com.r3corda.node.servlets/-config/index.html">com.r3corda.node.servlets.Config</a></td>
<td>
<p>Primary purpose is to install Kotlin extensions for Jackson ObjectMapper so data classes work
@ -509,6 +538,16 @@ building partially signed transactions.</p>
</tr>
<tr>
<td>
<a href="../com.r3corda.protocols/-direct-request-message/index.html">com.r3corda.protocols.DirectRequestMessage</a></td>
<td>
<p>A message which specifies reply destination as a specific endpoint such as a monitoring client. This is of particular
use where we want to address a specific endpoint, not necessarily a specific user (for example if the same user logs
in on two machines, we want to consistently deliver messages as part of a session, to the same machine the session
started on).</p>
</td>
</tr>
<tr>
<td>
<a href="../com.r3corda.core.contracts/kotlin.-double/index.html">kotlin.Double</a> (extensions in package com.r3corda.core.contracts)</td>
<td>
</td>
@ -724,6 +763,12 @@ that would divide into (eg annually = 1, semiannual = 2, monthly = 12 etc).</p>
</tr>
<tr>
<td>
<a href="../com.r3corda.node.services.config/-full-node-configuration/index.html">com.r3corda.node.services.config.FullNodeConfiguration</a></td>
<td>
</td>
</tr>
<tr>
<td>
<a href="../com.r3corda.contracts.asset/-fungible-asset/index.html">com.r3corda.contracts.asset.FungibleAsset</a></td>
<td>
<p>Interface for contract states representing assets which are fungible, countable and issued by a
@ -941,6 +986,12 @@ quantifiable with integer quantities.</p>
</tr>
<tr>
<td>
<a href="../com.r3corda.core.crypto/kotlin.collections.-iterable/index.html">kotlin.collections.Iterable</a> (extensions in package com.r3corda.core.crypto)</td>
<td>
</td>
</tr>
<tr>
<td>
<a href="../com.r3corda.core/kotlin.collections.-iterable/index.html">kotlin.collections.Iterable</a> (extensions in package com.r3corda.core)</td>
<td>
</td>
@ -1150,6 +1201,14 @@ Components that do IO are either swapped out for mocks, or pointed to a <a href=
</tr>
<tr>
<td>
<a href="../com.r3corda.core.node.services.testing/-mock-services/index.html">com.r3corda.core.node.services.testing.MockServices</a></td>
<td>
<p>A singleton utility that only provides a mock identity, key and storage service. However, this is sufficient for
building chains of transactions and verifying them. It isnt sufficient for testing protocols however.</p>
</td>
</tr>
<tr>
<td>
<a href="../com.r3corda.core.node.services.testing/-mock-storage-service/index.html">com.r3corda.core.node.services.testing.MockStorageService</a></td>
<td>
</td>
@ -1204,6 +1263,12 @@ adjusted externally.</p>
</tr>
<tr>
<td>
<a href="../com.r3corda.node.services.config/-name-service-config/index.html">com.r3corda.node.services.config.NameServiceConfig</a></td>
<td>
</td>
</tr>
<tr>
<td>
<a href="../com.r3corda.core.contracts/-named-by-hash/index.html">com.r3corda.core.contracts.NamedByHash</a></td>
<td>
<p>Implemented by anything that can be named by a secure hash value (e.g. transactions, attachments).</p>
@ -1420,6 +1485,13 @@ must point to the same notary.</p>
</tr>
<tr>
<td>
<a href="../com.r3corda.core.crypto/-null-signature.html">com.r3corda.core.crypto.NullSignature</a></td>
<td>
<p>A signature with a key and value of zero. Useful when you want a signature object that you know wont ever be used.</p>
</td>
</tr>
<tr>
<td>
<a href="../com.r3corda.contracts.asset/-obligation/index.html">com.r3corda.contracts.asset.Obligation</a></td>
<td>
<p>An obligation contract commits the obligor to delivering a specified amount of a fungible asset (for example the
@ -1430,6 +1502,16 @@ to be netted/merged, with settlement only for any remainder amount.</p>
</tr>
<tr>
<td>
<a href="../com.r3corda.contracts.asset/-on-ledger-asset/index.html">com.r3corda.contracts.asset.OnLedgerAsset</a></td>
<td>
<p>An asset transaction may split and merge assets represented by a set of (issuer, depositRef) pairs, across multiple
input and output states. Imagine a Bitcoin transaction but in which all UTXOs had a colour (a blend of
issuer+depositRef) and you couldnt merge outputs of two colours together, but you COULD put them in the same
transaction.</p>
</td>
</tr>
<tr>
<td>
<a href="../com.r3corda.core.serialization/-opaque-bytes/index.html">com.r3corda.core.serialization.OpaqueBytes</a></td>
<td>
<p>A simple class that wraps a byte array and makes the equals/hashCode/toString methods work as you actually expect.
@ -1454,6 +1536,12 @@ be looked up both in ledger{..} and transaction{..} blocks.</p>
</tr>
<tr>
<td>
<a href="../com.r3corda.node/-params-spec/index.html">com.r3corda.node.ParamsSpec</a></td>
<td>
</td>
</tr>
<tr>
<td>
<a href="../com.r3corda.core.crypto/-party/index.html">com.r3corda.core.crypto.Party</a></td>
<td>
<p>A <a href="../com.r3corda.core.crypto/-party/index.html">Party</a> is well known (name, pubkey) pair. In a real system this would probably be an X.509 certificate.</p>
@ -1658,14 +1746,6 @@ for each step.</p>
</tr>
<tr>
<td>
<a href="../com.r3corda.core.utilities/-recording-map/index.html">com.r3corda.core.utilities.RecordingMap</a></td>
<td>
<p>A RecordingMap wraps a regular Map&lt;K, V&gt; and records the sequence of gets and puts to it. This is useful in
white box unit tests to ensure that code is accessing a data store as much as you expect.</p>
</td>
</tr>
<tr>
<td>
<a href="../com.r3corda.contracts/-reference-rate/index.html">com.r3corda.contracts.ReferenceRate</a></td>
<td>
<p>So a reference rate is a rate that takes its value from a source at a given date
@ -1696,9 +1776,9 @@ e.g. LIBOR 6M as of 17 March 2016. Hence it requires a source (name) and a value
<td>
<a href="../com.r3corda.protocols/-resolve-transactions-protocol/index.html">com.r3corda.protocols.ResolveTransactionsProtocol</a></td>
<td>
<p>This protocol fetches each transaction identified by the given hashes from either disk or network, along with all
their dependencies, and verifies them together using a single <a href="../com.r3corda.core.contracts/-transaction-group/index.html">TransactionGroup</a>. If no exception is thrown, then
all the transactions have been successfully verified and inserted into the local database.</p>
<p>This protocol is used to verify the validity of a transaction by recursively checking the validity of all the
dependencies. Once a transaction is checked its inserted into local storage so it can be relayed and wont be
checked again.</p>
</td>
</tr>
<tr>
@ -1961,7 +2041,7 @@ transaction defined the state and where in that transaction it was.</p>
<td>
<a href="../com.r3corda.protocols/-state-replacement-refused/index.html">com.r3corda.protocols.StateReplacementRefused</a></td>
<td>
<p>Thrown when a participant refuses proposed the state replacement</p>
<p>Thrown when a participant refuses the proposed state replacement</p>
</td>
</tr>
<tr>
@ -2131,13 +2211,6 @@ simplify verification logic in contracts.</p>
</tr>
<tr>
<td>
<a href="../com.r3corda.core.contracts/-transaction-for-verification/index.html">com.r3corda.core.contracts.TransactionForVerification</a></td>
<td>
<p>A transaction in fully resolved and sig-checked form, ready for passing as input to a verification function.</p>
</td>
</tr>
<tr>
<td>
<a href="../com.r3corda.core.contracts/-transaction-graph-search/index.html">com.r3corda.core.contracts.TransactionGraphSearch</a></td>
<td>
<p>Given a map of transaction id to <a href="../com.r3corda.core.contracts/-signed-transaction/index.html">SignedTransaction</a>, performs a breadth first search of the dependency graph from
@ -2146,15 +2219,6 @@ the starting point down in order to find transactions that match the given query
</tr>
<tr>
<td>
<a href="../com.r3corda.core.contracts/-transaction-group/index.html">com.r3corda.core.contracts.TransactionGroup</a></td>
<td>
<p>A TransactionGroup defines a directed acyclic graph of transactions that can be resolved with each other and then
verified. Successful verification does not imply the non-existence of other conflicting transactions: simply that
this subgraph does not contain conflicts and is accepted by the involved contracts.</p>
</td>
</tr>
<tr>
<td>
<a href="../com.r3corda.core.contracts/-transaction-resolution-exception/index.html">com.r3corda.core.contracts.TransactionResolutionException</a></td>
<td>
</td>

View File

@ -0,0 +1,15 @@
<HTML>
<HEAD>
<title>COMMODITY_PROGRAM_ID - </title>
<link rel="stylesheet" href="../style.css">
</HEAD>
<BODY>
<a href="index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href=".">COMMODITY_PROGRAM_ID</a><br/>
<br/>
<h1>COMMODITY_PROGRAM_ID</h1>
<a name="com.r3corda.contracts.asset$COMMODITY_PROGRAM_ID"></a>
<code><span class="keyword">val </span><span class="identifier">COMMODITY_PROGRAM_ID</span><span class="symbol">: </span><a href="-commodity-contract/index.html"><span class="identifier">CommodityContract</span></a></code><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -8,7 +8,7 @@
<br/>
<h1>clauses</h1>
<a name="com.r3corda.contracts.asset.Cash.Clauses.Group$clauses"></a>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts.clauses/-group-clause.html"><span class="identifier">GroupClause</span></a><span class="symbol">&lt;</span><a href="../../-state/index.html"><span class="identifier">State</span></a><span class="symbol">,</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Currency.html"><span class="identifier">Currency</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-group-clause-verifier/clauses.html">GroupClauseVerifier.clauses</a><br/>
<br/>
<br/>

View File

@ -11,9 +11,6 @@
<code><span class="keyword">val </span><span class="identifier">ifMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/if-matched.html">Clause.ifMatched</a><br/>
<p>Behaviour if this clause is not matches</p>
<p><strong>Getter</strong><br/>
<p>Behaviour if this clause is not matches</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -11,9 +11,6 @@
<code><span class="keyword">val </span><span class="identifier">ifNotMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/if-not-matched.html">Clause.ifNotMatched</a><br/>
<p>Behaviour if this clause is matched</p>
<p><strong>Getter</strong><br/>
<p>Behaviour if this clause is matched</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -28,7 +28,7 @@
<td>
<a href="clauses.html">clauses</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts.clauses/-group-clause.html"><span class="identifier">GroupClause</span></a><span class="symbol">&lt;</span><a href="../../-state/index.html"><span class="identifier">State</span></a><span class="symbol">,</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Currency.html"><span class="identifier">Currency</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
</tr>
<tr>
<td>

View File

@ -28,7 +28,7 @@
<td>
<a href="required-commands.html">requiredCommands</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">Set</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="keyword">out</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-command-data.html"><span class="identifier">CommandData</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
</td>
</tr>
</tbody>

View File

@ -8,12 +8,9 @@
<br/>
<h1>requiredCommands</h1>
<a name="com.r3corda.contracts.asset.Cash.Clauses.Issue$requiredCommands"></a>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">Set</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="keyword">out</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-command-data.html"><span class="identifier">CommandData</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/required-commands.html">Clause.requiredCommands</a><br/>
<p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
<p><strong>Getter</strong><br/>
<p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -12,10 +12,6 @@
Overrides <a href="../../-fungible-asset/deposit.html">FungibleAsset.deposit</a><br/>
<p>Where the underlying asset backing this ledger entry can be found. The reference
is only intended for use by the issuer, and is not intended to be meaningful to others.</p>
<p><strong>Getter</strong><br/>
<p>Where the underlying asset backing this ledger entry can be found. The reference
is only intended for use by the issuer, and is not intended to be meaningful to others.</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -8,12 +8,9 @@
<br/>
<h1>exitKeys</h1>
<a name="com.r3corda.contracts.asset.Cash.State$exitKeys"></a>
<code><span class="keyword">val </span><span class="identifier">exitKeys</span><span class="symbol">: </span><span class="identifier">Collection</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">val </span><span class="identifier">exitKeys</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><br/>
Overrides <a href="../../-fungible-asset/exit-keys.html">FungibleAsset.exitKeys</a><br/>
<p>There must be an ExitCommand signed by these keys to destroy the amount</p>
<p><strong>Getter</strong><br/>
<p>There must be an ExitCommand signed by these keys to destroy the amount</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -51,7 +51,7 @@ is only intended for use by the issuer, and is not intended to be meaningful to
<td>
<a href="exit-keys.html">exitKeys</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">exitKeys</span><span class="symbol">: </span><span class="identifier">Collection</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">&gt;</span></code><p>There must be an ExitCommand signed by these keys to destroy the amount</p>
<code><span class="keyword">val </span><span class="identifier">exitKeys</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><p>There must be an ExitCommand signed by these keys to destroy the amount</p>
</td>
</tr>
<tr>
@ -71,7 +71,7 @@ is only intended for use by the issuer, and is not intended to be meaningful to
<td>
<a href="participants.html">participants</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">participants</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">&gt;</span></code><p>A <emph>participant</emph> is any party that is able to consume this state in a valid transaction.</p>
<code><span class="keyword">val </span><span class="identifier">participants</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><p>A <emph>participant</emph> is any party that is able to consume this state in a valid transaction.</p>
</td>
</tr>
</tbody>

View File

@ -8,7 +8,7 @@
<br/>
<h1>participants</h1>
<a name="com.r3corda.contracts.asset.Cash.State$participants"></a>
<code><span class="keyword">val </span><span class="identifier">participants</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">val </span><span class="identifier">participants</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><br/>
Overrides <a href="../../../com.r3corda.core.contracts/-contract-state/participants.html">ContractState.participants</a><br/>
<p>A <emph>participant</emph> is any party that is able to consume this state in a valid transaction.</p>
<p>The list of participants is required for certain types of transactions. For example, when changing the notary
@ -19,15 +19,6 @@ they possess, since someone consumed that state during the notary change process
list should just contain the owner.</p>
<br/>
<br/>
<p><strong>Getter</strong><br/>
<p>A <emph>participant</emph> is any party that is able to consume this state in a valid transaction.</p>
<p>The list of participants is required for certain types of transactions. For example, when changing the notary
for this state (<a href="../../../com.r3corda.core.contracts/-transaction-type/-notary-change/index.html">TransactionType.NotaryChange</a>), every participants 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.</p>
<p>The participants list should normally be derived from the contents of the state. E.g. for <a href="../index.html">Cash</a> the participants
list should just contain the owner.</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -8,7 +8,7 @@
<br/>
<h1>clauses</h1>
<a name="com.r3corda.contracts.asset.Cash$clauses"></a>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts.clauses/-single-clause.html"><span class="identifier">SingleClause</span></a><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><br/>
Overrides <a href="../../com.r3corda.core.contracts.clauses/-clause-verifier/clauses.html">ClauseVerifier.clauses</a><br/>
<br/>
<br/>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>Cash.conserveClause - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">Cash</a>&nbsp;/&nbsp;<a href=".">conserveClause</a><br/>
<br/>
<h1>conserveClause</h1>
<a name="com.r3corda.contracts.asset.Cash$conserveClause"></a>
<code><span class="keyword">val </span><span class="identifier">conserveClause</span><span class="symbol">: </span><a href="../../com.r3corda.contracts.clause/-abstract-conserve-amount/index.html"><span class="identifier">AbstractConserveAmount</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">,</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Currency.html"><span class="identifier">Currency</span></a><span class="symbol">&gt;</span></code><br/>
Overrides <a href="../-on-ledger-asset/conserve-clause.html">OnLedgerAsset.conserveClause</a><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,18 @@
<HTML>
<HEAD>
<title>Cash.deriveState - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">Cash</a>&nbsp;/&nbsp;<a href=".">deriveState</a><br/>
<br/>
<h1>deriveState</h1>
<a name="com.r3corda.contracts.asset.Cash$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.Cash.State)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))), java.security.PublicKey)"></a>
<code><span class="keyword">fun </span><span class="identifier">deriveState</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.Cash$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.Cash.State)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))), java.security.PublicKey)/txState">txState</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-state/index.html"><span class="identifier">TransactionState</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Cash$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.Cash.State)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))), java.security.PublicKey)/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Currency.html"><span class="identifier">Currency</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Cash$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.Cash.State)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))), java.security.PublicKey)/owner">owner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../com.r3corda.core.contracts/-transaction-state/index.html"><span class="identifier">TransactionState</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">&gt;</span></code><br/>
<p>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.</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,15 @@
<HTML>
<HEAD>
<title>Cash.generateExitCommand - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">Cash</a>&nbsp;/&nbsp;<a href=".">generateExitCommand</a><br/>
<br/>
<h1>generateExitCommand</h1>
<a name="com.r3corda.contracts.asset.Cash$generateExitCommand(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))))"></a>
<code><span class="keyword">fun </span><span class="identifier">generateExitCommand</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.Cash$generateExitCommand(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))))/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Currency.html"><span class="identifier">Currency</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="-commands/-exit/index.html"><span class="identifier">Exit</span></a></code><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>Cash.generateIssueCommand - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">Cash</a>&nbsp;/&nbsp;<a href=".">generateIssueCommand</a><br/>
<br/>
<h1>generateIssueCommand</h1>
<a name="com.r3corda.contracts.asset.Cash$generateIssueCommand()"></a>
<code><span class="keyword">fun </span><span class="identifier">generateIssueCommand</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="-commands/-issue/index.html"><span class="identifier">Issue</span></a></code><br/>
Overrides <a href="../-on-ledger-asset/generate-issue-command.html">OnLedgerAsset.generateIssueCommand</a><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>Cash.generateMoveCommand - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">Cash</a>&nbsp;/&nbsp;<a href=".">generateMoveCommand</a><br/>
<br/>
<h1>generateMoveCommand</h1>
<a name="com.r3corda.contracts.asset.Cash$generateMoveCommand()"></a>
<code><span class="keyword">fun </span><span class="identifier">generateMoveCommand</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="-commands/-move/index.html"><span class="identifier">Move</span></a></code><br/>
Overrides <a href="../-on-ledger-asset/generate-move-command.html">OnLedgerAsset.generateMoveCommand</a><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -7,7 +7,7 @@
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href=".">Cash</a><br/>
<br/>
<h1>Cash</h1>
<code><span class="keyword">class </span><span class="identifier">Cash</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts.clauses/-clause-verifier/index.html"><span class="identifier">ClauseVerifier</span></a></code><br/>
<code><span class="keyword">class </span><span class="identifier">Cash</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-on-ledger-asset/index.html"><span class="identifier">OnLedgerAsset</span></a><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Currency.html"><span class="identifier">Currency</span></a><span class="symbol">,</span>&nbsp;<a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">&gt;</span></code><br/>
<p>A cash transaction may split and merge money represented by a set of (issuer, depositRef) pairs, across multiple
input and output states. Imagine a Bitcoin transaction but in which all UTXOs had a colour
(a blend of issuer+depositRef) and you couldnt merge outputs of two colours together, but you COULD put them in
@ -67,7 +67,13 @@ the same transaction.</p>
<td>
<a href="clauses.html">clauses</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts.clauses/-single-clause.html"><span class="identifier">SingleClause</span></a><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
</tr>
<tr>
<td>
<a href="conserve-clause.html">conserveClause</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">conserveClause</span><span class="symbol">: </span><a href="../../com.r3corda.contracts.clause/-abstract-conserve-amount/index.html"><span class="identifier">AbstractConserveAmount</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">,</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Currency.html"><span class="identifier">Currency</span></a><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
@ -83,16 +89,24 @@ the same transaction.</p>
<tbody>
<tr>
<td>
<a href="derive-state.html">deriveState</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">deriveState</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.Cash$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.Cash.State)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))), java.security.PublicKey)/txState">txState</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-state/index.html"><span class="identifier">TransactionState</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Cash$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.Cash.State)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))), java.security.PublicKey)/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Currency.html"><span class="identifier">Currency</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Cash$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.Cash.State)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))), java.security.PublicKey)/owner">owner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../com.r3corda.core.contracts/-transaction-state/index.html"><span class="identifier">TransactionState</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">&gt;</span></code><p>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.</p>
</td>
</tr>
<tr>
<td>
<a href="extract-commands.html">extractCommands</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">extractCommands</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.Cash$extractCommands(com.r3corda.core.contracts.TransactionForContract)/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-for-contract/index.html"><span class="identifier">TransactionForContract</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-authenticated-object/index.html"><span class="identifier">AuthenticatedObject</span></a><span class="symbol">&lt;</span><a href="../-fungible-asset/-commands/index.html"><span class="identifier">Commands</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
<a href="generate-exit.html">generateExit</a></td>
<a href="generate-exit-command.html">generateExitCommand</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">generateExit</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.Cash$generateExit(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Cash.State)))))/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-builder/index.html"><span class="identifier">TransactionBuilder</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Cash$generateExit(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Cash.State)))))/amountIssued">amountIssued</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Currency.html"><span class="identifier">Currency</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Cash$generateExit(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Cash.State)))))/changeKey">changeKey</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Cash$generateExit(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Cash.State)))))/cashStates">cashStates</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-state-and-ref/index.html"><span class="identifier">StateAndRef</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a></code><p>Generate an transaction exiting cash from the ledger.</p>
</td>
<code><span class="keyword">fun </span><span class="identifier">generateExitCommand</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.Cash$generateExitCommand(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))))/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Currency.html"><span class="identifier">Currency</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="-commands/-exit/index.html"><span class="identifier">Exit</span></a></code></td>
</tr>
<tr>
<td>
@ -104,27 +118,15 @@ the same transaction.</p>
</tr>
<tr>
<td>
<a href="generate-spend.html">generateSpend</a></td>
<a href="generate-issue-command.html">generateIssueCommand</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">generateSpend</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.Cash$generateSpend(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Cash.State)))))/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-builder/index.html"><span class="identifier">TransactionBuilder</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Cash$generateSpend(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Cash.State)))))/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Currency.html"><span class="identifier">Currency</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Cash$generateSpend(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Cash.State)))))/to">to</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Cash$generateSpend(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((java.util.Currency)))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Cash.State)))))/cashStates">cashStates</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-state-and-ref/index.html"><span class="identifier">StateAndRef</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="identifier">generateSpend</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.Cash$generateSpend(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((java.util.Currency)), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Cash.State)))), kotlin.collections.Set((com.r3corda.core.crypto.Party)))/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-builder/index.html"><span class="identifier">TransactionBuilder</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Cash$generateSpend(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((java.util.Currency)), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Cash.State)))), kotlin.collections.Set((com.r3corda.core.crypto.Party)))/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Currency.html"><span class="identifier">Currency</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Cash$generateSpend(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((java.util.Currency)), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Cash.State)))), kotlin.collections.Set((com.r3corda.core.crypto.Party)))/to">to</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Cash$generateSpend(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((java.util.Currency)), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Cash.State)))), kotlin.collections.Set((com.r3corda.core.crypto.Party)))/cashStates">cashStates</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-state-and-ref/index.html"><span class="identifier">StateAndRef</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Cash$generateSpend(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((java.util.Currency)), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Cash.State)))), kotlin.collections.Set((com.r3corda.core.crypto.Party)))/onlyFromParties">onlyFromParties</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="../../com.r3corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">&gt;</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">&gt;</span></code><p>Generate a transaction that consumes one or more of the given input states to move money to the given pubkey.
Note that the wallet list is not updated: its up to you to do that.</p>
</td>
<code><span class="keyword">fun </span><span class="identifier">generateIssueCommand</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="-commands/-issue/index.html"><span class="identifier">Issue</span></a></code></td>
</tr>
</tbody>
</table>
<h3>Inherited Functions</h3>
<table>
<tbody>
<tr>
<td>
<a href="../../com.r3corda.core.contracts.clauses/-clause-verifier/verify.html">verify</a></td>
<a href="generate-move-command.html">generateMoveCommand</a></td>
<td>
<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">verify</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.core.contracts.clauses.ClauseVerifier$verify(com.r3corda.core.contracts.TransactionForContract)/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-for-contract/index.html"><span class="identifier">TransactionForContract</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><p>Takes an object that represents a state transition, and ensures the inputs/outputs/commands make sense.
Must throw an exception if theres a problem that should prevent state transition. Takes a single object
rather than an argument so that additional data can be added without breaking binary compatibility with
existing contract code.</p>
</td>
<code><span class="keyword">fun </span><span class="identifier">generateMoveCommand</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="-commands/-move/index.html"><span class="identifier">Move</span></a></code></td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,15 @@
<HTML>
<HEAD>
<title>CommodityContract.Clauses.ConserveAmount.<init> - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Clauses</a>&nbsp;/&nbsp;<a href="index.html">ConserveAmount</a>&nbsp;/&nbsp;<a href=".">&lt;init&gt;</a><br/>
<br/>
<h1>&lt;init&gt;</h1>
<code><span class="identifier">ConserveAmount</span><span class="symbol">(</span><span class="symbol">)</span></code><br/>
<p>Standard clause for conserving the amount from input to output.</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,53 @@
<HTML>
<HEAD>
<title>CommodityContract.Clauses.ConserveAmount - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Clauses</a>&nbsp;/&nbsp;<a href=".">ConserveAmount</a><br/>
<br/>
<h1>ConserveAmount</h1>
<code><span class="keyword">class </span><span class="identifier">ConserveAmount</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../../../com.r3corda.contracts.clause/-abstract-conserve-amount/index.html"><span class="identifier">AbstractConserveAmount</span></a><span class="symbol">&lt;</span><a href="../../-state/index.html"><span class="identifier">State</span></a><span class="symbol">,</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code><br/>
<p>Standard clause for conserving the amount from input to output.</p>
<br/>
<br/>
<h3>Constructors</h3>
<table>
<tbody>
<tr>
<td>
<a href="-init-.html">&lt;init&gt;</a></td>
<td>
<code><span class="identifier">ConserveAmount</span><span class="symbol">(</span><span class="symbol">)</span></code><p>Standard clause for conserving the amount from input to output.</p>
</td>
</tr>
</tbody>
</table>
<h3>Inherited Properties</h3>
<table>
<tbody>
<tr>
<td>
<a href="../../../../com.r3corda.contracts.clause/-abstract-conserve-amount/if-matched.html">ifMatched</a></td>
<td>
<code><span class="keyword">open</span> <span class="keyword">val </span><span class="identifier">ifMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><p>Behaviour if this clause is not matches</p>
</td>
</tr>
<tr>
<td>
<a href="../../../../com.r3corda.contracts.clause/-abstract-conserve-amount/if-not-matched.html">ifNotMatched</a></td>
<td>
<code><span class="keyword">open</span> <span class="keyword">val </span><span class="identifier">ifNotMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><p>Behaviour if this clause is matched</p>
</td>
</tr>
<tr>
<td>
<a href="../../../../com.r3corda.contracts.clause/-abstract-conserve-amount/required-commands.html">requiredCommands</a></td>
<td>
<code><span class="keyword">open</span> <span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">Set</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="keyword">out</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-command-data.html"><span class="identifier">CommandData</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
</td>
</tr>
</tbody>
</table>
</BODY>
</HTML>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>CommodityContract.Clauses.Group.<init> - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Clauses</a>&nbsp;/&nbsp;<a href="index.html">Group</a>&nbsp;/&nbsp;<a href=".">&lt;init&gt;</a><br/>
<br/>
<h1>&lt;init&gt;</h1>
<code><span class="identifier">Group</span><span class="symbol">(</span><span class="symbol">)</span></code><br/>
<p>Grouping clause to extract input and output states into matched groups and then run a set of clauses over
each group.</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>CommodityContract.Clauses.Group.clauses - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Clauses</a>&nbsp;/&nbsp;<a href="index.html">Group</a>&nbsp;/&nbsp;<a href=".">clauses</a><br/>
<br/>
<h1>clauses</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.Clauses.Group$clauses"></a>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-group-clause-verifier/clauses.html">GroupClauseVerifier.clauses</a><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,17 @@
<HTML>
<HEAD>
<title>CommodityContract.Clauses.Group.extractGroups - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Clauses</a>&nbsp;/&nbsp;<a href="index.html">Group</a>&nbsp;/&nbsp;<a href=".">extractGroups</a><br/>
<br/>
<h1>extractGroups</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.Clauses.Group$extractGroups(com.r3corda.core.contracts.TransactionForContract)"></a>
<code><span class="keyword">fun </span><span class="identifier">extractGroups</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.Clauses.Group$extractGroups(com.r3corda.core.contracts.TransactionForContract)/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-transaction-for-contract/index.html"><span class="identifier">TransactionForContract</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-transaction-for-contract/-in-out-group/index.html"><span class="identifier">InOutGroup</span></a><span class="symbol">&lt;</span><a href="../../-state/index.html"><span class="identifier">State</span></a><span class="symbol">,</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-group-clause-verifier/extract-groups.html">GroupClauseVerifier.extractGroups</a><br/>
<p>Group commodity states by issuance definition (issuer and underlying commodity).</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,18 @@
<HTML>
<HEAD>
<title>CommodityContract.Clauses.Group.ifMatched - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Clauses</a>&nbsp;/&nbsp;<a href="index.html">Group</a>&nbsp;/&nbsp;<a href=".">ifMatched</a><br/>
<br/>
<h1>ifMatched</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.Clauses.Group$ifMatched"></a>
<code><span class="keyword">val </span><span class="identifier">ifMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/if-matched.html">Clause.ifMatched</a><br/>
<p>The group clause is the only top level clause, so end after processing it. If there are any commands left
after this clause has run, the clause verifier will trigger an error.</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,18 @@
<HTML>
<HEAD>
<title>CommodityContract.Clauses.Group.ifNotMatched - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Clauses</a>&nbsp;/&nbsp;<a href="index.html">Group</a>&nbsp;/&nbsp;<a href=".">ifNotMatched</a><br/>
<br/>
<h1>ifNotMatched</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.Clauses.Group$ifNotMatched"></a>
<code><span class="keyword">val </span><span class="identifier">ifNotMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/if-not-matched.html">Clause.ifNotMatched</a><br/>
<p>The group clause does not depend on any commands being present, so something has gone terribly wrong if
it doesnt match.</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,94 @@
<HTML>
<HEAD>
<title>CommodityContract.Clauses.Group - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Clauses</a>&nbsp;/&nbsp;<a href=".">Group</a><br/>
<br/>
<h1>Group</h1>
<code><span class="keyword">class </span><span class="identifier">Group</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../../../com.r3corda.core.contracts.clauses/-group-clause-verifier/index.html"><span class="identifier">GroupClauseVerifier</span></a><span class="symbol">&lt;</span><a href="../../-state/index.html"><span class="identifier">State</span></a><span class="symbol">,</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><br/>
<p>Grouping clause to extract input and output states into matched groups and then run a set of clauses over
each group.</p>
<br/>
<br/>
<h3>Constructors</h3>
<table>
<tbody>
<tr>
<td>
<a href="-init-.html">&lt;init&gt;</a></td>
<td>
<code><span class="identifier">Group</span><span class="symbol">(</span><span class="symbol">)</span></code><p>Grouping clause to extract input and output states into matched groups and then run a set of clauses over
each group.</p>
</td>
</tr>
</tbody>
</table>
<h3>Properties</h3>
<table>
<tbody>
<tr>
<td>
<a href="clauses.html">clauses</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
</tr>
<tr>
<td>
<a href="if-matched.html">ifMatched</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">ifMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><p>The group clause is the only top level clause, so end after processing it. If there are any commands left
after this clause has run, the clause verifier will trigger an error.</p>
</td>
</tr>
<tr>
<td>
<a href="if-not-matched.html">ifNotMatched</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">ifNotMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><p>The group clause does not depend on any commands being present, so something has gone terribly wrong if
it doesnt match.</p>
</td>
</tr>
</tbody>
</table>
<h3>Inherited Properties</h3>
<table>
<tbody>
<tr>
<td>
<a href="../../../../com.r3corda.core.contracts.clauses/-group-clause-verifier/required-commands.html">requiredCommands</a></td>
<td>
<code><span class="keyword">open</span> <span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">Set</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="keyword">out</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-command-data.html"><span class="identifier">CommandData</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
</td>
</tr>
</tbody>
</table>
<h3>Functions</h3>
<table>
<tbody>
<tr>
<td>
<a href="extract-groups.html">extractGroups</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">extractGroups</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.Clauses.Group$extractGroups(com.r3corda.core.contracts.TransactionForContract)/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-transaction-for-contract/index.html"><span class="identifier">TransactionForContract</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-transaction-for-contract/-in-out-group/index.html"><span class="identifier">InOutGroup</span></a><span class="symbol">&lt;</span><a href="../../-state/index.html"><span class="identifier">State</span></a><span class="symbol">,</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><p>Group commodity states by issuance definition (issuer and underlying commodity).</p>
</td>
</tr>
</tbody>
</table>
<h3>Inherited Functions</h3>
<table>
<tbody>
<tr>
<td>
<a href="../../../../com.r3corda.core.contracts.clauses/-group-clause-verifier/verify.html">verify</a></td>
<td>
<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">verify</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.core.contracts.clauses.GroupClauseVerifier$verify(com.r3corda.core.contracts.TransactionForContract, kotlin.collections.Collection((com.r3corda.core.contracts.AuthenticatedObject((com.r3corda.core.contracts.CommandData)))))/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-transaction-for-contract/index.html"><span class="identifier">TransactionForContract</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.core.contracts.clauses.GroupClauseVerifier$verify(com.r3corda.core.contracts.TransactionForContract, kotlin.collections.Collection((com.r3corda.core.contracts.AuthenticatedObject((com.r3corda.core.contracts.CommandData)))))/commands">commands</span><span class="symbol">:</span>&nbsp;<span class="identifier">Collection</span><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-authenticated-object/index.html"><span class="identifier">AuthenticatedObject</span></a><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-command-data.html"><span class="identifier">CommandData</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Set</span><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-command-data.html"><span class="identifier">CommandData</span></a><span class="symbol">&gt;</span></code><p>Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
if any matched.</p>
</td>
</tr>
</tbody>
</table>
</BODY>
</HTML>

View File

@ -0,0 +1,15 @@
<HTML>
<HEAD>
<title>CommodityContract.Clauses.Issue.<init> - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Clauses</a>&nbsp;/&nbsp;<a href="index.html">Issue</a>&nbsp;/&nbsp;<a href=".">&lt;init&gt;</a><br/>
<br/>
<h1>&lt;init&gt;</h1>
<code><span class="identifier">Issue</span><span class="symbol">(</span><span class="symbol">)</span></code><br/>
<p>Standard issue clause, specialised to match the commodity issue command.</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,70 @@
<HTML>
<HEAD>
<title>CommodityContract.Clauses.Issue - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Clauses</a>&nbsp;/&nbsp;<a href=".">Issue</a><br/>
<br/>
<h1>Issue</h1>
<code><span class="keyword">class </span><span class="identifier">Issue</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../../../com.r3corda.contracts.clause/-abstract-issue/index.html"><span class="identifier">AbstractIssue</span></a><span class="symbol">&lt;</span><a href="../../-state/index.html"><span class="identifier">State</span></a><span class="symbol">,</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code><br/>
<p>Standard issue clause, specialised to match the commodity issue command.</p>
<br/>
<br/>
<h3>Constructors</h3>
<table>
<tbody>
<tr>
<td>
<a href="-init-.html">&lt;init&gt;</a></td>
<td>
<code><span class="identifier">Issue</span><span class="symbol">(</span><span class="symbol">)</span></code><p>Standard issue clause, specialised to match the commodity issue command.</p>
</td>
</tr>
</tbody>
</table>
<h3>Properties</h3>
<table>
<tbody>
<tr>
<td>
<a href="required-commands.html">requiredCommands</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
</td>
</tr>
</tbody>
</table>
<h3>Inherited Properties</h3>
<table>
<tbody>
<tr>
<td>
<a href="../../../../com.r3corda.contracts.clause/-abstract-issue/if-matched.html">ifMatched</a></td>
<td>
<code><span class="keyword">open</span> <span class="keyword">val </span><span class="identifier">ifMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><p>Behaviour if this clause is not matches</p>
</td>
</tr>
<tr>
<td>
<a href="../../../../com.r3corda.contracts.clause/-abstract-issue/if-not-matched.html">ifNotMatched</a></td>
<td>
<code><span class="keyword">open</span> <span class="keyword">val </span><span class="identifier">ifNotMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><p>Behaviour if this clause is matched</p>
</td>
</tr>
<tr>
<td>
<a href="../../../../com.r3corda.contracts.clause/-abstract-issue/sum.html">sum</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">sum</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><span class="identifier">S</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
<a href="../../../../com.r3corda.contracts.clause/-abstract-issue/sum-or-zero.html">sumOrZero</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">sumOrZero</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><span class="identifier">S</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><a href="../../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code></td>
</tr>
</tbody>
</table>
</BODY>
</HTML>

View File

@ -0,0 +1,17 @@
<HTML>
<HEAD>
<title>CommodityContract.Clauses.Issue.requiredCommands - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Clauses</a>&nbsp;/&nbsp;<a href="index.html">Issue</a>&nbsp;/&nbsp;<a href=".">requiredCommands</a><br/>
<br/>
<h1>requiredCommands</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.Clauses.Issue$requiredCommands"></a>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/required-commands.html">Clause.requiredCommands</a><br/>
<p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,49 @@
<HTML>
<HEAD>
<title>CommodityContract.Clauses - </title>
<link rel="stylesheet" href="../../../style.css">
</HEAD>
<BODY>
<a href="../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href=".">Clauses</a><br/>
<br/>
<h1>Clauses</h1>
<code><span class="keyword">interface </span><span class="identifier">Clauses</span></code><br/>
<p>The clauses for this contract are essentially:</p>
<ol><li><p>Group all commodity input and output states in a transaction by issued commodity, and then for each group:
a. Check there are no zero sized output states in the group, and throw an error if so.
b. Check for an issuance command, and do standard issuance checks if so, THEN STOP. Otherwise:
c. Check for a move command (required) and an optional exit command, and that input and output totals are correctly
conserved (output = input - exit)</p>
</li></ol><br/>
<br/>
<br/>
<br/>
<h3>Types</h3>
<table>
<tbody>
<tr>
<td>
<a href="-conserve-amount/index.html">ConserveAmount</a></td>
<td>
<code><span class="keyword">class </span><span class="identifier">ConserveAmount</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../../com.r3corda.contracts.clause/-abstract-conserve-amount/index.html"><span class="identifier">AbstractConserveAmount</span></a><span class="symbol">&lt;</span><a href="../-state/index.html"><span class="identifier">State</span></a><span class="symbol">,</span>&nbsp;<a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code><p>Standard clause for conserving the amount from input to output.</p>
</td>
</tr>
<tr>
<td>
<a href="-group/index.html">Group</a></td>
<td>
<code><span class="keyword">class </span><span class="identifier">Group</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../../com.r3corda.core.contracts.clauses/-group-clause-verifier/index.html"><span class="identifier">GroupClauseVerifier</span></a><span class="symbol">&lt;</span><a href="../-state/index.html"><span class="identifier">State</span></a><span class="symbol">,</span>&nbsp;<a href="../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><p>Grouping clause to extract input and output states into matched groups and then run a set of clauses over
each group.</p>
</td>
</tr>
<tr>
<td>
<a href="-issue/index.html">Issue</a></td>
<td>
<code><span class="keyword">class </span><span class="identifier">Issue</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../../com.r3corda.contracts.clause/-abstract-issue/index.html"><span class="identifier">AbstractIssue</span></a><span class="symbol">&lt;</span><a href="../-state/index.html"><span class="identifier">State</span></a><span class="symbol">,</span>&nbsp;<a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code><p>Standard issue clause, specialised to match the commodity issue command.</p>
</td>
</tr>
</tbody>
</table>
</BODY>
</HTML>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>CommodityContract.Commands.Exit.<init> - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Commands</a>&nbsp;/&nbsp;<a href="index.html">Exit</a>&nbsp;/&nbsp;<a href=".">&lt;init&gt;</a><br/>
<br/>
<h1>&lt;init&gt;</h1>
<code><span class="identifier">Exit</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.Commands.Exit$<init>(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))))/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span></code><br/>
<p>A command stating that money has been withdrawn from the shared ledger and is now accounted for
in some other way.</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>CommodityContract.Commands.Exit.amount - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Commands</a>&nbsp;/&nbsp;<a href="index.html">Exit</a>&nbsp;/&nbsp;<a href=".">amount</a><br/>
<br/>
<h1>amount</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.Commands.Exit$amount"></a>
<code><span class="keyword">val </span><span class="identifier">amount</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><br/>
Overrides <a href="../../../-fungible-asset/-commands/-exit/amount.html">Exit.amount</a><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,40 @@
<HTML>
<HEAD>
<title>CommodityContract.Commands.Exit - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Commands</a>&nbsp;/&nbsp;<a href=".">Exit</a><br/>
<br/>
<h1>Exit</h1>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Exit</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../index.html"><span class="identifier">Commands</span></a><span class="symbol">, </span><a href="../../../-fungible-asset/-commands/-exit/index.html"><span class="identifier">Exit</span></a><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code><br/>
<p>A command stating that money has been withdrawn from the shared ledger and is now accounted for
in some other way.</p>
<br/>
<br/>
<h3>Constructors</h3>
<table>
<tbody>
<tr>
<td>
<a href="-init-.html">&lt;init&gt;</a></td>
<td>
<code><span class="identifier">Exit</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.Commands.Exit$<init>(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))))/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span></code><p>A command stating that money has been withdrawn from the shared ledger and is now accounted for
in some other way.</p>
</td>
</tr>
</tbody>
</table>
<h3>Properties</h3>
<table>
<tbody>
<tr>
<td>
<a href="amount.html">amount</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">amount</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code></td>
</tr>
</tbody>
</table>
</BODY>
</HTML>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>CommodityContract.Commands.Issue.<init> - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Commands</a>&nbsp;/&nbsp;<a href="index.html">Issue</a>&nbsp;/&nbsp;<a href=".">&lt;init&gt;</a><br/>
<br/>
<h1>&lt;init&gt;</h1>
<code><span class="identifier">Issue</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.Commands.Issue$<init>(kotlin.Long)/nonce">nonce</span><span class="symbol">:</span>&nbsp;<span class="identifier">Long</span>&nbsp;<span class="symbol">=</span>&nbsp;newSecureRandom().nextLong()<span class="symbol">)</span></code><br/>
<p>Allows new commodity states to be issued into existence: the nonce ("number used once") ensures the transaction
has a unique ID even when there are no inputs.</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,40 @@
<HTML>
<HEAD>
<title>CommodityContract.Commands.Issue - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Commands</a>&nbsp;/&nbsp;<a href=".">Issue</a><br/>
<br/>
<h1>Issue</h1>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Issue</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../../-fungible-asset/-commands/-issue.html"><span class="identifier">Issue</span></a><span class="symbol">, </span><a href="../index.html"><span class="identifier">Commands</span></a></code><br/>
<p>Allows new commodity states to be issued into existence: the nonce ("number used once") ensures the transaction
has a unique ID even when there are no inputs.</p>
<br/>
<br/>
<h3>Constructors</h3>
<table>
<tbody>
<tr>
<td>
<a href="-init-.html">&lt;init&gt;</a></td>
<td>
<code><span class="identifier">Issue</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.Commands.Issue$<init>(kotlin.Long)/nonce">nonce</span><span class="symbol">:</span>&nbsp;<span class="identifier">Long</span>&nbsp;<span class="symbol">=</span>&nbsp;newSecureRandom().nextLong()<span class="symbol">)</span></code><p>Allows new commodity states to be issued into existence: the nonce ("number used once") ensures the transaction
has a unique ID even when there are no inputs.</p>
</td>
</tr>
</tbody>
</table>
<h3>Properties</h3>
<table>
<tbody>
<tr>
<td>
<a href="nonce.html">nonce</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">nonce</span><span class="symbol">: </span><span class="identifier">Long</span></code></td>
</tr>
</tbody>
</table>
</BODY>
</HTML>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>CommodityContract.Commands.Issue.nonce - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Commands</a>&nbsp;/&nbsp;<a href="index.html">Issue</a>&nbsp;/&nbsp;<a href=".">nonce</a><br/>
<br/>
<h1>nonce</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.Commands.Issue$nonce"></a>
<code><span class="keyword">val </span><span class="identifier">nonce</span><span class="symbol">: </span><span class="identifier">Long</span></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts/-issue-command/nonce.html">IssueCommand.nonce</a><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,20 @@
<HTML>
<HEAD>
<title>CommodityContract.Commands.Move.<init> - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Commands</a>&nbsp;/&nbsp;<a href="index.html">Move</a>&nbsp;/&nbsp;<a href=".">&lt;init&gt;</a><br/>
<br/>
<h1>&lt;init&gt;</h1>
<code><span class="identifier">Move</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.Commands.Move$<init>(com.r3corda.core.crypto.SecureHash)/contractHash">contractHash</span><span class="symbol">:</span>&nbsp;<a href="../../../../com.r3corda.core.crypto/-secure-hash/index.html"><span class="identifier">SecureHash</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span></code><br/>
<p>A command stating that money has been moved, optionally to fulfil another contract.</p>
<h3>Parameters</h3>
<a name="contractHash"></a>
<code>contractHash</code> - the contract this move is for the attention of. Only that contracts verify function
should take the moved states into account when considering whether it is valid. Typically this will be
null.<br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,18 @@
<HTML>
<HEAD>
<title>CommodityContract.Commands.Move.contractHash - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Commands</a>&nbsp;/&nbsp;<a href="index.html">Move</a>&nbsp;/&nbsp;<a href=".">contractHash</a><br/>
<br/>
<h1>contractHash</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.Commands.Move$contractHash"></a>
<code><span class="keyword">val </span><span class="identifier">contractHash</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.crypto/-secure-hash/index.html"><span class="identifier">SecureHash</span></a><span class="symbol">?</span></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts/-move-command/contract-hash.html">MoveCommand.contractHash</a><br/>
<p>Contract code the moved state(s) are for the attention of, for example to indicate that the states are moved in
order to settle an obligation contracts state object(s).</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,45 @@
<HTML>
<HEAD>
<title>CommodityContract.Commands.Move - </title>
<link rel="stylesheet" href="../../../../style.css">
</HEAD>
<BODY>
<a href="../../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="../index.html">Commands</a>&nbsp;/&nbsp;<a href=".">Move</a><br/>
<br/>
<h1>Move</h1>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Move</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../../-fungible-asset/-commands/-move.html"><span class="identifier">Move</span></a><span class="symbol">, </span><a href="../index.html"><span class="identifier">Commands</span></a></code><br/>
<p>A command stating that money has been moved, optionally to fulfil another contract.</p>
<h3>Parameters</h3>
<a name="contractHash"></a>
<code>contractHash</code> - the contract this move is for the attention of. Only that contracts verify function
should take the moved states into account when considering whether it is valid. Typically this will be
null.<br/>
<br/>
<br/>
<h3>Constructors</h3>
<table>
<tbody>
<tr>
<td>
<a href="-init-.html">&lt;init&gt;</a></td>
<td>
<code><span class="identifier">Move</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.Commands.Move$<init>(com.r3corda.core.crypto.SecureHash)/contractHash">contractHash</span><span class="symbol">:</span>&nbsp;<a href="../../../../com.r3corda.core.crypto/-secure-hash/index.html"><span class="identifier">SecureHash</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span></code><p>A command stating that money has been moved, optionally to fulfil another contract.</p>
</td>
</tr>
</tbody>
</table>
<h3>Properties</h3>
<table>
<tbody>
<tr>
<td>
<a href="contract-hash.html">contractHash</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">contractHash</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.crypto/-secure-hash/index.html"><span class="identifier">SecureHash</span></a><span class="symbol">?</span></code><p>Contract code the moved state(s) are for the attention of, for example to indicate that the states are moved in
order to settle an obligation contracts state object(s).</p>
</td>
</tr>
</tbody>
</table>
</BODY>
</HTML>

View File

@ -0,0 +1,70 @@
<HTML>
<HEAD>
<title>CommodityContract.Commands - </title>
<link rel="stylesheet" href="../../../style.css">
</HEAD>
<BODY>
<a href="../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href=".">Commands</a><br/>
<br/>
<h1>Commands</h1>
<code><span class="keyword">interface </span><span class="identifier">Commands</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../-fungible-asset/-commands/index.html"><span class="identifier">Commands</span></a></code><br/>
<br/>
<br/>
<h3>Types</h3>
<table>
<tbody>
<tr>
<td>
<a href="-exit/index.html">Exit</a></td>
<td>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Exit</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Commands</span><span class="symbol">, </span><a href="../../-fungible-asset/-commands/-exit/index.html"><span class="identifier">Exit</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code><p>A command stating that money has been withdrawn from the shared ledger and is now accounted for
in some other way.</p>
</td>
</tr>
<tr>
<td>
<a href="-issue/index.html">Issue</a></td>
<td>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Issue</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../-fungible-asset/-commands/-issue.html"><span class="identifier">Issue</span></a><span class="symbol">, </span><span class="identifier">Commands</span></code><p>Allows new commodity states to be issued into existence: the nonce ("number used once") ensures the transaction
has a unique ID even when there are no inputs.</p>
</td>
</tr>
<tr>
<td>
<a href="-move/index.html">Move</a></td>
<td>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Move</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../-fungible-asset/-commands/-move.html"><span class="identifier">Move</span></a><span class="symbol">, </span><span class="identifier">Commands</span></code><p>A command stating that money has been moved, optionally to fulfil another contract.</p>
</td>
</tr>
</tbody>
</table>
<h3>Inheritors</h3>
<table>
<tbody>
<tr>
<td>
<a href="-exit/index.html">Exit</a></td>
<td>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Exit</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Commands</span><span class="symbol">, </span><a href="../../-fungible-asset/-commands/-exit/index.html"><span class="identifier">Exit</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code><p>A command stating that money has been withdrawn from the shared ledger and is now accounted for
in some other way.</p>
</td>
</tr>
<tr>
<td>
<a href="-issue/index.html">Issue</a></td>
<td>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Issue</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../-fungible-asset/-commands/-issue.html"><span class="identifier">Issue</span></a><span class="symbol">, </span><span class="identifier">Commands</span></code><p>Allows new commodity states to be issued into existence: the nonce ("number used once") ensures the transaction
has a unique ID even when there are no inputs.</p>
</td>
</tr>
<tr>
<td>
<a href="-move/index.html">Move</a></td>
<td>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Move</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../-fungible-asset/-commands/-move.html"><span class="identifier">Move</span></a><span class="symbol">, </span><span class="identifier">Commands</span></code><p>A command stating that money has been moved, optionally to fulfil another contract.</p>
</td>
</tr>
</tbody>
</table>
</BODY>
</HTML>

View File

@ -0,0 +1,19 @@
<HTML>
<HEAD>
<title>CommodityContract.<init> - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">CommodityContract</a>&nbsp;/&nbsp;<a href=".">&lt;init&gt;</a><br/>
<br/>
<h1>&lt;init&gt;</h1>
<code><span class="identifier">CommodityContract</span><span class="symbol">(</span><span class="symbol">)</span></code><br/>
<p>A commodity contract represents an amount of some commodity, tracked on a distributed ledger. The design of this
contract is intentionally similar to the <a href="../-cash/index.html">Cash</a> contract, and the same commands (issue, move, exit) apply, the
differences are in representation of the underlying commodity. Issuer in this context means the party who has the
commodity, or is otherwise responsible for delivering the commodity on demand, and the deposit reference is use for
internal accounting by the issuer (it might be, for example, a warehouse and/or location within a warehouse).</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,18 @@
<HTML>
<HEAD>
<title>CommodityContract.State.<init> - </title>
<link rel="stylesheet" href="../../../style.css">
</HEAD>
<BODY>
<a href="../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="index.html">State</a>&nbsp;/&nbsp;<a href=".">&lt;init&gt;</a><br/>
<br/>
<h1>&lt;init&gt;</h1>
<code><span class="identifier">State</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.State$<init>(com.r3corda.core.contracts.PartyAndReference, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Commodity)), java.security.PublicKey)/deposit">deposit</span><span class="symbol">:</span>&nbsp;<a href="../../../com.r3corda.core.contracts/-party-and-reference/index.html"><span class="identifier">PartyAndReference</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.State$<init>(com.r3corda.core.contracts.PartyAndReference, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Commodity)), java.security.PublicKey)/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.State$<init>(com.r3corda.core.contracts.PartyAndReference, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Commodity)), java.security.PublicKey)/owner">owner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">)</span></code><br/>
<br/>
<br/>
<code><span class="identifier">State</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.State$<init>(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey)/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.State$<init>(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey)/owner">owner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">)</span></code><br/>
<p>A state representing a commodity claim against some party</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>CommodityContract.State.amount - </title>
<link rel="stylesheet" href="../../../style.css">
</HEAD>
<BODY>
<a href="../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="index.html">State</a>&nbsp;/&nbsp;<a href=".">amount</a><br/>
<br/>
<h1>amount</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.State$amount"></a>
<code><span class="keyword">val </span><span class="identifier">amount</span><span class="symbol">: </span><a href="../../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><br/>
Overrides <a href="../../-fungible-asset/amount.html">FungibleAsset.amount</a><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,43 @@
<HTML>
<HEAD>
<title>CommodityContract.State.contract - </title>
<link rel="stylesheet" href="../../../style.css">
</HEAD>
<BODY>
<a href="../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="index.html">State</a>&nbsp;/&nbsp;<a href=".">contract</a><br/>
<br/>
<h1>contract</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.State$contract"></a>
<code><span class="keyword">val </span><span class="identifier">contract</span><span class="symbol">: </span><a href="../index.html"><span class="identifier">CommodityContract</span></a></code><br/>
Overrides <a href="../../../com.r3corda.core.contracts/-contract-state/contract.html">ContractState.contract</a><br/>
<p>An instance of the contract class that will verify this state.</p>
<h1>Discussion</h1>
<p>This field is not the final design, its just a piece of temporary scaffolding. Once the contract sandbox is
further along, this field will become a description of which attachments are acceptable for defining the
contract.</p>
<p>Recall that an attachment is a zip file that can be referenced from any transaction. The contents of the
attachments are merged together and cannot define any overlapping files, thus for any given transaction there
is a miniature file system in which each file can be precisely mapped to the defining attachment.</p>
<p>Attachments may contain many things (data files, legal documents, etc) but mostly they contain JVM bytecode.
The class files inside define not only <a href="../../../com.r3corda.core.contracts/-contract/index.html">Contract</a> implementations but also the classes that define the states.
Within the rest of a transaction, user-providable components are referenced by name only.</p>
<p>This means that a smart contract in Corda does two things:</p>
<ol><li><p>Define the data structures that compose the ledger (the states)</p>
</li><li><p>Define the rules for updating those structures</p>
</li></ol><p>The first is merely a utility role ... in theory contract code could manually parse byte streams by hand.
The second is vital to the integrity of the ledger. So this field needs to be able to express constraints like:</p>
<ul><li><p>Only attachment 733c350f396a727655be1363c06635ba355036bd54a5ed6e594fd0b5d05f42f6 may be used with this state.</p>
</li><li><p>Any attachment signed by public key 2d1ce0e330c52b8055258d776c40 may be used with this state.</p>
</li><li><p>Attachments (1, 2, 3) may all be used with this state.</p>
</li></ul><p>and so on. In this way it becomes possible for the business logic governing a state to be evolved, if the
constraints are flexible enough.</p>
<p>Because contract classes often also define utilities that generate relevant transactions, and because attachments
cannot know their own hashes, we will have to provide various utilities to assist with obtaining the right
code constraints from within the contract code itself.</p>
<p>TODO: Implement the above description. See COR-226</p>
<br/>
<br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,18 @@
<HTML>
<HEAD>
<title>CommodityContract.State.deposit - </title>
<link rel="stylesheet" href="../../../style.css">
</HEAD>
<BODY>
<a href="../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="index.html">State</a>&nbsp;/&nbsp;<a href=".">deposit</a><br/>
<br/>
<h1>deposit</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.State$deposit"></a>
<code><span class="keyword">val </span><span class="identifier">deposit</span><span class="symbol">: </span><a href="../../../com.r3corda.core.contracts/-party-and-reference/index.html"><span class="identifier">PartyAndReference</span></a></code><br/>
Overrides <a href="../../-fungible-asset/deposit.html">FungibleAsset.deposit</a><br/>
<p>Where the underlying asset backing this ledger entry can be found. The reference
is only intended for use by the issuer, and is not intended to be meaningful to others.</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,17 @@
<HTML>
<HEAD>
<title>CommodityContract.State.exitKeys - </title>
<link rel="stylesheet" href="../../../style.css">
</HEAD>
<BODY>
<a href="../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="index.html">State</a>&nbsp;/&nbsp;<a href=".">exitKeys</a><br/>
<br/>
<h1>exitKeys</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.State$exitKeys"></a>
<code><span class="keyword">val </span><span class="identifier">exitKeys</span><span class="symbol">: </span><span class="identifier">MutableSet</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">&gt;</span></code><br/>
Overrides <a href="../../-fungible-asset/exit-keys.html">FungibleAsset.exitKeys</a><br/>
<p>There must be an ExitCommand signed by these keys to destroy the amount</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,104 @@
<HTML>
<HEAD>
<title>CommodityContract.State - </title>
<link rel="stylesheet" href="../../../style.css">
</HEAD>
<BODY>
<a href="../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href=".">State</a><br/>
<br/>
<h1>State</h1>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">State</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../-fungible-asset/index.html"><span class="identifier">FungibleAsset</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code><br/>
<p>A state representing a commodity claim against some party</p>
<br/>
<br/>
<h3>Constructors</h3>
<table>
<tbody>
<tr>
<td>
<a href="-init-.html">&lt;init&gt;</a></td>
<td>
<code><span class="identifier">State</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.State$<init>(com.r3corda.core.contracts.PartyAndReference, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Commodity)), java.security.PublicKey)/deposit">deposit</span><span class="symbol">:</span>&nbsp;<a href="../../../com.r3corda.core.contracts/-party-and-reference/index.html"><span class="identifier">PartyAndReference</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.State$<init>(com.r3corda.core.contracts.PartyAndReference, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Commodity)), java.security.PublicKey)/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.State$<init>(com.r3corda.core.contracts.PartyAndReference, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Commodity)), java.security.PublicKey)/owner">owner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">)</span></code><code><span class="identifier">State</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.State$<init>(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey)/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.State$<init>(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey)/owner">owner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">)</span></code><p>A state representing a commodity claim against some party</p>
</td>
</tr>
</tbody>
</table>
<h3>Properties</h3>
<table>
<tbody>
<tr>
<td>
<a href="amount.html">amount</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">amount</span><span class="symbol">: </span><a href="../../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
<a href="contract.html">contract</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">contract</span><span class="symbol">: </span><a href="../index.html"><span class="identifier">CommodityContract</span></a></code><p>An instance of the contract class that will verify this state.</p>
</td>
</tr>
<tr>
<td>
<a href="deposit.html">deposit</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">deposit</span><span class="symbol">: </span><a href="../../../com.r3corda.core.contracts/-party-and-reference/index.html"><span class="identifier">PartyAndReference</span></a></code><p>Where the underlying asset backing this ledger entry can be found. The reference
is only intended for use by the issuer, and is not intended to be meaningful to others.</p>
</td>
</tr>
<tr>
<td>
<a href="exit-keys.html">exitKeys</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">exitKeys</span><span class="symbol">: </span><span class="identifier">MutableSet</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">&gt;</span></code><p>There must be an ExitCommand signed by these keys to destroy the amount</p>
</td>
</tr>
<tr>
<td>
<a href="issuance-def.html">issuanceDef</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">issuanceDef</span><span class="symbol">: </span><a href="../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
<a href="owner.html">owner</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">owner</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a></code><p>There must be a MoveCommand signed by this key to claim the amount</p>
</td>
</tr>
<tr>
<td>
<a href="participants.html">participants</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">participants</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><p>A <emph>participant</emph> is any party that is able to consume this state in a valid transaction.</p>
</td>
</tr>
</tbody>
</table>
<h3>Functions</h3>
<table>
<tbody>
<tr>
<td>
<a href="move.html">move</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">move</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.State$move(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey)/newAmount">newAmount</span><span class="symbol">:</span>&nbsp;<a href="../../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.State$move(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey)/newOwner">newOwner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../-fungible-asset/index.html"><span class="identifier">FungibleAsset</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
<a href="to-string.html">toString</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">toString</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">String</span></code></td>
</tr>
<tr>
<td>
<a href="with-new-owner.html">withNewOwner</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">withNewOwner</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.State$withNewOwner(java.security.PublicKey)/newOwner">newOwner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><p>Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone</p>
</td>
</tr>
</tbody>
</table>
</BODY>
</HTML>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>CommodityContract.State.issuanceDef - </title>
<link rel="stylesheet" href="../../../style.css">
</HEAD>
<BODY>
<a href="../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="index.html">State</a>&nbsp;/&nbsp;<a href=".">issuanceDef</a><br/>
<br/>
<h1>issuanceDef</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.State$issuanceDef"></a>
<code><span class="keyword">val </span><span class="identifier">issuanceDef</span><span class="symbol">: </span><a href="../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code><br/>
Overrides <a href="../../-fungible-asset/issuance-def.html">FungibleAsset.issuanceDef</a><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,15 @@
<HTML>
<HEAD>
<title>CommodityContract.State.move - </title>
<link rel="stylesheet" href="../../../style.css">
</HEAD>
<BODY>
<a href="../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="index.html">State</a>&nbsp;/&nbsp;<a href=".">move</a><br/>
<br/>
<h1>move</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.State$move(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey)"></a>
<code><span class="keyword">fun </span><span class="identifier">move</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.State$move(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey)/newAmount">newAmount</span><span class="symbol">:</span>&nbsp;<a href="../../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.State$move(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey)/newOwner">newOwner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../-fungible-asset/index.html"><span class="identifier">FungibleAsset</span></a><span class="symbol">&lt;</span><a href="../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,17 @@
<HTML>
<HEAD>
<title>CommodityContract.State.owner - </title>
<link rel="stylesheet" href="../../../style.css">
</HEAD>
<BODY>
<a href="../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="index.html">State</a>&nbsp;/&nbsp;<a href=".">owner</a><br/>
<br/>
<h1>owner</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.State$owner"></a>
<code><span class="keyword">val </span><span class="identifier">owner</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a></code><br/>
Overrides <a href="../../-fungible-asset/owner.html">FungibleAsset.owner</a><br/>
<p>There must be a MoveCommand signed by this key to claim the amount</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,25 @@
<HTML>
<HEAD>
<title>CommodityContract.State.participants - </title>
<link rel="stylesheet" href="../../../style.css">
</HEAD>
<BODY>
<a href="../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="index.html">State</a>&nbsp;/&nbsp;<a href=".">participants</a><br/>
<br/>
<h1>participants</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.State$participants"></a>
<code><span class="keyword">val </span><span class="identifier">participants</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><br/>
Overrides <a href="../../../com.r3corda.core.contracts/-contract-state/participants.html">ContractState.participants</a><br/>
<p>A <emph>participant</emph> is any party that is able to consume this state in a valid transaction.</p>
<p>The list of participants is required for certain types of transactions. For example, when changing the notary
for this state (<a href="../../../com.r3corda.core.contracts/-transaction-type/-notary-change/index.html">TransactionType.NotaryChange</a>), every participants 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.</p>
<p>The participants list should normally be derived from the contents of the state. E.g. for <a href="../../-cash/index.html">Cash</a> the participants
list should just contain the owner.</p>
<br/>
<br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,15 @@
<HTML>
<HEAD>
<title>CommodityContract.State.toString - </title>
<link rel="stylesheet" href="../../../style.css">
</HEAD>
<BODY>
<a href="../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="index.html">State</a>&nbsp;/&nbsp;<a href=".">toString</a><br/>
<br/>
<h1>toString</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.State$toString()"></a>
<code><span class="keyword">fun </span><span class="identifier">toString</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">String</span></code><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,17 @@
<HTML>
<HEAD>
<title>CommodityContract.State.withNewOwner - </title>
<link rel="stylesheet" href="../../../style.css">
</HEAD>
<BODY>
<a href="../../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="../index.html">CommodityContract</a>&nbsp;/&nbsp;<a href="index.html">State</a>&nbsp;/&nbsp;<a href=".">withNewOwner</a><br/>
<br/>
<h1>withNewOwner</h1>
<a name="com.r3corda.contracts.asset.CommodityContract.State$withNewOwner(java.security.PublicKey)"></a>
<code><span class="keyword">fun </span><span class="identifier">withNewOwner</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract.State$withNewOwner(java.security.PublicKey)/newOwner">newOwner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><br/>
Overrides <a href="../../../com.r3corda.core.contracts/-ownable-state/with-new-owner.html">OwnableState.withNewOwner</a><br/>
<p>Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>CommodityContract.clauses - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">CommodityContract</a>&nbsp;/&nbsp;<a href=".">clauses</a><br/>
<br/>
<h1>clauses</h1>
<a name="com.r3corda.contracts.asset.CommodityContract$clauses"></a>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><br/>
Overrides <a href="../../com.r3corda.core.contracts.clauses/-clause-verifier/clauses.html">ClauseVerifier.clauses</a><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>CommodityContract.conserveClause - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">CommodityContract</a>&nbsp;/&nbsp;<a href=".">conserveClause</a><br/>
<br/>
<h1>conserveClause</h1>
<a name="com.r3corda.contracts.asset.CommodityContract$conserveClause"></a>
<code><span class="keyword">val </span><span class="identifier">conserveClause</span><span class="symbol">: </span><a href="../../com.r3corda.contracts.clause/-abstract-conserve-amount/index.html"><span class="identifier">AbstractConserveAmount</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">,</span>&nbsp;<a href="../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code><br/>
Overrides <a href="../-on-ledger-asset/conserve-clause.html">OnLedgerAsset.conserveClause</a><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,18 @@
<HTML>
<HEAD>
<title>CommodityContract.deriveState - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">CommodityContract</a>&nbsp;/&nbsp;<a href=".">deriveState</a><br/>
<br/>
<h1>deriveState</h1>
<a name="com.r3corda.contracts.asset.CommodityContract$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.CommodityContract.State)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey)"></a>
<code><span class="keyword">fun </span><span class="identifier">deriveState</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.CommodityContract.State)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey)/txState">txState</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-state/index.html"><span class="identifier">TransactionState</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.CommodityContract.State)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey)/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.CommodityContract.State)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey)/owner">owner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../com.r3corda.core.contracts/-transaction-state/index.html"><span class="identifier">TransactionState</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">&gt;</span></code><br/>
<p>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.</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>CommodityContract.extractCommands - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">CommodityContract</a>&nbsp;/&nbsp;<a href=".">extractCommands</a><br/>
<br/>
<h1>extractCommands</h1>
<a name="com.r3corda.contracts.asset.CommodityContract$extractCommands(com.r3corda.core.contracts.TransactionForContract)"></a>
<code><span class="keyword">fun </span><span class="identifier">extractCommands</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$extractCommands(com.r3corda.core.contracts.TransactionForContract)/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-for-contract/index.html"><span class="identifier">TransactionForContract</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-authenticated-object/index.html"><span class="identifier">AuthenticatedObject</span></a><span class="symbol">&lt;</span><a href="../-fungible-asset/-commands/index.html"><span class="identifier">Commands</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><br/>
Overrides <a href="../../com.r3corda.core.contracts.clauses/-clause-verifier/extract-commands.html">ClauseVerifier.extractCommands</a><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,15 @@
<HTML>
<HEAD>
<title>CommodityContract.generateExitCommand - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">CommodityContract</a>&nbsp;/&nbsp;<a href=".">generateExitCommand</a><br/>
<br/>
<h1>generateExitCommand</h1>
<a name="com.r3corda.contracts.asset.CommodityContract$generateExitCommand(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))))"></a>
<code><span class="keyword">fun </span><span class="identifier">generateExitCommand</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateExitCommand(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))))/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="-commands/-exit/index.html"><span class="identifier">Exit</span></a></code><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>CommodityContract.generateIssueCommand - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">CommodityContract</a>&nbsp;/&nbsp;<a href=".">generateIssueCommand</a><br/>
<br/>
<h1>generateIssueCommand</h1>
<a name="com.r3corda.contracts.asset.CommodityContract$generateIssueCommand()"></a>
<code><span class="keyword">fun </span><span class="identifier">generateIssueCommand</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="-commands/-issue/index.html"><span class="identifier">Issue</span></a></code><br/>
Overrides <a href="../-on-ledger-asset/generate-issue-command.html">OnLedgerAsset.generateIssueCommand</a><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,21 @@
<HTML>
<HEAD>
<title>CommodityContract.generateIssue - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">CommodityContract</a>&nbsp;/&nbsp;<a href=".">generateIssue</a><br/>
<br/>
<h1>generateIssue</h1>
<a name="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)"></a>
<code><span class="keyword">fun </span><span class="identifier">generateIssue</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-builder/index.html"><span class="identifier">TransactionBuilder</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)/tokenDef">tokenDef</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)/pennies">pennies</span><span class="symbol">:</span>&nbsp;<span class="identifier">Long</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)/owner">owner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)/notary">notary</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><br/>
<p>Puts together an issuance transaction from the given template, that starts out being owned by the given pubkey.</p>
<br/>
<br/>
<a name="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey, com.r3corda.core.crypto.Party)"></a>
<code><span class="keyword">fun </span><span class="identifier">generateIssue</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey, com.r3corda.core.crypto.Party)/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-builder/index.html"><span class="identifier">TransactionBuilder</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey, com.r3corda.core.crypto.Party)/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey, com.r3corda.core.crypto.Party)/owner">owner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey, com.r3corda.core.crypto.Party)/notary">notary</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><br/>
<p>Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>CommodityContract.generateMoveCommand - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">CommodityContract</a>&nbsp;/&nbsp;<a href=".">generateMoveCommand</a><br/>
<br/>
<h1>generateMoveCommand</h1>
<a name="com.r3corda.contracts.asset.CommodityContract$generateMoveCommand()"></a>
<code><span class="keyword">fun </span><span class="identifier">generateMoveCommand</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="-commands/-move/index.html"><span class="identifier">Move</span></a></code><br/>
Overrides <a href="../-on-ledger-asset/generate-move-command.html">OnLedgerAsset.generateMoveCommand</a><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,130 @@
<HTML>
<HEAD>
<title>CommodityContract - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href=".">CommodityContract</a><br/>
<br/>
<h1>CommodityContract</h1>
<code><span class="keyword">class </span><span class="identifier">CommodityContract</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-on-ledger-asset/index.html"><span class="identifier">OnLedgerAsset</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">,</span>&nbsp;<a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">&gt;</span></code><br/>
<p>A commodity contract represents an amount of some commodity, tracked on a distributed ledger. The design of this
contract is intentionally similar to the <a href="../-cash/index.html">Cash</a> contract, and the same commands (issue, move, exit) apply, the
differences are in representation of the underlying commodity. Issuer in this context means the party who has the
commodity, or is otherwise responsible for delivering the commodity on demand, and the deposit reference is use for
internal accounting by the issuer (it might be, for example, a warehouse and/or location within a warehouse).</p>
<br/>
<br/>
<h3>Types</h3>
<table>
<tbody>
<tr>
<td>
<a href="-clauses/index.html">Clauses</a></td>
<td>
<code><span class="keyword">interface </span><span class="identifier">Clauses</span></code><p>The clauses for this contract are essentially:</p>
</td>
</tr>
<tr>
<td>
<a href="-commands/index.html">Commands</a></td>
<td>
<code><span class="keyword">interface </span><span class="identifier">Commands</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-fungible-asset/-commands/index.html"><span class="identifier">Commands</span></a></code></td>
</tr>
<tr>
<td>
<a href="-state/index.html">State</a></td>
<td>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">State</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-fungible-asset/index.html"><span class="identifier">FungibleAsset</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code><p>A state representing a commodity claim against some party</p>
</td>
</tr>
</tbody>
</table>
<h3>Constructors</h3>
<table>
<tbody>
<tr>
<td>
<a href="-init-.html">&lt;init&gt;</a></td>
<td>
<code><span class="identifier">CommodityContract</span><span class="symbol">(</span><span class="symbol">)</span></code><p>A commodity contract represents an amount of some commodity, tracked on a distributed ledger. The design of this
contract is intentionally similar to the <a href="../-cash/index.html">Cash</a> contract, and the same commands (issue, move, exit) apply, the
differences are in representation of the underlying commodity. Issuer in this context means the party who has the
commodity, or is otherwise responsible for delivering the commodity on demand, and the deposit reference is use for
internal accounting by the issuer (it might be, for example, a warehouse and/or location within a warehouse).</p>
</td>
</tr>
</tbody>
</table>
<h3>Properties</h3>
<table>
<tbody>
<tr>
<td>
<a href="clauses.html">clauses</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
</tr>
<tr>
<td>
<a href="conserve-clause.html">conserveClause</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">conserveClause</span><span class="symbol">: </span><a href="../../com.r3corda.contracts.clause/-abstract-conserve-amount/index.html"><span class="identifier">AbstractConserveAmount</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">,</span>&nbsp;<a href="../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
<a href="legal-contract-reference.html">legalContractReference</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">legalContractReference</span><span class="symbol">: </span><a href="../../com.r3corda.core.crypto/-secure-hash/index.html"><span class="identifier">SecureHash</span></a></code><p>TODO:</p>
</td>
</tr>
</tbody>
</table>
<h3>Functions</h3>
<table>
<tbody>
<tr>
<td>
<a href="derive-state.html">deriveState</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">deriveState</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.CommodityContract.State)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey)/txState">txState</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-state/index.html"><span class="identifier">TransactionState</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.CommodityContract.State)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey)/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.CommodityContract.State)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey)/owner">owner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../com.r3corda.core.contracts/-transaction-state/index.html"><span class="identifier">TransactionState</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">&gt;</span></code><p>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.</p>
</td>
</tr>
<tr>
<td>
<a href="extract-commands.html">extractCommands</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">extractCommands</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$extractCommands(com.r3corda.core.contracts.TransactionForContract)/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-for-contract/index.html"><span class="identifier">TransactionForContract</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-authenticated-object/index.html"><span class="identifier">AuthenticatedObject</span></a><span class="symbol">&lt;</span><a href="../-fungible-asset/-commands/index.html"><span class="identifier">Commands</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
<a href="generate-exit-command.html">generateExitCommand</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">generateExitCommand</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateExitCommand(com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))))/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="-commands/-exit/index.html"><span class="identifier">Exit</span></a></code></td>
</tr>
<tr>
<td>
<a href="generate-issue.html">generateIssue</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">generateIssue</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-builder/index.html"><span class="identifier">TransactionBuilder</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)/tokenDef">tokenDef</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)/pennies">pennies</span><span class="symbol">:</span>&nbsp;<span class="identifier">Long</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)/owner">owner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)/notary">notary</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><p>Puts together an issuance transaction from the given template, that starts out being owned by the given pubkey.</p>
<code><span class="keyword">fun </span><span class="identifier">generateIssue</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey, com.r3corda.core.crypto.Party)/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-builder/index.html"><span class="identifier">TransactionBuilder</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey, com.r3corda.core.crypto.Party)/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey, com.r3corda.core.crypto.Party)/owner">owner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.CommodityContract$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.core.contracts.Commodity)))), java.security.PublicKey, com.r3corda.core.crypto.Party)/notary">notary</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><p>Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.</p>
</td>
</tr>
<tr>
<td>
<a href="generate-issue-command.html">generateIssueCommand</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">generateIssueCommand</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="-commands/-issue/index.html"><span class="identifier">Issue</span></a></code></td>
</tr>
<tr>
<td>
<a href="generate-move-command.html">generateMoveCommand</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">generateMoveCommand</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="-commands/-move/index.html"><span class="identifier">Move</span></a></code></td>
</tr>
</tbody>
</table>
</BODY>
</HTML>

View File

@ -0,0 +1,25 @@
<HTML>
<HEAD>
<title>CommodityContract.legalContractReference - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">CommodityContract</a>&nbsp;/&nbsp;<a href=".">legalContractReference</a><br/>
<br/>
<h1>legalContractReference</h1>
<a name="com.r3corda.contracts.asset.CommodityContract$legalContractReference"></a>
<code><span class="keyword">val </span><span class="identifier">legalContractReference</span><span class="symbol">: </span><a href="../../com.r3corda.core.crypto/-secure-hash/index.html"><span class="identifier">SecureHash</span></a></code><br/>
Overrides <a href="../../com.r3corda.core.contracts/-contract/legal-contract-reference.html">Contract.legalContractReference</a><br/>
<p>TODO:</p>
<ol><li><p>hash should be of the contents, not the URI</p>
</li><li><p>allow the content to be specified at time of instance creation?</p>
</li></ol><p>Motivation: its the difference between a state object referencing a programRef, which references a
legalContractReference and a state object which directly references both. The latter allows the legal wording
to evolve without requiring code changes. But creates a risk that users create objects governed by a program
that is inconsistent with the legal contract</p>
<br/>
<br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -36,6 +36,14 @@ in some other way.</p>
</tr>
<tr>
<td>
<a href="../../../-commodity-contract/-commands/-exit/index.html">Exit</a></td>
<td>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Exit</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../../-commodity-contract/-commands/index.html"><span class="identifier">Commands</span></a><span class="symbol">, </span><span class="identifier">Exit</span><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code><p>A command stating that money has been withdrawn from the shared ledger and is now accounted for
in some other way.</p>
</td>
</tr>
<tr>
<td>
<a href="../../../-obligation/-commands/-exit/index.html">Exit</a></td>
<td>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Exit</span><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../../-obligation/-commands/index.html"><span class="identifier">Commands</span></a><span class="symbol">, </span><span class="identifier">Exit</span><span class="symbol">&lt;</span><a href="../../../-obligation/-terms/index.html"><span class="identifier">Terms</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><p>A command stating that the debt is being released by the beneficiary. Normally would indicate

View File

@ -36,6 +36,14 @@ has a unique ID even when there are no inputs.</p>
</tr>
<tr>
<td>
<a href="../../-commodity-contract/-commands/-issue/index.html">Issue</a></td>
<td>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Issue</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Issue</span><span class="symbol">, </span><a href="../../-commodity-contract/-commands/index.html"><span class="identifier">Commands</span></a></code><p>Allows new commodity states to be issued into existence: the nonce ("number used once") ensures the transaction
has a unique ID even when there are no inputs.</p>
</td>
</tr>
<tr>
<td>
<a href="../../-obligation/-commands/-issue/index.html">Issue</a></td>
<td>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Issue</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Issue</span><span class="symbol">, </span><a href="../../-obligation/-commands/index.html"><span class="identifier">Commands</span></a></code><p>Allows new obligation states to be issued into existence: the nonce ("number used once") ensures the

View File

@ -35,6 +35,13 @@ order to settle an obligation contracts state object(s).</p>
</tr>
<tr>
<td>
<a href="../../-commodity-contract/-commands/-move/index.html">Move</a></td>
<td>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Move</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Move</span><span class="symbol">, </span><a href="../../-commodity-contract/-commands/index.html"><span class="identifier">Commands</span></a></code><p>A command stating that money has been moved, optionally to fulfil another contract.</p>
</td>
</tr>
<tr>
<td>
<a href="../../-obligation/-commands/-move/index.html">Move</a></td>
<td>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Move</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../-obligation/-commands/index.html"><span class="identifier">Commands</span></a><span class="symbol">, </span><span class="identifier">Move</span></code><p>A command stating that a debt has been moved, optionally to fulfil another contract.</p>

View File

@ -48,6 +48,12 @@ has a unique ID even when there are no inputs.</p>
</tr>
<tr>
<td>
<a href="../../-commodity-contract/-commands/index.html">Commands</a></td>
<td>
<code><span class="keyword">interface </span><span class="identifier">Commands</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Commands</span></code></td>
</tr>
<tr>
<td>
<a href="../../-obligation/-commands/index.html">Commands</a></td>
<td>
<code><span class="keyword">interface </span><span class="identifier">Commands</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Commands</span></code></td>

View File

@ -121,6 +121,13 @@ is only intended for use by the issuer, and is not intended to be meaningful to
</tr>
<tr>
<td>
<a href="../-commodity-contract/-state/index.html">State</a></td>
<td>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">State</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">FungibleAsset</span><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-commodity/index.html"><span class="identifier">Commodity</span></a><span class="symbol">&gt;</span></code><p>A state representing a commodity claim against some party</p>
</td>
</tr>
<tr>
<td>
<a href="../-obligation/-state/index.html">State</a></td>
<td>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">State</span><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">FungibleAsset</span><span class="symbol">&lt;</span><a href="../-obligation/-terms/index.html"><span class="identifier">Terms</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><a href="../../com.r3corda.core.contracts/-nettable-state.html"><span class="identifier">NettableState</span></a><span class="symbol">&lt;</span><a href="../-obligation/-state/index.html"><span class="identifier">State</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<a href="../../com.r3corda.contracts.clause/-multilateral-net-state/index.html"><span class="identifier">MultilateralNetState</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><p>A state representing the obligation of one party (obligor) to deliver a specified number of

View File

@ -7,7 +7,7 @@
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">InsufficientBalanceException</a>&nbsp;/&nbsp;<a href=".">&lt;init&gt;</a><br/>
<br/>
<h1>&lt;init&gt;</h1>
<code><span class="identifier">InsufficientBalanceException</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.InsufficientBalanceException$<init>(com.r3corda.core.contracts.Amount((java.util.Currency)))/amountMissing">amountMissing</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Currency.html"><span class="identifier">Currency</span></a><span class="symbol">&gt;</span><span class="symbol">)</span></code><br/>
<code><span class="identifier">InsufficientBalanceException</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.InsufficientBalanceException$<init>(com.r3corda.core.contracts.Amount((kotlin.Any)))/amountMissing">amountMissing</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">)</span></code><br/>
<br/>
<br/>
</BODY>

View File

@ -8,7 +8,7 @@
<br/>
<h1>amountMissing</h1>
<a name="com.r3corda.contracts.asset.InsufficientBalanceException$amountMissing"></a>
<code><span class="keyword">val </span><span class="identifier">amountMissing</span><span class="symbol">: </span><a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Currency.html"><span class="identifier">Currency</span></a><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">val </span><span class="identifier">amountMissing</span><span class="symbol">: </span><a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span></code><br/>
<br/>
<br/>
</BODY>

View File

@ -17,7 +17,7 @@
<td>
<a href="-init-.html">&lt;init&gt;</a></td>
<td>
<code><span class="identifier">InsufficientBalanceException</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.InsufficientBalanceException$<init>(com.r3corda.core.contracts.Amount((java.util.Currency)))/amountMissing">amountMissing</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Currency.html"><span class="identifier">Currency</span></a><span class="symbol">&gt;</span><span class="symbol">)</span></code></td>
<code><span class="identifier">InsufficientBalanceException</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.InsufficientBalanceException$<init>(com.r3corda.core.contracts.Amount((kotlin.Any)))/amountMissing">amountMissing</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">)</span></code></td>
</tr>
</tbody>
</table>
@ -28,7 +28,18 @@
<td>
<a href="amount-missing.html">amountMissing</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">amountMissing</span><span class="symbol">: </span><a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Currency.html"><span class="identifier">Currency</span></a><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">val </span><span class="identifier">amountMissing</span><span class="symbol">: </span><a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span></code></td>
</tr>
</tbody>
</table>
<h3>Functions</h3>
<table>
<tbody>
<tr>
<td>
<a href="to-string.html">toString</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">toString</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">String</span></code></td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,15 @@
<HTML>
<HEAD>
<title>InsufficientBalanceException.toString - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">InsufficientBalanceException</a>&nbsp;/&nbsp;<a href=".">toString</a><br/>
<br/>
<h1>toString</h1>
<a name="com.r3corda.contracts.asset.InsufficientBalanceException$toString()"></a>
<code><span class="keyword">fun </span><span class="identifier">toString</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">String</span></code><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -8,7 +8,7 @@
<br/>
<h1>clauses</h1>
<a name="com.r3corda.contracts.asset.Obligation.Clauses.Group$clauses"></a>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts.clauses/-group-clause.html"><span class="identifier">GroupClause</span></a><span class="symbol">&lt;</span><a href="../../-state/index.html"><span class="identifier">State</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../-terms/index.html"><span class="identifier">Terms</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-group-clause-verifier/clauses.html">GroupClauseVerifier.clauses</a><br/>
<br/>
<br/>

View File

@ -11,9 +11,6 @@
<code><span class="keyword">val </span><span class="identifier">ifMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/if-matched.html">Clause.ifMatched</a><br/>
<p>Behaviour if this clause is not matches</p>
<p><strong>Getter</strong><br/>
<p>Behaviour if this clause is not matches</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -11,9 +11,6 @@
<code><span class="keyword">val </span><span class="identifier">ifNotMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/if-not-matched.html">Clause.ifNotMatched</a><br/>
<p>Behaviour if this clause is matched</p>
<p><strong>Getter</strong><br/>
<p>Behaviour if this clause is matched</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -30,7 +30,7 @@
<td>
<a href="clauses.html">clauses</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../../../com.r3corda.core.contracts.clauses/-group-clause.html"><span class="identifier">GroupClause</span></a><span class="symbol">&lt;</span><a href="../../-state/index.html"><span class="identifier">State</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="../../-terms/index.html"><span class="identifier">Terms</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
</tr>
<tr>
<td>

View File

@ -30,7 +30,7 @@
<td>
<a href="required-commands.html">requiredCommands</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">Set</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="keyword">out</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-command-data.html"><span class="identifier">CommandData</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
</td>
</tr>
</tbody>

View File

@ -8,12 +8,9 @@
<br/>
<h1>requiredCommands</h1>
<a name="com.r3corda.contracts.asset.Obligation.Clauses.Issue$requiredCommands"></a>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">Set</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="keyword">out</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-command-data.html"><span class="identifier">CommandData</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/required-commands.html">Clause.requiredCommands</a><br/>
<p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
<p><strong>Getter</strong><br/>
<p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -11,9 +11,6 @@
<code><span class="keyword">val </span><span class="identifier">ifMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/if-matched.html">Clause.ifMatched</a><br/>
<p>Behaviour if this clause is not matches</p>
<p><strong>Getter</strong><br/>
<p>Behaviour if this clause is not matches</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -11,9 +11,6 @@
<code><span class="keyword">val </span><span class="identifier">ifNotMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/if-not-matched.html">Clause.ifNotMatched</a><br/>
<p>Behaviour if this clause is matched</p>
<p><strong>Getter</strong><br/>
<p>Behaviour if this clause is matched</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -44,7 +44,7 @@
<td>
<a href="required-commands.html">requiredCommands</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">Set</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="keyword">out</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-command-data.html"><span class="identifier">CommandData</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
</td>
</tr>
</tbody>

View File

@ -8,12 +8,9 @@
<br/>
<h1>requiredCommands</h1>
<a name="com.r3corda.contracts.asset.Obligation.Clauses.SetLifecycle$requiredCommands"></a>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">Set</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="keyword">out</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-command-data.html"><span class="identifier">CommandData</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/required-commands.html">Clause.requiredCommands</a><br/>
<p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
<p><strong>Getter</strong><br/>
<p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -11,9 +11,6 @@
<code><span class="keyword">val </span><span class="identifier">ifMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/if-matched.html">Clause.ifMatched</a><br/>
<p>Behaviour if this clause is not matches</p>
<p><strong>Getter</strong><br/>
<p>Behaviour if this clause is not matches</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -11,9 +11,6 @@
<code><span class="keyword">val </span><span class="identifier">ifNotMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/if-not-matched.html">Clause.ifNotMatched</a><br/>
<p>Behaviour if this clause is matched</p>
<p><strong>Getter</strong><br/>
<p>Behaviour if this clause is matched</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -46,7 +46,7 @@ change of ownership of other states to fulfil</p>
<td>
<a href="required-commands.html">requiredCommands</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">Set</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="keyword">out</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-command-data.html"><span class="identifier">CommandData</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
</td>
</tr>
</tbody>

View File

@ -8,12 +8,9 @@
<br/>
<h1>requiredCommands</h1>
<a name="com.r3corda.contracts.asset.Obligation.Clauses.Settle$requiredCommands"></a>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">Set</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="keyword">out</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-command-data.html"><span class="identifier">CommandData</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/required-commands.html">Clause.requiredCommands</a><br/>
<p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
<p><strong>Getter</strong><br/>
<p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -11,9 +11,6 @@
<code><span class="keyword">val </span><span class="identifier">ifMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/if-matched.html">Clause.ifMatched</a><br/>
<p>Behaviour if this clause is not matches</p>
<p><strong>Getter</strong><br/>
<p>Behaviour if this clause is not matches</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -11,9 +11,6 @@
<code><span class="keyword">val </span><span class="identifier">ifNotMatched</span><span class="symbol">: </span><a href="../../../../com.r3corda.core.contracts.clauses/-match-behaviour/index.html"><span class="identifier">MatchBehaviour</span></a></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/if-not-matched.html">Clause.ifNotMatched</a><br/>
<p>Behaviour if this clause is matched</p>
<p><strong>Getter</strong><br/>
<p>Behaviour if this clause is matched</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -11,9 +11,6 @@
<code><span class="keyword">val </span><span class="identifier">requiredCommands</span><span class="symbol">: </span><span class="identifier">Set</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="keyword">out</span>&nbsp;<a href="../../../../com.r3corda.core.contracts/-command-data.html"><span class="identifier">CommandData</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code><br/>
Overrides <a href="../../../../com.r3corda.core.contracts.clauses/-clause/required-commands.html">Clause.requiredCommands</a><br/>
<p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
<p><strong>Getter</strong><br/>
<p>Classes for commands which must ALL be present in transaction for this clause to be triggered</p>
</p>
<br/>
<br/>
</BODY>

View File

@ -8,7 +8,7 @@
<br/>
<h1>clauses</h1>
<a name="com.r3corda.contracts.asset.Obligation$clauses"></a>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts.clauses/-single-clause.html"><span class="identifier">SingleClause</span></a><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><br/>
Overrides <a href="../../com.r3corda.core.contracts.clauses/-clause-verifier/clauses.html">ClauseVerifier.clauses</a><br/>
<br/>
<br/>

View File

@ -0,0 +1,32 @@
<HTML>
<HEAD>
<title>Obligation.generateExit - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">Obligation</a>&nbsp;/&nbsp;<a href=".">generateExit</a><br/>
<br/>
<h1>generateExit</h1>
<a name="com.r3corda.contracts.asset.Obligation$generateExit(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Obligation.State((com.r3corda.contracts.asset.Obligation.P)))))))"></a>
<code><span class="keyword">fun </span><span class="identifier">generateExit</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateExit(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Obligation.State((com.r3corda.contracts.asset.Obligation.P)))))))/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-builder/index.html"><span class="identifier">TransactionBuilder</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateExit(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Obligation.State((com.r3corda.contracts.asset.Obligation.P)))))))/amountIssued">amountIssued</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="-terms/index.html"><span class="identifier">Terms</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateExit(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Obligation.State((com.r3corda.contracts.asset.Obligation.P)))))))/changeKey">changeKey</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateExit(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Obligation.State((com.r3corda.contracts.asset.Obligation.P)))))))/assetStates">assetStates</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-state-and-ref/index.html"><span class="identifier">StateAndRef</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a></code><br/>
<p>Generate an transaction exiting an obligation from the ledger.</p>
<h3>Parameters</h3>
<a name="tx"></a>
<code>tx</code> - transaction builder to add states and commands to.<br/>
<br/>
<a name="amountIssued"></a>
<code>amountIssued</code> - the amount to be exited, represented as a quantity of issued currency.<br/>
<br/>
<a name="changeKey"></a>
<code>changeKey</code> - the key to send any change to. This needs to be explicitly stated as the input states are not
necessarily owned by us.<br/>
<br/>
<a name="assetStates"></a>
<code>assetStates</code> - the asset states to take funds from. No checks are done about ownership of these states, it is
the responsibility of the caller to check that they do not exit funds held by others.<br/>
<p><strong>Return</strong><br/>
the public key of the assets issuer, who must sign the transaction for it to be valid.</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -81,7 +81,7 @@ to be netted/merged, with settlement only for any remainder amount.</p>
<td>
<a href="clauses.html">clauses</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts.clauses/-single-clause.html"><span class="identifier">SingleClause</span></a><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">val </span><span class="identifier">clauses</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
</tr>
<tr>
<td>
@ -110,6 +110,13 @@ to be netted/merged, with settlement only for any remainder amount.</p>
</tr>
<tr>
<td>
<a href="generate-exit.html">generateExit</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">generateExit</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateExit(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Obligation.State((com.r3corda.contracts.asset.Obligation.P)))))))/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-builder/index.html"><span class="identifier">TransactionBuilder</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateExit(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Obligation.State((com.r3corda.contracts.asset.Obligation.P)))))))/amountIssued">amountIssued</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><a href="-terms/index.html"><span class="identifier">Terms</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateExit(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Obligation.State((com.r3corda.contracts.asset.Obligation.P)))))))/changeKey">changeKey</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateExit(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), java.security.PublicKey, kotlin.collections.List((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Obligation.State((com.r3corda.contracts.asset.Obligation.P)))))))/assetStates">assetStates</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-state-and-ref/index.html"><span class="identifier">StateAndRef</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a></code><p>Generate an transaction exiting an obligation from the ledger.</p>
</td>
</tr>
<tr>
<td>
<a href="generate-issue.html">generateIssue</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">generateIssue</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.crypto.Party, com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-builder/index.html"><span class="identifier">TransactionBuilder</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.crypto.Party, com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)/obligor">obligor</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.crypto.Party, com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)/issuanceDef">issuanceDef</span><span class="symbol">:</span>&nbsp;<a href="-terms/index.html"><span class="identifier">Terms</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.crypto.Party, com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)/pennies">pennies</span><span class="symbol">:</span>&nbsp;<span class="identifier">Long</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.crypto.Party, com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)/beneficiary">beneficiary</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateIssue(com.r3corda.core.contracts.TransactionBuilder, com.r3corda.core.crypto.Party, com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)), kotlin.Long, java.security.PublicKey, com.r3corda.core.crypto.Party)/notary">notary</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><p>Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.</p>
@ -134,13 +141,6 @@ to be netted/merged, with settlement only for any remainder amount.</p>
<td>
<code><span class="keyword">fun </span><span class="identifier">generateSettle</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateSettle(com.r3corda.core.contracts.TransactionBuilder, kotlin.collections.Iterable((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Obligation.State((com.r3corda.contracts.asset.Obligation.P)))))), kotlin.collections.Iterable((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.FungibleAsset((com.r3corda.contracts.asset.Obligation.P)))))), com.r3corda.core.contracts.MoveCommand, com.r3corda.core.crypto.Party)/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-builder/index.html"><span class="identifier">TransactionBuilder</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateSettle(com.r3corda.core.contracts.TransactionBuilder, kotlin.collections.Iterable((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Obligation.State((com.r3corda.contracts.asset.Obligation.P)))))), kotlin.collections.Iterable((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.FungibleAsset((com.r3corda.contracts.asset.Obligation.P)))))), com.r3corda.core.contracts.MoveCommand, com.r3corda.core.crypto.Party)/statesAndRefs">statesAndRefs</span><span class="symbol">:</span>&nbsp;<span class="identifier">Iterable</span><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-state-and-ref/index.html"><span class="identifier">StateAndRef</span></a><span class="symbol">&lt;</span><a href="-state/index.html"><span class="identifier">State</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateSettle(com.r3corda.core.contracts.TransactionBuilder, kotlin.collections.Iterable((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Obligation.State((com.r3corda.contracts.asset.Obligation.P)))))), kotlin.collections.Iterable((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.FungibleAsset((com.r3corda.contracts.asset.Obligation.P)))))), com.r3corda.core.contracts.MoveCommand, com.r3corda.core.crypto.Party)/assetStatesAndRefs">assetStatesAndRefs</span><span class="symbol">:</span>&nbsp;<span class="identifier">Iterable</span><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-state-and-ref/index.html"><span class="identifier">StateAndRef</span></a><span class="symbol">&lt;</span><a href="../-fungible-asset/index.html"><span class="identifier">FungibleAsset</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateSettle(com.r3corda.core.contracts.TransactionBuilder, kotlin.collections.Iterable((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Obligation.State((com.r3corda.contracts.asset.Obligation.P)))))), kotlin.collections.Iterable((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.FungibleAsset((com.r3corda.contracts.asset.Obligation.P)))))), com.r3corda.core.contracts.MoveCommand, com.r3corda.core.crypto.Party)/moveCommand">moveCommand</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-move-command/index.html"><span class="identifier">MoveCommand</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$generateSettle(com.r3corda.core.contracts.TransactionBuilder, kotlin.collections.Iterable((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.Obligation.State((com.r3corda.contracts.asset.Obligation.P)))))), kotlin.collections.Iterable((com.r3corda.core.contracts.StateAndRef((com.r3corda.contracts.asset.FungibleAsset((com.r3corda.contracts.asset.Obligation.P)))))), com.r3corda.core.contracts.MoveCommand, com.r3corda.core.crypto.Party)/notary">notary</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code></td>
</tr>
<tr>
<td>
<a href="verify-set-lifecycle-command.html">verifySetLifecycleCommand</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">verifySetLifecycleCommand</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$verifySetLifecycleCommand(kotlin.collections.List((com.r3corda.contracts.asset.FungibleAsset((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), kotlin.collections.List((com.r3corda.contracts.asset.FungibleAsset((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), com.r3corda.core.contracts.TransactionForContract, com.r3corda.core.contracts.AuthenticatedObject((com.r3corda.contracts.asset.Obligation.Commands.SetLifecycle)))/inputs">inputs</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../-fungible-asset/index.html"><span class="identifier">FungibleAsset</span></a><span class="symbol">&lt;</span><a href="-terms/index.html"><span class="identifier">Terms</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$verifySetLifecycleCommand(kotlin.collections.List((com.r3corda.contracts.asset.FungibleAsset((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), kotlin.collections.List((com.r3corda.contracts.asset.FungibleAsset((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), com.r3corda.core.contracts.TransactionForContract, com.r3corda.core.contracts.AuthenticatedObject((com.r3corda.contracts.asset.Obligation.Commands.SetLifecycle)))/outputs">outputs</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../-fungible-asset/index.html"><span class="identifier">FungibleAsset</span></a><span class="symbol">&lt;</span><a href="-terms/index.html"><span class="identifier">Terms</span></a><span class="symbol">&lt;</span><span class="identifier">P</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$verifySetLifecycleCommand(kotlin.collections.List((com.r3corda.contracts.asset.FungibleAsset((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), kotlin.collections.List((com.r3corda.contracts.asset.FungibleAsset((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), com.r3corda.core.contracts.TransactionForContract, com.r3corda.core.contracts.AuthenticatedObject((com.r3corda.contracts.asset.Obligation.Commands.SetLifecycle)))/tx">tx</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-for-contract/index.html"><span class="identifier">TransactionForContract</span></a><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.Obligation$verifySetLifecycleCommand(kotlin.collections.List((com.r3corda.contracts.asset.FungibleAsset((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), kotlin.collections.List((com.r3corda.contracts.asset.FungibleAsset((com.r3corda.contracts.asset.Obligation.Terms((com.r3corda.contracts.asset.Obligation.P)))))), com.r3corda.core.contracts.TransactionForContract, com.r3corda.core.contracts.AuthenticatedObject((com.r3corda.contracts.asset.Obligation.Commands.SetLifecycle)))/setLifecycleCommand">setLifecycleCommand</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-authenticated-object/index.html"><span class="identifier">AuthenticatedObject</span></a><span class="symbol">&lt;</span><a href="-commands/-set-lifecycle/index.html"><span class="identifier">SetLifecycle</span></a><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><p>A default command mutates inputs and produces identical outputs, except that the lifecycle changes.</p>
</td>
</tr>
</tbody>
</table>
<h3>Inherited Functions</h3>

View File

@ -0,0 +1,25 @@
<HTML>
<HEAD>
<title>OnLedgerAsset.<init> - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">OnLedgerAsset</a>&nbsp;/&nbsp;<a href=".">&lt;init&gt;</a><br/>
<br/>
<h1>&lt;init&gt;</h1>
<code><span class="identifier">OnLedgerAsset</span><span class="symbol">(</span><span class="symbol">)</span></code><br/>
<p>An asset transaction may split and merge assets represented by a set of (issuer, depositRef) pairs, across multiple
input and output states. Imagine a Bitcoin transaction but in which all UTXOs had a colour (a blend of
issuer+depositRef) and you couldnt merge outputs of two colours together, but you COULD put them in the same
transaction.</p>
<p>The goal of this design is to ensure that assets can be withdrawn from the ledger easily: if you receive some asset
via this contract, you always know where to go in order to extract it from the R3 ledger, no matter how many hands
it has passed through in the intervening time.</p>
<p>At the same time, other contracts that just want assets and dont care much who is currently holding it can ignore
the issuer/depositRefs and just examine the amount fields.</p>
<br/>
<br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,15 @@
<HTML>
<HEAD>
<title>OnLedgerAsset.conserveClause - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">OnLedgerAsset</a>&nbsp;/&nbsp;<a href=".">conserveClause</a><br/>
<br/>
<h1>conserveClause</h1>
<a name="com.r3corda.contracts.asset.OnLedgerAsset$conserveClause"></a>
<code><span class="keyword">abstract</span> <span class="keyword">val </span><span class="identifier">conserveClause</span><span class="symbol">: </span><a href="../../com.r3corda.contracts.clause/-abstract-conserve-amount/index.html"><span class="identifier">AbstractConserveAmount</span></a><span class="symbol">&lt;</span><span class="identifier">S</span><span class="symbol">,</span>&nbsp;<span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,18 @@
<HTML>
<HEAD>
<title>OnLedgerAsset.deriveState - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">com.r3corda.contracts.asset</a>&nbsp;/&nbsp;<a href="index.html">OnLedgerAsset</a>&nbsp;/&nbsp;<a href=".">deriveState</a><br/>
<br/>
<h1>deriveState</h1>
<a name="com.r3corda.contracts.asset.OnLedgerAsset$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.OnLedgerAsset.S)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.contracts.asset.OnLedgerAsset.T)))), java.security.PublicKey)"></a>
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">deriveState</span><span class="symbol">(</span><span class="identifier" id="com.r3corda.contracts.asset.OnLedgerAsset$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.OnLedgerAsset.S)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.contracts.asset.OnLedgerAsset.T)))), java.security.PublicKey)/txState">txState</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-transaction-state/index.html"><span class="identifier">TransactionState</span></a><span class="symbol">&lt;</span><span class="identifier">S</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.OnLedgerAsset$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.OnLedgerAsset.S)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.contracts.asset.OnLedgerAsset.T)))), java.security.PublicKey)/amount">amount</span><span class="symbol">:</span>&nbsp;<a href="../../com.r3corda.core.contracts/-amount/index.html"><span class="identifier">Amount</span></a><span class="symbol">&lt;</span><a href="../../com.r3corda.core.contracts/-issued/index.html"><span class="identifier">Issued</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="com.r3corda.contracts.asset.OnLedgerAsset$deriveState(com.r3corda.core.contracts.TransactionState((com.r3corda.contracts.asset.OnLedgerAsset.S)), com.r3corda.core.contracts.Amount((com.r3corda.core.contracts.Issued((com.r3corda.contracts.asset.OnLedgerAsset.T)))), java.security.PublicKey)/owner">owner</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PublicKey.html"><span class="identifier">PublicKey</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../com.r3corda.core.contracts/-transaction-state/index.html"><span class="identifier">TransactionState</span></a><span class="symbol">&lt;</span><span class="identifier">S</span><span class="symbol">&gt;</span></code><br/>
<p>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.</p>
<br/>
<br/>
</BODY>
</HTML>

Some files were not shown because too many files have changed in this diff Show More