#[non_exhaustive]pub enum OracleError {
Provider(String),
Decode(ChainlinkEventDecodeError),
SignalDecode(OracleSignalDecodeError),
DuplicateFeedId(String),
DuplicateProxy(Address),
FeedNotFound,
Policy(PricePolicyViolation),
CodePolicy(Box<OracleCodePolicyViolation>),
Config(OracleConfigError),
Unsupported(String),
FeedSkipped(Box<OracleFeedSkip>),
Reactive(String),
}Expand description
Errors returned by registry, reconciliation, and report application.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Provider(String)
A chain/provider read failed.
This covers only genuine on-chain read failures: RPC transport errors,
reverted or undecodable view calls (call_sol), and
crate::EvmCacheChainlinkReader read failures. Programming errors,
policy rejections, and unsupported-source classifications use the
dedicated variants below.
Decode(ChainlinkEventDecodeError)
Event or typed-field decode failed.
Covers Chainlink log decoding and value-range failures where a chain
value does not fit the crate’s typed representation (for example a
latestRoundData() timestamp that overflows u64, reported as
ChainlinkEventDecodeError::Uint64Overflow).
SignalDecode(OracleSignalDecodeError)
Hook signal decode failed.
DuplicateFeedId(String)
Feed id already exists.
DuplicateProxy(Address)
Proxy already exists.
FeedNotFound
A feed was not found.
Policy(PricePolicyViolation)
A configured price policy rejected a value or result.
Covers crate::PricePolicy rejections (stale, pending, invalid, or
wrong-denomination prices) and valuation failures while producing a
crate::ValuedAmount. The payload classifies the exact violation.
Code warmup policy failures use OracleError::CodePolicy.
CodePolicy(Box<OracleCodePolicyViolation>)
The configured crate::OracleCodeWarmupPolicy rejected a code
warmup report.
The boxed payload lists exactly the crate::OracleCodeWarmupReport
entries that violated the enforced policy toggles.
Config(OracleConfigError)
Caller or programming error.
The payload classifies the failure: a request that references an
adapter that is not installed
(OracleConfigError::AdapterNotInstalled), a system clock before
the UNIX epoch (OracleConfigError::Clock), a malformed or
mismatched overlay/reconciliation request
(OracleConfigError::InvalidRequest), or another invalid builder
configuration or internal invariant violation
(OracleConfigError::Other).
Unsupported(String)
A source family, layout, or value shape was recognized but is not supported by this crate.
Covers unsupported adapter variants discovered at runtime (for example
an unknown Euler adapter name, a nested CrossAdapter, or a
base/quote direction mismatch) and chain values that cannot be
represented in the requested ABI or fixed-point shape.
FeedSkipped(Box<OracleFeedSkip>)
An adapter feed skip was surfaced as a fail-fast build error.
The boxed payload carries the complete skip description (feed
id/label, proxy, and classified crate::OracleAdapterSkipReason).
Use the build_report methods to receive skips as data instead of an
error.
Reactive(String)
A reactive-engine operation failed.
Covers handler install/uninstall, subscriber interest registration,
and batch ingestion errors surfaced through the
evm_fork_cache::reactive runtime.
Trait Implementations§
Source§impl Clone for OracleError
impl Clone for OracleError
Source§fn clone(&self) -> OracleError
fn clone(&self) -> OracleError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OracleError
impl Debug for OracleError
Source§impl Display for OracleError
impl Display for OracleError
impl Eq for OracleError
Source§impl Error for OracleError
impl Error for OracleError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<ChainlinkEventDecodeError> for OracleError
impl From<ChainlinkEventDecodeError> for OracleError
Source§fn from(source: ChainlinkEventDecodeError) -> Self
fn from(source: ChainlinkEventDecodeError) -> Self
Source§impl From<OracleConfigError> for OracleError
impl From<OracleConfigError> for OracleError
Source§fn from(source: OracleConfigError) -> Self
fn from(source: OracleConfigError) -> Self
Source§impl From<OracleMockError> for OracleError
impl From<OracleMockError> for OracleError
Source§fn from(value: OracleMockError) -> Self
fn from(value: OracleMockError) -> Self
Source§impl From<OracleSignalDecodeError> for OracleError
impl From<OracleSignalDecodeError> for OracleError
Source§fn from(source: OracleSignalDecodeError) -> Self
fn from(source: OracleSignalDecodeError) -> Self
Source§impl From<PricePolicyViolation> for OracleError
impl From<PricePolicyViolation> for OracleError
Source§fn from(source: PricePolicyViolation) -> Self
fn from(source: PricePolicyViolation) -> Self
Source§impl PartialEq for OracleError
impl PartialEq for OracleError
impl StructuralPartialEq for OracleError
Auto Trait Implementations§
impl Freeze for OracleError
impl RefUnwindSafe for OracleError
impl Send for OracleError
impl Sync for OracleError
impl Unpin for OracleError
impl UnsafeUnpin for OracleError
impl UnwindSafe for OracleError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.