github.com/Finschia/finschia-sdk@v0.48.1/proto/cosmos/tx/signing/v1beta1/signing.proto (about)

     1  syntax = "proto3";
     2  package cosmos.tx.signing.v1beta1;
     3  
     4  import "cosmos/crypto/multisig/v1beta1/multisig.proto";
     5  import "google/protobuf/any.proto";
     6  
     7  option go_package = "github.com/Finschia/finschia-sdk/types/tx/signing";
     8  
     9  // SignMode represents a signing mode with its own security guarantees.
    10  enum SignMode {
    11    // SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be
    12    // rejected
    13    SIGN_MODE_UNSPECIFIED = 0;
    14  
    15    // SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is
    16    // verified with raw bytes from Tx
    17    SIGN_MODE_DIRECT = 1;
    18  
    19    // SIGN_MODE_TEXTUAL is a future signing mode that will verify some
    20    // human-readable textual representation on top of the binary representation
    21    // from SIGN_MODE_DIRECT
    22    SIGN_MODE_TEXTUAL = 2;
    23  
    24    // SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses
    25    // Amino JSON and will be removed in the future
    26    SIGN_MODE_LEGACY_AMINO_JSON = 127;
    27  
    28    // SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos
    29    // SDK. Ref: https://eips.ethereum.org/EIPS/eip-191
    30    //
    31    // Currently, SIGN_MODE_EIP_191 is registered as a SignMode enum variant,
    32    // but is not implemented on the SDK by default. To enable EIP-191, you need
    33    // to pass a custom `TxConfig` that has an implementation of
    34    // `SignModeHandler` for EIP-191. The SDK may decide to fully support
    35    // EIP-191 in the future.
    36    //
    37    // Since: cosmos-sdk 0.45.2
    38    SIGN_MODE_EIP_191 = 191;
    39  }
    40  
    41  // SignatureDescriptors wraps multiple SignatureDescriptor's.
    42  message SignatureDescriptors {
    43    // signatures are the signature descriptors
    44    repeated SignatureDescriptor signatures = 1;
    45  }
    46  
    47  // SignatureDescriptor is a convenience type which represents the full data for
    48  // a signature including the public key of the signer, signing modes and the
    49  // signature itself. It is primarily used for coordinating signatures between
    50  // clients.
    51  message SignatureDescriptor {
    52    // public_key is the public key of the signer
    53    google.protobuf.Any public_key = 1;
    54  
    55    Data data = 2;
    56  
    57    // sequence is the sequence of the account, which describes the
    58    // number of committed transactions signed by a given address. It is used to prevent
    59    // replay attacks.
    60    uint64 sequence = 3;
    61  
    62    // Data represents signature data
    63    message Data {
    64      // sum is the oneof that specifies whether this represents single or multi-signature data
    65      oneof sum {
    66        // single represents a single signer
    67        Single single = 1;
    68  
    69        // multi represents a multisig signer
    70        Multi multi = 2;
    71      }
    72  
    73      // Single is the signature data for a single signer
    74      message Single {
    75        // mode is the signing mode of the single signer
    76        SignMode mode = 1;
    77  
    78        // signature is the raw signature bytes
    79        bytes signature = 2;
    80      }
    81  
    82      // Multi is the signature data for a multisig public key
    83      message Multi {
    84        // bitarray specifies which keys within the multisig are signing
    85        cosmos.crypto.multisig.v1beta1.CompactBitArray bitarray = 1;
    86  
    87        // signatures is the signatures of the multi-signature
    88        repeated Data signatures = 2;
    89      }
    90    }
    91  }