Saltar al contenido principal

Generar errores de contrato

Hay varias formas de generar errores en los contratos.

Una forma son los tipos enum de error, que son definidos por los contratos y que asignan errores a valores enteros sin signo de 32 bits. Se pueden usar como valores de error en los tipos de retorno de funciones de contrato.

información

El ejemplo de errores demuestra cómo definir tus propios tipos de error.

Enumeraciones de errores

Los errores son un tipo especial de tipo enum entero que se almacenan en el libro mayor como valores Error que contienen un código u32.

#[contracterror]
#[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord)]
#[repr(u32)]
pub enum Error {
AnError = 1,
}

Cuando se convierten a XDR, el valor se convierte en un ScVal, que contiene un ScError, que contiene el valor entero del error como error de contrato.

{ "error": { "contractError": 1 } }