Filtered Transaction
Class representing merkleized filtered transaction.
Parameters
Merkle tree root hash.
list of transaction components groups remained after filters are applied to WireTransaction.
the roots of the transaction component groups.
Properties
Hashes of the ZIP/JAR files that are needed to interpret the contents of this wire transaction.
Returns a list of all the component groups that are present in the transaction, excluding the privacySalt, in the following order (which is the same with the order in ComponentGroupEnum:
Returns the attachments compatible with 4.11 and earlier. This may be empty, which means this transaction cannot be verified by a 4.11 node. On 4.12 and later these attachments are ignored.
Hash of the network parameters that were in force when the transaction was notarised. Null means, that the transaction was created on older version of Corda (before 4), resolution will default to initial parameters.
Ordered list of states defined by this transaction, along with the associated notaries.
Helper property to return a list of ContractState objects, rather than the often less convenient TransactionState
Pointers to reference states, identified by (tx identity hash, output index).
Functions
Function that checks if all of the components in a particular group are visible. This functionality is required on non-Validating Notaries to check that all inputs are visible. It might also be applied in Oracles or any other entity requiring Command visibility, but because this method cannot distinguish between related and unrelated to the signer Commands, one should use the checkCommandVisibility method, which is specifically designed for Command visibility purposes. The logic behind this algorithm is that we check that the root of the provided group partialMerkleTree matches with the root of a fullMerkleTree if computed using all visible components. Note that this method is usually called after or before verify, to also ensure that the provided partial Merkle tree corresponds to the correct leaf in the top Merkle tree.
Function that checks if all of the commands that should be signed by the input public key are visible. This functionality is required from Oracles to check that all of the commands they should sign are visible. This algorithm uses the ComponentGroupEnum.SIGNERS_GROUP to count how many commands should be signed by the input PublicKey and it then matches it with the size of received commands. Note that this method does not throw if there are no commands for this key to sign in the original WireTransaction.
Function that checks the whole filtered structure. Force type checking on a structure that we obtained, so we don't sign more than expected. Example: Oracle is implemented to check only for commands, if it gets an attachment and doesn't expect it - it can sign over a transaction with the attachment that wasn't verified. Of course it depends on how you implement it, but else -> false should solve a problem with possible later extensions to WireTransaction.
Helper to simplify filtering outputs according to a Predicate.
Helper to simplify filtering output StateAndRef items according to a Predicate.
Helper to simplify finding a single output matching a Predicate.
Helper to simplify finding a single output StateAndRef matching a Predicate.
Helper to simplify getting an indexed output.
Helper to simplify getting all output states of a particular class, interface, or base class.
Returns a StateAndRef for the given output index.
Returns a StateAndRef for the requested output state, or throws IllegalArgumentException if not found.
Helper to simplify getting all output StateAndRef items of a particular state class, interface, or base class.