mirror of
https://source.quilibrium.com/quilibrium/ceremonyclient.git
synced 2024-11-15 04:35:17 +00:00
134 lines
3.2 KiB
Go
134 lines
3.2 KiB
Go
//go:build wireinject
|
|
// +build wireinject
|
|
|
|
package app
|
|
|
|
import (
|
|
"github.com/google/wire"
|
|
"go.uber.org/zap"
|
|
"source.quilibrium.com/quilibrium/monorepo/node/config"
|
|
"source.quilibrium.com/quilibrium/monorepo/node/consensus"
|
|
"source.quilibrium.com/quilibrium/monorepo/node/consensus/master"
|
|
"source.quilibrium.com/quilibrium/monorepo/node/consensus/time"
|
|
"source.quilibrium.com/quilibrium/monorepo/node/crypto"
|
|
"source.quilibrium.com/quilibrium/monorepo/node/execution/intrinsics/token"
|
|
"source.quilibrium.com/quilibrium/monorepo/node/keys"
|
|
"source.quilibrium.com/quilibrium/monorepo/node/p2p"
|
|
"source.quilibrium.com/quilibrium/monorepo/node/protobufs"
|
|
"source.quilibrium.com/quilibrium/monorepo/node/store"
|
|
)
|
|
|
|
func logger() *zap.Logger {
|
|
log, err := zap.NewProduction()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return log
|
|
}
|
|
|
|
func debugLogger() *zap.Logger {
|
|
log, err := zap.NewDevelopment()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return log
|
|
}
|
|
|
|
var loggerSet = wire.NewSet(
|
|
logger,
|
|
)
|
|
|
|
var debugLoggerSet = wire.NewSet(
|
|
debugLogger,
|
|
)
|
|
|
|
var keyManagerSet = wire.NewSet(
|
|
wire.FieldsOf(new(*config.Config), "Key"),
|
|
keys.NewFileKeyManager,
|
|
wire.Bind(new(keys.KeyManager), new(*keys.FileKeyManager)),
|
|
)
|
|
|
|
var storeSet = wire.NewSet(
|
|
wire.FieldsOf(new(*config.Config), "DB"),
|
|
store.NewPebbleDB,
|
|
wire.Bind(new(store.KVDB), new(*store.PebbleDB)),
|
|
store.NewPebbleClockStore,
|
|
store.NewPebbleCoinStore,
|
|
store.NewPebbleKeyStore,
|
|
store.NewPebbleDataProofStore,
|
|
store.NewPeerstoreDatastore,
|
|
wire.Bind(new(store.ClockStore), new(*store.PebbleClockStore)),
|
|
wire.Bind(new(store.CoinStore), new(*store.PebbleCoinStore)),
|
|
wire.Bind(new(store.KeyStore), new(*store.PebbleKeyStore)),
|
|
wire.Bind(new(store.DataProofStore), new(*store.PebbleDataProofStore)),
|
|
wire.Bind(new(store.Peerstore), new(*store.PeerstoreDatastore)),
|
|
)
|
|
|
|
var pubSubSet = wire.NewSet(
|
|
wire.FieldsOf(new(*config.Config), "P2P"),
|
|
p2p.NewInMemoryPeerInfoManager,
|
|
p2p.NewBlossomSub,
|
|
wire.Bind(new(p2p.PubSub), new(*p2p.BlossomSub)),
|
|
wire.Bind(new(p2p.PeerInfoManager), new(*p2p.InMemoryPeerInfoManager)),
|
|
)
|
|
|
|
var engineSet = wire.NewSet(
|
|
wire.FieldsOf(new(*config.Config), "Engine"),
|
|
crypto.NewWesolowskiFrameProver,
|
|
wire.Bind(new(crypto.FrameProver), new(*crypto.WesolowskiFrameProver)),
|
|
crypto.NewKZGInclusionProver,
|
|
wire.Bind(new(crypto.InclusionProver), new(*crypto.KZGInclusionProver)),
|
|
time.NewMasterTimeReel,
|
|
token.NewTokenExecutionEngine,
|
|
)
|
|
|
|
var consensusSet = wire.NewSet(
|
|
master.NewMasterClockConsensusEngine,
|
|
wire.Bind(
|
|
new(consensus.ConsensusEngine),
|
|
new(*master.MasterClockConsensusEngine),
|
|
),
|
|
)
|
|
|
|
func NewDHTNode(*config.Config) (*DHTNode, error) {
|
|
panic(wire.Build(
|
|
debugLoggerSet,
|
|
pubSubSet,
|
|
newDHTNode,
|
|
))
|
|
}
|
|
|
|
func NewDebugNode(*config.Config, *protobufs.SelfTestReport) (*Node, error) {
|
|
panic(wire.Build(
|
|
debugLoggerSet,
|
|
keyManagerSet,
|
|
storeSet,
|
|
pubSubSet,
|
|
engineSet,
|
|
consensusSet,
|
|
newNode,
|
|
))
|
|
}
|
|
|
|
func NewNode(*config.Config, *protobufs.SelfTestReport) (*Node, error) {
|
|
panic(wire.Build(
|
|
loggerSet,
|
|
keyManagerSet,
|
|
storeSet,
|
|
pubSubSet,
|
|
engineSet,
|
|
consensusSet,
|
|
newNode,
|
|
))
|
|
}
|
|
|
|
func NewDBConsole(*config.Config) (*DBConsole, error) {
|
|
panic(wire.Build(newDBConsole))
|
|
}
|
|
|
|
func NewClockStore(*config.Config) (store.ClockStore, error) {
|
|
panic(wire.Build(loggerSet, storeSet))
|
|
}
|