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.
Modifier and Type | Class and Description |
---|---|
static class |
ContractUpgradeLedgerTransaction.Companion |
TransactionWithSignatures.DefaultImpls
Modifier and Type | Field and Description |
---|---|
static ContractUpgradeLedgerTransaction.Companion |
Companion |
Constructor and Description |
---|
ContractUpgradeLedgerTransaction(java.util.List<? extends net.corda.core.contracts.StateAndRef<? extends net.corda.core.contracts.ContractState>> inputs,
Party notary,
Attachment legacyContractAttachment,
java.lang.String upgradedContractClassName,
Attachment upgradedContractAttachment,
SecureHash id,
PrivacySalt privacySalt,
java.util.List<net.corda.core.crypto.TransactionSignature> sigs,
NetworkParameters networkParameters)
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
java.util.List<net.corda.core.contracts.StateAndRef> |
component1() |
Party |
component2() |
Attachment |
component3() |
java.lang.String |
component4() |
Attachment |
component5() |
SecureHash |
component6() |
PrivacySalt |
component7() |
java.util.List<net.corda.core.crypto.TransactionSignature> |
component8() |
NetworkParameters |
component9() |
ContractUpgradeLedgerTransaction |
copy(java.util.List<? extends net.corda.core.contracts.StateAndRef<? extends net.corda.core.contracts.ContractState>> inputs,
Party notary,
Attachment legacyContractAttachment,
java.lang.String upgradedContractClassName,
Attachment upgradedContractAttachment,
SecureHash id,
PrivacySalt privacySalt,
java.util.List<net.corda.core.crypto.TransactionSignature> sigs,
NetworkParameters networkParameters)
Deprecated.
|
boolean |
equals(java.lang.Object other) |
SecureHash |
getId() |
java.util.List<net.corda.core.contracts.StateAndRef> |
getInputs()
The inputs of this transaction.
|
java.util.List<java.lang.String> |
getKeyDescriptions(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.
|
Attachment |
getLegacyContractAttachment() |
NetworkParameters |
getNetworkParameters()
Network parameters that were in force when this transaction was created.
|
Party |
getNotary()
If present,
|
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.
|
PrivacySalt |
getPrivacySalt() |
java.util.List<net.corda.core.contracts.StateAndRef> |
getReferences()
ContractUpgradeLedgerTransactions do not contain reference input states.
|
java.util.Set<java.security.PublicKey> |
getRequiredSigningKeys()
The required signers are the set of all input states' participants.
|
java.util.List<net.corda.core.crypto.TransactionSignature> |
getSigs()
List of signatures on this transaction.
|
Attachment |
getUpgradedContractAttachment() |
java.lang.String |
getUpgradedContractClassName() |
int |
hashCode() |
java.lang.String |
toString() |
checkBaseInvariants, checkNotaryWhitelisted, getInputs, getNetworkParameters, getReferences
checkBaseInvariants, filterOutRefs, filterOutputs, findOutRef, findOutput, getInputs, getNotary, getOutput, getOutputStates, getOutputs, getReferences, outRef, outRef, outRefsOfType, outputsOfType, toString
checkSignaturesAreValid, getKeyDescriptions, getMissingSigners, getRequiredSigningKeys, getSigs, verifyRequiredSignatures, verifySignaturesExcept, verifySignaturesExcept
getId
public static ContractUpgradeLedgerTransaction.Companion Companion
public ContractUpgradeLedgerTransaction(java.util.List<? extends net.corda.core.contracts.StateAndRef<? extends net.corda.core.contracts.ContractState>> inputs, Party notary, Attachment legacyContractAttachment, java.lang.String upgradedContractClassName, Attachment upgradedContractAttachment, SecureHash id, PrivacySalt privacySalt, java.util.List<net.corda.core.crypto.TransactionSignature> sigs, NetworkParameters networkParameters)
public java.util.List<net.corda.core.contracts.StateAndRef> getReferences()
ContractUpgradeLedgerTransactions do not contain reference input states.
public java.lang.String getUpgradedContractClassName()
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.
public java.util.Set<java.security.PublicKey> getRequiredSigningKeys()
The required signers are the set of all input states' participants.
public java.util.List<java.lang.String> getKeyDescriptions(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.
public java.util.List<net.corda.core.contracts.StateAndRef> component1()
public Party component2()
public Attachment component3()
public java.lang.String component4()
public Attachment component5()
public SecureHash component6()
public PrivacySalt component7()
public java.util.List<net.corda.core.crypto.TransactionSignature> component8()
public NetworkParameters component9()
public boolean equals(java.lang.Object other)
public int hashCode()
public java.lang.String toString()
public ContractUpgradeLedgerTransaction copy(java.util.List<? extends net.corda.core.contracts.StateAndRef<? extends net.corda.core.contracts.ContractState>> inputs, Party notary, Attachment legacyContractAttachment, java.lang.String upgradedContractClassName, Attachment upgradedContractAttachment, SecureHash id, PrivacySalt privacySalt, java.util.List<net.corda.core.crypto.TransactionSignature> sigs, NetworkParameters networkParameters)
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!
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.
public Attachment getLegacyContractAttachment()
public Attachment getUpgradedContractAttachment()
public SecureHash getId()
public PrivacySalt getPrivacySalt()
public java.util.List<net.corda.core.crypto.TransactionSignature> getSigs()
List of signatures on this transaction.
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.