pub trait Snip20 {
Show 36 methods
    fn symbol_validation(&self) -> SymbolValidation { ... }
    fn name_range(&self) -> RangeInclusive<usize> { ... }
    fn deposit<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env
    ) -> StdResult<HandleResponse> { ... }
    fn redeem<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        amount: Uint128
    ) -> StdResult<HandleResponse> { ... }
    fn transfer<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        recipient: HumanAddr, 
        amount: Uint128, 
        memo: Option<String>
    ) -> StdResult<HandleResponse> { ... }
    fn send<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        recipient: HumanAddr, 
        recipient_code_hash: Option<String>, 
        amount: Uint128, 
        memo: Option<String>, 
        msg: Option<Binary>
    ) -> StdResult<HandleResponse> { ... }
    fn burn<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        amount: Uint128, 
        memo: Option<String>
    ) -> StdResult<HandleResponse> { ... }
    fn register_receive<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        code_hash: String
    ) -> StdResult<HandleResponse> { ... }
    fn set_viewing_key<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        key: String
    ) -> StdResult<HandleResponse> { ... }
    fn create_viewing_key<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        entropy: String
    ) -> StdResult<HandleResponse> { ... }
    fn increase_allowance<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        spender: HumanAddr, 
        amount: Uint128, 
        expiration: Option<u64>
    ) -> StdResult<HandleResponse> { ... }
    fn decrease_allowance<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        spender: HumanAddr, 
        amount: Uint128, 
        expiration: Option<u64>
    ) -> StdResult<HandleResponse> { ... }
    fn transfer_from<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        owner: HumanAddr, 
        recipient: HumanAddr, 
        amount: Uint128, 
        memo: Option<String>
    ) -> StdResult<HandleResponse> { ... }
    fn send_from<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        owner: HumanAddr, 
        recipient: HumanAddr, 
        recipient_code_hash: Option<String>, 
        amount: Uint128, 
        memo: Option<String>, 
        msg: Option<Binary>
    ) -> StdResult<HandleResponse> { ... }
    fn burn_from<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        owner: HumanAddr, 
        amount: Uint128, 
        memo: Option<String>
    ) -> StdResult<HandleResponse> { ... }
    fn mint<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        recipient: HumanAddr, 
        amount: Uint128, 
        memo: Option<String>
    ) -> StdResult<HandleResponse> { ... }
    fn change_admin<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        address: HumanAddr
    ) -> StdResult<HandleResponse> { ... }
    fn set_contract_status<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        status_level: ContractStatusLevel
    ) -> StdResult<HandleResponse> { ... }
    fn add_minters<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        minters_to_add: Vec<HumanAddr>
    ) -> StdResult<HandleResponse> { ... }
    fn remove_minters<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        minters_to_remove: Vec<HumanAddr>
    ) -> StdResult<HandleResponse> { ... }
    fn set_minters<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        minters_to_set: Vec<HumanAddr>
    ) -> StdResult<HandleResponse> { ... }
    fn batch_transfer<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        actions: Vec<TransferAction>
    ) -> StdResult<HandleResponse> { ... }
    fn batch_send<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        actions: Vec<SendAction>
    ) -> StdResult<HandleResponse> { ... }
    fn batch_transfer_from<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        actions: Vec<TransferFromAction>
    ) -> StdResult<HandleResponse> { ... }
    fn batch_send_from<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        actions: Vec<SendFromAction>
    ) -> StdResult<HandleResponse> { ... }
    fn batch_burn_from<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        actions: Vec<BurnFromAction>
    ) -> StdResult<HandleResponse> { ... }
    fn batch_mint<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        actions: Vec<MintAction>
    ) -> StdResult<HandleResponse> { ... }
    fn revoke_permit<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &mut Extern<S, A, Q>, 
        env: Env, 
        permit_name: String
    ) -> StdResult<HandleResponse> { ... }
    fn query_exchange_rate(
        &self, 
        storage: &impl ReadonlyStorage
    ) -> StdResult<Binary> { ... }
    fn query_token_info(
        &self, 
        storage: &impl ReadonlyStorage
    ) -> StdResult<Binary> { ... }
    fn query_contract_status<S: ReadonlyStorage>(
        &self, 
        storage: &S
    ) -> StdResult<Binary> { ... }
    fn query_minters<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &Extern<S, A, Q>
    ) -> StdResult<Binary> { ... }
    fn query_balance<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &Extern<S, A, Q>, 
        account: &HumanAddr
    ) -> StdResult<Binary> { ... }
    fn query_allowance<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &Extern<S, A, Q>, 
        owner: HumanAddr, 
        spender: HumanAddr
    ) -> StdResult<Binary> { ... }
    fn query_transfers<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &Extern<S, A, Q>, 
        account: &HumanAddr, 
        page: u32, 
        page_size: u32
    ) -> StdResult<Binary> { ... }
    fn query_transactions<S: Storage, A: Api, Q: Querier>(
        &self, 
        deps: &Extern<S, A, Q>, 
        account: &HumanAddr, 
        page: u32, 
        page_size: u32
    ) -> StdResult<Binary> { ... }
 }