signing

package
v2.1.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 24, 2026 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TaskName = "signing"
)

Variables

View Source
var File_protob_ecdsa_signing_proto protoreflect.FileDescriptor

Functions

func NewLocalParty

func NewLocalParty(
	msg *big.Int,
	params *tss.Parameters,
	key keygen.LocalPartySaveData,
	out chan<- tss.Message,
	end chan<- *common.SignatureData,
	fullBytesLen ...int) tss.Party

NewLocalParty creates a new signing party for the given message and keygen data.

func NewLocalPartyWithAutoKDD added in v2.1.2

func NewLocalPartyWithAutoKDD(
	msg *big.Int,
	params *tss.Parameters,
	key keygen.LocalPartySaveData,
	keyDerivationDelta *big.Int,
	out chan<- tss.Message,
	end chan<- *common.SignatureData,
	fullBytesLen ...int,
) tss.Party

NewLocalPartyWithAutoKDD returns a party with key derivation delta for HD support for a given unmodified master key. BigXj and ECDSAPub will be multiplied by the computed deltaG value transparently and any error will be returned as a tss.ErrorParty, so that this method can be used as a drop-in replacement to NewLocalParty.

NewLocalPartyWithKDD keeps its original behavior of running the process without performing the initial multiplication in order to not break anyone using or switching to this lib.

func NewLocalPartyWithKDD

func NewLocalPartyWithKDD(
	msg *big.Int,
	params *tss.Parameters,
	key keygen.LocalPartySaveData,
	keyDerivationDelta *big.Int,
	out chan<- tss.Message,
	end chan<- *common.SignatureData,
	fullBytesLen ...int,
) tss.Party

NewLocalPartyWithKDD returns a party with key derivation delta for HD support

func NewSignRound1Message1

func NewSignRound1Message1(
	to, from *tss.PartyID,
	c *big.Int,
	proof *mta.RangeProofAlice,
) tss.ParsedMessage

NewSignRound1Message1 creates a point-to-point message for signing round 1 containing the Paillier ciphertext and range proof.

func NewSignRound1Message2

func NewSignRound1Message2(
	from *tss.PartyID,
	commitment cmt.HashCommitment,
) tss.ParsedMessage

NewSignRound1Message2 creates a broadcast message for signing round 1 containing the hash commitment.

func NewSignRound2Message

func NewSignRound2Message(
	to, from *tss.PartyID,
	c1Ji *big.Int,
	pi1Ji *mta.ProofBob,
	c2Ji *big.Int,
	pi2Ji *mta.ProofBobWC,
) tss.ParsedMessage

NewSignRound2Message creates a point-to-point message for signing round 2 containing MtA ciphertexts and Bob proofs.

func NewSignRound3Message

func NewSignRound3Message(
	from *tss.PartyID,
	theta *big.Int,
) tss.ParsedMessage

NewSignRound3Message creates a broadcast message for signing round 3 containing the theta value.

func NewSignRound4Message

func NewSignRound4Message(
	from *tss.PartyID,
	deCommitment cmt.HashDeCommitment,
	proof *schnorr.ZKProof,
) tss.ParsedMessage

NewSignRound4Message creates a broadcast message for signing round 4 containing the de-commitment and Schnorr proof.

func NewSignRound5Message

func NewSignRound5Message(
	from *tss.PartyID,
	commitment cmt.HashCommitment,
) tss.ParsedMessage

NewSignRound5Message creates a broadcast message for signing round 5 containing the hash commitment.

func NewSignRound6Message

func NewSignRound6Message(
	from *tss.PartyID,
	deCommitment cmt.HashDeCommitment,
	proof *schnorr.ZKProof,
	vProof *schnorr.ZKVProof,
) tss.ParsedMessage

NewSignRound6Message creates a broadcast message for signing round 6 containing the de-commitment, Schnorr proof, and V-proof.

func NewSignRound7Message

func NewSignRound7Message(
	from *tss.PartyID,
	commitment cmt.HashCommitment,
) tss.ParsedMessage

NewSignRound7Message creates a broadcast message for signing round 7 containing the hash commitment.

func NewSignRound8Message

func NewSignRound8Message(
	from *tss.PartyID,
	deCommitment cmt.HashDeCommitment,
) tss.ParsedMessage

NewSignRound8Message creates a broadcast message for signing round 8 containing the de-commitment.

func NewSignRound9Message

func NewSignRound9Message(
	from *tss.PartyID,
	si *big.Int,
) tss.ParsedMessage

NewSignRound9Message creates a broadcast message for signing round 9 containing the partial signature.

func PrepareForSigning

func PrepareForSigning(ec elliptic.Curve, i, pax int, xi *big.Int, ks []*big.Int, bigXs []*crypto.ECPoint) (wi *big.Int, bigWs []*crypto.ECPoint)

PrepareForSigning(), GG18Spec (11) Fig. 14

func UpdatePublicKeyAndAdjustBigXj

func UpdatePublicKeyAndAdjustBigXj(keyDerivationDelta *big.Int, keys []keygen.LocalPartySaveData, extendedChildPk *ecdsa.PublicKey, ec elliptic.Curve) error

UpdatePublicKeyAndAdjustBigXj updates the ECDSA public key and adjusts each party's BigXj by the key derivation delta for HD wallet support.

Types

type LocalParty

type LocalParty struct {
	*tss.BaseParty
	// contains filtered or unexported fields
}

LocalParty represents a local participant in the ECDSA signing protocol.

func (*LocalParty) FirstRound

func (p *LocalParty) FirstRound() tss.Round

FirstRound returns the first round of the ECDSA signing protocol.

func (*LocalParty) PartyID

func (p *LocalParty) PartyID() *tss.PartyID

PartyID returns the party's unique identifier.

func (*LocalParty) Start

func (p *LocalParty) Start() error

Start begins the signing protocol for this party.

func (*LocalParty) StoreMessage

func (p *LocalParty) StoreMessage(msg tss.ParsedMessage) (bool, error)

StoreMessage validates and stores a protocol message in the appropriate round message slot.

func (*LocalParty) String

func (p *LocalParty) String() string

String returns a human-readable representation of this party.

func (*LocalParty) Update

func (p *LocalParty) Update(msg tss.ParsedMessage) (ok bool, err error)

Update processes a parsed protocol message for this party.

func (*LocalParty) UpdateFromBytes

func (p *LocalParty) UpdateFromBytes(wireBytes []byte, from *tss.PartyID, isBroadcast bool) (bool, error)

UpdateFromBytes parses raw wire bytes into a message and updates this party.

func (*LocalParty) ValidateMessage

func (p *LocalParty) ValidateMessage(msg tss.ParsedMessage) (bool, error)

ValidateMessage checks that the given message is well-formed and from a valid sender index.

type SignRound1Message1

type SignRound1Message1 struct {
	C               []byte   `protobuf:"bytes,1,opt,name=c,proto3" json:"c,omitempty"`
	RangeProofAlice [][]byte `protobuf:"bytes,2,rep,name=range_proof_alice,json=rangeProofAlice,proto3" json:"range_proof_alice,omitempty"`
	// contains filtered or unexported fields
}

Represents a P2P message sent to each party during Round 1 of the ECDSA TSS signing protocol.

func (*SignRound1Message1) Descriptor deprecated

func (*SignRound1Message1) Descriptor() ([]byte, []int)

Deprecated: Use SignRound1Message1.ProtoReflect.Descriptor instead.

func (*SignRound1Message1) GetC

func (x *SignRound1Message1) GetC() []byte

func (*SignRound1Message1) GetRangeProofAlice

func (x *SignRound1Message1) GetRangeProofAlice() [][]byte

func (*SignRound1Message1) ProtoMessage

func (*SignRound1Message1) ProtoMessage()

func (*SignRound1Message1) ProtoReflect

func (x *SignRound1Message1) ProtoReflect() protoreflect.Message

func (*SignRound1Message1) Reset

func (x *SignRound1Message1) Reset()

func (*SignRound1Message1) String

func (x *SignRound1Message1) String() string

func (*SignRound1Message1) UnmarshalC

func (m *SignRound1Message1) UnmarshalC() *big.Int

UnmarshalC deserializes the Paillier ciphertext from the message.

func (*SignRound1Message1) UnmarshalRangeProofAlice

func (m *SignRound1Message1) UnmarshalRangeProofAlice() (*mta.RangeProofAlice, error)

UnmarshalRangeProofAlice deserializes Alice's range proof from the message.

func (*SignRound1Message1) ValidateBasic

func (m *SignRound1Message1) ValidateBasic() bool

ValidateBasic checks that all required fields in the round 1 message 1 are non-empty.

type SignRound1Message2

type SignRound1Message2 struct {
	Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"`
	// contains filtered or unexported fields
}

Represents a BROADCAST message sent to all parties during Round 1 of the ECDSA TSS signing protocol.

func (*SignRound1Message2) Descriptor deprecated

func (*SignRound1Message2) Descriptor() ([]byte, []int)

Deprecated: Use SignRound1Message2.ProtoReflect.Descriptor instead.

func (*SignRound1Message2) GetCommitment

func (x *SignRound1Message2) GetCommitment() []byte

func (*SignRound1Message2) ProtoMessage

func (*SignRound1Message2) ProtoMessage()

func (*SignRound1Message2) ProtoReflect

func (x *SignRound1Message2) ProtoReflect() protoreflect.Message

func (*SignRound1Message2) Reset

func (x *SignRound1Message2) Reset()

func (*SignRound1Message2) String

func (x *SignRound1Message2) String() string

func (*SignRound1Message2) UnmarshalCommitment

func (m *SignRound1Message2) UnmarshalCommitment() *big.Int

UnmarshalCommitment deserializes the hash commitment from the message.

func (*SignRound1Message2) ValidateBasic

func (m *SignRound1Message2) ValidateBasic() bool

ValidateBasic checks that the commitment field in the round 1 message 2 is non-empty.

type SignRound2Message

type SignRound2Message struct {
	C1         []byte   `protobuf:"bytes,1,opt,name=c1,proto3" json:"c1,omitempty"`
	C2         []byte   `protobuf:"bytes,2,opt,name=c2,proto3" json:"c2,omitempty"`
	ProofBob   [][]byte `protobuf:"bytes,3,rep,name=proof_bob,json=proofBob,proto3" json:"proof_bob,omitempty"`
	ProofBobWc [][]byte `protobuf:"bytes,4,rep,name=proof_bob_wc,json=proofBobWc,proto3" json:"proof_bob_wc,omitempty"`
	// contains filtered or unexported fields
}

Represents a P2P message sent to each party during Round 2 of the ECDSA TSS signing protocol.

func (*SignRound2Message) Descriptor deprecated

func (*SignRound2Message) Descriptor() ([]byte, []int)

Deprecated: Use SignRound2Message.ProtoReflect.Descriptor instead.

func (*SignRound2Message) GetC1

func (x *SignRound2Message) GetC1() []byte

func (*SignRound2Message) GetC2

func (x *SignRound2Message) GetC2() []byte

func (*SignRound2Message) GetProofBob

func (x *SignRound2Message) GetProofBob() [][]byte

func (*SignRound2Message) GetProofBobWc

func (x *SignRound2Message) GetProofBobWc() [][]byte

func (*SignRound2Message) ProtoMessage

func (*SignRound2Message) ProtoMessage()

func (*SignRound2Message) ProtoReflect

func (x *SignRound2Message) ProtoReflect() protoreflect.Message

func (*SignRound2Message) Reset

func (x *SignRound2Message) Reset()

func (*SignRound2Message) String

func (x *SignRound2Message) String() string

func (*SignRound2Message) UnmarshalProofBob

func (m *SignRound2Message) UnmarshalProofBob() (*mta.ProofBob, error)

UnmarshalProofBob deserializes Bob's MtA proof from the message.

func (*SignRound2Message) UnmarshalProofBobWC

func (m *SignRound2Message) UnmarshalProofBobWC(ec elliptic.Curve) (*mta.ProofBobWC, error)

UnmarshalProofBobWC deserializes Bob's MtA proof with check from the message.

func (*SignRound2Message) ValidateBasic

func (m *SignRound2Message) ValidateBasic() bool

ValidateBasic checks that all required fields in the round 2 message are non-empty.

type SignRound3Message

type SignRound3Message struct {
	Theta []byte `protobuf:"bytes,1,opt,name=theta,proto3" json:"theta,omitempty"`
	// contains filtered or unexported fields
}

Represents a BROADCAST message sent to all parties during Round 3 of the ECDSA TSS signing protocol.

func (*SignRound3Message) Descriptor deprecated

func (*SignRound3Message) Descriptor() ([]byte, []int)

Deprecated: Use SignRound3Message.ProtoReflect.Descriptor instead.

func (*SignRound3Message) GetTheta

func (x *SignRound3Message) GetTheta() []byte

func (*SignRound3Message) ProtoMessage

func (*SignRound3Message) ProtoMessage()

func (*SignRound3Message) ProtoReflect

func (x *SignRound3Message) ProtoReflect() protoreflect.Message

func (*SignRound3Message) Reset

func (x *SignRound3Message) Reset()

func (*SignRound3Message) String

func (x *SignRound3Message) String() string

func (*SignRound3Message) ValidateBasic

func (m *SignRound3Message) ValidateBasic() bool

ValidateBasic checks that all required fields in the round 3 message are non-empty.

type SignRound4Message

type SignRound4Message struct {
	DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"`
	ProofAlphaX  []byte   `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"`
	ProofAlphaY  []byte   `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"`
	ProofT       []byte   `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"`
	// contains filtered or unexported fields
}

Represents a BROADCAST message sent to all parties during Round 4 of the ECDSA TSS signing protocol.

func (*SignRound4Message) Descriptor deprecated

func (*SignRound4Message) Descriptor() ([]byte, []int)

Deprecated: Use SignRound4Message.ProtoReflect.Descriptor instead.

func (*SignRound4Message) GetDeCommitment

func (x *SignRound4Message) GetDeCommitment() [][]byte

func (*SignRound4Message) GetProofAlphaX

func (x *SignRound4Message) GetProofAlphaX() []byte

func (*SignRound4Message) GetProofAlphaY

func (x *SignRound4Message) GetProofAlphaY() []byte

func (*SignRound4Message) GetProofT

func (x *SignRound4Message) GetProofT() []byte

func (*SignRound4Message) ProtoMessage

func (*SignRound4Message) ProtoMessage()

func (*SignRound4Message) ProtoReflect

func (x *SignRound4Message) ProtoReflect() protoreflect.Message

func (*SignRound4Message) Reset

func (x *SignRound4Message) Reset()

func (*SignRound4Message) String

func (x *SignRound4Message) String() string

func (*SignRound4Message) UnmarshalDeCommitment

func (m *SignRound4Message) UnmarshalDeCommitment() []*big.Int

UnmarshalDeCommitment deserializes the hash de-commitment from the message.

func (*SignRound4Message) UnmarshalZKProof

func (m *SignRound4Message) UnmarshalZKProof(ec elliptic.Curve) (*schnorr.ZKProof, error)

UnmarshalZKProof deserializes the Schnorr zero-knowledge proof from the message.

func (*SignRound4Message) ValidateBasic

func (m *SignRound4Message) ValidateBasic() bool

ValidateBasic checks that all required fields in the round 4 message are non-empty.

type SignRound5Message

type SignRound5Message struct {
	Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"`
	// contains filtered or unexported fields
}

Represents a BROADCAST message sent to all parties during Round 5 of the ECDSA TSS signing protocol.

func (*SignRound5Message) Descriptor deprecated

func (*SignRound5Message) Descriptor() ([]byte, []int)

Deprecated: Use SignRound5Message.ProtoReflect.Descriptor instead.

func (*SignRound5Message) GetCommitment

func (x *SignRound5Message) GetCommitment() []byte

func (*SignRound5Message) ProtoMessage

func (*SignRound5Message) ProtoMessage()

func (*SignRound5Message) ProtoReflect

func (x *SignRound5Message) ProtoReflect() protoreflect.Message

func (*SignRound5Message) Reset

func (x *SignRound5Message) Reset()

func (*SignRound5Message) String

func (x *SignRound5Message) String() string

func (*SignRound5Message) UnmarshalCommitment

func (m *SignRound5Message) UnmarshalCommitment() *big.Int

UnmarshalCommitment deserializes the hash commitment from the message.

func (*SignRound5Message) ValidateBasic

func (m *SignRound5Message) ValidateBasic() bool

ValidateBasic checks that all required fields in the round 5 message are non-empty.

type SignRound6Message

type SignRound6Message struct {
	DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"`
	ProofAlphaX  []byte   `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"`
	ProofAlphaY  []byte   `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"`
	ProofT       []byte   `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"`
	VProofAlphaX []byte   `protobuf:"bytes,5,opt,name=v_proof_alpha_x,json=vProofAlphaX,proto3" json:"v_proof_alpha_x,omitempty"`
	VProofAlphaY []byte   `protobuf:"bytes,6,opt,name=v_proof_alpha_y,json=vProofAlphaY,proto3" json:"v_proof_alpha_y,omitempty"`
	VProofT      []byte   `protobuf:"bytes,7,opt,name=v_proof_t,json=vProofT,proto3" json:"v_proof_t,omitempty"`
	VProofU      []byte   `protobuf:"bytes,8,opt,name=v_proof_u,json=vProofU,proto3" json:"v_proof_u,omitempty"`
	// contains filtered or unexported fields
}

Represents a BROADCAST message sent to all parties during Round 6 of the ECDSA TSS signing protocol.

func (*SignRound6Message) Descriptor deprecated

func (*SignRound6Message) Descriptor() ([]byte, []int)

Deprecated: Use SignRound6Message.ProtoReflect.Descriptor instead.

func (*SignRound6Message) GetDeCommitment

func (x *SignRound6Message) GetDeCommitment() [][]byte

func (*SignRound6Message) GetProofAlphaX

func (x *SignRound6Message) GetProofAlphaX() []byte

func (*SignRound6Message) GetProofAlphaY

func (x *SignRound6Message) GetProofAlphaY() []byte

func (*SignRound6Message) GetProofT

func (x *SignRound6Message) GetProofT() []byte

func (*SignRound6Message) GetVProofAlphaX

func (x *SignRound6Message) GetVProofAlphaX() []byte

func (*SignRound6Message) GetVProofAlphaY

func (x *SignRound6Message) GetVProofAlphaY() []byte

func (*SignRound6Message) GetVProofT

func (x *SignRound6Message) GetVProofT() []byte

func (*SignRound6Message) GetVProofU

func (x *SignRound6Message) GetVProofU() []byte

func (*SignRound6Message) ProtoMessage

func (*SignRound6Message) ProtoMessage()

func (*SignRound6Message) ProtoReflect

func (x *SignRound6Message) ProtoReflect() protoreflect.Message

func (*SignRound6Message) Reset

func (x *SignRound6Message) Reset()

func (*SignRound6Message) String

func (x *SignRound6Message) String() string

func (*SignRound6Message) UnmarshalDeCommitment

func (m *SignRound6Message) UnmarshalDeCommitment() []*big.Int

UnmarshalDeCommitment deserializes the hash de-commitment from the message.

func (*SignRound6Message) UnmarshalZKProof

func (m *SignRound6Message) UnmarshalZKProof(ec elliptic.Curve) (*schnorr.ZKProof, error)

UnmarshalZKProof deserializes the Schnorr zero-knowledge proof from the message.

func (*SignRound6Message) UnmarshalZKVProof

func (m *SignRound6Message) UnmarshalZKVProof(ec elliptic.Curve) (*schnorr.ZKVProof, error)

UnmarshalZKVProof deserializes the Schnorr V-proof from the message.

func (*SignRound6Message) ValidateBasic

func (m *SignRound6Message) ValidateBasic() bool

ValidateBasic checks that all required fields in the round 6 message are non-empty.

type SignRound7Message

type SignRound7Message struct {
	Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"`
	// contains filtered or unexported fields
}

Represents a BROADCAST message sent to all parties during Round 7 of the ECDSA TSS signing protocol.

func (*SignRound7Message) Descriptor deprecated

func (*SignRound7Message) Descriptor() ([]byte, []int)

Deprecated: Use SignRound7Message.ProtoReflect.Descriptor instead.

func (*SignRound7Message) GetCommitment

func (x *SignRound7Message) GetCommitment() []byte

func (*SignRound7Message) ProtoMessage

func (*SignRound7Message) ProtoMessage()

func (*SignRound7Message) ProtoReflect

func (x *SignRound7Message) ProtoReflect() protoreflect.Message

func (*SignRound7Message) Reset

func (x *SignRound7Message) Reset()

func (*SignRound7Message) String

func (x *SignRound7Message) String() string

func (*SignRound7Message) UnmarshalCommitment

func (m *SignRound7Message) UnmarshalCommitment() *big.Int

UnmarshalCommitment deserializes the hash commitment from the message.

func (*SignRound7Message) ValidateBasic

func (m *SignRound7Message) ValidateBasic() bool

ValidateBasic checks that all required fields in the round 7 message are non-empty.

type SignRound8Message

type SignRound8Message struct {
	DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"`
	// contains filtered or unexported fields
}

Represents a BROADCAST message sent to all parties during Round 8 of the ECDSA TSS signing protocol.

func (*SignRound8Message) Descriptor deprecated

func (*SignRound8Message) Descriptor() ([]byte, []int)

Deprecated: Use SignRound8Message.ProtoReflect.Descriptor instead.

func (*SignRound8Message) GetDeCommitment

func (x *SignRound8Message) GetDeCommitment() [][]byte

func (*SignRound8Message) ProtoMessage

func (*SignRound8Message) ProtoMessage()

func (*SignRound8Message) ProtoReflect

func (x *SignRound8Message) ProtoReflect() protoreflect.Message

func (*SignRound8Message) Reset

func (x *SignRound8Message) Reset()

func (*SignRound8Message) String

func (x *SignRound8Message) String() string

func (*SignRound8Message) UnmarshalDeCommitment

func (m *SignRound8Message) UnmarshalDeCommitment() []*big.Int

UnmarshalDeCommitment deserializes the hash de-commitment from the message.

func (*SignRound8Message) ValidateBasic

func (m *SignRound8Message) ValidateBasic() bool

ValidateBasic checks that all required fields in the round 8 message are non-empty.

type SignRound9Message

type SignRound9Message struct {
	S []byte `protobuf:"bytes,1,opt,name=s,proto3" json:"s,omitempty"`
	// contains filtered or unexported fields
}

Represents a BROADCAST message sent to all parties during Round 9 of the ECDSA TSS signing protocol.

func (*SignRound9Message) Descriptor deprecated

func (*SignRound9Message) Descriptor() ([]byte, []int)

Deprecated: Use SignRound9Message.ProtoReflect.Descriptor instead.

func (*SignRound9Message) GetS

func (x *SignRound9Message) GetS() []byte

func (*SignRound9Message) ProtoMessage

func (*SignRound9Message) ProtoMessage()

func (*SignRound9Message) ProtoReflect

func (x *SignRound9Message) ProtoReflect() protoreflect.Message

func (*SignRound9Message) Reset

func (x *SignRound9Message) Reset()

func (*SignRound9Message) String

func (x *SignRound9Message) String() string

func (*SignRound9Message) UnmarshalS

func (m *SignRound9Message) UnmarshalS() *big.Int

UnmarshalS deserializes the partial signature value from the message.

func (*SignRound9Message) ValidateBasic

func (m *SignRound9Message) ValidateBasic() bool

ValidateBasic checks that all required fields in the round 9 message are non-empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL