#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(unused_imports)]
#![allow(dead_code)]
#![allow(unused_variables)]
#![allow(clippy::unnecessary_cast)]
use crate::*;
use core::option::Option;
use core::ops::{Deref, DerefMut};
use xdrs::*;
#[cfg(feature = "serde")]
use ::serde::{{Serialize, Deserialize}};
pub type ContractSpecString = StringM;
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct ContractSpecId {
pub crate_name: ContractSpecString,
pub major: ContractSpecString,
pub module_path: ContractSpecString,
pub declared: ContractSpecString,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct ContractArrayType {
pub element: Box<ContractType>,
pub len: u32,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct ContractVectorType {
pub element: Box<ContractType>,
pub max_len: u32,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "serde", serde(transparent))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[derive(Copy)]
#[repr(transparent)]
pub struct ContractTypeKind(pub i32);
impl ContractTypeKind {
pub const Void: Self = Self(0);
pub const Bool: Self = Self(1);
pub const U32: Self = Self(2);
pub const I32: Self = Self(3);
pub const U64: Self = Self(4);
pub const I64: Self = Self(5);
pub const U128: Self = Self(6);
pub const I128: Self = Self(7);
pub const String: Self = Self(8);
pub const Bytes: Self = Self(9);
pub const Address: Self = Self(10);
pub const Option: Self = Self(11);
pub const Vector: Self = Self(12);
pub const Tuple: Self = Self(13);
pub const Named: Self = Self(14);
pub const U8: Self = Self(15);
pub const Array: Self = Self(16);
pub const SignedToken: Self = Self(17);
pub const U256: Self = Self(18);
pub const I256: Self = Self(19);
}
impl From<i32> for ContractTypeKind {
fn from(v: i32) -> Self {
Self(v)
}
}
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[repr(i32)]
#[non_exhaustive]
pub enum ContractType {
Void = ContractTypeKind::Void.0 as i32,
Bool = ContractTypeKind::Bool.0 as i32,
U32 = ContractTypeKind::U32.0 as i32,
I32 = ContractTypeKind::I32.0 as i32,
U64 = ContractTypeKind::U64.0 as i32,
I64 = ContractTypeKind::I64.0 as i32,
U128 = ContractTypeKind::U128.0 as i32,
I128 = ContractTypeKind::I128.0 as i32,
String = ContractTypeKind::String.0 as i32,
Bytes = ContractTypeKind::Bytes.0 as i32,
Address = ContractTypeKind::Address.0 as i32,
Option { option_inner: Box<ContractType> } = ContractTypeKind::Option.0 as i32,
Vector { vector: ContractVectorType } = ContractTypeKind::Vector.0 as i32,
Tuple { tuple: VecM<ContractType> } = ContractTypeKind::Tuple.0 as i32,
Named { named: ContractSpecId } = ContractTypeKind::Named.0 as i32,
U8 = ContractTypeKind::U8.0 as i32,
Array { array: ContractArrayType } = ContractTypeKind::Array.0 as i32,
SignedToken { signed_token_preimage: ContractSignedTokenPreimage } = ContractTypeKind::SignedToken.0 as i32,
U256 = ContractTypeKind::U256.0 as i32,
I256 = ContractTypeKind::I256.0 as i32,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct ContractSignedTokenPreimage {
pub preimage_type: Option<Box<ContractType>>,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct ContractExceptionType {
pub selector: u64,
pub ty: ContractType,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct ContractField {
pub name: ContractSpecString,
pub ty: ContractType,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "serde", serde(transparent))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[derive(Copy)]
#[repr(transparent)]
pub struct ContractMethodEffect(pub i32);
impl ContractMethodEffect {
pub const EffectPure: Self = Self(1);
pub const EffectReadOnly: Self = Self(2);
pub const EffectStateChanging: Self = Self(3);
}
impl From<i32> for ContractMethodEffect {
fn from(v: i32) -> Self {
Self(v)
}
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct ContractSpecMethod {
pub name: ContractSpecString,
pub args: VecM<ContractField>,
pub return_type: ContractType,
pub effect: Option<ContractMethodEffect>,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct ContractSpecInterface {
pub name: ContractSpecString,
pub vers: ContractSpecString,
pub throws: VecM<ContractExceptionType>,
pub methods: VecM<ContractSpecMethod>,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct ContractStructDef {
pub name: ContractSpecId,
pub fields: VecM<ContractField>,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct ContractEnumVariant {
pub name: ContractSpecString,
pub value: i32,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct ContractEnumDef {
pub name: ContractSpecId,
pub variants: VecM<ContractEnumVariant>,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "serde", serde(transparent))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[derive(Copy)]
#[repr(transparent)]
pub struct ContractUnionCaseKind(pub i32);
impl ContractUnionCaseKind {
pub const UnionCaseVoid: Self = Self(0);
pub const UnionCaseTuple: Self = Self(1);
pub const UnionCaseStruct: Self = Self(2);
}
impl From<i32> for ContractUnionCaseKind {
fn from(v: i32) -> Self {
Self(v)
}
}
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[repr(i32)]
#[non_exhaustive]
pub enum ContractUnionCaseType {
UnionCaseVoid = ContractUnionCaseKind::UnionCaseVoid.0 as i32,
UnionCaseTuple { tuple: VecM<ContractType> } = ContractUnionCaseKind::UnionCaseTuple.0 as i32,
UnionCaseStruct { struct_fields: VecM<ContractField> } = ContractUnionCaseKind::UnionCaseStruct.0 as i32,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct ContractUnionCase {
pub name: ContractSpecString,
pub discriminant: i32,
pub case_type: ContractUnionCaseType,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct ContractUnionDef {
pub name: ContractSpecId,
pub cases: VecM<ContractUnionCase>,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "serde", serde(transparent))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[derive(Copy)]
#[repr(transparent)]
pub struct ContractTypeDefKind(pub i32);
impl ContractTypeDefKind {
pub const TypeDefStruct: Self = Self(0);
pub const TypeDefEnum: Self = Self(1);
pub const TypeDefUnion: Self = Self(2);
}
impl From<i32> for ContractTypeDefKind {
fn from(v: i32) -> Self {
Self(v)
}
}
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[repr(i32)]
#[non_exhaustive]
pub enum ContractTypeDef {
TypeDefStruct { struct_def: ContractStructDef } = ContractTypeDefKind::TypeDefStruct.0 as i32,
TypeDefEnum { enum_def: ContractEnumDef } = ContractTypeDefKind::TypeDefEnum.0 as i32,
TypeDefUnion { union_def: ContractUnionDef } = ContractTypeDefKind::TypeDefUnion.0 as i32,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct ContractEventDef {
pub name: ContractSpecId,
pub signature: Topic,
pub topics: VecM<ContractField>,
pub fields: VecM<ContractField>,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct ContractSpec {
pub interfaces: VecM<ContractSpecInterface>,
pub type_defs: VecM<ContractTypeDef>,
pub events: VecM<ContractEventDef>,
}
impl ContractType {
#[allow(clippy::match_single_binding)]
pub fn v(&self) -> ContractTypeKind {
match self {
_ => (unsafe { *(self as *const Self as *const i32) }).into(),
}
}
}
impl ContractUnionCaseType {
#[allow(clippy::match_single_binding)]
pub fn v(&self) -> ContractUnionCaseKind {
match self {
_ => (unsafe { *(self as *const Self as *const i32) }).into(),
}
}
}
impl ContractTypeDef {
#[allow(clippy::match_single_binding)]
pub fn v(&self) -> ContractTypeDefKind {
match self {
_ => (unsafe { *(self as *const Self as *const i32) }).into(),
}
}
}