- package rpc
-
- import (
- "net/http"
-
- "github.com/tendermint/tendermint/account"
- "github.com/tendermint/tendermint/binary"
- . "github.com/tendermint/tendermint/common"
- )
-
- func GenPrivAccountHandler(w http.ResponseWriter, r *http.Request) {
- privAccount := account.GenPrivAccount()
-
- WriteAPIResponse(w, API_OK, struct {
- PrivAccount *account.PrivAccount
- }{privAccount})
- }
-
- //-----------------------------------------------------------------------------
-
- func GetAccountHandler(w http.ResponseWriter, r *http.Request) {
- addressStr := GetParam(r, "address")
-
- var address []byte
- var err error
- binary.ReadJSON(&address, []byte(addressStr), &err)
- if err != nil {
- WriteAPIResponse(w, API_INVALID_PARAM, Fmt("Invalid address: %v", err))
- return
- }
-
- state := consensusState.GetState()
- account_ := state.GetAccount(address)
-
- if account_ == nil {
- WriteAPIResponse(w, API_OK, struct{}{})
- return
- }
-
- WriteAPIResponse(w, API_OK, struct {
- Account *account.Account
- }{account_})
- }
-
- //-----------------------------------------------------------------------------
-
- func ListAccountsHandler(w http.ResponseWriter, r *http.Request) {
- var blockHeight uint
- var accounts []*account.Account
- state := consensusState.GetState()
- blockHeight = state.LastBlockHeight
- state.GetAccounts().Iterate(func(key interface{}, value interface{}) bool {
- accounts = append(accounts, value.(*account.Account))
- return false
- })
-
- WriteAPIResponse(w, API_OK, struct {
- BlockHeight uint
- Accounts []*account.Account
- }{blockHeight, accounts})
- }
|