library;

pub enum PythError {
    FeesCanOnlyBePaidInTheBaseAsset: (),
    GuardianSetNotFound: (),
    IncorrectMessageType: (),
    InsufficientFee: (),
    InvalidArgument: (),
    InvalidAttestationSize: (),
    InvalidDataSourcesLength: (),
    InvalidExponent: (),
    InvalidGovernanceDataSource: (),
    InvalidGovernanceAction: (),
    InvalidGovernanceMessage: (),
    InvalidGovernanceModule: (),
    InvalidGovernanceTarget: (),
    InvalidHeaderSize: (),
    InvalidMagic: (),
    InvalidMajorVersion: (),
    InvalidMinorVersion: (),
    InvalidPayloadId: (),
    InvalidPayloadLength: (),
    InvalidPriceFeedDataLength: (),
    InvalidProof: (),
    InvalidUpdateData: (),
    InvalidUpdateDataLength: (),
    InvalidUpdateDataSource: (),
    InvalidUpgradeModule: (),
    InvalidWormholeAddressToSet: (),
    LengthOfPriceFeedIdsAndPublishTimesMustMatch: (),
    NewGuardianSetIsEmpty: (),
    NumberOfUpdatesIrretrievable: (),
    OldGovernanceMessage: (),
    /// Emitted when a Price's `publish_time` is stale.
    OutdatedPrice: (),
    /// Emitted when a PriceFeed could not be retrieved.
    PriceFeedNotFound: (),
    PriceFeedNotFoundWithinRange: (),
    WormholeGovernanceActionNotFound: (),
}

pub enum WormholeError {
    ConsistencyLevelIrretrievable: (),
    GovernanceActionAlreadyConsumed: (),
    GuardianIndexIrretrievable: (),
    GuardianSetHasExpired: (),
    GuardianSetKeyIrretrievable: (),
    GuardianSetKeysLengthNotEqual: (),
    GuardianSetNotFound: (),
    InvalidGovernanceAction: (),
    InvalidGovernanceChain: (),
    InvalidGovernanceContract: (),
    InvalidGuardianSet: (),
    InvalidGuardianSetKeysLength: (),
    InvalidGuardianSetUpgrade: (),
    InvalidGuardianSetUpgradeLength: (),
    InvalidModule: (),
    InvalidPayloadLength: (),
    InvalidSignatureLength: (),
    InvalidUpdateDataSource: (),
    NewGuardianSetIsEmpty: (),
    NewGuardianSetIndexIsInvalid: (),
    NoQuorum: (),
    NotSignedByCurrentGuardianSet: (),
    SignatureInvalid: (),
    SignatureIndicesNotAscending: (),
    SignatureVIrretrievable: (),
    SignersLengthIrretrievable: (),
    VMSignatureInvalid: (),
    VMVersionIncompatible: (),
}
