pub struct Wallet(/* private fields */);Expand description
A wallet backed by a JSON file, holding the client’s chains and which one is the default.
Implementations§
Source§impl PersistentWallet
impl PersistentWallet
Sourcepub fn get(&self, id: ChainId) -> Option<Chain>
pub fn get(&self, id: ChainId) -> Option<Chain>
Returns the chain with the given ID, if it is in the wallet.
Sourcepub fn remove(&self, id: ChainId) -> Result<Option<Chain>, Error>
pub fn remove(&self, id: ChainId) -> Result<Option<Chain>, Error>
Removes the chain with the given ID, adjusting the default chain if needed, and saves.
Sourcepub fn items(&self) -> Vec<(ChainId, Chain)>
pub fn items(&self) -> Vec<(ChainId, Chain)>
Returns all (chain ID, chain) pairs held by the wallet.
Sourcepub fn insert(&self, id: ChainId, chain: &Chain) -> Result<Option<Chain>, Error>
pub fn insert(&self, id: ChainId, chain: &Chain) -> Result<Option<Chain>, Error>
Inserts or replaces a chain, making it the default chain if it has an owner, and saves.
Sourcepub fn try_insert(
&self,
id: ChainId,
chain: Chain,
) -> Result<Option<Chain>, Error>
pub fn try_insert( &self, id: ChainId, chain: Chain, ) -> Result<Option<Chain>, Error>
Inserts a chain only if its ID is not already present, making it the default if it is the first chain, and saves.
Sourcepub fn create(
path: &Path,
genesis_config: GenesisConfig,
) -> Result<PersistentWallet, Error>
pub fn create( path: &Path, genesis_config: GenesisConfig, ) -> Result<PersistentWallet, Error>
Creates a new wallet file at path for the given genesis configuration.
Sourcepub fn read(path: &Path) -> Result<PersistentWallet, Error>
pub fn read(path: &Path) -> Result<PersistentWallet, Error>
Reads an existing wallet from the file at path.
Sourcepub fn genesis_config(&self) -> &GenesisConfig
pub fn genesis_config(&self) -> &GenesisConfig
Returns the network’s genesis configuration.
Sourcepub fn genesis_admin_chain_id(&self) -> ChainId
pub fn genesis_admin_chain_id(&self) -> ChainId
Returns the admin chain ID from the genesis configuration.
Sourcepub fn default_chain(&self) -> Option<ChainId>
pub fn default_chain(&self) -> Option<ChainId>
Returns the default chain, if one is set.
Sourcepub fn set_default_chain(&mut self, id: ChainId) -> Result<(), Error>
pub fn set_default_chain(&mut self, id: ChainId) -> Result<(), Error>
Sets the default chain, which must already be in the wallet, and saves.
Sourcepub fn mutate<R>(
&self,
chain_id: ChainId,
mutate: impl Fn(&mut Chain) -> R,
) -> Option<Result<R, Error>>
pub fn mutate<R>( &self, chain_id: ChainId, mutate: impl Fn(&mut Chain) -> R, ) -> Option<Result<R, Error>>
Applies a mutation to the chain with the given ID, saving afterwards. Returns None
if the chain is not in the wallet.
Sourcepub fn forget_keys(
&self,
chain_id: ChainId,
) -> Result<Option<AccountOwner>, Error>
pub fn forget_keys( &self, chain_id: ChainId, ) -> Result<Option<AccountOwner>, Error>
Removes and returns the owner of the given chain, if the chain and its owner are present.
Sourcepub fn forget_chain(&self, chain_id: ChainId) -> Result<Option<Chain>, Error>
pub fn forget_chain(&self, chain_id: ChainId) -> Result<Option<Chain>, Error>
Removes the chain with the given ID, saving if it was present, and returns it.
Sourcepub fn num_chains(&self) -> usize
pub fn num_chains(&self) -> usize
Returns the number of chains in the wallet.
Sourcepub fn owned_chain_ids(&self) -> Vec<ChainId>
pub fn owned_chain_ids(&self) -> Vec<ChainId>
Returns the list of all chain IDs for which we have a secret key.
Trait Implementations§
Source§impl Extend<(ChainId, Chain)> for PersistentWallet
impl Extend<(ChainId, Chain)> for PersistentWallet
Source§fn extend<It>(&mut self, chains: It)
fn extend<It>(&mut self, chains: It)
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one)Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one)Source§impl Wallet for PersistentWallet
impl Wallet for PersistentWallet
Source§async fn get(
&self,
id: ChainId,
) -> Result<Option<Chain>, <PersistentWallet as Wallet>::Error>
async fn get( &self, id: ChainId, ) -> Result<Option<Chain>, <PersistentWallet as Wallet>::Error>
Source§async fn remove(
&self,
id: ChainId,
) -> Result<Option<Chain>, <PersistentWallet as Wallet>::Error>
async fn remove( &self, id: ChainId, ) -> Result<Option<Chain>, <PersistentWallet as Wallet>::Error>
Source§fn items(
&self,
) -> impl Stream<Item = Result<(ChainId, Chain), <PersistentWallet as Wallet>::Error>>
fn items( &self, ) -> impl Stream<Item = Result<(ChainId, Chain), <PersistentWallet as Wallet>::Error>>
Source§async fn insert(
&self,
id: ChainId,
chain: Chain,
) -> Result<Option<Chain>, <PersistentWallet as Wallet>::Error>
async fn insert( &self, id: ChainId, chain: Chain, ) -> Result<Option<Chain>, <PersistentWallet as Wallet>::Error>
Source§async fn try_insert(
&self,
id: ChainId,
chain: Chain,
) -> Result<Option<Chain>, <PersistentWallet as Wallet>::Error>
async fn try_insert( &self, id: ChainId, chain: Chain, ) -> Result<Option<Chain>, <PersistentWallet as Wallet>::Error>
Source§async fn modify(
&self,
id: ChainId,
f: impl Fn(&mut Chain) + Send,
) -> Result<Option<()>, <PersistentWallet as Wallet>::Error>
async fn modify( &self, id: ChainId, f: impl Fn(&mut Chain) + Send, ) -> Result<Option<()>, <PersistentWallet as Wallet>::Error>
Ok(None) if the chain doesn’t exist. Read moreAuto Trait Implementations§
impl !Freeze for PersistentWallet
impl !UnwindSafe for PersistentWallet
impl RefUnwindSafe for PersistentWallet
impl Send for PersistentWallet
impl Sync for PersistentWallet
impl Unpin for PersistentWallet
impl UnsafeUnpin for PersistentWallet
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
impl<_INNER> AutoTraits for _INNER
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<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
impl<T> MaybeSend for Twhere
T: Send,
impl<T> MaybeSync for Twhere
T: Sync,
Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Post for Twhere
T: Send + 'static,
Source§impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
Source§fn read<'instance>(
&self,
instance: &'instance &mut I,
location: GuestPointer,
length: u32,
) -> Result<Cow<'instance, [u8]>, RuntimeError>
fn read<'instance>( &self, instance: &'instance &mut I, location: GuestPointer, length: u32, ) -> Result<Cow<'instance, [u8]>, RuntimeError>
Reads length bytes from memory from the provided location.
Source§fn write(
&mut self,
instance: &mut &mut I,
location: GuestPointer,
bytes: &[u8],
) -> Result<(), RuntimeError>
fn write( &mut self, instance: &mut &mut I, location: GuestPointer, bytes: &[u8], ) -> Result<(), RuntimeError>
Writes the bytes to memory at the provided location.