added rest server and status endpoint added get block endpoint added latest block endpoint add 404 if height is out of bounds add version endpoint add validators endpoint export GetBlockHeight add keys endpoints add txs endpoints added verb limiters to ednpoints only output node info + json structure improvement fixed wrong body parsing github PR template crypto.Address -> sdk.Address revert to old go-wire update glide remove print statement and update glide fix #554 add .DS_Store to .gitignore Massive consolidation: queue, data storage struct, store, logic, ... Small fixes
66 lines
1.3 KiB
Go
66 lines
1.3 KiB
Go
package keys
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
// CMD
|
|
|
|
// listKeysCmd represents the list command
|
|
var listKeysCmd = &cobra.Command{
|
|
Use: "list",
|
|
Short: "List all keys",
|
|
Long: `Return a list of all public keys stored by this key manager
|
|
along with their associated name and address.`,
|
|
RunE: runListCmd,
|
|
}
|
|
|
|
func runListCmd(cmd *cobra.Command, args []string) error {
|
|
kb, err := GetKeyBase()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
infos, err := kb.List()
|
|
if err == nil {
|
|
printInfos(infos)
|
|
}
|
|
return err
|
|
}
|
|
|
|
//REST
|
|
|
|
func QueryKeysRequestHandler(w http.ResponseWriter, r *http.Request) {
|
|
kb, err := GetKeyBase()
|
|
if err != nil {
|
|
w.WriteHeader(500)
|
|
w.Write([]byte(err.Error()))
|
|
return
|
|
}
|
|
infos, err := kb.List()
|
|
if err != nil {
|
|
w.WriteHeader(500)
|
|
w.Write([]byte(err.Error()))
|
|
return
|
|
}
|
|
// an empty list will be JSONized as null, but we want to keep the empty list
|
|
if len(infos) == 0 {
|
|
w.Write([]byte("[]"))
|
|
return
|
|
}
|
|
keysOutput := make([]KeyOutput, len(infos))
|
|
for i, info := range infos {
|
|
keysOutput[i] = KeyOutput{Name: info.Name, Address: info.PubKey.Address().String()}
|
|
}
|
|
output, err := json.MarshalIndent(keysOutput, "", " ")
|
|
if err != nil {
|
|
w.WriteHeader(500)
|
|
w.Write([]byte(err.Error()))
|
|
return
|
|
}
|
|
w.Write(output)
|
|
}
|