pub enum NoteExecutionHint {
None,
Always,
AfterBlock {
block_num: u32,
},
OnBlockSlot {
epoch_len: u8,
slot_len: u8,
slot_offset: u8,
},
}
Expand description
Specifies the conditions under which a note is ready to be consumed. These conditions are meant to be encoded in the note script as well.
This struct can be represented as the combination of a tag, and a payload. The tag specifies the variant of the hint, and the payload encodes the hint data.
Variants§
None
Unspecified note execution hint. Implies it is not knorn under which conditions the note is consumable.
Always
The note’s script can be executed at any time.
AfterBlock
The note’s script can be executed after the specified block height.
OnBlockSlot
The note’s script can be executed in the specified slot within the specified epoch.
The slot is defined as follows:
- First we define the length of the epoch in powers of 2. For example, epoch_len = 10 is an epoch of 1024 blocks.
- Then we define the length of a slot within the epoch also using powers of 2. For example, slot_len = 7 is a slot of 128 blocks.
- Lastly, the offset specifies the index of the slot within the epoch - i.e., 0 is the first slot, 1 is the second slot etc.
For example: { epoch_len: 10, slot_len: 7, slot_offset: 1 } means that the note can be executed in any second 128 block slot of a 1024 block epoch. These would be blocks 128..255, 1152..1279, 2176..2303 etc.
Implementations§
Source§impl NoteExecutionHint
impl NoteExecutionHint
Sourcepub fn none() -> Self
pub fn none() -> Self
Creates a NoteExecutionHint::None variant
Sourcepub fn always() -> Self
pub fn always() -> Self
Creates a NoteExecutionHint::Always variant
Sourcepub fn after_block(block_num: u32) -> Self
pub fn after_block(block_num: u32) -> Self
Creates a NoteExecutionHint::AfterBlock variant based on the given block_num
Sourcepub fn on_block_slot(epoch_len: u8, slot_len: u8, slot_offset: u8) -> Self
pub fn on_block_slot(epoch_len: u8, slot_len: u8, slot_offset: u8) -> Self
Creates a NoteExecutionHint::OnBlockSlot for the given parameters
pub fn from_parts(tag: u8, payload: u32) -> Result<NoteExecutionHint, NoteError>
Sourcepub fn can_be_consumed(&self, block_num: u32) -> Option<bool>
pub fn can_be_consumed(&self, block_num: u32) -> Option<bool>
Returns whether the note execution conditions validate for the given block_num
§Returns
None
if we don’t know whether the note can be consumed.Some(true)
if the note is consumable for the givenblock_num
Some(false)
if the note is not consumable for the givenblock_num
pub fn into_parts(&self) -> (u8, u32)
Trait Implementations§
Source§impl Clone for NoteExecutionHint
impl Clone for NoteExecutionHint
Source§fn clone(&self) -> NoteExecutionHint
fn clone(&self) -> NoteExecutionHint
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for NoteExecutionHint
impl Debug for NoteExecutionHint
Source§impl From<NoteExecutionHint> for Felt
impl From<NoteExecutionHint> for Felt
As a Felt, the ExecutionHint is encoded as:
- 6 least significant bits: Hint identifier (tag).
- Bits 6 to 38: Hint payload.
This way, hints such as NoteExecutionHint::Always, are represented by Felt::new(1)
Source§fn from(value: NoteExecutionHint) -> Self
fn from(value: NoteExecutionHint) -> Self
Source§impl From<NoteExecutionHint> for u64
impl From<NoteExecutionHint> for u64
Source§fn from(value: NoteExecutionHint) -> Self
fn from(value: NoteExecutionHint) -> Self
Source§impl PartialEq for NoteExecutionHint
impl PartialEq for NoteExecutionHint
Source§impl TryFrom<u64> for NoteExecutionHint
impl TryFrom<u64> for NoteExecutionHint
As a u64, the ExecutionHint is encoded as:
- 6 least significant bits: Hint identifier (tag).
- Bits 6 to 38: Hint payload.
This way, hints such as NoteExecutionHint::Always, are represented by 1u64
impl Copy for NoteExecutionHint
impl Eq for NoteExecutionHint
impl StructuralPartialEq for NoteExecutionHint
Auto Trait Implementations§
impl Freeze for NoteExecutionHint
impl RefUnwindSafe for NoteExecutionHint
impl Send for NoteExecutionHint
impl Sync for NoteExecutionHint
impl Unpin for NoteExecutionHint
impl UnwindSafe for NoteExecutionHint
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg
or
a color-specific method, such as OwoColorize::green
, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg
or
a color-specific method, such as OwoColorize::on_yellow
, Read more