nxt.ms

## Enum CurrencyType

- java.lang.Object
- - java.lang.Enum<CurrencyType>
  - - nxt.ms.CurrencyType

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<CurrencyType>

      public enum CurrencyType
      extends java.lang.Enum<CurrencyType>

  Define and validate currency capabilities

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant and Description
    `CLAIMABLE` Is `RESERVABLE` and can be claimed after currency is active Cannot be `EXCHANGEABLE`
    `CONTROLLABLE` Transfers are only allowed from/to issuer account Only issuer account can publish exchange offer
    `EXCHANGEABLE` Can be exchanged from/to coins
    `MINTABLE` Can be minted using proof of work algorithm
    `NON_SHUFFLEABLE` Several accounts can shuffle their currency units and then distributed to recipients
    `RESERVABLE` Can be reserved before the currency is active, reserve is distributed to founders once the currency becomes active

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static CurrencyType` | `get(int code)`
    `int` | `getCode()`
    `static void` | `validate(Currency currency, Transaction transaction)`
    `static CurrencyType` | `valueOf(java.lang.String name)` Returns the enum constant of this type with the specified name.
    `static CurrencyType[]` | `values()` Returns an array containing the constants of this enum type, in the order they are declared.

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

      `clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

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

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Enum Constant Detail

    - #### EXCHANGEABLE

          public static final CurrencyType EXCHANGEABLE

      Can be exchanged from/to coins

    - #### CONTROLLABLE

          public static final CurrencyType CONTROLLABLE

      Transfers are only allowed from/to issuer account
      Only issuer account can publish exchange offer

    - #### RESERVABLE

          public static final CurrencyType RESERVABLE

      Can be reserved before the currency is active, reserve is distributed to founders once the currency becomes active

    - #### CLAIMABLE

          public static final CurrencyType CLAIMABLE

      Is `RESERVABLE` and can be claimed after currency is active
      Cannot be `EXCHANGEABLE`

    - #### MINTABLE

          public static final CurrencyType MINTABLE

      Can be minted using proof of work algorithm

    - #### NON_SHUFFLEABLE

          public static final CurrencyType NON_SHUFFLEABLE

      Several accounts can shuffle their currency units and then distributed to recipients

  - ### Method Detail

    - #### values

          public static CurrencyType[] values()

      Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

          for (CurrencyType c : CurrencyType.values())
              System.out.println(c);

      Returns:
        an array containing the constants of this enum type, in the order they are declared

    - #### valueOf

          public static CurrencyType valueOf(java.lang.String name)

      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
        `name` - the name of the enum constant to be returned.
      Returns:
        the enum constant with the specified name
      Throws:
        `java.lang.IllegalArgumentException` - if this enum type has no constant with the specified name
        `java.lang.NullPointerException` - if the argument is null

    - #### getCode

          public int getCode()

    - #### get

          public static CurrencyType get(int code)

    - #### validate

          public static void validate(Currency currency,
                                      Transaction transaction)
                               throws NxtException.ValidationException

      Throws:
        `NxtException.ValidationException`