use lazy_static::lazy_static;
use std::collections::HashSet;
lazy_static! {
pub static ref INTERNAL_INDEXER_ENTITIES: HashSet<&'static str> = HashSet::from([
"IndexMetadataEntity",
]);
pub static ref ASREF_BYTE_TYPES: HashSet<&'static str> = HashSet::from([
"Address",
"AssetId",
"Blob",
"BlockId",
"Boolean",
"Bytes",
"Bytes20",
"Bytes32",
"Bytes4",
"Bytes64",
"Bytes8",
"Charfield",
"ContractId",
"HexString",
"Json",
"MessageId",
"Nonce",
"Option<Address>",
"Option<AssetId>",
"Option<Blob>",
"Option<BlockId>",
"Option<Boolean>",
"Option<Bytes>",
"Option<Bytes20>",
"Option<Bytes32>",
"Option<Bytes4>",
"Option<Bytes64>",
"Option<Bytes8>",
"Option<Charfield>",
"Option<ContractId>",
"Option<HexString>",
"Option<Json>",
"Option<MessageId>",
"Option<Nonce>",
"Option<Salt>",
"Option<Signature>",
"Option<UID>",
"Option<TxId>",
"Option<Virtual>",
"Salt",
"Signature",
"UID",
"TxId",
"Virtual",
]);
pub static ref EXTERNAL_FIELD_TYPES: HashSet<&'static str> = HashSet::from([
"Identity",
"Option<Identity>",
"Option<Tai64Timestamp>",
"Tai64Timestamp",
]);
pub static ref NON_DIGESTIBLE_FIELD_TYPES: HashSet<&'static str> = HashSet::from([
"Boolean",
"Identity"
]);
pub static ref IGNORED_ABI_JSON_TYPES: HashSet<&'static str> =
HashSet::from(["()"]);
pub static ref FUEL_RECEIPT_TYPES: HashSet<&'static str> = HashSet::from([
"Burn",
"Call",
"Log",
"LogData",
"MessageOut",
"Mint",
"Panic",
"Return",
"Revert",
"ScriptResult",
"Transfer",
"TransferOut",
]);
pub static ref COPY_TYPES: HashSet<&'static str> = HashSet::from([
"Blob",
"Charfield",
"HexString",
"ID",
"Identity",
"Json",
"Option<Blob>",
"Option<Charfield>",
"Option<HexString>",
"Option<ID>",
"Option<Identity>",
"Option<Json>",
"Option<UID>",
"Option<Virtual>",
"UID",
"Vec<FtColumn>",
"Virtual",
]);
pub static ref FUEL_PRIMITIVES: HashSet<&'static str> = HashSet::from([
"BlockData",
"Call",
"Log",
"LogData",
"MessageOut",
"Panic",
"Return",
"Revert",
"ScriptResult",
"Transfer",
"TransferOut",
"Mint",
"Burn",
]);
pub static ref RESERVED_TYPEDEF_NAMES: HashSet<&'static str> = HashSet::from([
"Address",
"AssetId",
"Blob",
"BlockHeight",
"BlockId",
"Boolean",
"Bytes",
"Bytes32",
"Bytes4",
"Bytes64",
"Bytes8",
"Charfield",
"Color",
"ContractId",
"HexString",
"ID",
"Identity",
"Int1",
"Int16",
"Int4",
"Int8",
"Json",
"MessageId",
"Nonce",
"Salt",
"Signature",
"Tai64Timestamp",
"Timestamp",
"TxId",
"UID",
"UInt1",
"UInt16",
"UInt4",
"UInt8",
"Virtual",
"BlockData",
"Burn",
"BytecodeLength",
"BytecodeWitnessIndex",
"Call",
"FieldTxPointer",
"GasLimit",
"GasPrice",
"Inputs",
"Log",
"Log",
"LogData",
"LogData",
"Maturity",
"MessageId",
"MessageOut",
"Mint",
"Outputs",
"Panic",
"ReceiptsRoot",
"Return",
"Revert",
"Script",
"ScriptData",
"ScriptResult",
"ScriptResult",
"StorageSlots",
"TransactionData",
"Transfer",
"Transfer",
"TransferOut",
"TransferOut",
"TxFieldSalt",
"TxFieldScript",
"TxId",
"Witnesses",
]);
pub static ref UNSUPPORTED_ABI_JSON_TYPES: HashSet<&'static str> = HashSet::from(["Vec"]);
pub static ref IGNORED_GENERIC_METADATA: HashSet<&'static str> = HashSet::from([
"generic T",
"raw untyped ptr",
"struct RawVec",
]);
pub static ref GENERIC_STRUCTS: HashSet<&'static str> = HashSet::from([
"Vec",
"Option"
]);
pub static ref RUST_PRIMITIVES: HashSet<&'static str> =
HashSet::from(["u8", "u16", "u32", "u64", "bool", "String"]);
}