func (h *Handler) Execute(ctx context.Context, req *pb.ExecuteRequest) (*empty.Empty, error) {
	senderID := h.senderID(ctx)
	if senderID == 0 {
		log.Warn().Interface("client", ctx.Value(&interceptors.ClientName{})).Msg("Failed to obtain participant ID of sender")
		return nil, errors.New("Unknown sender")
	}
	log.Trace().Uint64("sender_id", senderID).Msg("Executing as per request from sender")
	err := h.process.OnExecute(ctx, senderID, req.Account)
	if err != nil {
		log.Error().Err(err).Msg("Failed to execute distributed key generation")
		return nil, err
	}
	log.Trace().Msg("Completed execution successfully")
	return &empty.Empty{}, nil
}
Execute handles the Execute() grpc call.
package receiver
import (
	context "context"
	"github.com/attestantio/dirk/services/api/grpc/interceptors"
	"github.com/golang/protobuf/ptypes/empty"
	"github.com/pkg/errors"
	pb "github.com/wealdtech/eth2-signer-api/pb/v1"
)