-
Notifications
You must be signed in to change notification settings - Fork 0
/
handler.go
38 lines (33 loc) · 1.01 KB
/
handler.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
package swwallet
import (
"context"
"github.com/gorilla/mux"
swcommon "github.com/nodeset-org/hyperdrive-stakewise/common"
"github.com/rocket-pool/node-manager-core/api/server"
"github.com/rocket-pool/node-manager-core/log"
)
type WalletHandler struct {
logger *log.Logger
ctx context.Context
serviceProvider *swcommon.StakewiseServiceProvider
factories []server.IContextFactory
}
func NewWalletHandler(logger *log.Logger, ctx context.Context, serviceProvider *swcommon.StakewiseServiceProvider) *WalletHandler {
h := &WalletHandler{
logger: logger,
ctx: ctx,
serviceProvider: serviceProvider,
}
h.factories = []server.IContextFactory{
&walletClaimRewardsContextFactory{h},
&walletGenerateKeysContextFactory{h},
&walletInitializeContextFactory{h},
}
return h
}
func (h *WalletHandler) RegisterRoutes(router *mux.Router) {
subrouter := router.PathPrefix("/wallet").Subrouter()
for _, factory := range h.factories {
factory.RegisterRoute(subrouter)
}
}