pub trait ContractInstance<Chain: CwEnv> {
// Required methods
fn as_instance(&self) -> &Contract<Chain>;
fn as_instance_mut(&mut self) -> &mut Contract<Chain>;
// Provided methods
fn id(&self) -> String { ... }
fn address(&self) -> Result<Addr, BootError> { ... }
fn addr_str(&self) -> Result<String, BootError> { ... }
fn code_id(&self) -> Result<u64, BootError> { ... }
fn set_address(&self, address: &Addr) { ... }
fn set_code_id(&self, code_id: u64) { ... }
fn get_chain(&self) -> &Chain { ... }
}