pub struct EncodeOptions {
pub erc6909_profit: bool,
pub use_v4_batch: bool,
pub funding: FundingSource,
pub capture: ProfitCapture,
pub bribe: Bribe,
}Expand description
Tuning knobs for encode_cmd_stream. All default to false/0.
Per-path output axes (ADR-029 D1, WE45KC): funding, capture, and
bribe carry the runtime economic choices the strategy/operator makes per
path. Whether a family’s builder actually branches an axis IN THE STREAM is
declared per family on the family→producer dispatch row
(crate::grammar_shape::family_axis_support) — read that, not builder
bodies. Today: funding is branched only by v2_v3 + any-N all-V2 (their
rows declare {funding}); every other family derives it (InPathFlash).
capture is branched only by the pure-V4 families v4_v4 / v4_v4_v4
(their rows declare {capture}); V2/V3-only and V4-involving-but-not-
pure-V4 streams reach capture only via the on-chain check_mode config
(a different seam), NOT the stream bytes. bribe is branched by no family
(it rides pack_config, never the stream). Spreading an axis across more
families is separate post-WE45KC work, not this surface’s claim. The legacy
erc6909_profit bool is kept as a backwards-compatible alias for
capture = ProfitCapture::Erc6909 (see resolve_axes for the precedence
rule).
Fields§
§erc6909_profit: boolIf true, use V4_MINT_COMPACT instead of V4_TAKE_DELTA for profit
capture on pure-V4 paths (saves ~20K gas; needs check_mode=2).
Legacy alias for capture = ProfitCapture::Erc6909 (see resolve_axes).
use_v4_batch: boolIf true, use V4_BATCH instead of individual V4_SWAP_COMPACT/_DYNAMIC
for pure-V4 paths (single PM extcall).
funding: FundingSourceDeclared origin of the stream’s entry (seed) capital (ADR-029 D1).
Branched IN THE STREAM only by the families whose dispatch row declares
funding (crate::grammar_shape::family_axis_support: v2_v3 and
any-N all-V2); every other family derives InPathFlash. Honoring it as
a runtime economic knob across ALL families is separate post-WE45KC work.
capture: ProfitCaptureDeclared destination of the stream’s terminal profit (ADR-029 D1).
Honored via resolve_axes (takes precedence over the legacy
erc6909_profit bool only when that bool is false).
bribe: BribeWhether/how a builder bribe is paid (ADR-029 D1/Q3). Not yet honored by the encoder; wiring lands in a subsequent WE45KC increment.
Trait Implementations§
Source§impl Clone for EncodeOptions
impl Clone for EncodeOptions
impl Copy for EncodeOptions
Source§impl Debug for EncodeOptions
impl Debug for EncodeOptions
Auto Trait Implementations§
impl Freeze for EncodeOptions
impl RefUnwindSafe for EncodeOptions
impl Send for EncodeOptions
impl Sync for EncodeOptions
impl Unpin for EncodeOptions
impl UnsafeUnpin for EncodeOptions
impl UnwindSafe for EncodeOptions
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<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