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 }