pub trait Contract {
fn new<S: Storage, A: Api, Q: Querier>(
&self,
initial_value: u64,
deps: &mut Extern<S, A, Q>,
env: Env
) -> StdResult<InitResponse>;
fn add<S: Storage, A: Api, Q: Querier>(
&self,
value: u64,
deps: &mut Extern<S, A, Q>,
env: Env
) -> StdResult<HandleResponse>;
fn sub<S: Storage, A: Api, Q: Querier>(
&self,
value: u64,
deps: &mut Extern<S, A, Q>,
env: Env
) -> StdResult<HandleResponse>;
fn mul<S: Storage, A: Api, Q: Querier>(
&self,
value: u64,
deps: &mut Extern<S, A, Q>,
env: Env
) -> StdResult<HandleResponse>;
fn div<S: Storage, A: Api, Q: Querier>(
&self,
value: u64,
deps: &mut Extern<S, A, Q>,
env: Env
) -> StdResult<HandleResponse>;
fn state<S: Storage, A: Api, Q: Querier>(
&self,
deps: &Extern<S, A, Q>
) -> StdResult<StateResponse>;
}