multiversx_sc/std_impl/
bech32_address_impl.rs1use multiversx_chain_core::std::Bech32Address;
2
3use crate::{
4 abi::TypeAbiFrom,
5 api::ManagedTypeApi,
6 types::{
7 AnnotatedValue, ManagedAddress, ManagedBuffer, TxEnv, TxFrom, TxFromSpecified, TxTo,
8 TxToSpecified,
9 },
10};
11
12impl<Env> AnnotatedValue<Env, ManagedAddress<Env::Api>> for Bech32Address
13where
14 Env: TxEnv,
15{
16 fn annotation(&self, _env: &Env) -> ManagedBuffer<Env::Api> {
17 self.to_bech32_expr().into()
18 }
19
20 fn to_value(&self, env: &Env) -> ManagedAddress<Env::Api> {
21 self.address.to_value(env)
22 }
23}
24
25impl<Env> TxFrom<Env> for Bech32Address
26where
27 Env: TxEnv,
28{
29 fn resolve_address(&self, env: &Env) -> ManagedAddress<Env::Api> {
30 self.address.resolve_address(env)
31 }
32}
33impl<Env> TxFromSpecified<Env> for Bech32Address where Env: TxEnv {}
34impl<Env> TxTo<Env> for Bech32Address where Env: TxEnv {}
35impl<Env> TxToSpecified<Env> for Bech32Address where Env: TxEnv {}
36
37impl<Env> AnnotatedValue<Env, ManagedAddress<Env::Api>> for &Bech32Address
38where
39 Env: TxEnv,
40{
41 fn annotation(&self, _env: &Env) -> ManagedBuffer<Env::Api> {
42 self.to_bech32_expr().into()
43 }
44
45 fn to_value(&self, env: &Env) -> ManagedAddress<Env::Api> {
46 self.address.to_value(env)
47 }
48}
49
50impl<Env> TxFrom<Env> for &Bech32Address
51where
52 Env: TxEnv,
53{
54 fn resolve_address(&self, env: &Env) -> ManagedAddress<Env::Api> {
55 self.address.resolve_address(env)
56 }
57}
58impl<Env> TxFromSpecified<Env> for &Bech32Address where Env: TxEnv {}
59impl<Env> TxTo<Env> for &Bech32Address where Env: TxEnv {}
60impl<Env> TxToSpecified<Env> for &Bech32Address where Env: TxEnv {}
61
62impl<M> TypeAbiFrom<Bech32Address> for ManagedAddress<M> where M: ManagedTypeApi {}
63impl<M> TypeAbiFrom<&Bech32Address> for ManagedAddress<M> where M: ManagedTypeApi {}