/
routes.go
98 lines (81 loc) · 3.63 KB
/
routes.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package api
import (
rpc "github.com/cosmos/cosmos-sdk/client/rpc"
tx "github.com/cosmos/cosmos-sdk/client/tx"
auth "github.com/cosmos/cosmos-sdk/x/auth/client/rest"
bank "github.com/cosmos/cosmos-sdk/x/bank/client/rest"
gov "github.com/cosmos/cosmos-sdk/x/gov/client/rest"
)
const version = "v1"
const prefix = "/api/" + version
func (s *server) bindRoutes() *server {
r := s.router
// version routes
r.HandleFunc("/version", s.handleVersionReq()).
Methods("GET")
r.HandleFunc("/node_version", s.handleNodeVersionReq()).
Methods("GET")
// auth routes
r.HandleFunc(prefix+"/account/{address}", s.handleAccountReq(s.cdc, s.ctx)).
Methods("GET")
// tx routes
r.HandleFunc(prefix+"/simulate", s.handleSimulateReq(s.cdc, s.ctx)).
Methods("POST")
// dex routes
r.HandleFunc(prefix+"/markets", s.handleBEP2PairsReq(s.cdc, s.ctx)).
Methods("GET")
r.HandleFunc(prefix+"/depth", s.handleDexDepthReq(s.cdc, s.ctx)).
Queries("symbol", "{symbol}", "limit", "{limit:[0-9]+}").
Methods("GET")
r.HandleFunc(prefix+"/depth", s.handleDexDepthReq(s.cdc, s.ctx)).
Queries("symbol", "{symbol}").
Methods("GET")
r.HandleFunc(prefix+"/order", s.handleDexOrderReq(s.cdc, s.ctx, s.accStoreName)).
Methods("PUT", "POST")
r.HandleFunc(prefix+"/orders/open", s.handleDexOpenOrdersReq(s.cdc, s.ctx)).
Queries("address", "{address}", "symbol", "{symbol}").
Methods("GET")
r.HandleFunc(prefix+"/mini/markets", s.handleMiniPairsReq(s.cdc, s.ctx)).
Methods("GET")
// tokens routes
r.HandleFunc(prefix+"/tokens", s.handleTokensReq(s.cdc, s.ctx)).
Methods("GET")
r.HandleFunc(prefix+"/tokens/{symbol}", s.handleTokenReq(s.cdc, s.ctx)).
Methods("GET")
r.HandleFunc(prefix+"/balances/{address}", s.handleBalancesReq(s.cdc, s.ctx, s.tokens)).
Methods("GET")
r.HandleFunc(prefix+"/balances/{address}/{symbol}", s.handleBalanceReq(s.cdc, s.ctx, s.tokens)).
Methods("GET")
// mini tokens routes
r.HandleFunc(prefix+"/mini/tokens", s.handleMiniTokensReq(s.cdc, s.ctx)).
Methods("GET")
r.HandleFunc(prefix+"/mini/tokens/{symbol}", s.handleMiniTokenReq(s.cdc, s.ctx)).
Methods("GET")
// fee params
r.HandleFunc(prefix+"/fees", s.handleFeesParamReq(s.cdc, s.ctx)).
Methods("GET")
// stake query
r.HandleFunc(prefix+"/stake/validators", s.handleValidatorsQueryReq(s.cdc, s.ctx)).
Methods("GET")
r.HandleFunc(prefix+"/stake/unbonding_delegations/delegator/{delegatorAddr}", s.handleDelegatorUnbondingDelegationsQueryReq(s.cdc, s.ctx)).
Methods("GET")
// time locks query
r.HandleFunc(prefix+"/timelock/timelocks/{address}", s.handleTimeLocksReq(s.cdc, s.ctx)).Methods("GET")
r.HandleFunc(prefix+"/timelock/timelock/{address}/{id}", s.handleTimeLockReq(s.cdc, s.ctx)).Methods("GET")
r.HandleFunc(prefix+"/atomicswap/{swapID}", s.handleQuerySwapReq(s.cdc, s.ctx)).Methods("GET")
r.HandleFunc(prefix+"/atomicswap/creator/{creatorAddr}", s.handleQuerySwapIDsByCreatorReq(s.cdc, s.ctx)).
Queries("offset", "{offset:[0-9]+}", "limit", "{limit:[0-9]+}").
Methods("GET")
r.HandleFunc(prefix+"/atomicswap/recipient/{recipientAddr}", s.handleQuerySwapIDsByRecipientReq(s.cdc, s.ctx)).
Queries("offset", "{offset:[0-9]+}", "limit", "{limit:[0-9]+}").
Methods("GET")
// keys rest routes disabled for security. while the nodes with keys (validators) run in a secure ringfenced environment,
// disabling this is a precaution to protect third-party validators that might not have protected their networks adequately.
//keys.RegisterRoutes(r, true)
rpc.RegisterRoutes(s.ctx, r)
tx.RegisterRoutes(s.ctx, r, s.cdc)
auth.RegisterRoutes(s.ctx, r, s.cdc, s.accStoreName)
bank.RegisterRoutes(s.ctx, r, s.cdc, s.keyBase)
gov.RegisterRoutes(s.ctx, r, s.cdc)
return s
}