func (ar AssetRetriever) GetCoinPowers(acc AccountID) (Coins, int64, error) {
	bs, err := ModuleCdc.MarshalJSON(NewQueryCoinPowersParams(acc))
	if err != nil {
		return Coins{}, 0, err
	}
	res, height, err := ar.querier.QueryWithData(fmt.Sprintf("custom/%s/%s", QuerierRoute, QueryCoinPowers), bs)
	if err != nil {
		return Coins{}, height, err
	}
	var coinData Coins
	if err := ModuleCdc.UnmarshalJSON(res, &coinData); err != nil {
		return Coins{}, height, err
	}
	return coinData, height, nil
}
GetCoinPowers queries for coins powers for a account
package types
import (
	"fmt"
)
type NodeQuerier interface {
	QueryWithData(path string, data []byte) ([]byte, int64, error)
}
type AssetRetriever struct {
	querier NodeQuerier
}
func NewAssetRetriever(querier NodeQuerier) AssetRetriever {
	return AssetRetriever{querier: querier}
}
func (ar AssetRetriever) GetCoin(acc AccountID, creator, symbol Name) (Coin, int64, error) {
	bs, err := ModuleCdc.MarshalJSON(NewQueryCoinParams(acc, creator, symbol))
	if err != nil {
		return Coin{}, 0, err
	}
	res, height, err := ar.querier.QueryWithData(fmt.Sprintf("custom/%s/%s", QuerierRoute, QueryCoin), bs)
	if err != nil {
		return Coin{}, height, err
	}
	var coinData Coin
	if err := ModuleCdc.UnmarshalJSON(res, &coinData); err != nil {
		return Coin{}, height, err
	}
	return coinData, height, nil
}
func (ar AssetRetriever) GetCoins(acc AccountID) (Coins, int64, error) {
	bs, err := ModuleCdc.MarshalJSON(NewQueryCoinsParams(acc))
	if err != nil {
		return Coins{}, 0, err
	}
	res, height, err := ar.querier.QueryWithData(fmt.Sprintf("custom/%s/%s", QuerierRoute, QueryCoins), bs)
	if err != nil {
		return Coins{}, height, err
	}
	var coinData Coins
	if err := ModuleCdc.UnmarshalJSON(res, &coinData); err != nil {
		return Coins{}, height, err
	}
	return coinData, height, nil
}
func (ar AssetRetriever) GetCoinPower(acc AccountID, creator, symbol Name) (Coin, int64, error) {
	bs, err := ModuleCdc.MarshalJSON(NewQueryCoinPowerParams(acc, creator, symbol))
	if err != nil {
		return Coin{}, 0, err
	}
	res, height, err := ar.querier.QueryWithData(fmt.Sprintf("custom/%s/%s", QuerierRoute, QueryCoinPower), bs)
	if err != nil {
		return Coin{}, height, err
	}
	var coinData Coin
	if err := ModuleCdc.UnmarshalJSON(res, &coinData); err != nil {
		return Coin{}, height, err
	}
	return coinData, height, nil
}