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() {}