pub struct PoolFeeProtocolUpdate {Show 13 fields
pub chain: SharedChain,
pub dex: SharedDex,
pub instrument_id: InstrumentId,
pub pool_identifier: PoolIdentifier,
pub block: u64,
pub block_hash: Option<String>,
pub transaction_hash: String,
pub transaction_index: u32,
pub log_index: u32,
pub fee_protocol0_new: u32,
pub fee_protocol1_new: u32,
pub ts_event: UnixNanos,
pub ts_init: UnixNanos,
}Expand description
Represents a protocol-fee configuration change in a Uniswap V3-style pool.
Emitted by SetFeeProtocol, this carries the new protocol-fee values for each token. Uniswap
V3 uses 4-bit denominators, while PancakeSwap V3 uses uint32 basis-point shares. Only the new
values are kept; the previous values in the event are not needed to rebuild state.
Fields§
§chain: SharedChainThe blockchain network where the protocol-fee change occurred.
dex: SharedDexThe decentralized exchange where the protocol-fee change occurred.
instrument_id: InstrumentIdThe instrument ID for this pool’s trading pair.
pool_identifier: PoolIdentifierThe unique identifier for this pool (could be an address or other protocol-specific hex string).
block: u64The blockchain block number where the protocol-fee change occurred.
block_hash: Option<String>The hash of the block observed when this change was ingested.
transaction_hash: StringThe unique hash identifier of the blockchain transaction containing the protocol-fee change.
transaction_index: u32The index position of the transaction within the block.
log_index: u32The index position of the protocol-fee change event log within the transaction.
fee_protocol0_new: u32The new token0 protocol-fee value.
fee_protocol1_new: u32The new token1 protocol-fee value.
ts_event: UnixNanosUNIX timestamp (nanoseconds) when the protocol-fee change event occurred.
ts_init: UnixNanosUNIX timestamp (nanoseconds) when the instance was created.
Implementations§
Source§impl PoolFeeProtocolUpdate
impl PoolFeeProtocolUpdate
Sourcepub const fn new(
chain: SharedChain,
dex: SharedDex,
instrument_id: InstrumentId,
pool_identifier: PoolIdentifier,
block: u64,
transaction_hash: String,
transaction_index: u32,
log_index: u32,
fee_protocol0_new: u32,
fee_protocol1_new: u32,
ts_event: UnixNanos,
ts_init: UnixNanos,
) -> Self
pub const fn new( chain: SharedChain, dex: SharedDex, instrument_id: InstrumentId, pool_identifier: PoolIdentifier, block: u64, transaction_hash: String, transaction_index: u32, log_index: u32, fee_protocol0_new: u32, fee_protocol1_new: u32, ts_event: UnixNanos, ts_init: UnixNanos, ) -> Self
Creates a new PoolFeeProtocolUpdate instance with the specified properties.
Sourcepub fn uniswap_v3_packed(&self) -> Option<u8>
pub fn uniswap_v3_packed(&self) -> Option<u8>
Returns the new Uniswap V3 protocol-fee setting packed into a single byte.
The token0 denominator occupies the lower four bits and token1 the upper four bits. Returns
None when either value does not fit the Uniswap V3 nibble layout.
Trait Implementations§
Source§impl Clone for PoolFeeProtocolUpdate
impl Clone for PoolFeeProtocolUpdate
Source§fn clone(&self) -> PoolFeeProtocolUpdate
fn clone(&self) -> PoolFeeProtocolUpdate
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 PoolFeeProtocolUpdate
impl Debug for PoolFeeProtocolUpdate
impl DerefToPyAny for PoolFeeProtocolUpdate
Source§impl<'de> Deserialize<'de> for PoolFeeProtocolUpdate
impl<'de> Deserialize<'de> for PoolFeeProtocolUpdate
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for PoolFeeProtocolUpdate
impl Display for PoolFeeProtocolUpdate
Source§impl From<PoolFeeProtocolUpdate> for DefiData
impl From<PoolFeeProtocolUpdate> for DefiData
Source§fn from(value: PoolFeeProtocolUpdate) -> Self
fn from(value: PoolFeeProtocolUpdate) -> Self
Source§impl<'a, 'py> FromPyObject<'a, 'py> for PoolFeeProtocolUpdatewhere
Self: Clone,
impl<'a, 'py> FromPyObject<'a, 'py> for PoolFeeProtocolUpdatewhere
Self: Clone,
Source§impl HasTsInit for PoolFeeProtocolUpdate
impl HasTsInit for PoolFeeProtocolUpdate
Source§impl<'py> IntoPyObject<'py> for PoolFeeProtocolUpdate
impl<'py> IntoPyObject<'py> for PoolFeeProtocolUpdate
Source§type Target = PoolFeeProtocolUpdate
type Target = PoolFeeProtocolUpdate
Source§type Output = Bound<'py, <PoolFeeProtocolUpdate as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <PoolFeeProtocolUpdate as IntoPyObject<'py>>::Target>
Source§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
Source§impl PartialEq for PoolFeeProtocolUpdate
impl PartialEq for PoolFeeProtocolUpdate
Source§impl PyClass for PoolFeeProtocolUpdate
impl PyClass for PoolFeeProtocolUpdate
Source§impl PyClassImpl for PoolFeeProtocolUpdate
impl PyClassImpl for PoolFeeProtocolUpdate
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
Source§const RAW_DOC: &'static CStr = /// Represents a protocol-fee configuration change in a Uniswap V3-style pool.
///
/// Emitted by `SetFeeProtocol`, this carries the new protocol-fee values for each token. Uniswap
/// V3 uses 4-bit denominators, while PancakeSwap V3 uses `uint32` basis-point shares. Only the new
/// values are kept; the previous values in the event are not needed to rebuild state.
const RAW_DOC: &'static CStr = /// Represents a protocol-fee configuration change in a Uniswap V3-style pool. /// /// Emitted by `SetFeeProtocol`, this carries the new protocol-fee values for each token. Uniswap /// V3 uses 4-bit denominators, while PancakeSwap V3 uses `uint32` basis-point shares. Only the new /// values are kept; the previous values in the event are not needed to rebuild state.
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type Layout = <<PoolFeeProtocolUpdate as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<PoolFeeProtocolUpdate>
type Layout = <<PoolFeeProtocolUpdate as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<PoolFeeProtocolUpdate>
Source§type ThreadChecker = NoopThreadChecker
type ThreadChecker = NoopThreadChecker
type Inventory = Pyo3MethodsInventoryForPoolFeeProtocolUpdate
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
PyAny by default, and when you declare
#[pyclass(extends=PyDict)], it’s PyDict.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
§fn dict_offset() -> Option<PyObjectOffset>
fn dict_offset() -> Option<PyObjectOffset>
§fn weaklist_offset() -> Option<PyObjectOffset>
fn weaklist_offset() -> Option<PyObjectOffset>
Source§impl PyClassNewTextSignature for PoolFeeProtocolUpdate
impl PyClassNewTextSignature for PoolFeeProtocolUpdate
const TEXT_SIGNATURE: &'static str = "(chain, dex, pool_identifier, instrument_id, block, transaction_hash, transaction_index, log_index, fee_protocol0_new, fee_protocol1_new, timestamp)"
Source§impl PyStubType for PoolFeeProtocolUpdate
impl PyStubType for PoolFeeProtocolUpdate
Source§fn type_output() -> TypeInfo
fn type_output() -> TypeInfo
§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
Source§impl PyTypeInfo for PoolFeeProtocolUpdate
impl PyTypeInfo for PoolFeeProtocolUpdate
Source§const NAME: &str = <Self as ::pyo3::PyClass>::NAME
const NAME: &str = <Self as ::pyo3::PyClass>::NAME
prefer using ::type_object(py).name() to get the correct runtime value
Source§const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE
const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE
prefer using ::type_object(py).module() to get the correct runtime value
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type or a subclass of this type.§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type.Source§impl Serialize for PoolFeeProtocolUpdate
impl Serialize for PoolFeeProtocolUpdate
impl StructuralPartialEq for PoolFeeProtocolUpdate
Auto Trait Implementations§
impl Freeze for PoolFeeProtocolUpdate
impl RefUnwindSafe for PoolFeeProtocolUpdate
impl Send for PoolFeeProtocolUpdate
impl Sync for PoolFeeProtocolUpdate
impl Unpin for PoolFeeProtocolUpdate
impl UnsafeUnpin for PoolFeeProtocolUpdate
impl UnwindSafe for PoolFeeProtocolUpdate
Blanket Implementations§
impl<T> Allocation for T
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<'py, T> FromPyObjectOwned<'py> for Twhere
T: for<'a> FromPyObject<'a, 'py>,
§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
self into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
self into an owned Python object, dropping type information and unbinding it
from the 'py lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
self into a Python object. Read more§impl<'py, T> IntoPyObjectNautilusExt<'py> for Twhere
T: IntoPyObjectExt<'py>,
impl<'py, T> IntoPyObjectNautilusExt<'py> for Twhere
T: IntoPyObjectExt<'py>,
§fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>where
Self: IntoPyObject<'py, Error = !>,
fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>where
Self: IntoPyObject<'py, Error = !>,
self into a [Py<PyAny>] when the underlying conversion is infallible.§impl<T> PyErrArguments for T
impl<T> PyErrArguments for T
§impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
§fn type_check(object: &Bound<'_, PyAny>) -> bool
fn type_check(object: &Bound<'_, PyAny>) -> bool
§fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
isinstance and issubclass function. Read more