net.corda.core.contracts

## Class TransactionType

- net.corda.core.contracts.TransactionType

- Direct Known Subclasses:
    TransactionType.General, TransactionType.NotaryChange

      public class TransactionType

  Defines transaction build & validation logic for a specific transaction type

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `TransactionType.General` A general transaction type where transaction validity is determined by custom contract code
    `static class` | `TransactionType.NotaryChange` A special transaction type for reassigning a notary for a state. Validation does not involve running any contract code, it just checks that the states are unmodified apart from the notary field.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(java.lang.Object other)`
    `java.util.Set<net.corda.core.crypto.CompositeKey>` | `getRequiredSigners(LedgerTransaction tx)` Return the list of public keys that that require signatures for the transaction type. Note: the notary key is checked separately for all transactions and need not be included.
    `int` | `hashCode()`
    `void` | `verify(LedgerTransaction tx)` Check that the transaction is valid based on:
    `java.util.Set<net.corda.core.crypto.CompositeKey>` | `verifySigners(LedgerTransaction tx)` Check that the list of signers includes all the necessary keys
    `void` | `verifyTransaction(LedgerTransaction tx)` Implement type specific transaction validation logic

- - ### Method Detail

    - #### equals

          public boolean equals(java.lang.Object other)

    - #### hashCode

          public int hashCode()

    - #### verify

          public void verify(LedgerTransaction tx)

      Check that the transaction is valid based on:

      - General platform rules

      - Rules for the specific transaction type

      Note: Presence of signatures is not checked, only the public keys to be signed for.

    - #### verifySigners

          public java.util.Set<net.corda.core.crypto.CompositeKey> verifySigners(LedgerTransaction tx)

      Check that the list of signers includes all the necessary keys

    - #### getRequiredSigners

          public java.util.Set<net.corda.core.crypto.CompositeKey> getRequiredSigners(LedgerTransaction tx)

      Return the list of public keys that that require signatures for the transaction type. Note: the notary key is checked separately for all transactions and need not be included.

    - #### verifyTransaction

          public void verifyTransaction(LedgerTransaction tx)

      Implement type specific transaction validation logic