pub trait InterchainAccountMethodsExt<Chain> {
// Required methods
fn register_interchain_account<Counterparty>(
&self,
from: &MonoTagged<Chain, &WalletAddress>,
connection_id: &TaggedConnectionIdRef<'_, Chain, Counterparty>
) -> Result<(), Error>;
fn query_interchain_account<Counterparty>(
&self,
from: &MonoTagged<Chain, &WalletAddress>,
connection_id: &TaggedConnectionIdRef<'_, Chain, Counterparty>
) -> Result<MonoTagged<Counterparty, WalletAddress>, Error>;
fn interchain_submit<Counterparty, T: Serialize>(
&self,
from: &MonoTagged<Chain, &WalletAddress>,
connection_id: &TaggedConnectionIdRef<'_, Chain, Counterparty>,
msg: &T
) -> Result<(), Error>;
}