xxxxxxxxxx
contract MyEnums {
enum Rarity {
original, // 0
rare, // 1
super_rare // 2
}
Rarity public rarity;
constructor() {
rarity = Rarity.rare;
}
function makeSuperRare() public {
rarity = Rarity.super_rare;
}
}
xxxxxxxxxx
enum EnumType { Value1, Value2, Value3 }
EnumType MyEnum;
MyEnum = EnumType.Value1;
// uint8(EnumType.Value1) => 0
// uint8(EnumType.Value2) => 1
// uint8(EnumType.Value3) => 2
xxxxxxxxxx
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
enum TransactionStatus {
pending,
failed,
success
}
contract EnumLifecyle {
string[] status = ["pending", "failed", "success"];
TransactionStatus constant failed = TransactionStatus.failed;
TransactionStatus success;
constructor() {
success = TransactionStatus.success;
}
function getStatusPending() public view returns (string memory) {
return status[uint(TransactionStatus.pending)];
}
function getStatusFailed() public view returns (string memory) {
return status[uint(failed)];
}
function getStatusSuccess() public view returns (string memory) {
return status[uint(success)];
}
}