lotus/chain/deals/handler.go

44 lines
893 B
Go
Raw Normal View History

2019-08-02 14:09:54 +00:00
package deals
import (
"github.com/filecoin-project/go-lotus/lib/cborrpc"
inet "github.com/libp2p/go-libp2p-core/network"
)
type Handler struct {
}
func NewHandler() *Handler {
return &Handler{}
}
func (h *Handler) HandleStream(s inet.Stream) {
defer s.Close()
2019-08-02 16:25:10 +00:00
log.Info("Handling storage deal proposal!")
2019-08-02 14:09:54 +00:00
var proposal SignedStorageDealProposal
if err := cborrpc.ReadCborRPC(s, &proposal); err != nil {
log.Errorw("failed to read proposal message", "error", err)
return
}
// TODO: Validate proposal maybe
// (and signature, obviously)
response := StorageDealResponse{
2019-08-02 16:25:10 +00:00
State: Accepted,
Message: "",
//Proposal: , // TODO
2019-08-02 14:09:54 +00:00
}
signedResponse := &SignedStorageDealResponse{
2019-08-02 16:25:10 +00:00
Response: response,
//Signature: sig, // TODO
2019-08-02 14:09:54 +00:00
}
if err := cborrpc.WriteCborRPC(s, signedResponse); err != nil {
log.Errorw("failed to write deal response", "error", err)
return
}
}