github.com/cranelv/ethereum_mpc@v0.0.0-20191031014521-23aeb1415092/mpcService/step/request_mpcAccount_step.go (about)

     1  package step
     2  
     3  import (
     4  	"github.com/ethereum/go-ethereum/common"
     5  	"github.com/ethereum/go-ethereum/mpcService/protocol"
     6  	"github.com/ethereum/go-ethereum/log"
     7  )
     8  
     9  type RequestMpcAccountStep struct {
    10  	BaseStep
    11  	address     []byte
    12  	message     map[common.Hash]bool
    13  }
    14  func (req *RequestMpcAccountStep) InitStep()error{
    15  	return nil
    16  }
    17  func (req *RequestMpcAccountStep) CreateMessage() []protocol.StepMessage {
    18  	msg := protocol.StepMessage{
    19  		Msgcode:protocol.MSG_RequestMPC,
    20  		PeerID:nil,
    21  		Peers:req.nodeInfo.GetPeers()}
    22  	return []protocol.StepMessage{msg}
    23  }
    24  
    25  func (req *RequestMpcAccountStep) FinishStep(mpc protocol.MpcManager) error {
    26  	err := req.BaseStep.FinishStep()
    27  	if err != nil {
    28  		return err
    29  	}
    30  	return nil
    31  }
    32  
    33  func (req *RequestMpcAccountStep) HandleMessage(msg *protocol.StepMessage) bool {
    34  	log.Info("RequestMpcStep.HandleMessage begin," ,"peerID", msg.PeerID)
    35  	return true
    36  }
    37  
    38  
    39  func CreateRequestMpcStep(result protocol.MpcResultInterface,nodeinfo protocol.MpcNodeInterface, messageType uint32) protocol.MpcStepFunc {
    40  	if messageType == protocol.MpcCreateLockAccountLeader{
    41  		return &RequestMpcAccountStep{BaseStep: *CreateBaseStep(result,nodeinfo, nodeinfo.NeedQuorum()-1,true), message: make(map[common.Hash]bool)}
    42  	}else if messageType == protocol.MpcTXSignLeader{
    43  		return &RequestMpcSignStep{BaseStep: *CreateBaseStep(result,nodeinfo, nodeinfo.NeedQuorum()-1,true), message: make(map[common.Hash]bool)}
    44  	}
    45  	return nil
    46  }
    47  
    48