pub struct RamsesProtocolConfig {
pub factory: Address,
pub pool_deployer: Address,
pub router: Address,
pub position_mgr: Address,
pub init_code_hash: FixedBytes<32>,
pub tick_spacings: &'static [i32],
pub multicall: Address,
pub quoter: Option<Address>,
pub voter: Address,
}Expand description
Per-protocol configuration for a Ramses-family DEX.
Ramses pools are keyed by (token0, token1, tickSpacing) instead of
Uniswap V3’s (token0, token1, fee). tick_spacings enumerates the
valid tick spacings supported by the protocol.
Adding a new Ramses-fork DEX = creating a new protocol facade with a
pub const CONFIG: RamsesProtocolConfig = .... No family code changes.
CREATE2 deployment: Shadow / Ramses-core uses an independent
RamsesV3PoolDeployer contract (≠ factory) for CREATE2. The
pool_deployer field is the actual CREATE2 caller used by
pool_address::compute. Velodrome-family protocols (Slipstream /
Aerodrome) deploy via EIP-1167 Clones instead and set
pool_deployer = Address::ZERO; their facade pool_address body
passes cfg.factory as the deployer (the factory contract IS the
CREATE2 caller for clone-pattern deployments).
Fields§
§factory: Address§pool_deployer: AddressCREATE2 deployer — RamsesV3PoolDeployer for Shadow-pattern,
Address::ZERO for EIP-1167-Clone-pattern (Slipstream / Aerodrome).
Read via factory.ramsesV3PoolDeployer() getter for CREATE2-deploying
Ramses forks; clone-pattern facades pass cfg.factory instead at the
pool_address::compute call site.
router: Address§position_mgr: Address§init_code_hash: FixedBytes<32>§tick_spacings: &'static [i32]§multicall: Address§quoter: Option<Address>§voter: AddressTrait Implementations§
Source§impl Clone for RamsesProtocolConfig
impl Clone for RamsesProtocolConfig
Source§fn clone(&self) -> RamsesProtocolConfig
fn clone(&self) -> RamsesProtocolConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for RamsesProtocolConfig
Source§impl Debug for RamsesProtocolConfig
impl Debug for RamsesProtocolConfig
impl Eq for RamsesProtocolConfig
Source§impl PartialEq for RamsesProtocolConfig
impl PartialEq for RamsesProtocolConfig
Source§fn eq(&self, other: &RamsesProtocolConfig) -> bool
fn eq(&self, other: &RamsesProtocolConfig) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for RamsesProtocolConfig
Auto Trait Implementations§
impl Freeze for RamsesProtocolConfig
impl RefUnwindSafe for RamsesProtocolConfig
impl Send for RamsesProtocolConfig
impl Sync for RamsesProtocolConfig
impl Unpin for RamsesProtocolConfig
impl UnsafeUnpin for RamsesProtocolConfig
impl UnwindSafe for RamsesProtocolConfig
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
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<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 more