github.com/Finschia/finschia-sdk@v0.48.1/types/tx/signing/signature_data.go (about)

     1  package signing
     2  
     3  import (
     4  	"github.com/Finschia/finschia-sdk/crypto/types"
     5  )
     6  
     7  // SignatureData represents either a *SingleSignatureData or *MultiSignatureData.
     8  // It is a convenience type that is easier to use in business logic than the encoded
     9  // protobuf ModeInfo's and raw signatures.
    10  type SignatureData interface {
    11  	isSignatureData()
    12  }
    13  
    14  // SingleSignatureData represents the signature and SignMode of a single (non-multisig) signer
    15  type SingleSignatureData struct {
    16  	// SignMode represents the SignMode of the signature
    17  	SignMode SignMode
    18  
    19  	// SignMode represents the SignMode of the signature
    20  	Signature []byte
    21  }
    22  
    23  // MultiSignatureData represents the nested SignatureData of a multisig signature
    24  type MultiSignatureData struct {
    25  	// BitArray is a compact way of indicating which signers from the multisig key
    26  	// have signed
    27  	BitArray *types.CompactBitArray
    28  
    29  	// Signatures is the nested SignatureData's for each signer
    30  	Signatures []SignatureData
    31  }
    32  
    33  var _, _ SignatureData = &SingleSignatureData{}, &MultiSignatureData{}
    34  
    35  func (m *SingleSignatureData) isSignatureData() {}
    36  func (m *MultiSignatureData) isSignatureData()  {}