diff --git a/core/src/main/kotlin/net/corda/core/contracts/Structures.kt b/core/src/main/kotlin/net/corda/core/contracts/Structures.kt index 911fb6283f..5786c62189 100644 --- a/core/src/main/kotlin/net/corda/core/contracts/Structures.kt +++ b/core/src/main/kotlin/net/corda/core/contracts/Structures.kt @@ -239,7 +239,9 @@ interface MoveCommand : CommandData { /** A [Command] where the signing parties have been looked up if they have a well known/recognised institutional key. */ @KeepForDJVM @CordaSerializable -data class CommandWithParties( +data class CommandWithParties + @ConstructorForDeserialization + constructor( val signers: List, /** If any public keys were recognised, the looked up institutions are available here */ @Deprecated("Should not be used in contract verification code as it is non-deterministic, will be disabled for some future target platform version onwards and will take effect only for CorDapps targeting those versions.") diff --git a/core/src/main/kotlin/net/corda/core/crypto/TransactionSignature.kt b/core/src/main/kotlin/net/corda/core/crypto/TransactionSignature.kt index a26139db1d..6905211a0f 100644 --- a/core/src/main/kotlin/net/corda/core/crypto/TransactionSignature.kt +++ b/core/src/main/kotlin/net/corda/core/crypto/TransactionSignature.kt @@ -1,6 +1,7 @@ package net.corda.core.crypto import net.corda.core.KeepForDJVM +import net.corda.core.serialization.ConstructorForDeserialization import net.corda.core.serialization.CordaSerializable import java.security.InvalidKeyException import java.security.PublicKey @@ -17,7 +18,9 @@ import java.util.* */ @CordaSerializable @KeepForDJVM -class TransactionSignature(bytes: ByteArray, val by: PublicKey, val signatureMetadata: SignatureMetadata, val partialMerkleTree: PartialMerkleTree?) : DigitalSignature(bytes) { +class TransactionSignature +@ConstructorForDeserialization +constructor(bytes: ByteArray, val by: PublicKey, val signatureMetadata: SignatureMetadata, val partialMerkleTree: PartialMerkleTree?) : DigitalSignature(bytes) { /** * Construct a [TransactionSignature] with [partialMerkleTree] set to null. * This is the recommended constructor when signing over a single transaction. diff --git a/core/src/main/kotlin/net/corda/core/transactions/SignedTransaction.kt b/core/src/main/kotlin/net/corda/core/transactions/SignedTransaction.kt index 7611814adb..c2abaa7d02 100644 --- a/core/src/main/kotlin/net/corda/core/transactions/SignedTransaction.kt +++ b/core/src/main/kotlin/net/corda/core/transactions/SignedTransaction.kt @@ -13,6 +13,7 @@ import net.corda.core.internal.VisibleForTesting import net.corda.core.node.NetworkParameters import net.corda.core.node.ServiceHub import net.corda.core.node.ServicesForResolution +import net.corda.core.serialization.ConstructorForDeserialization import net.corda.core.serialization.CordaSerializable import net.corda.core.serialization.SerializedBytes import net.corda.core.serialization.deserialize @@ -43,9 +44,9 @@ import java.util.function.Predicate // DOCSTART 1 @KeepForDJVM @CordaSerializable -data class SignedTransaction(val txBits: SerializedBytes, - override val sigs: List -) : TransactionWithSignatures { +data class SignedTransaction +@ConstructorForDeserialization +constructor(val txBits: SerializedBytes, override val sigs: List) : TransactionWithSignatures { // DOCEND 1 constructor(ctx: CoreTransaction, sigs: List) : this(ctx.serialize(), sigs) { cachedTransaction = ctx