42 lines
1.3 KiB
Go
42 lines
1.3 KiB
Go
package api
|
|
|
|
import (
|
|
"github.com/gorilla/mux"
|
|
"net/http"
|
|
)
|
|
|
|
func NewRouter(h *Handler) http.Handler {
|
|
r := mux.NewRouter()
|
|
|
|
r.HandleFunc("/health", h.Health).Methods("GET")
|
|
r.HandleFunc("/startup", h.Startup).Methods("GET")
|
|
r.HandleFunc("/ready", h.Ready).Methods("GET")
|
|
|
|
// ⚡ Transações
|
|
r.HandleFunc("/transaction", h.SendTransaction).Methods("POST")
|
|
r.HandleFunc("/transaction/{hash}", h.GetTransactionByHash).Methods("GET")
|
|
|
|
// 🔐 Staking
|
|
r.HandleFunc("/stake", h.StakeHandler).Methods("POST")
|
|
r.HandleFunc("/unstake", h.UnstakeHandler).Methods("POST")
|
|
r.HandleFunc("/stake/{address}", h.GetStakeInfo).Methods("GET")
|
|
|
|
// 🗳️ DAO
|
|
r.HandleFunc("/dao/proposals", h.CreateProposal).Methods("POST")
|
|
r.HandleFunc("/dao/proposals/{id}/vote", h.VoteProposal).Methods("POST")
|
|
r.HandleFunc("/dao/proposals", h.ListProposals).Methods("GET")
|
|
r.HandleFunc("/dao/proposals/{id}", h.GetProposal).Methods("GET")
|
|
|
|
// 💰 Accounts
|
|
r.HandleFunc("/accounts/{address}", HandleGetBalance).Methods("GET")
|
|
r.HandleFunc("/accounts/{address}/txs", HandleGetTransactionsByAddress).Methods("GET")
|
|
|
|
// 📦 Blocos
|
|
r.HandleFunc("/blocks", h.ListBlocks).Methods("GET")
|
|
r.HandleFunc("/blocks/{height}", h.GetBlockByHeight).Methods("GET")
|
|
|
|
// ❤️ Heartbeat
|
|
r.HandleFunc("/ping", HandlePing).Methods("GET")
|
|
|
|
return r
|
|
} |