iter->substore, enable delegator bonds query
This commit is contained in:
parent
d44c7afa30
commit
d464779d34
|
@ -48,7 +48,7 @@ func (ctx CoreContext) Query(key cmn.HexBytes, storeName string) (res []byte, er
|
||||||
|
|
||||||
// Query from Tendermint with the provided storename and subspace
|
// Query from Tendermint with the provided storename and subspace
|
||||||
func (ctx CoreContext) QuerySubspace(cdc *wire.Codec, subspace []byte, storeName string) (res []sdk.KV, err error) {
|
func (ctx CoreContext) QuerySubspace(cdc *wire.Codec, subspace []byte, storeName string) (res []sdk.KV, err error) {
|
||||||
resRaw, err := ctx.query(subspace, storeName, "iter")
|
resRaw, err := ctx.query(subspace, storeName, "subspace")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return res, err
|
return res, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -176,11 +176,11 @@ func (st *iavlStore) Query(req abci.RequestQuery) (res abci.ResponseQuery) {
|
||||||
} else {
|
} else {
|
||||||
_, res.Value = tree.GetVersioned(key, height)
|
_, res.Value = tree.GetVersioned(key, height)
|
||||||
}
|
}
|
||||||
case "/iter": // Get by key
|
case "/subspace":
|
||||||
key := req.Data // Data holds the key bytes
|
subspace := req.Data
|
||||||
res.Key = key
|
res.Key = subspace
|
||||||
var KVs []KV
|
var KVs []KV
|
||||||
iterator := st.SubspaceIterator(key)
|
iterator := st.SubspaceIterator(subspace)
|
||||||
for ; iterator.Valid(); iterator.Next() {
|
for ; iterator.Valid(); iterator.Next() {
|
||||||
KVs = append(KVs, KV{iterator.Key(), iterator.Value()})
|
KVs = append(KVs, KV{iterator.Key(), iterator.Value()})
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,9 +106,7 @@ func GetCmdQueryDelegatorBond(storeName string, cdc *wire.Codec) *cobra.Command
|
||||||
delegator := crypto.Address(bz)
|
delegator := crypto.Address(bz)
|
||||||
|
|
||||||
key := stake.GetDelegatorBondKey(delegator, addr, cdc)
|
key := stake.GetDelegatorBondKey(delegator, addr, cdc)
|
||||||
|
|
||||||
ctx := context.NewCoreContextFromViper()
|
ctx := context.NewCoreContextFromViper()
|
||||||
|
|
||||||
res, err := ctx.Query(key, storeName)
|
res, err := ctx.Query(key, storeName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -133,44 +131,42 @@ func GetCmdQueryDelegatorBond(storeName string, cdc *wire.Codec) *cobra.Command
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
//// get the command to query all the candidates bonded to a delegator
|
// get the command to query all the candidates bonded to a delegator
|
||||||
//func GetCmdQueryDelegatorBonds(storeName string, cdc *wire.Codec) *cobra.Command {
|
func GetCmdQueryDelegatorBonds(storeName string, cdc *wire.Codec) *cobra.Command {
|
||||||
//cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
//Use: "delegator-candidates",
|
Use: "delegator-candidates",
|
||||||
//Short: "Query all delegators bond's candidate-addresses based on delegator-address",
|
Short: "Query all delegators bonds based on delegator-address",
|
||||||
//RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
||||||
//bz, err := hex.DecodeString(viper.GetString(FlagAddressDelegator))
|
delegatorAddr, err := sdk.GetAddress(viper.GetString(FlagAddressDelegator))
|
||||||
//if err != nil {
|
if err != nil {
|
||||||
//return err
|
return err
|
||||||
//}
|
}
|
||||||
//delegator := crypto.Address(bz)
|
key := stake.GetDelegatorBondsKey(delegatorAddr, cdc)
|
||||||
|
ctx := context.NewCoreContextFromViper()
|
||||||
|
resKVs, err := ctx.QuerySubspace(cdc, key, storeName)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
//key := stake.GetDelegatorBondsKey(delegator, cdc)
|
// parse out the candidates
|
||||||
|
var delegators []stake.DelegatorBond
|
||||||
|
for _, KV := range resKVs {
|
||||||
|
var delegator stake.DelegatorBond
|
||||||
|
cdc.MustUnmarshalBinary(KV.Value, &delegator)
|
||||||
|
delegators = append(delegators, delegator)
|
||||||
|
}
|
||||||
|
|
||||||
//ctx := context.NewCoreContextFromViper()
|
output, err := wire.MarshalJSONIndent(cdc, delegators)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
fmt.Println(string(output))
|
||||||
|
return nil
|
||||||
|
|
||||||
//res, err := ctx.Query(key, storeName)
|
// TODO output with proofs / machine parseable etc.
|
||||||
//if err != nil {
|
},
|
||||||
//return err
|
}
|
||||||
//}
|
cmd.Flags().AddFlagSet(fsDelegator)
|
||||||
|
return cmd
|
||||||
//// parse out the candidates list
|
}
|
||||||
//var candidates []crypto.PubKey
|
|
||||||
//err = cdc.UnmarshalBinary(res, candidates)
|
|
||||||
//if err != nil {
|
|
||||||
//return err
|
|
||||||
//}
|
|
||||||
//output, err := wire.MarshalJSONIndent(cdc, candidates)
|
|
||||||
//if err != nil {
|
|
||||||
//return err
|
|
||||||
//}
|
|
||||||
//fmt.Println(string(output))
|
|
||||||
//return nil
|
|
||||||
|
|
||||||
//// TODO output with proofs / machine parseable etc.
|
|
||||||
//},
|
|
||||||
//}
|
|
||||||
//cmd.Flags().AddFlagSet(fsDelegator)
|
|
||||||
//return cmd
|
|
||||||
//}
|
|
||||||
|
|
Loading…
Reference in New Issue