pub struct GenesisAllocator<'a> { /* private fields */ }
Expand description
This helps create a custom genesis alloc by making it easy to add funded accounts with known signers to the genesis block.
§Example
let mut allocator = GenesisAllocator::default();
// This will add a genesis account to the alloc builder, with the provided balance. The
// signer for the account will be returned.
let (_signer, _addr) = allocator.new_funded_account(U256::from(100_000_000_000_000_000u128));
// You can also provide code for the account.
let code = Bytes::from_str("0x1234").unwrap();
let (_second_signer, _second_addr) =
allocator.new_funded_account_with_code(U256::from(100_000_000_000_000_000u128), code);
// You can also add an account with a specific address.
// This will not return a signer, since the address is provided by the user and the signer
// may be unknown.
let addr = "0Ac1dF02185025F65202660F8167210A80dD5086".parse::<Address>().unwrap();
allocator.add_funded_account_with_address(addr, U256::from(100_000_000_000_000_000u128));
// Once you're done adding accounts, you can build the alloc.
let alloc = allocator.build();
Implementations§
Source§impl<'a> GenesisAllocator<'a>
impl<'a> GenesisAllocator<'a>
Sourcepub fn new_with_rng<R>(rng: &'a mut R) -> Selfwhere
R: RngCore,
pub fn new_with_rng<R>(rng: &'a mut R) -> Selfwhere
R: RngCore,
Initialize a new alloc builder with the provided rng.
Sourcepub fn with_rng<R>(self, rng: &'a mut R) -> Self
pub fn with_rng<R>(self, rng: &'a mut R) -> Self
Use the provided rng for generating key pairs.
Sourcepub fn new_funded_account(&mut self, balance: U256) -> (Keypair, Address)
pub fn new_funded_account(&mut self, balance: U256) -> (Keypair, Address)
Add a funded account to the genesis alloc.
Returns the key pair for the account and the account’s address.
Sourcepub fn new_funded_account_with_code(
&mut self,
balance: U256,
code: Bytes,
) -> (Keypair, Address)
pub fn new_funded_account_with_code( &mut self, balance: U256, code: Bytes, ) -> (Keypair, Address)
Add a funded account to the genesis alloc with the provided code.
Returns the key pair for the account and the account’s address.
Sourcepub fn new_funded_account_with_storage(
&mut self,
balance: U256,
storage: BTreeMap<B256, B256>,
) -> (Keypair, Address)
pub fn new_funded_account_with_storage( &mut self, balance: U256, storage: BTreeMap<B256, B256>, ) -> (Keypair, Address)
Adds a funded account to the genesis alloc with the provided storage.
Returns the key pair for the account and the account’s address.
Sourcepub fn new_account_with_code_and_storage(
&mut self,
code: Bytes,
storage: BTreeMap<B256, B256>,
) -> (Keypair, Address)
pub fn new_account_with_code_and_storage( &mut self, code: Bytes, storage: BTreeMap<B256, B256>, ) -> (Keypair, Address)
Adds an account with code and storage to the genesis alloc.
Returns the key pair for the account and the account’s address.
Sourcepub fn new_account_with_code(&mut self, code: Bytes) -> (Keypair, Address)
pub fn new_account_with_code(&mut self, code: Bytes) -> (Keypair, Address)
Adds an account with code to the genesis alloc.
Returns the key pair for the account and the account’s address.
Sourcepub fn add_funded_account_with_address(
&mut self,
address: Address,
balance: U256,
)
pub fn add_funded_account_with_address( &mut self, address: Address, balance: U256, )
Add a funded account to the genesis alloc with the provided address.
Neither the key pair nor the account will be returned, since the address is provided by the user and the signer may be unknown.
Sourcepub fn add_account(&mut self, account: GenesisAccount) -> Address
pub fn add_account(&mut self, account: GenesisAccount) -> Address
Adds the given [GenesisAccount
] to the genesis alloc.
Returns the key pair for the account and the account’s address.
Sourcepub fn get_account(&self, address: &Address) -> Option<&GenesisAccount>
pub fn get_account(&self, address: &Address) -> Option<&GenesisAccount>
Gets the account for the provided address.
If it does not exist, this returns None
.
Sourcepub fn get_account_mut(
&mut self,
address: &Address,
) -> Option<&mut GenesisAccount>
pub fn get_account_mut( &mut self, address: &Address, ) -> Option<&mut GenesisAccount>
Gets a mutable version of the account for the provided address, if it exists.
Sourcepub fn account_entry(
&mut self,
address: Address,
) -> Entry<'_, Address, GenesisAccount>
pub fn account_entry( &mut self, address: Address, ) -> Entry<'_, Address, GenesisAccount>
Gets an Entry for the provided address.
Trait Implementations§
Source§impl Debug for GenesisAllocator<'_>
impl Debug for GenesisAllocator<'_>
Auto Trait Implementations§
impl<'a> Freeze for GenesisAllocator<'a>
impl<'a> !RefUnwindSafe for GenesisAllocator<'a>
impl<'a> !Send for GenesisAllocator<'a>
impl<'a> !Sync for GenesisAllocator<'a>
impl<'a> Unpin for GenesisAllocator<'a>
impl<'a> !UnwindSafe for GenesisAllocator<'a>
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<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 64 bytes