-
Notifications
You must be signed in to change notification settings - Fork 922
/
opts.go
42 lines (33 loc) · 1.09 KB
/
opts.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
package p2p
import (
"encoding/hex"
"github.com/ipfs/go-blockservice"
"github.com/libp2p/go-libp2p/core/crypto"
hst "github.com/libp2p/go-libp2p/core/host"
"go.uber.org/fx"
"github.com/celestiaorg/celestia-node/libs/fxutil"
)
// WithP2PKey sets custom Ed25519 private key for p2p networking.
func WithP2PKey(key crypto.PrivKey) fx.Option {
return fxutil.ReplaceAs(key, new(crypto.PrivKey))
}
// WithP2PKeyStr sets custom hex encoded Ed25519 private key for p2p networking.
func WithP2PKeyStr(key string) fx.Option {
decKey, err := hex.DecodeString(key)
if err != nil {
return fx.Error(err)
}
privKey, err := crypto.UnmarshalEd25519PrivateKey(decKey)
if err != nil {
return fx.Error(err)
}
return fxutil.ReplaceAs(privKey, new(crypto.PrivKey))
}
// WithHost sets custom Host's data for p2p networking.
func WithHost(hst hst.Host) fx.Option {
return fxutil.ReplaceAs(hst, new(HostBase))
}
// WithBlockService allows to replace the default BlockService.
func WithBlockService(bServ blockservice.BlockService) fx.Option {
return fxutil.ReplaceAs(bServ, new(blockservice.BlockService))
}