multiversx_sc/contract_base/
proxy_obj_base.rsuse crate::{
api::VMApi,
types::{ManagedAddress, ManagedOption, TxScEnv, TxTo},
};
pub trait ProxyObjBase {
type Api: VMApi;
type To: TxTo<TxScEnv<Self::Api>>;
#[doc(hidden)]
fn extract_opt_address(&mut self) -> ManagedOption<Self::Api, ManagedAddress<Self::Api>>;
#[doc(hidden)]
fn extract_address(&mut self) -> ManagedAddress<Self::Api>;
#[doc(hidden)]
fn extract_proxy_to(&mut self) -> Self::To;
}
pub trait ProxyObjNew: ProxyObjBase {
type ProxyTo: ProxyObjBase;
#[doc(hidden)]
fn new_proxy_obj() -> Self;
#[must_use]
fn contract(self, address: ManagedAddress<Self::Api>) -> Self::ProxyTo;
}