diff --git a/docs/source/api-states.rst b/docs/source/api-states.rst index c3cdb75416..5f62608e04 100644 --- a/docs/source/api-states.rst +++ b/docs/source/api-states.rst @@ -155,7 +155,7 @@ and methods. For example, here is the relatively complex definition for a state .. container:: codeset - .. literalinclude:: ../../finance/workflows/src/main/kotlin/net/corda/finance/contracts/asset/Cash.kt + .. literalinclude:: ../../finance/contracts/src/main/kotlin/net/corda/finance/contracts/asset/Cash.kt :language: kotlin :start-after: DOCSTART 1 :end-before: DOCEND 1 diff --git a/docs/source/app-upgrade-notes.rst b/docs/source/app-upgrade-notes.rst index 879f566e6a..15bee7a3c1 100644 --- a/docs/source/app-upgrade-notes.rst +++ b/docs/source/app-upgrade-notes.rst @@ -401,8 +401,8 @@ Step 12. Possibly update vault state queries In Corda 4 queries made on a node's vault can filter by the relevancy of those states to the node. As this functionality does not exist in Corda 3, apps will continue to receive all states in any vault queries. However, it may make sense to migrate queries expecting just those states relevant -to the node in question to query for only relevant states. See :doc:`api-vault-query.rst` for more details on how to do this. Not doing this -may result in queries returning more states than expected if the node is using observer functionality (see ":doc:`tutorial-observer-nodes.rst`"). +to the node in question to query for only relevant states. See :doc:`api-vault-query` for more details on how to do this. Not doing this +may result in queries returning more states than expected if the node is using observer functionality (see ":doc:`tutorial-observer-nodes`"). Step 13. Explore other new features that may be useful ------------------------------------------------------ diff --git a/docs/source/cipher-suites.rst b/docs/source/cipher-suites.rst index 8f2d313c45..25e4c99664 100644 --- a/docs/source/cipher-suites.rst +++ b/docs/source/cipher-suites.rst @@ -15,9 +15,9 @@ carefully selected based on various factors, such as provided security-level and with various HSM vendors, algorithm standardisation, variety of cryptographic primitives, business demand, option for post-quantum resistance, side channel security, efficiency and rigorous testing. -Before we present the pool of supported schemes it is useful to be familiar with :doc:`key-concepts-identity`, -:doc:`permissioning` and :doc:`api-identity`. An important design decision in Corda is its shared hierarchy -between the TLS and Node Identity certificates. +Before we present the pool of supported schemes it is useful to be familiar with :doc:`permissioning` +and :doc:`api-identity`. An important design decision in Corda is its shared hierarchy between the +TLS and Node Identity certificates. Certificate hierarchy --------------------- diff --git a/docs/source/docker.rst b/docs/source/docker.rst deleted file mode 100644 index 3315b5cb57..0000000000 --- a/docs/source/docker.rst +++ /dev/null @@ -1,7 +0,0 @@ -Docker -===== - -.. toctree:: - :maxdepth: 1 - - docker-image diff --git a/docs/source/event-scheduling.rst b/docs/source/event-scheduling.rst index 34633c61dc..cc356ffb71 100644 --- a/docs/source/event-scheduling.rst +++ b/docs/source/event-scheduling.rst @@ -67,7 +67,7 @@ Let's take an example of the interest rate swap fixings for our scheduled events .. container:: codeset - .. literalinclude:: ../../samples/irs-demo/cordapp/src/main/kotlin/net/corda/irs/contract/IRS.kt + .. literalinclude:: ../../samples/irs-demo/cordapp/contracts-irs/src/main/kotlin/net/corda/irs/contract/IRS.kt :language: kotlin :start-after: DOCSTART 1 :end-before: DOCEND 1 diff --git a/docs/source/flow-state-machines.rst b/docs/source/flow-state-machines.rst index 8c8c217153..bd2fd638d7 100644 --- a/docs/source/flow-state-machines.rst +++ b/docs/source/flow-state-machines.rst @@ -93,7 +93,7 @@ Our flow has two parties (B and S for buyer and seller) and will proceed as foll transaction in B's local vault, and then sending it on to S who also checks it and commits the transaction to S's local vault. -You can find the implementation of this flow in the file ``finance/src/main/kotlin/net/corda/finance/TwoPartyTradeFlow.kt``. +You can find the implementation of this flow in the file ``finance/workflows/src/main/kotlin/net/corda/finance/TwoPartyTradeFlow.kt``. Assuming no malicious termination, they both end the flow being in possession of a valid, signed transaction that represents an atomic asset swap. @@ -201,7 +201,7 @@ Let's implement the ``Seller.call`` method that will be run when the flow is inv .. container:: codeset - .. literalinclude:: ../../finance/src/main/kotlin/net/corda/finance/flows/TwoPartyTradeFlow.kt + .. literalinclude:: ../../finance/workflows/src/main/kotlin/net/corda/finance/flows/TwoPartyTradeFlow.kt :language: kotlin :start-after: DOCSTART 4 :end-before: DOCEND 4 @@ -237,7 +237,7 @@ OK, let's do the same for the buyer side: .. container:: codeset - .. literalinclude:: ../../finance/src/main/kotlin/net/corda/finance/flows/TwoPartyTradeFlow.kt + .. literalinclude:: ../../finance/workflows/src/main/kotlin/net/corda/finance/flows/TwoPartyTradeFlow.kt :language: kotlin :start-after: DOCSTART 1 :end-before: DOCEND 1 @@ -367,7 +367,7 @@ override ``checkTransaction()`` to add our own custom validation logic: .. container:: codeset - .. literalinclude:: ../../finance/src/main/kotlin/net/corda/finance/flows/TwoPartyTradeFlow.kt + .. literalinclude:: ../../finance/workflows/src/main/kotlin/net/corda/finance/flows/TwoPartyTradeFlow.kt :language: kotlin :start-after: DOCSTART 5 :end-before: DOCEND 5 @@ -454,7 +454,7 @@ A flow might declare some steps with code inside the flow class like this: .. container:: codeset - .. literalinclude:: ../../finance/src/main/kotlin/net/corda/finance/flows/TwoPartyTradeFlow.kt + .. literalinclude:: ../../finance/workflows/src/main/kotlin/net/corda/finance/flows/TwoPartyTradeFlow.kt :language: kotlin :start-after: DOCSTART 2 :end-before: DOCEND 2 @@ -478,7 +478,7 @@ is a good idea, as that will help the users see what is coming up. You can pre-c .. container:: codeset - .. literalinclude:: ../../finance/src/main/kotlin/net/corda/finance/flows/TwoPartyTradeFlow.kt + .. literalinclude:: ../../finance/workflows/src/main/kotlin/net/corda/finance/flows/TwoPartyTradeFlow.kt :language: kotlin :start-after: DOCSTART 3 :end-before: DOCEND 3 diff --git a/docs/source/oracles.rst b/docs/source/oracles.rst index e9c7198c84..117d08cce0 100644 --- a/docs/source/oracles.rst +++ b/docs/source/oracles.rst @@ -101,12 +101,12 @@ class that binds it to the network layer. Here is an extract from the ``NodeInterestRates.Oracle`` class and supporting types: -.. literalinclude:: ../../finance/src/main/kotlin/net/corda/finance/contracts/FinanceTypes.kt +.. literalinclude:: ../../finance/contracts/src/main/kotlin/net/corda/finance/contracts/FinanceTypes.kt :language: kotlin :start-after: DOCSTART 1 :end-before: DOCEND 1 -.. literalinclude:: ../../finance/src/main/kotlin/net/corda/finance/contracts/FinanceTypes.kt +.. literalinclude:: ../../finance/contracts/src/main/kotlin/net/corda/finance/contracts/FinanceTypes.kt :language: kotlin :start-after: DOCSTART 2 :end-before: DOCEND 2 @@ -166,7 +166,7 @@ parameter and ``CommandData`` classes. Let's see how the ``sign`` method for ``NodeInterestRates.Oracle`` is written: -.. literalinclude:: ../../samples/irs-demo/cordapp/src/main/kotlin/net/corda/irs/api/NodeInterestRates.kt +.. literalinclude:: ../../samples/irs-demo/cordapp/workflows-irs/src/main/kotlin/net.corda.irs/api/NodeInterestRates.kt :language: kotlin :start-after: DOCSTART 1 :end-before: DOCEND 1 @@ -192,7 +192,7 @@ Binding to the network The first step is to create the oracle as a service by annotating its class with ``@CordaService``. Let's see how that's done: -.. literalinclude:: ../../samples/irs-demo/cordapp/src/main/kotlin/net/corda/irs/api/NodeInterestRates.kt +.. literalinclude:: ../../samples/irs-demo/cordapp/workflows-irs/src/main/kotlin/net.corda.irs/api/NodeInterestRates.kt :language: kotlin :start-after: DOCSTART 3 :end-before: DOCEND 3 @@ -201,7 +201,7 @@ done: The Corda node scans for any class with this annotation and initialises them. The only requirement is that the class provide a constructor with a single parameter of type ``ServiceHub``. -.. literalinclude:: ../../samples/irs-demo/cordapp/src/main/kotlin/net/corda/irs/api/NodeInterestRates.kt +.. literalinclude:: ../../samples/irs-demo/cordapp/workflows-irs/src/main/kotlin/net.corda.irs/api/NodeInterestRates.kt :language: kotlin :start-after: DOCSTART 2 :end-before: DOCEND 2 @@ -219,7 +219,7 @@ We mentioned the client sub-flow briefly above. They are the mechanism that cli use to interact with your oracle. Typically there will be one for querying and one for signing. Let's take a look at those for ``NodeInterestRates.Oracle``. -.. literalinclude:: ../../samples/irs-demo/cordapp/src/main/kotlin/net/corda/irs/flows/RatesFixFlow.kt +.. literalinclude:: ../../samples/irs-demo/cordapp/workflows-irs/src/main/kotlin/net.corda.irs/flows/RatesFixFlow.kt :language: kotlin :start-after: DOCSTART 1 :end-before: DOCEND 1 @@ -238,7 +238,7 @@ The oracle is invoked through sub-flows to query for values, add them to the tra the transaction signed by the oracle. Following on from the above examples, this is all encapsulated in a sub-flow called ``RatesFixFlow``. Here's the ``call`` method of that flow. -.. literalinclude:: ../../samples/irs-demo/cordapp/src/main/kotlin/net/corda/irs/flows/RatesFixFlow.kt +.. literalinclude:: ../../samples/irs-demo/cordapp/workflows-irs/src/main/kotlin/net.corda.irs/flows/RatesFixFlow.kt :language: kotlin :start-after: DOCSTART 2 :end-before: DOCEND 2 @@ -255,7 +255,7 @@ As you can see, this: Here's an example of it in action from ``FixingFlow.Fixer``. -.. literalinclude:: ../../samples/irs-demo/cordapp/src/main/kotlin/net/corda/irs/flows/FixingFlow.kt +.. literalinclude:: ../../samples/irs-demo/cordapp/workflows-irs/src/main/kotlin/net.corda.irs/flows/FixingFlow.kt :language: kotlin :start-after: DOCSTART 1 :end-before: DOCEND 1 @@ -276,10 +276,10 @@ containing your oracle service. You can then write tests on your mock network to verify the nodes interact with your Oracle correctly. -.. literalinclude:: ../../samples/irs-demo/cordapp/src/test/kotlin/net/corda/irs/api/OracleNodeTearOffTests.kt +.. literalinclude:: ../../samples/irs-demo/cordapp/workflows-irs/src/test/kotlin/net/corda/irs/api/OracleNodeTearOffTests.kt :language: kotlin :start-after: DOCSTART 2 :end-before: DOCEND 2 :dedent: 4 -See `here `_ for more examples. +See `here `_ for more examples. diff --git a/docs/source/quickstart-index.rst b/docs/source/quickstart-index.rst index af01a37576..3b3abb4382 100644 --- a/docs/source/quickstart-index.rst +++ b/docs/source/quickstart-index.rst @@ -16,86 +16,86 @@ I want to: Learn about Corda for the first time ------------------------------------ -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| Useful links | Description | -+============================================+=========================================================================================================+ -| :doc:`key-concepts` | The key concepts and features of the Corda Platform | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`getting-set-up` | Set up your machine for running and developing CorDapps | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`tutorial-cordapp` | A guide to running a simple CorDapp | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| Useful links | Description | ++============================================+============================================================================================+ +| :doc:`key-concepts` | The key concepts and features of the Corda Platform | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| :doc:`getting-set-up` | Set up your machine for running and developing CorDapps | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| :doc:`tutorial-cordapp` | A guide to running a simple CorDapp | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ .. _quickstart-develop: Develop a CorDapp ----------------- -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| Useful links | Description | -+============================================+=========================================================================================================+ -| :doc:`hello-world-introduction` | A coding walk-through of a basic CorDapp | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`cordapp-overview` | An introduction to CordApps | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`writing-a-cordapp` | How to structure a CorDapp project | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`cordapp-build-systems` | How to build a CorDapp | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`corda-api` | A guide to the CorDapp API | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| Useful links | Description | ++============================================+============================================================================================+ +| :doc:`hello-world-introduction` | A coding walk-through of a basic CorDapp | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| :doc:`cordapp-overview` | An introduction to CordApps | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| :doc:`writing-a-cordapp` | How to structure a CorDapp project | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| :doc:`cordapp-build-systems` | How to build a CorDapp | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| :doc:`corda-api` | A guide to the CorDapp API | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ .. _quickstart-run: Run and test a CorDapp on local Corda network --------------------------------------------- -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| Useful links | Description | -+============================================+=========================================================================================================+ -| :doc:`generating-a-node` | Guidance on creating Corda nodes for development and testing locally and on Docker | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`node-structure` | The Corda node folder structure and how to name your node | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`corda-configuration-file` | A detailed description of the Corda node configuration file with examples | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`running-a-node` | Guidance on running Corda nodes locally and on Docker | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`setting-up-a-corda-network` | Considerations for setting up a Corda network | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`shell` | Guidance on using an embedded command line to control and monitor a node | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`node-administration` | How to monitor a Corda node using an RPC interface | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`node-explorer` | A GUI-based tool to view transactional data and transactional history for a node | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ ++------------------------------------------------+----------------------------------------------------------------------------------------+ +| Useful links | Description | ++================================================+========================================================================================+ +| :doc:`generating-a-node` | Guidance on creating Corda nodes for development and testing locally and on Docker | ++------------------------------------------------+----------------------------------------------------------------------------------------+ +| :doc:`node-structure` | The Corda node folder structure and how to name your node | ++------------------------------------------------+----------------------------------------------------------------------------------------+ +| :doc:`corda-configuration-file` | A detailed description of the Corda node configuration file with examples | ++------------------------------------------------+----------------------------------------------------------------------------------------+ +| :doc:`running-a-node` | Guidance on running Corda nodes locally and on Docker | ++------------------------------------------------+----------------------------------------------------------------------------------------+ +| :doc:`setting-up-a-dynamic-compatibility-zone` | Considerations for setting up a Corda network | ++------------------------------------------------+----------------------------------------------------------------------------------------+ +| :doc:`shell` | Guidance on using an embedded command line to control and monitor a node | ++------------------------------------------------+----------------------------------------------------------------------------------------+ +| :doc:`node-administration` | How to monitor a Corda node using an RPC interface | ++------------------------------------------------+----------------------------------------------------------------------------------------+ +| :doc:`node-explorer` | A GUI-based tool to view transactional data and transactional history for a node | ++------------------------------------------------+----------------------------------------------------------------------------------------+ .. _quickstart-add: Add a node to an existing test Corda network -------------------------------------------- -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| Useful links | Description | -+============================================+=========================================================================================================+ -| :doc:`node-structure` | The Corda node folder structure and how to name your node | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`corda-configuration-file` | A detailed description of the Corda node configuration file with examples | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`deploying-a-node` | A step-by-step guide on deploying a Corda node to your own server | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`azure-vm` | A step-by-step guide on creating a Corda Network on Azure | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`aws-vm` | A step-by-step guide on creating a Corda Network on AWS | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`shell` | Guidance on using an embedded command line to control and monitor a node | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`node-administration` | How to monitor a Corda node using an RPC interface | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`node-explorer` | A GUI-based tool to view transactional data and transactional history for a node | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :doc:`blob-inspector` | A troubleshooting tool allowing you to read the contents of a binary blob file | -+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| Useful links | Description | ++============================================+============================================================================================+ +| :doc:`node-structure` | The Corda node folder structure and how to name your node | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| :doc:`corda-configuration-file` | A detailed description of the Corda node configuration file with examples | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| :doc:`deploying-a-node` | A step-by-step guide on deploying a Corda node to your own server | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| :doc:`azure-vm` | A step-by-step guide on creating a Corda Network on Azure | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| :doc:`aws-vm` | A step-by-step guide on creating a Corda Network on AWS | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| :doc:`shell` | Guidance on using an embedded command line to control and monitor a node | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| :doc:`node-administration` | How to monitor a Corda node using an RPC interface | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| :doc:`node-explorer` | A GUI-based tool to view transactional data and transactional history for a node | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ +| :doc:`blob-inspector` | A troubleshooting tool allowing you to read the contents of a binary blob file | ++--------------------------------------------+--------------------------------------------------------------------------------------------+ .. _quickstart-production: diff --git a/docs/source/tutorial-custom-notary.rst b/docs/source/tutorial-custom-notary.rst index cf7b78a0ff..4c96751a3e 100644 --- a/docs/source/tutorial-custom-notary.rst +++ b/docs/source/tutorial-custom-notary.rst @@ -11,7 +11,7 @@ This will ensure that it is recognised as a notary service. The custom notary service class should provide a constructor with two parameters of types ``ServiceHubInternal`` and ``PublicKey``. Note that ``ServiceHubInternal`` does not provide any API stability guarantees. -.. literalinclude:: ../../samples/notary-demo/src/main/kotlin/net/corda/notarydemo/MyCustomNotaryService.kt +.. literalinclude:: ../../samples/notary-demo/workflows/src/main/kotlin/net/corda/notarydemo/MyCustomNotaryService.kt :language: kotlin :start-after: START 1 :end-before: END 1 @@ -20,7 +20,7 @@ The next step is to write a notary service flow. You are free to copy and modify as ``ValidatingNotaryFlow``, ``NonValidatingNotaryFlow``, or implement your own from scratch (following the ``NotaryFlow.Service`` template). Below is an example of a custom flow for a *validating* notary service: -.. literalinclude:: ../../samples/notary-demo/src/main/kotlin/net/corda/notarydemo/MyCustomNotaryService.kt +.. literalinclude:: ../../samples/notary-demo/workflows/src/main/kotlin/net/corda/notarydemo/MyCustomNotaryService.kt :language: kotlin :start-after: START 2 :end-before: END 2 diff --git a/docs/source/tutorial-observer-nodes.rst b/docs/source/tutorial-observer-nodes.rst index 9d3cdcfe75..3e70892897 100644 --- a/docs/source/tutorial-observer-nodes.rst +++ b/docs/source/tutorial-observer-nodes.rst @@ -17,7 +17,7 @@ Just define a new flow that wraps the SendTransactionFlow/ReceiveTransactionFlow .. container:: codeset - .. literalinclude:: ../../samples/irs-demo/cordapp/src/main/kotlin/net/corda/irs/flows/AutoOfferFlow.kt + .. literalinclude:: ../../samples/irs-demo/cordapp/workflows-irs/src/main/kotlin/net.corda.irs/flows/AutoOfferFlow.kt :language: kotlin :start-after: DOCSTART 1 :end-before: DOCEND 1 diff --git a/docs/source/tutorial-tear-offs.rst b/docs/source/tutorial-tear-offs.rst index 926c552293..b850ccb5f9 100644 --- a/docs/source/tutorial-tear-offs.rst +++ b/docs/source/tutorial-tear-offs.rst @@ -49,7 +49,7 @@ transaction components is exactly the same. Note that unlike ``WireTransaction`` The following code snippet is taken from ``NodeInterestRates.kt`` and implements a signing part of an Oracle. -.. literalinclude:: ../../samples/irs-demo/cordapp/src/main/kotlin/net/corda/irs/api/NodeInterestRates.kt +.. literalinclude:: ../../samples/irs-demo/cordapp/workflows-irs/src/main/kotlin/net.corda.irs/api/NodeInterestRates.kt :language: kotlin :start-after: DOCSTART 1 :end-before: DOCEND 1 diff --git a/samples/irs-demo/cordapp/workflows-irs/src/test/kotlin/net/corda/irs/api/OracleNodeTearOffTests.kt b/samples/irs-demo/cordapp/workflows-irs/src/test/kotlin/net/corda/irs/api/OracleNodeTearOffTests.kt index 93ccb99ff6..e77a092913 100644 --- a/samples/irs-demo/cordapp/workflows-irs/src/test/kotlin/net/corda/irs/api/OracleNodeTearOffTests.kt +++ b/samples/irs-demo/cordapp/workflows-irs/src/test/kotlin/net/corda/irs/api/OracleNodeTearOffTests.kt @@ -68,7 +68,7 @@ class OracleNodeTearOffTests { mockNet.stopNodes() } - // DOCSTART 1 + // DOCSTART 2 @Test fun `verify that the oracle signs the transaction if the interest rate within allowed limit`() { // Create a partial transaction @@ -93,7 +93,7 @@ class OracleNodeTearOffTests { // Check that the transaction has been signed by the oracle assertContains(fix.signers, oracle.owningKey) } - // DOCEND 1 + // DOCEND 2 @Test fun `verify that the oracle rejects the transaction if the interest rate is outside the allowed limit`() {