// This file is @generated by prost-build.
/// ESDigitalToken holds the data for a electronic standard digital token transaction
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EsDigitalToken {
    #[prost(uint32, tag = "1")]
    pub r#type: u32,
    #[prost(bytes = "bytes", tag = "2")]
    pub value: ::prost::bytes::Bytes,
    #[prost(bytes = "bytes", tag = "3")]
    pub properties: ::prost::bytes::Bytes,
    #[prost(message, optional, tag = "4")]
    pub token_meta_data: ::core::option::Option<MetaData>,
    #[prost(bytes = "bytes", tag = "5")]
    pub reserved: ::prost::bytes::Bytes,
}
/// ESDTRoles holds the roles for a given token and the given address
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EsdtRoles {
    #[prost(bytes = "bytes", repeated, tag = "1")]
    pub roles: ::prost::alloc::vec::Vec<::prost::bytes::Bytes>,
}
/// MetaData hold the metadata structure for the ESDT token
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MetaData {
    #[prost(uint64, tag = "1")]
    pub nonce: u64,
    #[prost(bytes = "bytes", tag = "2")]
    pub name: ::prost::bytes::Bytes,
    #[prost(bytes = "bytes", tag = "3")]
    pub creator: ::prost::bytes::Bytes,
    #[prost(uint32, tag = "4")]
    pub royalties: u32,
    #[prost(bytes = "bytes", tag = "5")]
    pub hash: ::prost::bytes::Bytes,
    #[prost(bytes = "bytes", repeated, tag = "6")]
    pub ur_is: ::prost::alloc::vec::Vec<::prost::bytes::Bytes>,
    #[prost(bytes = "bytes", tag = "7")]
    pub attributes: ::prost::bytes::Bytes,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MetaDataVersion {
    #[prost(uint64, tag = "1")]
    pub name: u64,
    #[prost(uint64, tag = "2")]
    pub creator: u64,
    #[prost(uint64, tag = "3")]
    pub royalties: u64,
    #[prost(uint64, tag = "4")]
    pub hash: u64,
    #[prost(uint64, tag = "5")]
    pub ur_is: u64,
    #[prost(uint64, tag = "6")]
    pub attributes: u64,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Guardian {
    #[prost(bytes = "bytes", tag = "1")]
    pub address: ::prost::bytes::Bytes,
    #[prost(uint32, tag = "2")]
    pub activation_epoch: u32,
    #[prost(bytes = "bytes", tag = "3")]
    pub service_uid: ::prost::bytes::Bytes,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Guardians {
    #[prost(message, repeated, tag = "1")]
    pub slice: ::prost::alloc::vec::Vec<Guardian>,
}
