Enumerations
We briefly touched on the concept of enumerations while discussing the layout of the Solidity file earlier in this chapter. Enums are value types comprising a pre-defined list of constant values. They are passed by values, and each copy maintains its own value. Enums cannot be declared within functions and are declared within the global namespace of a contract.
Predefined constants are assigned consecutively, increasing integer values starting from zero.
The following code snippet declares enum
, identified as a status consisting of five constant values – CREATED
, APPROVED
, PROVISIONED
, REJECTED
, and DELETED
. They have the 0
, 1
, 2
, 3
, 4
integer values assigned to them.
An instance of enum
named status
is created with an initial value of REJECTED
.
The getChoice
function returns the current status in terms of the enum
value. Note that web3
and Decentralized Applications (DApp) do not understand an enum
value declared within a contract. They will get an...