Generar errores de contrato
Hay varias maneras de generar errores en los contratos.
Una forma son los tipos de enumeración de errores, que son definidos por los contratos y que asignan errores a valores enteros sin signo de 32 bits. Son utilizables como valores de error en los tipos de retorno de las funciones del contrato.
información
El ejemplo de errores demuestra cómo definir tus propios tipos de error.
Errores Enums
Los errores son un tipo especial de tipo enumerado entero que se almacenan en el ledger como valores de Status
que contienen un código u32
.
#[contracterror]
#[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord)]
#[repr(u32)]
pub enum Error {
AnError = 1,
}
Cuando se convierte a XDR, el valor se convierte en un ScVal
, que contiene un ScStatus
, que contiene el valor entero del error como error del contrato.
{ "status": { "contractError": 1 } }