sovrin-client 0.1.0-50

Sovrin client with c-callable interface
extern crate libc;

pub mod anoncreds;
pub mod signus;
pub mod ledger;
pub mod pool;
pub mod wallet;

#[derive(Debug, PartialEq, Copy, Clone)]
#[repr(i32)]
pub enum ErrorCode {
    Success = 0,

    // Common errors

    // Caller passed invalid value as param 1 (null, invalid json and etc..)
    CommonInvalidParam1 = 100,

    // Caller passed invalid value as param 2 (null, invalid json and etc..)
    CommonInvalidParam2,

    // Caller passed invalid value as param 3 (null, invalid json and etc..)
    CommonInvalidParam3,

    // Caller passed invalid value as param 4 (null, invalid json and etc..)
    CommonInvalidParam4,

    // Caller passed invalid value as param 5 (null, invalid json and etc..)
    CommonInvalidParam5,

    // Invalid library state was detected in runtime. It signals library bug
    CommonInvalidState,

    // Wallet errors
    // Caller passed invalid wallet handle
    WalletInvalidHandle,

    // Unknown type of wallet was passed on create_wallet
    WalletUnknownTypeError = 200,

    // Attempt to register already existing wallet type
    WalletTypeAlreadyRegisteredError,

    // Requested entity id isn't present in wallet
    WalletNotFoundError,

    // Wallet files referenced in open_wallet have invalid data format
    WalletInvalidDataFormat,

    // IO error during access wallet backend
    WalletIOError,

    // Trying to use wallet with pool that has different name
    WalletIncompatiblePoolError,

    // Ledger errors
    // Trying to open pool ledger that wasn't created before
    PoolLedgerNotCreatedError = 300,

    // Invalid pool ledger configuration was passed to open_pool_ledger or create_pool_ledger
    PoolLedgerInvalidConfiguration,

    // Pool ledger files referenced in open_pool_ledger have invalid data format
    PoolLedgerInvalidDataFormat,

    // Caller passed invalid pool ledger handle
    PoolLedgerInvalidPoolHandle,

    // IO error during access pool ledger files
    PoolLedgerIOError,

    // No concensus during ledger operation
    LedgerNoConsensusError,

    // Attempt to send unknown or incomplete transaction message
    LedgerInvalidTransaction,

    // Attempt to send transaction without the necessary privileges
    LedgerSecurityError,

    // IO error during sending of ledger transactions or catchup process
    LedgerIOError,

    // Crypto errors
    // Invalid structure of any crypto promitives (keys, signatures, seeds and etc...)
    CryptoInvalidStructure = 400,

    // Unknown crypto type was requested for signing/verifiyng or encoding/decoding
    CryptoUnknownTypeError,

    // Revocation registry is full and creation of new registry is necessary
    CryptoRevocationRegistryFullError,

    CryptoInvalidUserRevocIndex,

    CryptoBackendError,

    AnoncredsNotIssuedError,

    // Attempt to generate master secret with dupplicated name
    AnoncredsMasterSecretDuplicateNameError
}