pub struct EthEmbeddedAccountId(/* private fields */);Expand description
Represents a Miden AccountId that can be encoded in the 20-byte Ethereum address format.
This type wraps an AccountId and provides conversions to/from the Ethereum address
encoding used in the bridge-in flow. In this encoding, the 20-byte Ethereum address format
stores a Miden AccountId as: 0x00000000 || prefix(8) || suffix(8), where:
- prefix = bytes[4..12] as a big-endian u64
- suffix = bytes[12..20] as a big-endian u64
Note: prefix/suffix are conceptual 64-bit words; when converting to Felt, we must ensure
Felt::new_unchecked(u64) does not reduce mod p (checked explicitly in
Self::try_from_eth_address).
This type is used by integrators (Gateway, claim managers) to convert between Miden AccountIds
and the Ethereum address format when constructing CLAIM notes or calling the AggLayer Bridge
bridgeAsset() function.
Implementations§
Source§impl EthEmbeddedAccountId
impl EthEmbeddedAccountId
Sourcepub fn new(
bytes: [u8; 20],
) -> Result<EthEmbeddedAccountId, AddressConversionError>
pub fn new( bytes: [u8; 20], ) -> Result<EthEmbeddedAccountId, AddressConversionError>
Creates an EthEmbeddedAccountId from a 20-byte array.
The bytes are interpreted as an Ethereum-encoded Miden AccountId (big-endian):
0x00000000 || prefix(8) || suffix(8).
§Errors
Returns an error if:
Sourcepub fn from_hex(
hex_str: &str,
) -> Result<EthEmbeddedAccountId, AddressConversionError>
pub fn from_hex( hex_str: &str, ) -> Result<EthEmbeddedAccountId, AddressConversionError>
Creates an EthEmbeddedAccountId from a hex string (with or without “0x” prefix).
§Errors
Returns an error if the hex string is invalid, the hex part is not exactly 40 characters,
or the decoded bytes do not represent a valid embedded AccountId.
Sourcepub const fn from_account_id(account_id: AccountId) -> EthEmbeddedAccountId
pub const fn from_account_id(account_id: AccountId) -> EthEmbeddedAccountId
Creates an EthEmbeddedAccountId from an AccountId.
This conversion is infallible: an AccountId is always valid.
§Example
let embedded = EthEmbeddedAccountId::from_account_id(destination_account_id);
let address_bytes = embedded.to_eth_address().into_bytes();
// then construct the CLAIM note with address_bytes...Sourcepub fn try_from_eth_address(
addr: EthAddress,
) -> Result<EthEmbeddedAccountId, AddressConversionError>
pub fn try_from_eth_address( addr: EthAddress, ) -> Result<EthEmbeddedAccountId, AddressConversionError>
Creates an EthEmbeddedAccountId from an EthAddress.
Validates that the address contains a properly encoded Miden AccountId.
§Errors
Returns an error if:
Sourcepub const fn to_account_id(&self) -> &AccountId
pub const fn to_account_id(&self) -> &AccountId
Returns a reference to the inner AccountId.
Sourcepub const fn into_account_id(self) -> AccountId
pub const fn into_account_id(self) -> AccountId
Consumes self and returns the inner AccountId.
Sourcepub fn to_eth_address(&self) -> EthAddress
pub fn to_eth_address(&self) -> EthAddress
Converts the embedded account ID to an EthAddress.
The resulting 20-byte address has the format:
0x00000000 || prefix(8) || suffix(8) (big-endian byte ordering).
Sourcepub fn to_elements(&self) -> Vec<Felt>
pub fn to_elements(&self) -> Vec<Felt>
Converts the address into an array of 5 Felt values for Miden VM.
See EthAddress::to_elements for details on the encoding.
Trait Implementations§
Source§impl Clone for EthEmbeddedAccountId
impl Clone for EthEmbeddedAccountId
Source§fn clone(&self) -> EthEmbeddedAccountId
fn clone(&self) -> EthEmbeddedAccountId
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 EthEmbeddedAccountId
Source§impl Debug for EthEmbeddedAccountId
impl Debug for EthEmbeddedAccountId
Source§impl Display for EthEmbeddedAccountId
impl Display for EthEmbeddedAccountId
impl Eq for EthEmbeddedAccountId
Source§impl From<AccountId> for EthEmbeddedAccountId
impl From<AccountId> for EthEmbeddedAccountId
Source§fn from(account_id: AccountId) -> EthEmbeddedAccountId
fn from(account_id: AccountId) -> EthEmbeddedAccountId
Source§impl From<EthEmbeddedAccountId> for EthAddress
impl From<EthEmbeddedAccountId> for EthAddress
Source§fn from(embedded: EthEmbeddedAccountId) -> EthAddress
fn from(embedded: EthEmbeddedAccountId) -> EthAddress
Source§impl From<EthEmbeddedAccountId> for AccountId
impl From<EthEmbeddedAccountId> for AccountId
Source§fn from(embedded: EthEmbeddedAccountId) -> AccountId
fn from(embedded: EthEmbeddedAccountId) -> AccountId
Source§impl Hash for EthEmbeddedAccountId
impl Hash for EthEmbeddedAccountId
Source§impl PartialEq for EthEmbeddedAccountId
impl PartialEq for EthEmbeddedAccountId
Source§fn eq(&self, other: &EthEmbeddedAccountId) -> bool
fn eq(&self, other: &EthEmbeddedAccountId) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for EthEmbeddedAccountId
Source§impl TryFrom<EthAddress> for EthEmbeddedAccountId
impl TryFrom<EthAddress> for EthEmbeddedAccountId
Source§type Error = AddressConversionError
type Error = AddressConversionError
Source§fn try_from(
addr: EthAddress,
) -> Result<EthEmbeddedAccountId, <EthEmbeddedAccountId as TryFrom<EthAddress>>::Error>
fn try_from( addr: EthAddress, ) -> Result<EthEmbeddedAccountId, <EthEmbeddedAccountId as TryFrom<EthAddress>>::Error>
Auto Trait Implementations§
impl Freeze for EthEmbeddedAccountId
impl RefUnwindSafe for EthEmbeddedAccountId
impl Send for EthEmbeddedAccountId
impl Sync for EthEmbeddedAccountId
impl Unpin for EthEmbeddedAccountId
impl UnsafeUnpin for EthEmbeddedAccountId
impl UnwindSafe for EthEmbeddedAccountId
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<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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§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