# AUTOGENERATED – DO NOT EDIT
from __future__ import annotations
from enum import IntEnum

class ExecutorVersion(IntEnum):
    """Protocol enum: ExecutorVersion"""
    V1 = 1
    V1SIGNATUREANCHORING = 2
    V1DOUBLEHASHENTRIES = 3
    V1HALT = 4
    V2 = 5
    V2BAIKONUR = 6
    V2VANDENBERG = 7
    V2JIUQUAN = 8
    VNEXT = 9

class PartitionType(IntEnum):
    """Protocol enum: PartitionType"""
    DIRECTORY = 1
    BLOCKVALIDATOR = 2
    BLOCKSUMMARY = 3
    BOOTSTRAP = 4

class DataEntryType(IntEnum):
    """Protocol enum: DataEntryType"""
    UNKNOWN = 0
    FACTOM = 1
    ACCUMULATE = 2
    DOUBLEHASH = 3

class ObjectType(IntEnum):
    """Protocol enum: ObjectType"""
    UNKNOWN = 0
    ACCOUNT = 1
    TRANSACTION = 2

class SignatureType(IntEnum):
    """Protocol enum: SignatureType"""
    UNKNOWN = 0
    LEGACYED25519 = 1
    ED25519 = 2
    RCD1 = 3
    RECEIPT = 4
    PARTITION = 5
    SET = 6
    REMOTE = 7
    BTC = 8
    BTCLEGACY = 9
    ETH = 10
    DELEGATED = 11
    INTERNAL = 12
    AUTHORITY = 13
    RSASHA256 = 14
    ECDSASHA256 = 15
    TYPEDDATA = 16

class KeyPageOperationType(IntEnum):
    """Protocol enum: KeyPageOperationType"""
    UNKNOWN = 0
    UPDATE = 1
    REMOVE = 2
    ADD = 3
    SETTHRESHOLD = 4
    UPDATEALLOWED = 5
    SETREJECTTHRESHOLD = 6
    SETRESPONSETHRESHOLD = 7

class AccountAuthOperationType(IntEnum):
    """Protocol enum: AccountAuthOperationType"""
    UNKNOWN = 0
    ENABLE = 1
    DISABLE = 2
    ADDAUTHORITY = 3
    REMOVEAUTHORITY = 4

class NetworkMaintenanceOperationType(IntEnum):
    """Protocol enum: NetworkMaintenanceOperationType"""
    UNKNOWN = 0
    PENDINGTRANSACTIONGC = 1

class TransactionMax(IntEnum):
    """Protocol enum: TransactionMax"""
    USER = 48
    SYNTHETIC = 95
    SYSTEM = 255

class TransactionType(IntEnum):
    """Protocol enum: TransactionType"""
    UNKNOWN = 0
    CREATEIDENTITY = 1
    CREATETOKENACCOUNT = 2
    SENDTOKENS = 3
    CREATEDATAACCOUNT = 4
    WRITEDATA = 5
    WRITEDATATO = 6
    ACMEFAUCET = 7
    CREATETOKEN = 8
    ISSUETOKENS = 9
    BURNTOKENS = 10
    CREATELITETOKENACCOUNT = 11
    CREATEKEYPAGE = 12
    CREATEKEYBOOK = 13
    ADDCREDITS = 14
    UPDATEKEYPAGE = 15
    LOCKACCOUNT = 16
    BURNCREDITS = 17
    TRANSFERCREDITS = 18
    UPDATEACCOUNTAUTH = 21
    UPDATEKEY = 22
    NETWORKMAINTENANCE = 46
    ACTIVATEPROTOCOLVERSION = 47
    REMOTE = 48
    SYNTHETICCREATEIDENTITY = 49
    SYNTHETICWRITEDATA = 50
    SYNTHETICDEPOSITTOKENS = 51
    SYNTHETICDEPOSITCREDITS = 52
    SYNTHETICBURNTOKENS = 53
    SYNTHETICFORWARDTRANSACTION = 54
    SYSTEMGENESIS = 96
    DIRECTORYANCHOR = 97
    BLOCKVALIDATORANCHOR = 98
    SYSTEMWRITEDATA = 99

    # Mixed-case aliases for backward compatibility
    CreateIdentity = CREATEIDENTITY
    CreateTokenAccount = CREATETOKENACCOUNT
    CreateDataAccount = CREATEDATAACCOUNT
    SendTokens = SENDTOKENS
    WriteData = WRITEDATA
    AddCredits = ADDCREDITS

class AccountType(IntEnum):
    """Protocol enum: AccountType"""
    UNKNOWN = 0
    ANCHORLEDGER = 1
    IDENTITY = 2
    TOKENISSUER = 3
    TOKENACCOUNT = 4
    LITETOKENACCOUNT = 5
    BLOCKLEDGER = 6
    KEYPAGE = 9
    KEYBOOK = 10
    DATAACCOUNT = 11
    LITEDATAACCOUNT = 12
    UNKNOWNSIGNER = 13
    SYSTEMLEDGER = 14
    LITEIDENTITY = 15
    SYNTHETICLEDGER = 16

class AllowedTransactionBit(IntEnum):
    """Protocol enum: AllowedTransactionBit"""
    UPDATEKEYPAGE = 1
    UPDATEACCOUNTAUTH = 2

class VoteType(IntEnum):
    """Protocol enum: VoteType"""
    ACCEPT = 0
    REJECT = 1
    ABSTAIN = 2
    SUGGEST = 3

class BookType(IntEnum):
    """Protocol enum: BookType"""
    NORMAL = 0
    VALIDATOR = 1
    OPERATOR = 2

__all__ = ["ExecutorVersion", "PartitionType", "DataEntryType", "ObjectType", "SignatureType", "KeyPageOperationType", "AccountAuthOperationType", "NetworkMaintenanceOperationType", "TransactionMax", "TransactionType", "AccountType", "AllowedTransactionBit", "VoteType", "BookType"]