nxt.blockchain

## Class FxtTransactionType

- java.lang.Object
- - nxt.blockchain.TransactionType
  - - nxt.blockchain.FxtTransactionType

- Direct Known Subclasses:
    AccountControlFxtTransactionType, ChildBlockFxtTransactionType, CoinExchangeFxtTransactionType, PaymentFxtTransactionType

      public abstract class FxtTransactionType
      extends TransactionType

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static byte` | `SUBTYPE_ACCOUNT_CONTROL_EFFECTIVE_BALANCE_LEASING`
    `protected static byte` | `SUBTYPE_CHILDCHAIN_BLOCK`
    `protected static byte` | `SUBTYPE_PAYMENT_ORDINARY_PAYMENT`
    `protected static byte` | `TYPE_ACCOUNT_CONTROL`
    `protected static byte` | `TYPE_CHILDCHAIN_BLOCK`
    `protected static byte` | `TYPE_COIN_EXCHANGE`
    `protected static byte` | `TYPE_PAYMENT`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FxtTransactionType()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `apply(TransactionImpl transaction, Account senderAccount, Account recipientAccount)`
    `protected abstract void` | `applyAttachment(FxtTransactionImpl transaction, Account senderAccount, Account recipientAccount)`
    `void` | `applyAttachment(Transaction transaction, Account senderAccount, Account recipientAccount)`
    `protected abstract boolean` | `applyAttachmentUnconfirmed(FxtTransactionImpl transaction, Account senderAccount)`
    `boolean` | `applyAttachmentUnconfirmed(Transaction transaction, Account senderAccount)`
    `boolean` | `applyUnconfirmed(TransactionImpl transaction, Account senderAccount)`
    `static TransactionType` | `findTransactionType(byte type, byte subtype)`
    `Fee` | `getBaselineFee(Transaction transaction)`
    `boolean` | `isGlobal()`
    `boolean` | `isPhasingSafe()`
    `protected abstract void` | `undoAttachmentUnconfirmed(FxtTransactionImpl transaction, Account senderAccount)`
    `void` | `undoAttachmentUnconfirmed(Transaction transaction, Account senderAccount)`
    `void` | `undoUnconfirmed(TransactionImpl transaction, Account senderAccount)`
    `protected abstract void` | `validateAttachment(FxtTransactionImpl transaction)`
    `void` | `validateAttachment(Transaction transaction)`
    `protected void` | `validateId(FxtTransactionImpl transaction)`
    `protected void` | `validateId(Transaction transaction)`

    - ### Methods inherited from class nxt.blockchain.TransactionType

      `canHaveRecipient, getBaselineFeeHeight, getLedgerEvent, getName, getNextFee, getNextFeeHeight, getSubtype, getType, isBlockDuplicate, isDuplicate, isDuplicate, isDuplicate, isPhasable, isPruned, isUnconfirmedDuplicate, mustHaveRecipient, parseAttachment, parseAttachment, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### TYPE_CHILDCHAIN_BLOCK

          protected static final byte TYPE_CHILDCHAIN_BLOCK

      See Also:
        Constant Field Values

    - #### TYPE_PAYMENT

          protected static final byte TYPE_PAYMENT

      See Also:
        Constant Field Values

    - #### TYPE_ACCOUNT_CONTROL

          protected static final byte TYPE_ACCOUNT_CONTROL

      See Also:
        Constant Field Values

    - #### TYPE_COIN_EXCHANGE

          protected static final byte TYPE_COIN_EXCHANGE

      See Also:
        Constant Field Values

    - #### SUBTYPE_CHILDCHAIN_BLOCK

          protected static final byte SUBTYPE_CHILDCHAIN_BLOCK

      See Also:
        Constant Field Values

    - #### SUBTYPE_PAYMENT_ORDINARY_PAYMENT

          protected static final byte SUBTYPE_PAYMENT_ORDINARY_PAYMENT

      See Also:
        Constant Field Values

    - #### SUBTYPE_ACCOUNT_CONTROL_EFFECTIVE_BALANCE_LEASING

          protected static final byte SUBTYPE_ACCOUNT_CONTROL_EFFECTIVE_BALANCE_LEASING

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### FxtTransactionType

          public FxtTransactionType()

  - ### Method Detail

    - #### findTransactionType

          public static TransactionType findTransactionType(byte type,
                                                            byte subtype)

    - #### getBaselineFee

          public Fee getBaselineFee(Transaction transaction)

      Specified by:
        `getBaselineFee` in class `TransactionType`

    - #### applyUnconfirmed

          public final boolean applyUnconfirmed(TransactionImpl transaction,
                                                Account senderAccount)

      Specified by:
        `applyUnconfirmed` in class `TransactionType`

    - #### apply

          public final void apply(TransactionImpl transaction,
                                  Account senderAccount,
                                  Account recipientAccount)

      Specified by:
        `apply` in class `TransactionType`

    - #### undoUnconfirmed

          public final void undoUnconfirmed(TransactionImpl transaction,
                                            Account senderAccount)

      Specified by:
        `undoUnconfirmed` in class `TransactionType`

    - #### validateAttachment

          public final void validateAttachment(Transaction transaction)
                                        throws NxtException.ValidationException

      Specified by:
        `validateAttachment` in class `TransactionType`
      Throws:
        `NxtException.ValidationException`

    - #### validateAttachment

          protected abstract void validateAttachment(FxtTransactionImpl transaction)
                                              throws NxtException.ValidationException

      Throws:
        `NxtException.ValidationException`

    - #### validateId

          protected void validateId(Transaction transaction)
                             throws NxtException.ValidationException

      Specified by:
        `validateId` in class `TransactionType`
      Throws:
        `NxtException.ValidationException`

    - #### validateId

          protected void validateId(FxtTransactionImpl transaction)
                             throws NxtException.ValidationException

      Throws:
        `NxtException.ValidationException`

    - #### applyAttachmentUnconfirmed

          public final boolean applyAttachmentUnconfirmed(Transaction transaction,
                                                          Account senderAccount)

      Specified by:
        `applyAttachmentUnconfirmed` in class `TransactionType`

    - #### applyAttachmentUnconfirmed

          protected abstract boolean applyAttachmentUnconfirmed(FxtTransactionImpl transaction,
                                                                Account senderAccount)

    - #### applyAttachment

          public final void applyAttachment(Transaction transaction,
                                            Account senderAccount,
                                            Account recipientAccount)

      Specified by:
        `applyAttachment` in class `TransactionType`

    - #### applyAttachment

          protected abstract void applyAttachment(FxtTransactionImpl transaction,
                                                  Account senderAccount,
                                                  Account recipientAccount)

    - #### undoAttachmentUnconfirmed

          public final void undoAttachmentUnconfirmed(Transaction transaction,
                                                      Account senderAccount)

      Specified by:
        `undoAttachmentUnconfirmed` in class `TransactionType`

    - #### undoAttachmentUnconfirmed

          protected abstract void undoAttachmentUnconfirmed(FxtTransactionImpl transaction,
                                                            Account senderAccount)

    - #### isPhasingSafe

          public final boolean isPhasingSafe()

      Specified by:
        `isPhasingSafe` in class `TransactionType`

    - #### isGlobal

          public final boolean isGlobal()

      Specified by:
        `isGlobal` in class `TransactionType`