public class ContractUpgradeLedgerTransaction extends FullTransaction implements TransactionWithSignatures
A contract upgrade transaction with fully resolved inputs and signatures. Contract upgrade transactions are separate to regular transactions because their validation logic is specialised; the original contract by definition cannot be aware of the upgraded contract (it was written after the original contract was developed), so its validation logic cannot succeed. Instead alternative verification logic is used which verifies that the outputs correspond to the inputs after upgrading.
In contrast with a regular transaction, signatures are checked against the signers specified by input states' participants fields, so full resolution is needed for signature verification.
public static net.corda.core.transactions.ContractUpgradeLedgerTransaction.Companion Companion
@Deprecated public ContractUpgradeLedgerTransaction(@NotNull java.util.List<? extends net.corda.core.contracts.StateAndRef<? extends net.corda.core.contracts.ContractState>> inputs, @NotNull Party notary, @NotNull Attachment legacyContractAttachment, @NotNull java.lang.String upgradedContractClassName, @NotNull Attachment upgradedContractAttachment, @NotNull SecureHash id, @NotNull PrivacySalt privacySalt, @NotNull java.util.List<net.corda.core.crypto.TransactionSignature> sigs, @NotNull NetworkParameters networkParameters)
@NotNull public java.util.List<net.corda.core.contracts.StateAndRef> getReferences()
ContractUpgradeLedgerTransactions do not contain reference input states.
@NotNull public java.lang.String getUpgradedContractClassName()
@NotNull public java.util.List<net.corda.core.contracts.TransactionState> getOutputs()
Outputs are computed by running the contract upgrade logic on input states. This is done eagerly so that the transaction is verified during construction.
@NotNull public java.util.Set<java.security.PublicKey> getRequiredSigningKeys()
The required signers are the set of all input states' participants.
@NotNull public java.util.List<java.lang.String> getKeyDescriptions(@NotNull java.util.Set<? extends java.security.PublicKey> keys)
Get a human readable description of where signatures are required from, and are missing, to assist in debugging the underlying cause.
Note that the results should not be serialised, parsed or expected to remain stable between Corda versions.
@NotNull public java.util.List<net.corda.core.contracts.StateAndRef> component1()
@NotNull public Party component2()
@NotNull public Attachment component3()
@NotNull public java.lang.String component4()
@NotNull public Attachment component5()
@NotNull public SecureHash component6()
@NotNull public PrivacySalt component7()
@NotNull public java.util.List<net.corda.core.crypto.TransactionSignature> component8()
@NotNull public NetworkParameters component9()
public boolean equals(@Nullable java.lang.Object other)
public int hashCode()
@NotNull public java.lang.String toString()
@Deprecated @NotNull public ContractUpgradeLedgerTransaction copy(@NotNull java.util.List<? extends net.corda.core.contracts.StateAndRef<? extends net.corda.core.contracts.ContractState>> inputs, @NotNull Party notary, @NotNull Attachment legacyContractAttachment, @NotNull java.lang.String upgradedContractClassName, @NotNull Attachment upgradedContractAttachment, @NotNull SecureHash id, @NotNull PrivacySalt privacySalt, @NotNull java.util.List<net.corda.core.crypto.TransactionSignature> sigs, @NotNull NetworkParameters networkParameters)
@NotNull public java.util.List<net.corda.core.contracts.StateAndRef> getInputs()
The inputs of this transaction.
Note that in BaseTransaction subclasses the type of this list may change!
@NotNull public Party getNotary()
If present,
the notary for this transaction. If absent then the transaction is not notarised at all.This is intended for issuance/genesis transactions that don't consume any other states and thus can'tdouble spend anything.
@NotNull public Attachment getLegacyContractAttachment()
@NotNull public Attachment getUpgradedContractAttachment()
@NotNull public SecureHash getId()
@NotNull public PrivacySalt getPrivacySalt()
@NotNull public java.util.List<net.corda.core.crypto.TransactionSignature> getSigs()
List of signatures on this transaction.
checkSignaturesAreValid
,
verifyRequiredSignatures
@NotNull public NetworkParameters getNetworkParameters()
Network parameters that were in force when this transaction was created.
Resolved from the hash of network parameters on the correspondingwire transaction.