diff --git a/gradle.properties b/gradle.properties index a955aa8ac0..039f7c3e0b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ cordaProductVersion = 5.2.0 # NOTE: update this each time this module contains a breaking change ## NOTE: currently this is a top level revision, so all API versions will line up, but this could be moved to ## a per module property in which case module versions can change independently. -cordaApiRevision = 10 +cordaApiRevision = 11 # Main kotlinVersion = 1.8.21 diff --git a/ledger/ledger-utxo/scans/corda-ledger-utxo-5.2.0.yaml b/ledger/ledger-utxo/scans/corda-ledger-utxo-5.2.0.yaml index b8e6f03588..4358a4184b 100644 --- a/ledger/ledger-utxo/scans/corda-ledger-utxo-5.2.0.yaml +++ b/ledger/ledger-utxo/scans/corda-ledger-utxo-5.2.0.yaml @@ -526,6 +526,16 @@ net.corda.v5.ledger.utxo.UtxoLedgerService: annotation: - NotNull type: net.corda.v5.application.messaging.FlowSession + verifyContract: + annotations: + - Suspendable + default: false + type: public abstract + returnType: void + params: + ledgerTransaction: + annotation: [] + type: net.corda.v5.ledger.utxo.transaction.UtxoLedgerTransaction net.corda.v5.ledger.utxo.VisibilityChecker: annotations: - DoNotImplement @@ -1623,6 +1633,13 @@ net.corda.v5.ledger.utxo.transaction.UtxoSignedTransaction: default: false type: public abstract returnType: net.corda.v5.ledger.utxo.transaction.UtxoLedgerTransaction + params: + inputStateAndRefs: + annotation: [] + type: java.util.List> + referenceStateAndRefs: + annotation: [] + type: java.util.List> net.corda.v5.ledger.utxo.transaction.UtxoTransactionBuilder: annotations: - DoNotImplement @@ -2017,10 +2034,10 @@ net.corda.v5.ledger.utxo.transaction.filtered.UtxoFilteredTransactionBuilder: type: public abstract returnType: net.corda.v5.ledger.utxo.transaction.filtered.UtxoFilteredTransactionBuilder params: - predicate: + indexes: annotation: - NotNull - type: java.util.function.Predicate + type: java.util.List withOutputStatesSize: annotations: - Suspendable diff --git a/ledger/ledger-utxo/src/main/java/net/corda/v5/ledger/utxo/UtxoLedgerService.java b/ledger/ledger-utxo/src/main/java/net/corda/v5/ledger/utxo/UtxoLedgerService.java index 890bcc1587..111869e74e 100644 --- a/ledger/ledger-utxo/src/main/java/net/corda/v5/ledger/utxo/UtxoLedgerService.java +++ b/ledger/ledger-utxo/src/main/java/net/corda/v5/ledger/utxo/UtxoLedgerService.java @@ -37,6 +37,14 @@ public interface UtxoLedgerService { @Suspendable UtxoTransactionBuilder createTransactionBuilder(); + /** + * Verifies {@link UtxoLedgerTransaction} in the notary server when using contract-verifying-notary. + * + * @param ledgerTransaction The {@link UtxoLedgerTransaction} to verify. + */ + @Suspendable + void verifyContract(UtxoLedgerTransaction ledgerTransaction); + /** * Resolves the specified {@link StateRef} instances into {@link StateAndRef} instances of the specified {@link ContractState} type. * diff --git a/ledger/ledger-utxo/src/main/java/net/corda/v5/ledger/utxo/transaction/UtxoSignedTransaction.java b/ledger/ledger-utxo/src/main/java/net/corda/v5/ledger/utxo/transaction/UtxoSignedTransaction.java index c85fe7721a..f46eb02476 100644 --- a/ledger/ledger-utxo/src/main/java/net/corda/v5/ledger/utxo/transaction/UtxoSignedTransaction.java +++ b/ledger/ledger-utxo/src/main/java/net/corda/v5/ledger/utxo/transaction/UtxoSignedTransaction.java @@ -121,4 +121,15 @@ public interface UtxoSignedTransaction extends TransactionWithMetadata { @NotNull @Suspendable UtxoLedgerTransaction toLedgerTransaction(); + + /** + * Converts the current {@link UtxoSignedTransaction} into a {@link UtxoLedgerTransaction}. + * + * @param inputStateAndRefs input state and state refs associated with the {@link UtxoSignedTransaction} + * @param referenceStateAndRefs reference state and state refs + * @return Returns a {@link UtxoLedgerTransaction} from the current {@link UtxoSignedTransaction}. + */ + @NotNull + @Suspendable + UtxoLedgerTransaction toLedgerTransaction(List> inputStateAndRefs, List> referenceStateAndRefs); } diff --git a/ledger/ledger-utxo/src/main/java/net/corda/v5/ledger/utxo/transaction/filtered/UtxoFilteredTransactionBuilder.java b/ledger/ledger-utxo/src/main/java/net/corda/v5/ledger/utxo/transaction/filtered/UtxoFilteredTransactionBuilder.java index 663cbbd8c5..bb9b123756 100644 --- a/ledger/ledger-utxo/src/main/java/net/corda/v5/ledger/utxo/transaction/filtered/UtxoFilteredTransactionBuilder.java +++ b/ledger/ledger-utxo/src/main/java/net/corda/v5/ledger/utxo/transaction/filtered/UtxoFilteredTransactionBuilder.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull; import java.security.PublicKey; +import java.util.List; import java.util.function.Predicate; /** @@ -178,6 +179,19 @@ public interface UtxoFilteredTransactionBuilder { @Suspendable UtxoFilteredTransactionBuilder withOutputStates(@NotNull Predicate predicate); + /** + * Includes an audit proof of the output state refs component group from a {@link UtxoSignedTransaction} in the + * current {@link UtxoFilteredTransaction}. + * + * @param indexes index of transaction to include its output to {@link UtxoFilteredTransaction} + * @return Returns the current {@link UtxoFilteredTransaction} including the filtered output state refs component + * group. + */ + @Suspendable + @NotNull + UtxoFilteredTransactionBuilder withOutputStates(@NotNull List indexes); + + /** * Includes a size proof of the commands component group from a {@link UtxoSignedTransaction} in the current * {@link UtxoFilteredTransaction}.