pub struct PartialAccount { /* private fields */ }Expand description
A partial representation of an account.
A partial account is used as inputs to the transaction kernel and contains only the essential data needed for verification and transaction processing without requiring the full account state.
For new accounts, the partial storage must be the full initial account storage.
Implementations§
Source§impl PartialAccount
impl PartialAccount
Sourcepub fn new(
id: AccountId,
nonce: BaseElement,
code: AccountCode,
partial_storage: PartialStorage,
partial_vault: PartialVault,
seed: Option<Word>,
) -> Result<PartialAccount, AccountError>
pub fn new( id: AccountId, nonce: BaseElement, code: AccountCode, partial_storage: PartialStorage, partial_vault: PartialVault, seed: Option<Word>, ) -> Result<PartialAccount, AccountError>
Creates a new PartialAccount with the provided account parts and seed.
§Errors
Returns an error if:
- an account seed is provided but the account’s nonce indicates the account already exists.
- an account seed is not provided but the account’s nonce indicates the account is new.
- an account seed is provided but the account ID derived from it is invalid or does not match the provided ID.
Sourcepub fn nonce(&self) -> BaseElement
pub fn nonce(&self) -> BaseElement
Returns the account’s current nonce value.
Sourcepub fn code(&self) -> &AccountCode
pub fn code(&self) -> &AccountCode
Returns a reference to the account code.
Sourcepub fn storage(&self) -> &PartialStorage
pub fn storage(&self) -> &PartialStorage
Returns a reference to the partial storage representation of the account.
Sourcepub fn vault(&self) -> &PartialVault
pub fn vault(&self) -> &PartialVault
Returns a reference to the partial vault representation of the account.
Sourcepub fn seed(&self) -> Option<Word>
pub fn seed(&self) -> Option<Word>
Returns the seed of the account’s ID if the account is new.
That is, if PartialAccount::is_new returns true, the seed will be Some.
Sourcepub fn is_new(&self) -> bool
pub fn is_new(&self) -> bool
Returns true if the account is new, false otherwise.
An account is considered new if the account’s nonce is zero and it hasn’t been registered on chain yet.
Sourcepub fn commitment(&self) -> Word
pub fn commitment(&self) -> Word
Returns the commitment of this account.
The commitment of an account is computed as:
hash(id, nonce, vault_root, storage_commitment, code_commitment).Sourcepub fn initial_commitment(&self) -> Word
pub fn initial_commitment(&self) -> Word
Returns the commitment of this account as used for the initial account state commitment in transaction proofs.
For existing accounts, this is exactly the same as Account::commitment(), however, for new
accounts this value is set to Word::empty. This is because when a transaction is
executed against a new account, public input for the initial account state is set to
Word::empty to distinguish new accounts from existing accounts. The actual
commitment of the initial account state (and the initial state itself), are provided to
the VM via the advice provider.
Sourcepub fn has_public_state(&self) -> bool
pub fn has_public_state(&self) -> bool
Returns true if the full state of the account is public on chain, and false otherwise.
Sourcepub fn into_parts(
self,
) -> (AccountId, PartialVault, PartialStorage, AccountCode, BaseElement, Option<Word>)
pub fn into_parts( self, ) -> (AccountId, PartialVault, PartialStorage, AccountCode, BaseElement, Option<Word>)
Consumes self and returns the underlying parts of the partial account.
Trait Implementations§
Source§impl Clone for PartialAccount
impl Clone for PartialAccount
Source§fn clone(&self) -> PartialAccount
fn clone(&self) -> PartialAccount
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PartialAccount
impl Debug for PartialAccount
Source§impl Deserializable for PartialAccount
impl Deserializable for PartialAccount
Source§fn read_from<R>(source: &mut R) -> Result<PartialAccount, DeserializationError>where
R: ByteReader,
fn read_from<R>(source: &mut R) -> Result<PartialAccount, DeserializationError>where
R: ByteReader,
source, attempts to deserialize these bytes
into Self, and returns the result. Read moreSource§fn read_from_bytes(bytes: &[u8]) -> Result<Self, DeserializationError>
fn read_from_bytes(bytes: &[u8]) -> Result<Self, DeserializationError>
Source§impl From<&Account> for PartialAccount
impl From<&Account> for PartialAccount
Source§fn from(account: &Account) -> PartialAccount
fn from(account: &Account) -> PartialAccount
Constructs a PartialAccount from the provided account.
The behavior is different whether the Account::is_new or not:
- For new accounts, the storage is tracked in full. This is because transactions that create accounts need the full state.
- For existing accounts, the storage is tracked minimally, i.e. the minimal necessary data is included.
Because new accounts always have empty vaults, in both cases, the asset vault is a minimal representation.
For precise control over how an account is converted to a partial account, use
PartialAccount::new.
Source§impl From<&PartialAccount> for AccountHeader
impl From<&PartialAccount> for AccountHeader
Source§fn from(account: &PartialAccount) -> AccountHeader
fn from(account: &PartialAccount) -> AccountHeader
Source§impl From<PartialAccount> for AccountHeader
impl From<PartialAccount> for AccountHeader
Source§fn from(account: PartialAccount) -> AccountHeader
fn from(account: PartialAccount) -> AccountHeader
Source§impl PartialEq for PartialAccount
impl PartialEq for PartialAccount
Source§impl Serializable for PartialAccount
impl Serializable for PartialAccount
Source§fn write_into<W>(&self, target: &mut W)where
W: ByteWriter,
fn write_into<W>(&self, target: &mut W)where
W: ByteWriter,
self into bytes and writes these bytes into the target.Source§fn get_size_hint(&self) -> usize
fn get_size_hint(&self) -> usize
impl Eq for PartialAccount
impl StructuralPartialEq for PartialAccount
Auto Trait Implementations§
impl Freeze for PartialAccount
impl RefUnwindSafe for PartialAccount
impl Send for PartialAccount
impl Sync for PartialAccount
impl Unpin for PartialAccount
impl UnwindSafe for PartialAccount
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<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