mirror of
https://github.com/filecoin-project/lotus.git
synced 2025-05-18 07:37:57 +08:00
180 lines
4.6 KiB
Go
180 lines
4.6 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
gen "github.com/whyrusleeping/cbor-gen"
|
|
"golang.org/x/sync/errgroup"
|
|
|
|
"github.com/filecoin-project/lotus/api"
|
|
"github.com/filecoin-project/lotus/blockstore"
|
|
"github.com/filecoin-project/lotus/chain/exchange"
|
|
"github.com/filecoin-project/lotus/chain/market"
|
|
"github.com/filecoin-project/lotus/chain/types"
|
|
"github.com/filecoin-project/lotus/cmd/lotus-shed/shedgen"
|
|
"github.com/filecoin-project/lotus/conformance/chaos"
|
|
"github.com/filecoin-project/lotus/node/hello"
|
|
"github.com/filecoin-project/lotus/paychmgr"
|
|
sealing "github.com/filecoin-project/lotus/storage/pipeline"
|
|
"github.com/filecoin-project/lotus/storage/pipeline/piece"
|
|
sectorstorage "github.com/filecoin-project/lotus/storage/sealer"
|
|
"github.com/filecoin-project/lotus/storage/sealer/storiface"
|
|
)
|
|
|
|
func main() {
|
|
var lets errgroup.Group
|
|
lets.Go(generateApiMaps)
|
|
lets.Go(generateApiTuples)
|
|
lets.Go(generateBlockstore)
|
|
lets.Go(generateChainExchange)
|
|
lets.Go(generateChainMarket)
|
|
lets.Go(generateChainTypes)
|
|
lets.Go(generateConformanceChaos)
|
|
lets.Go(generateLotusShed)
|
|
lets.Go(generateNodeHello)
|
|
lets.Go(generatePaychmgr)
|
|
lets.Go(generateStoragePipeline)
|
|
lets.Go(generateStoragePipelinePiece)
|
|
lets.Go(generateStorageSealer)
|
|
lets.Go(generateStorageSealerInterface)
|
|
if err := lets.Wait(); err != nil {
|
|
fmt.Println("Error:", err)
|
|
os.Exit(1)
|
|
}
|
|
fmt.Println("All CBOR encoders have been generated successfully.")
|
|
}
|
|
|
|
func generateBlockstore() error {
|
|
return gen.WriteTupleEncodersToFile("./blockstore/cbor_gen.go", "blockstore",
|
|
blockstore.NetRpcReq{},
|
|
blockstore.NetRpcResp{},
|
|
blockstore.NetRpcErr{},
|
|
)
|
|
}
|
|
|
|
func generateLotusShed() error {
|
|
return gen.WriteMapEncodersToFile("./cmd/lotus-shed/shedgen/cbor_gen.go", "shedgen",
|
|
shedgen.CarbNode{},
|
|
shedgen.DatastoreEntry{},
|
|
)
|
|
}
|
|
|
|
func generateStorageSealer() error {
|
|
return gen.WriteMapEncodersToFile("./storage/sealer/cbor_gen.go", "sealer",
|
|
sectorstorage.Call{},
|
|
sectorstorage.WorkState{},
|
|
sectorstorage.WorkID{},
|
|
)
|
|
}
|
|
|
|
func generateStoragePipeline() error {
|
|
return gen.WriteMapEncodersToFile("./storage/pipeline/cbor_gen.go", "sealing",
|
|
sealing.SectorInfo{},
|
|
sealing.Log{},
|
|
)
|
|
}
|
|
|
|
func generateStoragePipelinePiece() error {
|
|
return gen.WriteMapEncodersToFile("./storage/pipeline/piece/cbor_gen.go", "piece",
|
|
piece.PieceDealInfo{},
|
|
piece.DealSchedule{},
|
|
)
|
|
}
|
|
|
|
func generateStorageSealerInterface() error {
|
|
return gen.WriteMapEncodersToFile("./storage/sealer/storiface/cbor_gen.go", "storiface",
|
|
storiface.CallID{},
|
|
storiface.SecDataHttpHeader{},
|
|
storiface.SectorLocation{},
|
|
)
|
|
}
|
|
|
|
func generateChainExchange() error {
|
|
return gen.WriteTupleEncodersToFile("./chain/exchange/cbor_gen.go", "exchange",
|
|
exchange.Request{},
|
|
exchange.Response{},
|
|
exchange.CompactedMessagesCBOR{},
|
|
exchange.BSTipSet{},
|
|
)
|
|
}
|
|
|
|
func generateConformanceChaos() error {
|
|
return gen.WriteTupleEncodersToFile("./conformance/chaos/cbor_gen.go", "chaos",
|
|
chaos.State{},
|
|
chaos.CallerValidationArgs{},
|
|
chaos.CreateActorArgs{},
|
|
chaos.ResolveAddressResponse{},
|
|
chaos.SendArgs{},
|
|
chaos.SendReturn{},
|
|
chaos.MutateStateArgs{},
|
|
chaos.AbortWithArgs{},
|
|
chaos.InspectRuntimeReturn{},
|
|
)
|
|
}
|
|
|
|
func generateChainMarket() error {
|
|
return gen.WriteTupleEncodersToFile("./chain/market/cbor_gen.go", "market",
|
|
market.FundedAddressState{},
|
|
)
|
|
}
|
|
|
|
func generateNodeHello() error {
|
|
return gen.WriteTupleEncodersToFile("./node/hello/cbor_gen.go", "hello",
|
|
hello.HelloMessage{},
|
|
hello.LatencyMessage{},
|
|
)
|
|
}
|
|
|
|
func generateApiMaps() error {
|
|
return gen.WriteMapEncodersToFile("./api/cbor_gen.go", "api",
|
|
api.PaymentInfo{},
|
|
api.SealedRef{},
|
|
api.SealedRefs{},
|
|
api.SealTicket{},
|
|
api.SealSeed{},
|
|
api.SectorPiece{},
|
|
)
|
|
}
|
|
|
|
func generateApiTuples() error {
|
|
return gen.WriteTupleEncodersToFile("./api/cbor_tuples_gen.go", "api",
|
|
api.F3ParticipationLease{},
|
|
)
|
|
}
|
|
|
|
func generatePaychmgr() error {
|
|
return gen.WriteMapEncodersToFile("./paychmgr/cbor_gen.go", "paychmgr",
|
|
paychmgr.VoucherInfo{},
|
|
paychmgr.ChannelInfo{},
|
|
paychmgr.MsgInfo{},
|
|
)
|
|
}
|
|
|
|
func generateChainTypes() error {
|
|
return gen.WriteTupleEncodersToFile("./chain/types/cbor_gen.go", "types",
|
|
types.BlockHeader{},
|
|
types.Ticket{},
|
|
types.ElectionProof{},
|
|
types.Message{},
|
|
types.SignedMessage{},
|
|
types.MsgMeta{},
|
|
types.ActorV4{},
|
|
types.ActorV5{},
|
|
// types.MessageReceipt{}, // Custom serde to deal with versioning.
|
|
types.BlockMsg{},
|
|
types.ExpTipSet{},
|
|
types.BeaconEntry{},
|
|
types.StateRoot{},
|
|
types.StateInfo0{},
|
|
types.Event{},
|
|
types.EventEntry{},
|
|
// Tracing
|
|
types.GasTrace{},
|
|
types.ActorTrace{},
|
|
types.MessageTrace{},
|
|
types.ReturnTrace{},
|
|
types.ExecutionTrace{},
|
|
)
|
|
}
|