diff --git a/docs/core/proto-docs.md b/docs/core/proto-docs.md index b9d5372e35ab..91cc1f70d65d 100644 --- a/docs/core/proto-docs.md +++ b/docs/core/proto-docs.md @@ -611,8 +611,10 @@ - [ModeInfo.Multi](#cosmos.tx.v1beta1.ModeInfo.Multi) - [ModeInfo.Single](#cosmos.tx.v1beta1.ModeInfo.Single) - [SignDoc](#cosmos.tx.v1beta1.SignDoc) + - [SignDocDirectAux](#cosmos.tx.v1beta1.SignDocDirectAux) - [SignDocJSON](#cosmos.tx.v1beta1.SignDocJSON) - [SignerInfo](#cosmos.tx.v1beta1.SignerInfo) + - [Tip](#cosmos.tx.v1beta1.Tip) - [Tx](#cosmos.tx.v1beta1.Tx) - [TxBody](#cosmos.tx.v1beta1.TxBody) - [TxRaw](#cosmos.tx.v1beta1.TxRaw) @@ -8623,7 +8625,8 @@ SignMode represents a signing mode with its own security guarantees. | SIGN_MODE_UNSPECIFIED | 0 | SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be rejected. | | SIGN_MODE_DIRECT | 1 | SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is verified with raw bytes from Tx. | | SIGN_MODE_TEXTUAL | 2 | SIGN_MODE_TEXTUAL is a future signing mode that will verify some human-readable textual representation on top of the binary representation from SIGN_MODE_DIRECT. It is currently not supported. | -| SIGN_MODE_DIRECT_JSON | 3 | SIGN_MODE_DIRECT_JSON specifies a signing mode which uses SignDocJSON. It is verified using a canonical JSON representation of the bytes used in SIGN_MODE_DIRECT. | +| SIGN_MODE_DIRECT_JSON | 3 | SIGN_MODE_DIRECT_JSON specifies a signing mode which uses SignDocJSON. It is verified using a canonical JSON representation of the bytes used in SIGN_MODE_DIRECT. It is currently not supported. | +| SIGN_MODE_DIRECT_AUX | 4 | SIGN_MODE_DIRECT_AUX specifies a signing mode which uses SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not require signers signing over other signers' `signer_info`. It also allows for adding Tips in transactions. | | SIGN_MODE_LEGACY_AMINO_JSON | 127 | SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses Amino JSON and will be removed in the future. | @@ -8653,6 +8656,7 @@ transaction. | ----- | ---- | ----- | ----------- | | `signer_infos` | [SignerInfo](#cosmos.tx.v1beta1.SignerInfo) | repeated | signer_infos defines the signing modes for the required signers. The number and order of elements must match the required signers from TxBody's messages. The first element is the primary signer and the one which pays the fee. | | `fee` | [Fee](#cosmos.tx.v1beta1.Fee) | | Fee is the fee and gas limit for the transaction. The first signer is the primary signer and the one which pays the fee. The fee can be calculated based on the cost of evaluating the body and doing signature verification of the signers. This can be estimated via simulation. | +| `tip` | [Tip](#cosmos.tx.v1beta1.Tip) | | Tip is the optional tip used for meta-transactions. | @@ -8746,6 +8750,27 @@ SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. + + +### SignDocDirectAux +SignDocDirectAux is the type used for generating sign bytes for +SIGN_MODE_DIRECT_AUX. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `body_bytes` | [bytes](#bytes) | | body_bytes is protobuf serialization of a TxBody that matches the representation in TxRaw. | +| `public_key` | [google.protobuf.Any](#google.protobuf.Any) | | public_key is the public key of the signing account. | +| `chain_id` | [string](#string) | | chain_id is the identifier of the chain this transaction targets. It prevents signed transactions from being used on another chain by an attacker. | +| `account_number` | [uint64](#uint64) | | account_number is the account number of the account in state. | +| `sequence` | [uint64](#uint64) | | sequence is the sequence number of the signing account. | +| `tip` | [Tip](#cosmos.tx.v1beta1.Tip) | | Tip is the optional tip used for meta-transactions. It should be left empty if the signer is not the tipper for this transaction. | + + + + + + ### SignDocJSON @@ -8786,6 +8811,22 @@ signer. + + +### Tip +Tip is the tip used for meta-transactions. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | amount is the amount of the tip | +| `tipper` | [string](#string) | | tipper is the address of the account paying for the tip | + + + + + + ### Tx diff --git a/proto/cosmos/tx/signing/v1beta1/signing.proto b/proto/cosmos/tx/signing/v1beta1/signing.proto index 58d33e709d60..6a49860c2d54 100644 --- a/proto/cosmos/tx/signing/v1beta1/signing.proto +++ b/proto/cosmos/tx/signing/v1beta1/signing.proto @@ -23,9 +23,15 @@ enum SignMode { // SIGN_MODE_DIRECT_JSON specifies a signing mode which uses SignDocJSON. It // is verified using a canonical JSON representation of the bytes used in - // SIGN_MODE_DIRECT. + // SIGN_MODE_DIRECT. It is currently not supported. SIGN_MODE_DIRECT_JSON = 3; + // SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + // SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not + // require signers signing over other signers' `signer_info`. It also allows + // for adding Tips in transactions. + SIGN_MODE_DIRECT_AUX = 4; + // SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses // Amino JSON and will be removed in the future. SIGN_MODE_LEGACY_AMINO_JSON = 127; diff --git a/proto/cosmos/tx/v1beta1/tx.proto b/proto/cosmos/tx/v1beta1/tx.proto index 6d00d92cfe59..921dae7ebc59 100644 --- a/proto/cosmos/tx/v1beta1/tx.proto +++ b/proto/cosmos/tx/v1beta1/tx.proto @@ -96,6 +96,32 @@ message SignDocJSON { bytes sign_doc_sha256_hash = 5; } +// SignDocDirectAux is the type used for generating sign bytes for +// SIGN_MODE_DIRECT_AUX. +message SignDocDirectAux { + // body_bytes is protobuf serialization of a TxBody that matches the + // representation in TxRaw. + bytes body_bytes = 1; + + // public_key is the public key of the signing account. + google.protobuf.Any public_key = 2; + + // chain_id is the identifier of the chain this transaction targets. + // It prevents signed transactions from being used on another chain by an + // attacker. + string chain_id = 3; + + // account_number is the account number of the account in state. + uint64 account_number = 4; + + // sequence is the sequence number of the signing account. + uint64 sequence = 5; + + // Tip is the optional tip used for meta-transactions. It should be left + // empty if the signer is not the tipper for this transaction. + Tip tip = 6; +} + // TxBody is the body of a transaction that all signers sign over. message TxBody { // messages is a list of messages to be executed. The required signers of @@ -141,6 +167,9 @@ message AuthInfo { // based on the cost of evaluating the body and doing signature verification // of the signers. This can be estimated via simulation. Fee fee = 2; + + // Tip is the optional tip used for meta-transactions. + Tip tip = 3; } // SignerInfo describes the public key and signing mode of a single top-level @@ -214,3 +243,11 @@ message Fee { // not support fee grants, this will fail string granter = 4; } + +// Tip is the tip used for meta-transactions. +message Tip { + // amount is the amount of the tip + repeated cosmos.base.v1beta1.Coin amount = 1; + // tipper is the address of the account paying for the tip + string tipper = 2; +} diff --git a/types/tx/signing/signing.pb.go b/types/tx/signing/signing.pb.go index 10d8e96cfa32..d59381440f08 100644 --- a/types/tx/signing/signing.pb.go +++ b/types/tx/signing/signing.pb.go @@ -40,8 +40,13 @@ const ( SignMode_SIGN_MODE_TEXTUAL SignMode = 2 // SIGN_MODE_DIRECT_JSON specifies a signing mode which uses SignDocJSON. It // is verified using a canonical JSON representation of the bytes used in - // SIGN_MODE_DIRECT. + // SIGN_MODE_DIRECT. It is currently not supported. SignMode_SIGN_MODE_DIRECT_JSON SignMode = 3 + // SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + // SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not + // require signers signing over other signers' `signer_info`. It also allows + // for adding Tips in transactions. + SignMode_SIGN_MODE_DIRECT_AUX SignMode = 4 // SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses // Amino JSON and will be removed in the future. SignMode_SIGN_MODE_LEGACY_AMINO_JSON SignMode = 127 @@ -52,6 +57,7 @@ var SignMode_name = map[int32]string{ 1: "SIGN_MODE_DIRECT", 2: "SIGN_MODE_TEXTUAL", 3: "SIGN_MODE_DIRECT_JSON", + 4: "SIGN_MODE_DIRECT_AUX", 127: "SIGN_MODE_LEGACY_AMINO_JSON", } @@ -60,6 +66,7 @@ var SignMode_value = map[string]int32{ "SIGN_MODE_DIRECT": 1, "SIGN_MODE_TEXTUAL": 2, "SIGN_MODE_DIRECT_JSON": 3, + "SIGN_MODE_DIRECT_AUX": 4, "SIGN_MODE_LEGACY_AMINO_JSON": 127, } @@ -397,42 +404,43 @@ func init() { } var fileDescriptor_9a54958ff3d0b1b9 = []byte{ - // 552 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0xcf, 0x6e, 0xd3, 0x40, - 0x10, 0xc6, 0xed, 0x26, 0xad, 0xd2, 0x29, 0x42, 0x61, 0x49, 0xa5, 0xc4, 0x20, 0x13, 0x95, 0x03, - 0x11, 0x52, 0xd6, 0x6a, 0x72, 0x40, 0x70, 0xcb, 0x1f, 0x93, 0x86, 0x36, 0x09, 0xd8, 0xa9, 0x04, - 0x5c, 0x2c, 0xdb, 0xd9, 0x1a, 0xab, 0xb1, 0xd7, 0x78, 0xd7, 0xa8, 0x3e, 0xf1, 0x06, 0x88, 0xd7, - 0xe0, 0x39, 0xb8, 0x70, 0xec, 0x91, 0x23, 0x4a, 0x9e, 0x81, 0x3b, 0x8a, 0x1d, 0x27, 0xa9, 0x54, - 0x84, 0xc8, 0xc9, 0x9a, 0x99, 0x6f, 0x7f, 0xf3, 0xad, 0x66, 0xd6, 0xf0, 0xc4, 0xa6, 0xcc, 0xa3, - 0x4c, 0xe1, 0x57, 0x0a, 0x73, 0x1d, 0xdf, 0xf5, 0x1d, 0xe5, 0xd3, 0xb1, 0x45, 0xb8, 0x79, 0x9c, - 0xc5, 0x38, 0x08, 0x29, 0xa7, 0xa8, 0x92, 0x0a, 0x31, 0xbf, 0xc2, 0x59, 0x61, 0x29, 0x94, 0xea, - 0x4b, 0x86, 0x1d, 0xc6, 0x01, 0xa7, 0x8a, 0x17, 0x4d, 0xb9, 0xcb, 0xdc, 0x35, 0x28, 0x4b, 0xa4, - 0x24, 0xa9, 0xe2, 0x50, 0xea, 0x4c, 0x89, 0x92, 0x44, 0x56, 0x74, 0xa1, 0x98, 0x7e, 0x9c, 0x96, - 0x8e, 0x2e, 0xa0, 0xa4, 0xbb, 0x8e, 0x6f, 0xf2, 0x28, 0x24, 0x5d, 0xc2, 0xec, 0xd0, 0x0d, 0x38, - 0x0d, 0x19, 0x1a, 0x02, 0xb0, 0x2c, 0xcf, 0xca, 0x62, 0x35, 0x57, 0x3b, 0x68, 0x60, 0xfc, 0x57, - 0x47, 0xf8, 0x16, 0x88, 0xb6, 0x41, 0x38, 0xfa, 0x9d, 0x87, 0xfb, 0xb7, 0x68, 0x50, 0x13, 0x20, - 0x88, 0xac, 0xa9, 0x6b, 0x1b, 0x97, 0x24, 0x2e, 0x8b, 0x55, 0xb1, 0x76, 0xd0, 0x28, 0xe1, 0xd4, - 0x2f, 0xce, 0xfc, 0xe2, 0x96, 0x1f, 0x6b, 0xfb, 0xa9, 0xee, 0x94, 0xc4, 0xa8, 0x07, 0xf9, 0x89, - 0xc9, 0xcd, 0xf2, 0x4e, 0x22, 0x6f, 0xfe, 0x9f, 0x2d, 0xdc, 0x35, 0xb9, 0xa9, 0x25, 0x00, 0x24, - 0x41, 0x81, 0x91, 0x8f, 0x11, 0xf1, 0x6d, 0x52, 0xce, 0x55, 0xc5, 0x5a, 0x5e, 0x5b, 0xc5, 0xd2, - 0xf7, 0x1c, 0xe4, 0x17, 0x52, 0x34, 0x86, 0x3d, 0xe6, 0xfa, 0xce, 0x94, 0x2c, 0xed, 0xbd, 0xd8, - 0xa2, 0x1f, 0xd6, 0x13, 0xc2, 0x89, 0xa0, 0x2d, 0x59, 0xe8, 0x0d, 0xec, 0x26, 0x53, 0x5a, 0x5e, - 0xe2, 0xf9, 0x36, 0xd0, 0xc1, 0x02, 0x70, 0x22, 0x68, 0x29, 0x49, 0x32, 0x60, 0x2f, 0x6d, 0x83, - 0x9e, 0x41, 0xde, 0xa3, 0x93, 0xd4, 0xf0, 0xdd, 0xc6, 0xe3, 0x7f, 0xb0, 0x07, 0x74, 0x42, 0xb4, - 0xe4, 0x00, 0x7a, 0x08, 0xfb, 0xab, 0xa1, 0x25, 0xce, 0xee, 0x68, 0xeb, 0x84, 0xf4, 0x4d, 0x84, - 0xdd, 0xa4, 0x27, 0x3a, 0x85, 0x82, 0xe5, 0x72, 0x33, 0x0c, 0xcd, 0x6c, 0x68, 0x4a, 0xd6, 0x24, - 0xdd, 0x49, 0xbc, 0x5a, 0xc1, 0xac, 0x53, 0x87, 0x7a, 0x81, 0x69, 0xf3, 0xb6, 0xcb, 0x5b, 0x8b, - 0x63, 0xda, 0x0a, 0x80, 0xf4, 0x1b, 0xbb, 0xb6, 0x93, 0xec, 0xda, 0x56, 0x43, 0xdd, 0xc0, 0xb4, - 0x77, 0x21, 0xc7, 0x22, 0xef, 0xe9, 0x17, 0x11, 0x0a, 0xd9, 0x1d, 0x51, 0x05, 0x0e, 0xf5, 0x7e, - 0x6f, 0x68, 0x0c, 0x46, 0x5d, 0xd5, 0x38, 0x1f, 0xea, 0xaf, 0xd5, 0x4e, 0xff, 0x65, 0x5f, 0xed, - 0x16, 0x05, 0x54, 0x82, 0xe2, 0xba, 0xd4, 0xed, 0x6b, 0x6a, 0x67, 0x5c, 0x14, 0xd1, 0x21, 0xdc, - 0x5b, 0x67, 0xc7, 0xea, 0xdb, 0xf1, 0x79, 0xeb, 0xac, 0xb8, 0x73, 0x93, 0x93, 0x8a, 0x8d, 0x57, - 0xfa, 0x68, 0x58, 0xcc, 0xa1, 0x47, 0xf0, 0x60, 0x5d, 0x3a, 0x53, 0x7b, 0xad, 0xce, 0x3b, 0xa3, - 0x35, 0xe8, 0x0f, 0x47, 0xa9, 0xe0, 0x73, 0xbb, 0xf7, 0x63, 0x26, 0x8b, 0xd7, 0x33, 0x59, 0xfc, - 0x35, 0x93, 0xc5, 0xaf, 0x73, 0x59, 0xb8, 0x9e, 0xcb, 0xc2, 0xcf, 0xb9, 0x2c, 0xbc, 0xaf, 0x3b, - 0x2e, 0xff, 0x10, 0x59, 0xd8, 0xa6, 0x9e, 0x92, 0xbd, 0xef, 0xe4, 0x53, 0x67, 0x93, 0x4b, 0x85, - 0xc7, 0x01, 0xd9, 0xfc, 0x69, 0x58, 0x7b, 0xc9, 0xeb, 0x68, 0xfe, 0x09, 0x00, 0x00, 0xff, 0xff, - 0x93, 0x71, 0x12, 0x94, 0x50, 0x04, 0x00, 0x00, + // 562 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0xc1, 0x6e, 0xd3, 0x40, + 0x10, 0x86, 0xed, 0xc6, 0xad, 0xda, 0x29, 0x42, 0x66, 0x49, 0xa5, 0xd4, 0x20, 0x53, 0x95, 0x03, + 0x15, 0x52, 0xd7, 0x6a, 0x7b, 0x40, 0x70, 0x73, 0x13, 0x93, 0x86, 0x36, 0x09, 0xd8, 0x89, 0x54, + 0xb8, 0x58, 0xb6, 0xb3, 0x35, 0x56, 0x63, 0xaf, 0xf1, 0xae, 0x51, 0x7d, 0xe2, 0x15, 0x78, 0x0c, + 0x78, 0x0e, 0x2e, 0x1c, 0x7b, 0xe4, 0x88, 0x92, 0x67, 0xe0, 0x8e, 0x62, 0xc7, 0x49, 0x2a, 0x8a, + 0x10, 0x39, 0x59, 0x3b, 0xf3, 0xcf, 0x37, 0xff, 0x6a, 0x66, 0x0d, 0x4f, 0x3c, 0xca, 0x42, 0xca, + 0x34, 0x7e, 0xa5, 0xb1, 0xc0, 0x8f, 0x82, 0xc8, 0xd7, 0x3e, 0x1e, 0xb8, 0x84, 0x3b, 0x07, 0xe5, + 0x19, 0xc7, 0x09, 0xe5, 0x14, 0x6d, 0x17, 0x42, 0xcc, 0xaf, 0x70, 0x99, 0x98, 0x0a, 0x95, 0xfd, + 0x29, 0xc3, 0x4b, 0xb2, 0x98, 0x53, 0x2d, 0x4c, 0x87, 0x3c, 0x60, 0xc1, 0x1c, 0x54, 0x06, 0x0a, + 0x92, 0xb2, 0xed, 0x53, 0xea, 0x0f, 0x89, 0x96, 0x9f, 0xdc, 0xf4, 0x42, 0x73, 0xa2, 0xac, 0x48, + 0xed, 0x5e, 0x40, 0xd5, 0x0a, 0xfc, 0xc8, 0xe1, 0x69, 0x42, 0x1a, 0x84, 0x79, 0x49, 0x10, 0x73, + 0x9a, 0x30, 0xd4, 0x01, 0x60, 0x65, 0x9c, 0xd5, 0xc4, 0x9d, 0xca, 0xde, 0xe6, 0x21, 0xc6, 0x7f, + 0x75, 0x84, 0x6f, 0x81, 0x98, 0x0b, 0x84, 0xdd, 0x5f, 0x12, 0xdc, 0xbf, 0x45, 0x83, 0x8e, 0x00, + 0xe2, 0xd4, 0x1d, 0x06, 0x9e, 0x7d, 0x49, 0xb2, 0x9a, 0xb8, 0x23, 0xee, 0x6d, 0x1e, 0x56, 0x71, + 0xe1, 0x17, 0x97, 0x7e, 0xb1, 0x1e, 0x65, 0xe6, 0x46, 0xa1, 0x3b, 0x25, 0x19, 0x6a, 0x82, 0x34, + 0x70, 0xb8, 0x53, 0x5b, 0xc9, 0xe5, 0x47, 0xff, 0x67, 0x0b, 0x37, 0x1c, 0xee, 0x98, 0x39, 0x00, + 0x29, 0xb0, 0xce, 0xc8, 0x87, 0x94, 0x44, 0x1e, 0xa9, 0x55, 0x76, 0xc4, 0x3d, 0xc9, 0x9c, 0x9d, + 0x95, 0x6f, 0x15, 0x90, 0x26, 0x52, 0xd4, 0x83, 0x35, 0x16, 0x44, 0xfe, 0x90, 0x4c, 0xed, 0xbd, + 0x58, 0xa2, 0x1f, 0xb6, 0x72, 0xc2, 0x89, 0x60, 0x4e, 0x59, 0xe8, 0x0d, 0xac, 0xe6, 0x53, 0x9a, + 0x5e, 0xe2, 0xf9, 0x32, 0xd0, 0xf6, 0x04, 0x70, 0x22, 0x98, 0x05, 0x49, 0xb1, 0x61, 0xad, 0x68, + 0x83, 0x9e, 0x81, 0x14, 0xd2, 0x41, 0x61, 0xf8, 0xee, 0xe1, 0xe3, 0x7f, 0xb0, 0xdb, 0x74, 0x40, + 0xcc, 0xbc, 0x00, 0x3d, 0x84, 0x8d, 0xd9, 0xd0, 0x72, 0x67, 0x77, 0xcc, 0x79, 0x40, 0xf9, 0x2a, + 0xc2, 0x6a, 0xde, 0x13, 0x9d, 0xc2, 0xba, 0x1b, 0x70, 0x27, 0x49, 0x9c, 0x72, 0x68, 0x5a, 0xd9, + 0xa4, 0xd8, 0x49, 0x3c, 0x5b, 0xc1, 0xb2, 0x53, 0x9d, 0x86, 0xb1, 0xe3, 0xf1, 0xe3, 0x80, 0xeb, + 0x93, 0x32, 0x73, 0x06, 0x40, 0xd6, 0x8d, 0x5d, 0x5b, 0xc9, 0x77, 0x6d, 0xa9, 0xa1, 0x2e, 0x60, + 0x8e, 0x57, 0xa1, 0xc2, 0xd2, 0xf0, 0xe9, 0x17, 0x11, 0xd6, 0xcb, 0x3b, 0xa2, 0x6d, 0xd8, 0xb2, + 0x5a, 0xcd, 0x8e, 0xdd, 0xee, 0x36, 0x0c, 0xbb, 0xdf, 0xb1, 0x5e, 0x1b, 0xf5, 0xd6, 0xcb, 0x96, + 0xd1, 0x90, 0x05, 0x54, 0x05, 0x79, 0x9e, 0x6a, 0xb4, 0x4c, 0xa3, 0xde, 0x93, 0x45, 0xb4, 0x05, + 0xf7, 0xe6, 0xd1, 0x9e, 0x71, 0xde, 0xeb, 0xeb, 0x67, 0xf2, 0xca, 0x4d, 0x4e, 0x21, 0xb6, 0x5f, + 0x59, 0xdd, 0x8e, 0x5c, 0x41, 0x35, 0xa8, 0xfe, 0x91, 0xd2, 0xfb, 0xe7, 0xb2, 0x84, 0x1e, 0xc1, + 0x83, 0x79, 0xe6, 0xcc, 0x68, 0xea, 0xf5, 0xb7, 0xb6, 0xde, 0x6e, 0x75, 0xba, 0x45, 0xe9, 0xa7, + 0xe3, 0xe6, 0xf7, 0x91, 0x2a, 0x5e, 0x8f, 0x54, 0xf1, 0xe7, 0x48, 0x15, 0x3f, 0x8f, 0x55, 0xe1, + 0x7a, 0xac, 0x0a, 0x3f, 0xc6, 0xaa, 0xf0, 0x6e, 0xdf, 0x0f, 0xf8, 0xfb, 0xd4, 0xc5, 0x1e, 0x0d, + 0xb5, 0xf2, 0xe5, 0xe7, 0x9f, 0x7d, 0x36, 0xb8, 0xd4, 0x78, 0x16, 0x93, 0xc5, 0xdf, 0x89, 0xbb, + 0x96, 0xbf, 0x9b, 0xa3, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x9a, 0x94, 0x26, 0xd7, 0x6a, 0x04, + 0x00, 0x00, } func (m *SignatureDescriptors) Marshal() (dAtA []byte, err error) { diff --git a/types/tx/tx.pb.go b/types/tx/tx.pb.go index 96fe19b6ac79..2846d497fbea 100644 --- a/types/tx/tx.pb.go +++ b/types/tx/tx.pb.go @@ -341,6 +341,102 @@ func (m *SignDocJSON) GetSignDocSha256Hash() []byte { return nil } +// SignDocDirectAux is the type used for generating sign bytes for +// SIGN_MODE_DIRECT_AUX. +type SignDocDirectAux struct { + // body_bytes is protobuf serialization of a TxBody that matches the + // representation in TxRaw. + BodyBytes []byte `protobuf:"bytes,1,opt,name=body_bytes,json=bodyBytes,proto3" json:"body_bytes,omitempty"` + // public_key is the public key of the signing account. + PublicKey *types.Any `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + // chain_id is the identifier of the chain this transaction targets. + // It prevents signed transactions from being used on another chain by an + // attacker. + ChainId string `protobuf:"bytes,3,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + // account_number is the account number of the account in state. + AccountNumber uint64 `protobuf:"varint,4,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` + // sequence is the sequence number of the signing account. + Sequence uint64 `protobuf:"varint,5,opt,name=sequence,proto3" json:"sequence,omitempty"` + // Tip is the optional tip used for meta-transactions. It should be left + // empty if the signer is not the tipper for this transaction. + Tip *Tip `protobuf:"bytes,6,opt,name=tip,proto3" json:"tip,omitempty"` +} + +func (m *SignDocDirectAux) Reset() { *m = SignDocDirectAux{} } +func (m *SignDocDirectAux) String() string { return proto.CompactTextString(m) } +func (*SignDocDirectAux) ProtoMessage() {} +func (*SignDocDirectAux) Descriptor() ([]byte, []int) { + return fileDescriptor_96d1575ffde80842, []int{4} +} +func (m *SignDocDirectAux) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SignDocDirectAux) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SignDocDirectAux.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SignDocDirectAux) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignDocDirectAux.Merge(m, src) +} +func (m *SignDocDirectAux) XXX_Size() int { + return m.Size() +} +func (m *SignDocDirectAux) XXX_DiscardUnknown() { + xxx_messageInfo_SignDocDirectAux.DiscardUnknown(m) +} + +var xxx_messageInfo_SignDocDirectAux proto.InternalMessageInfo + +func (m *SignDocDirectAux) GetBodyBytes() []byte { + if m != nil { + return m.BodyBytes + } + return nil +} + +func (m *SignDocDirectAux) GetPublicKey() *types.Any { + if m != nil { + return m.PublicKey + } + return nil +} + +func (m *SignDocDirectAux) GetChainId() string { + if m != nil { + return m.ChainId + } + return "" +} + +func (m *SignDocDirectAux) GetAccountNumber() uint64 { + if m != nil { + return m.AccountNumber + } + return 0 +} + +func (m *SignDocDirectAux) GetSequence() uint64 { + if m != nil { + return m.Sequence + } + return 0 +} + +func (m *SignDocDirectAux) GetTip() *Tip { + if m != nil { + return m.Tip + } + return nil +} + // TxBody is the body of a transaction that all signers sign over. type TxBody struct { // messages is a list of messages to be executed. The required signers of @@ -372,7 +468,7 @@ func (m *TxBody) Reset() { *m = TxBody{} } func (m *TxBody) String() string { return proto.CompactTextString(m) } func (*TxBody) ProtoMessage() {} func (*TxBody) Descriptor() ([]byte, []int) { - return fileDescriptor_96d1575ffde80842, []int{4} + return fileDescriptor_96d1575ffde80842, []int{5} } func (m *TxBody) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -449,13 +545,15 @@ type AuthInfo struct { // based on the cost of evaluating the body and doing signature verification // of the signers. This can be estimated via simulation. Fee *Fee `protobuf:"bytes,2,opt,name=fee,proto3" json:"fee,omitempty"` + // Tip is the optional tip used for meta-transactions. + Tip *Tip `protobuf:"bytes,3,opt,name=tip,proto3" json:"tip,omitempty"` } func (m *AuthInfo) Reset() { *m = AuthInfo{} } func (m *AuthInfo) String() string { return proto.CompactTextString(m) } func (*AuthInfo) ProtoMessage() {} func (*AuthInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_96d1575ffde80842, []int{5} + return fileDescriptor_96d1575ffde80842, []int{6} } func (m *AuthInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -498,6 +596,13 @@ func (m *AuthInfo) GetFee() *Fee { return nil } +func (m *AuthInfo) GetTip() *Tip { + if m != nil { + return m.Tip + } + return nil +} + // SignerInfo describes the public key and signing mode of a single top-level // signer. type SignerInfo struct { @@ -518,7 +623,7 @@ func (m *SignerInfo) Reset() { *m = SignerInfo{} } func (m *SignerInfo) String() string { return proto.CompactTextString(m) } func (*SignerInfo) ProtoMessage() {} func (*SignerInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_96d1575ffde80842, []int{6} + return fileDescriptor_96d1575ffde80842, []int{7} } func (m *SignerInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -583,7 +688,7 @@ func (m *ModeInfo) Reset() { *m = ModeInfo{} } func (m *ModeInfo) String() string { return proto.CompactTextString(m) } func (*ModeInfo) ProtoMessage() {} func (*ModeInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_96d1575ffde80842, []int{7} + return fileDescriptor_96d1575ffde80842, []int{8} } func (m *ModeInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -669,7 +774,7 @@ func (m *ModeInfo_Single) Reset() { *m = ModeInfo_Single{} } func (m *ModeInfo_Single) String() string { return proto.CompactTextString(m) } func (*ModeInfo_Single) ProtoMessage() {} func (*ModeInfo_Single) Descriptor() ([]byte, []int) { - return fileDescriptor_96d1575ffde80842, []int{7, 0} + return fileDescriptor_96d1575ffde80842, []int{8, 0} } func (m *ModeInfo_Single) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -718,7 +823,7 @@ func (m *ModeInfo_Multi) Reset() { *m = ModeInfo_Multi{} } func (m *ModeInfo_Multi) String() string { return proto.CompactTextString(m) } func (*ModeInfo_Multi) ProtoMessage() {} func (*ModeInfo_Multi) Descriptor() ([]byte, []int) { - return fileDescriptor_96d1575ffde80842, []int{7, 1} + return fileDescriptor_96d1575ffde80842, []int{8, 1} } func (m *ModeInfo_Multi) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -784,7 +889,7 @@ func (m *Fee) Reset() { *m = Fee{} } func (m *Fee) String() string { return proto.CompactTextString(m) } func (*Fee) ProtoMessage() {} func (*Fee) Descriptor() ([]byte, []int) { - return fileDescriptor_96d1575ffde80842, []int{8} + return fileDescriptor_96d1575ffde80842, []int{9} } func (m *Fee) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -841,11 +946,67 @@ func (m *Fee) GetGranter() string { return "" } +// Tip is the tip used for meta-transactions. +type Tip struct { + // amount is the amount of the tip + Amount []*types2.Coin `protobuf:"bytes,1,rep,name=amount,proto3" json:"amount,omitempty"` + // tipper is the address of the account paying for the tip + Tipper string `protobuf:"bytes,2,opt,name=tipper,proto3" json:"tipper,omitempty"` +} + +func (m *Tip) Reset() { *m = Tip{} } +func (m *Tip) String() string { return proto.CompactTextString(m) } +func (*Tip) ProtoMessage() {} +func (*Tip) Descriptor() ([]byte, []int) { + return fileDescriptor_96d1575ffde80842, []int{10} +} +func (m *Tip) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Tip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Tip.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Tip) XXX_Merge(src proto.Message) { + xxx_messageInfo_Tip.Merge(m, src) +} +func (m *Tip) XXX_Size() int { + return m.Size() +} +func (m *Tip) XXX_DiscardUnknown() { + xxx_messageInfo_Tip.DiscardUnknown(m) +} + +var xxx_messageInfo_Tip proto.InternalMessageInfo + +func (m *Tip) GetAmount() []*types2.Coin { + if m != nil { + return m.Amount + } + return nil +} + +func (m *Tip) GetTipper() string { + if m != nil { + return m.Tipper + } + return "" +} + func init() { proto.RegisterType((*Tx)(nil), "cosmos.tx.v1beta1.Tx") proto.RegisterType((*TxRaw)(nil), "cosmos.tx.v1beta1.TxRaw") proto.RegisterType((*SignDoc)(nil), "cosmos.tx.v1beta1.SignDoc") proto.RegisterType((*SignDocJSON)(nil), "cosmos.tx.v1beta1.SignDocJSON") + proto.RegisterType((*SignDocDirectAux)(nil), "cosmos.tx.v1beta1.SignDocDirectAux") proto.RegisterType((*TxBody)(nil), "cosmos.tx.v1beta1.TxBody") proto.RegisterType((*AuthInfo)(nil), "cosmos.tx.v1beta1.AuthInfo") proto.RegisterType((*SignerInfo)(nil), "cosmos.tx.v1beta1.SignerInfo") @@ -853,68 +1014,74 @@ func init() { proto.RegisterType((*ModeInfo_Single)(nil), "cosmos.tx.v1beta1.ModeInfo.Single") proto.RegisterType((*ModeInfo_Multi)(nil), "cosmos.tx.v1beta1.ModeInfo.Multi") proto.RegisterType((*Fee)(nil), "cosmos.tx.v1beta1.Fee") + proto.RegisterType((*Tip)(nil), "cosmos.tx.v1beta1.Tip") } func init() { proto.RegisterFile("cosmos/tx/v1beta1/tx.proto", fileDescriptor_96d1575ffde80842) } var fileDescriptor_96d1575ffde80842 = []byte{ - // 895 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xcd, 0x6e, 0xdb, 0x46, - 0x10, 0x16, 0xf5, 0x67, 0x69, 0x6c, 0x27, 0xf5, 0xc2, 0x28, 0x64, 0x19, 0x61, 0x5c, 0x16, 0x69, - 0x75, 0x31, 0x99, 0x38, 0xe8, 0x2f, 0x0a, 0xb4, 0x56, 0xda, 0xc0, 0x69, 0x9a, 0x04, 0x58, 0xf9, - 0x94, 0x0b, 0xb1, 0xa4, 0xd6, 0xe4, 0x22, 0xe2, 0xae, 0xca, 0x5d, 0xa6, 0xd2, 0x43, 0x14, 0x08, - 0x0a, 0x14, 0x7d, 0x87, 0xbe, 0x40, 0x5f, 0x21, 0xc7, 0x1c, 0x7b, 0x6a, 0x0d, 0xfb, 0xd4, 0xa7, - 0x68, 0xb1, 0xcb, 0x25, 0x6d, 0xb4, 0x82, 0x7d, 0x68, 0xd1, 0x93, 0x76, 0x66, 0xbe, 0xf9, 0xf6, - 0xdb, 0x99, 0xd1, 0x10, 0x86, 0xb1, 0x90, 0x99, 0x90, 0x81, 0x5a, 0x04, 0x2f, 0xef, 0x45, 0x54, - 0x91, 0x7b, 0x81, 0x5a, 0xf8, 0xf3, 0x5c, 0x28, 0x81, 0xb6, 0xca, 0x98, 0xaf, 0x16, 0xbe, 0x8d, - 0x0d, 0xb7, 0x13, 0x91, 0x08, 0x13, 0x0d, 0xf4, 0xa9, 0x04, 0x0e, 0xf7, 0x2d, 0x49, 0x9c, 0x2f, - 0xe7, 0x4a, 0x04, 0x59, 0x31, 0x53, 0x4c, 0xb2, 0xa4, 0x66, 0xac, 0x1c, 0x16, 0xee, 0x5a, 0x78, - 0x44, 0x24, 0xad, 0x31, 0xb1, 0x60, 0xdc, 0xc6, 0xdf, 0xbf, 0xd0, 0x24, 0x59, 0xc2, 0x19, 0xbf, - 0x60, 0xb2, 0xb6, 0x05, 0xee, 0x24, 0x42, 0x24, 0x33, 0x1a, 0x18, 0x2b, 0x2a, 0x4e, 0x02, 0xc2, - 0x97, 0x65, 0xc8, 0xfb, 0xde, 0x81, 0xe6, 0xf1, 0x02, 0xed, 0x43, 0x3b, 0x12, 0xd3, 0xe5, 0xc0, - 0xd9, 0x73, 0x46, 0xeb, 0x07, 0x3b, 0xfe, 0x3f, 0x5e, 0xe4, 0x1f, 0x2f, 0xc6, 0x62, 0xba, 0xc4, - 0x06, 0x86, 0x3e, 0x86, 0x3e, 0x29, 0x54, 0x1a, 0x32, 0x7e, 0x22, 0x06, 0x4d, 0x93, 0xb3, 0xbb, - 0x22, 0xe7, 0xb0, 0x50, 0xe9, 0x23, 0x7e, 0x22, 0x70, 0x8f, 0xd8, 0x13, 0x72, 0x01, 0xb4, 0x36, - 0xa2, 0x8a, 0x9c, 0xca, 0x41, 0x6b, 0xaf, 0x35, 0xda, 0xc0, 0x97, 0x3c, 0x1e, 0x87, 0xce, 0xf1, - 0x02, 0x93, 0xef, 0xd0, 0x2d, 0x00, 0x7d, 0x55, 0x18, 0x2d, 0x15, 0x95, 0x46, 0xd7, 0x06, 0xee, - 0x6b, 0xcf, 0x58, 0x3b, 0xd0, 0x7b, 0x70, 0xb3, 0x56, 0x60, 0x31, 0x4d, 0x83, 0xd9, 0xac, 0xae, - 0x2a, 0x71, 0xd7, 0xdd, 0xf7, 0x83, 0x03, 0x6b, 0x13, 0x96, 0xf0, 0x2f, 0x45, 0xfc, 0x5f, 0x5d, - 0xb9, 0x03, 0xbd, 0x38, 0x25, 0x8c, 0x87, 0x6c, 0x3a, 0x68, 0xed, 0x39, 0xa3, 0x3e, 0x5e, 0x33, - 0xf6, 0xa3, 0x29, 0xba, 0x03, 0x37, 0x48, 0x1c, 0x8b, 0x82, 0xab, 0x90, 0x17, 0x59, 0x44, 0xf3, - 0x41, 0x7b, 0xcf, 0x19, 0xb5, 0xf1, 0xa6, 0xf5, 0x3e, 0x35, 0x4e, 0xef, 0x0f, 0x07, 0xd6, 0xad, - 0xa8, 0xaf, 0x27, 0xcf, 0x9e, 0xfe, 0x7f, 0xdd, 0xf9, 0xd7, 0xd2, 0x51, 0x00, 0xdb, 0xba, 0xba, - 0xe1, 0x54, 0xc4, 0xa1, 0x4c, 0xc9, 0xc1, 0x07, 0x1f, 0x86, 0x29, 0x91, 0xe9, 0xa0, 0x63, 0x2a, - 0xb5, 0x25, 0xcb, 0x57, 0x4d, 0x4c, 0xe4, 0x88, 0xc8, 0xd4, 0xfb, 0xb1, 0x09, 0xdd, 0x52, 0x3d, - 0xba, 0x0b, 0xbd, 0x8c, 0x4a, 0x49, 0x12, 0x53, 0xfd, 0xd6, 0x68, 0xfd, 0x60, 0xdb, 0x2f, 0x27, - 0xd7, 0xaf, 0x26, 0xd7, 0x3f, 0xe4, 0x4b, 0x5c, 0xa3, 0x10, 0x82, 0x76, 0x46, 0xb3, 0xf2, 0x91, - 0x7d, 0x6c, 0xce, 0x5a, 0xa8, 0x62, 0x19, 0x15, 0x85, 0x0a, 0x53, 0xca, 0x92, 0x54, 0x99, 0x97, - 0xb4, 0xf1, 0xa6, 0xf5, 0x1e, 0x19, 0x27, 0x1a, 0xc3, 0x16, 0x5d, 0x28, 0xca, 0x25, 0x13, 0x3c, - 0x14, 0x73, 0xc5, 0x04, 0x97, 0x83, 0x3f, 0xd7, 0xae, 0xb8, 0xf6, 0xad, 0x1a, 0xff, 0xac, 0x84, - 0xa3, 0xe7, 0xe0, 0x72, 0xc1, 0xc3, 0x38, 0x67, 0x8a, 0xc5, 0x64, 0x16, 0xae, 0x20, 0xbc, 0x79, - 0x05, 0xe1, 0x2e, 0x17, 0xfc, 0x81, 0xcd, 0xfd, 0xea, 0x6f, 0xdc, 0xde, 0x4b, 0xe8, 0x55, 0x0d, - 0x42, 0x5f, 0xc0, 0x86, 0x2e, 0x1c, 0xcd, 0x4d, 0x4b, 0xab, 0xe2, 0xdc, 0x5a, 0xd1, 0xd3, 0x89, - 0x81, 0x99, 0xae, 0xae, 0xcb, 0xfa, 0x2c, 0xd1, 0x08, 0x5a, 0x27, 0x94, 0xda, 0x61, 0x78, 0x7b, - 0x45, 0xe2, 0x43, 0x4a, 0xb1, 0x86, 0x78, 0x3f, 0x39, 0x00, 0x17, 0x2c, 0xe8, 0x3e, 0xc0, 0xbc, - 0x88, 0x66, 0x2c, 0x0e, 0x5f, 0xd0, 0x6a, 0x00, 0x57, 0xbf, 0xa6, 0x5f, 0xe2, 0x1e, 0x53, 0x33, - 0x80, 0x99, 0x98, 0xd2, 0xeb, 0x06, 0xf0, 0x89, 0x98, 0xd2, 0x72, 0x00, 0x33, 0x7b, 0x42, 0x43, - 0xe8, 0x49, 0xfa, 0x6d, 0x41, 0x79, 0x4c, 0x6d, 0xdb, 0x6a, 0xdb, 0x3b, 0x6d, 0x42, 0xaf, 0x4a, - 0x41, 0x9f, 0x41, 0x57, 0x32, 0x9e, 0xcc, 0xa8, 0xd5, 0xe4, 0x5d, 0xc1, 0xef, 0x4f, 0x0c, 0xf2, - 0xa8, 0x81, 0x6d, 0x0e, 0xfa, 0x04, 0x3a, 0x66, 0xd7, 0x5a, 0x71, 0xef, 0x5c, 0x95, 0xfc, 0x44, - 0x03, 0x8f, 0x1a, 0xb8, 0xcc, 0x18, 0x1e, 0x42, 0xb7, 0xa4, 0x43, 0x1f, 0x41, 0x5b, 0xeb, 0x36, - 0x02, 0x6e, 0x1c, 0xbc, 0x7b, 0x89, 0xa3, 0xda, 0xbe, 0x97, 0xbb, 0xa2, 0xf9, 0xb0, 0x49, 0x18, - 0xbe, 0x72, 0xa0, 0x63, 0x58, 0xd1, 0x63, 0xe8, 0x45, 0x4c, 0x91, 0x3c, 0x27, 0x55, 0x6d, 0x83, - 0x8a, 0xa6, 0xfc, 0x46, 0xf8, 0xf5, 0x27, 0xa1, 0xe2, 0x7a, 0x20, 0xb2, 0x39, 0x89, 0xd5, 0x98, - 0xa9, 0x43, 0x9d, 0x86, 0x6b, 0x02, 0xf4, 0x29, 0x40, 0x5d, 0x75, 0xbd, 0x9a, 0x5a, 0xd7, 0x95, - 0xbd, 0x5f, 0x95, 0x5d, 0x8e, 0x3b, 0xd0, 0x92, 0x45, 0xe6, 0xfd, 0xe2, 0x40, 0xeb, 0x21, 0xa5, - 0x28, 0x86, 0x2e, 0xc9, 0xf4, 0xbf, 0xda, 0x8e, 0x5a, 0xbd, 0x72, 0xf4, 0xa7, 0xe8, 0x92, 0x14, - 0xc6, 0xc7, 0x77, 0x5f, 0xff, 0x76, 0xbb, 0xf1, 0xf3, 0xef, 0xb7, 0x47, 0x09, 0x53, 0x69, 0x11, - 0xf9, 0xb1, 0xc8, 0x82, 0xea, 0x33, 0x67, 0x7e, 0xf6, 0xe5, 0xf4, 0x45, 0xa0, 0x96, 0x73, 0x2a, - 0x4d, 0x82, 0xc4, 0x96, 0x1a, 0xed, 0x42, 0x3f, 0x21, 0x32, 0x9c, 0xb1, 0x8c, 0x29, 0xd3, 0x88, - 0x36, 0xee, 0x25, 0x44, 0x7e, 0xa3, 0x6d, 0xb4, 0x0d, 0x9d, 0x39, 0x59, 0xd2, 0xdc, 0xae, 0xa1, - 0xd2, 0x40, 0x03, 0x58, 0x4b, 0x72, 0xc2, 0x95, 0xdd, 0x3e, 0x7d, 0x5c, 0x99, 0xe3, 0xcf, 0x5f, - 0x9f, 0xb9, 0xce, 0x9b, 0x33, 0xd7, 0x39, 0x3d, 0x73, 0x9d, 0x57, 0xe7, 0x6e, 0xe3, 0xcd, 0xb9, - 0xdb, 0xf8, 0xf5, 0xdc, 0x6d, 0x3c, 0xbf, 0x73, 0xbd, 0xb0, 0x40, 0x2d, 0xa2, 0xae, 0x19, 0xe6, - 0xfb, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0x34, 0xab, 0x74, 0x31, 0xe9, 0x07, 0x00, 0x00, + // 976 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0x4f, 0x6f, 0x1b, 0xc5, + 0x1b, 0xf6, 0x66, 0x6d, 0xc7, 0x7e, 0x93, 0xb4, 0xcd, 0x28, 0xaa, 0x1c, 0x47, 0x75, 0xf3, 0xf3, + 0x4f, 0x05, 0x5f, 0xb2, 0xdb, 0xa4, 0x02, 0x0a, 0x42, 0x82, 0xb8, 0xa5, 0x4a, 0x29, 0x6d, 0xd1, + 0x24, 0xa7, 0x5e, 0x56, 0xb3, 0xeb, 0xc9, 0xee, 0xa8, 0xde, 0x99, 0x65, 0x67, 0x16, 0xbc, 0x1f, + 0x02, 0xa9, 0x42, 0x42, 0x5c, 0x39, 0xf3, 0x05, 0xf8, 0x0a, 0x3d, 0xf6, 0xc8, 0x09, 0xaa, 0xe4, + 0xc4, 0x85, 0xaf, 0x00, 0xda, 0xd9, 0xd9, 0x4d, 0x5a, 0x4c, 0x5c, 0x89, 0x8a, 0x93, 0xe7, 0x7d, + 0xe7, 0x79, 0x9f, 0x79, 0xde, 0x3f, 0x3b, 0x63, 0xe8, 0x07, 0x42, 0xc6, 0x42, 0xba, 0x6a, 0xe6, + 0x7e, 0xbd, 0xeb, 0x53, 0x45, 0x76, 0x5d, 0x35, 0x73, 0x92, 0x54, 0x28, 0x81, 0xd6, 0xcb, 0x3d, + 0x47, 0xcd, 0x1c, 0xb3, 0xd7, 0xdf, 0x08, 0x45, 0x28, 0xf4, 0xae, 0x5b, 0xac, 0x4a, 0x60, 0x7f, + 0xc7, 0x90, 0x04, 0x69, 0x9e, 0x28, 0xe1, 0xc6, 0xd9, 0x54, 0x31, 0xc9, 0xc2, 0x9a, 0xb1, 0x72, + 0x18, 0xf8, 0xc0, 0xc0, 0x7d, 0x22, 0x69, 0x8d, 0x09, 0x04, 0xe3, 0x66, 0xff, 0xdd, 0x33, 0x4d, + 0x92, 0x85, 0x9c, 0xf1, 0x33, 0x26, 0x63, 0x1b, 0xe0, 0x66, 0x28, 0x44, 0x38, 0xa5, 0xae, 0xb6, + 0xfc, 0xec, 0xd8, 0x25, 0x3c, 0x2f, 0xb7, 0x86, 0xdf, 0x5a, 0xb0, 0x74, 0x34, 0x43, 0x3b, 0xd0, + 0xf4, 0xc5, 0x24, 0xef, 0x59, 0xdb, 0xd6, 0x68, 0x65, 0x6f, 0xd3, 0xf9, 0x5b, 0x46, 0xce, 0xd1, + 0x6c, 0x2c, 0x26, 0x39, 0xd6, 0x30, 0x74, 0x1b, 0xba, 0x24, 0x53, 0x91, 0xc7, 0xf8, 0xb1, 0xe8, + 0x2d, 0xe9, 0x98, 0xad, 0x39, 0x31, 0xfb, 0x99, 0x8a, 0xee, 0xf3, 0x63, 0x81, 0x3b, 0xc4, 0xac, + 0xd0, 0x00, 0xa0, 0xd0, 0x46, 0x54, 0x96, 0x52, 0xd9, 0xb3, 0xb7, 0xed, 0xd1, 0x2a, 0x3e, 0xe7, + 0x19, 0x72, 0x68, 0x1d, 0xcd, 0x30, 0xf9, 0x06, 0x5d, 0x03, 0x28, 0x8e, 0xf2, 0xfc, 0x5c, 0x51, + 0xa9, 0x75, 0xad, 0xe2, 0x6e, 0xe1, 0x19, 0x17, 0x0e, 0xf4, 0x0e, 0x5c, 0xae, 0x15, 0x18, 0xcc, + 0x92, 0xc6, 0xac, 0x55, 0x47, 0x95, 0xb8, 0x45, 0xe7, 0x7d, 0x67, 0xc1, 0xf2, 0x21, 0x0b, 0xf9, + 0x5d, 0x11, 0xbc, 0xad, 0x23, 0x37, 0xa1, 0x13, 0x44, 0x84, 0x71, 0x8f, 0x4d, 0x7a, 0xf6, 0xb6, + 0x35, 0xea, 0xe2, 0x65, 0x6d, 0xdf, 0x9f, 0xa0, 0x1b, 0x70, 0x89, 0x04, 0x81, 0xc8, 0xb8, 0xf2, + 0x78, 0x16, 0xfb, 0x34, 0xed, 0x35, 0xb7, 0xad, 0x51, 0x13, 0xaf, 0x19, 0xef, 0x23, 0xed, 0x1c, + 0xfe, 0x6e, 0xc1, 0x8a, 0x11, 0xf5, 0xf9, 0xe1, 0xe3, 0x47, 0xff, 0x5d, 0x77, 0xfe, 0xb5, 0x74, + 0xe4, 0xc2, 0x46, 0x51, 0x5d, 0x6f, 0x22, 0x02, 0x4f, 0x46, 0x64, 0xef, 0xbd, 0xf7, 0xbd, 0x88, + 0xc8, 0xa8, 0xd7, 0xd2, 0x95, 0x5a, 0x97, 0x65, 0x56, 0x87, 0x7a, 0xe7, 0x80, 0xc8, 0x68, 0xf8, + 0x87, 0x05, 0x57, 0x4c, 0xae, 0x77, 0x59, 0x4a, 0x03, 0xb5, 0x9f, 0xcd, 0x16, 0x75, 0xe2, 0x16, + 0x40, 0x92, 0xf9, 0x53, 0x16, 0x78, 0x4f, 0x69, 0x6e, 0x32, 0xdc, 0x70, 0xca, 0x21, 0x77, 0xaa, + 0x21, 0x77, 0xf6, 0x79, 0x8e, 0xbb, 0x25, 0xee, 0x01, 0xcd, 0xdf, 0x42, 0x6e, 0x7d, 0xe8, 0x48, + 0xfa, 0x55, 0x46, 0x79, 0x40, 0x75, 0x3e, 0x4d, 0x5c, 0xdb, 0x68, 0x04, 0xb6, 0x62, 0x49, 0xaf, + 0xad, 0xb5, 0x5c, 0x9d, 0xd7, 0x21, 0x96, 0xe0, 0x02, 0x32, 0xfc, 0x7e, 0x09, 0xda, 0x65, 0xbb, + 0xd0, 0x4d, 0xe8, 0xc4, 0x54, 0x4a, 0x12, 0xea, 0x24, 0xed, 0x7f, 0xcc, 0xa2, 0x46, 0x21, 0x04, + 0xcd, 0x98, 0xc6, 0x65, 0x57, 0xbb, 0x58, 0xaf, 0x0b, 0xf5, 0x8a, 0xc5, 0x54, 0x64, 0xca, 0x8b, + 0x28, 0x0b, 0x23, 0xa5, 0xd3, 0x6b, 0xe2, 0x35, 0xe3, 0x3d, 0xd0, 0x4e, 0x34, 0x86, 0x75, 0x3a, + 0x53, 0x94, 0x4b, 0x26, 0xb8, 0x27, 0x12, 0xc5, 0x04, 0x97, 0xbd, 0x3f, 0x97, 0x2f, 0x38, 0xf6, + 0x4a, 0x8d, 0x7f, 0x5c, 0xc2, 0xd1, 0x13, 0x18, 0x70, 0xc1, 0xbd, 0x20, 0x65, 0x8a, 0x05, 0x64, + 0xea, 0xcd, 0x21, 0xbc, 0x7c, 0x01, 0xe1, 0x16, 0x17, 0xfc, 0x8e, 0x89, 0xfd, 0xec, 0x35, 0xee, + 0xe1, 0x8f, 0x16, 0x74, 0xaa, 0x91, 0x44, 0x9f, 0xc2, 0x6a, 0x31, 0x2a, 0x34, 0xd5, 0x43, 0x5c, + 0x55, 0xe7, 0xda, 0x9c, 0xba, 0x1e, 0x6a, 0x98, 0x9e, 0xe3, 0x15, 0x59, 0xaf, 0x65, 0xd1, 0x90, + 0x63, 0x4a, 0xcd, 0x70, 0xcc, 0x6b, 0xc8, 0x3d, 0x4a, 0x71, 0x01, 0xa9, 0x5a, 0x67, 0x2f, 0x6e, + 0xdd, 0x0f, 0x16, 0xc0, 0xd9, 0x79, 0xaf, 0x8d, 0xa1, 0xf5, 0x66, 0x63, 0x78, 0x1b, 0xba, 0xb1, + 0x98, 0xd0, 0x45, 0x1f, 0xe7, 0x43, 0x31, 0xa1, 0xe5, 0xc7, 0x19, 0x9b, 0xd5, 0x2b, 0xe3, 0x67, + 0xbf, 0x3a, 0x7e, 0xc3, 0x97, 0x4b, 0xd0, 0xa9, 0x42, 0xd0, 0xc7, 0xd0, 0x96, 0x8c, 0x87, 0x53, + 0x6a, 0x34, 0x0d, 0x2f, 0xe0, 0x77, 0x0e, 0x35, 0xf2, 0xa0, 0x81, 0x4d, 0x0c, 0xfa, 0x10, 0x5a, + 0xfa, 0x1d, 0x32, 0xe2, 0xfe, 0x77, 0x51, 0xf0, 0xc3, 0x02, 0x78, 0xd0, 0xc0, 0x65, 0x44, 0x7f, + 0x1f, 0xda, 0x25, 0x1d, 0xfa, 0x00, 0x9a, 0x85, 0x6e, 0x2d, 0xe0, 0xd2, 0xde, 0xff, 0xcf, 0x71, + 0x54, 0x2f, 0xd3, 0xf9, 0xfe, 0x15, 0x7c, 0x58, 0x07, 0xf4, 0x9f, 0x59, 0xd0, 0xd2, 0xac, 0xe8, + 0x01, 0x74, 0x7c, 0xa6, 0x48, 0x9a, 0x92, 0xaa, 0xb6, 0x6e, 0x45, 0x53, 0xbe, 0x9f, 0x4e, 0xfd, + 0x5c, 0x56, 0x5c, 0x77, 0x44, 0x9c, 0x90, 0x40, 0x8d, 0x99, 0xda, 0x2f, 0xc2, 0x70, 0x4d, 0x80, + 0x3e, 0x02, 0xa8, 0xab, 0x5e, 0x5c, 0xdb, 0xf6, 0xa2, 0xb2, 0x77, 0xab, 0xb2, 0xcb, 0x71, 0x0b, + 0x6c, 0x99, 0xc5, 0xc3, 0x9f, 0x2d, 0xb0, 0xef, 0x51, 0x8a, 0x02, 0x68, 0x93, 0xb8, 0xb8, 0x15, + 0xcc, 0x50, 0xd6, 0xd7, 0x71, 0xf1, 0x4c, 0x9f, 0x93, 0xc2, 0xf8, 0xf8, 0xe6, 0xf3, 0x5f, 0xaf, + 0x37, 0x7e, 0xfa, 0xed, 0xfa, 0x28, 0x64, 0x2a, 0xca, 0x7c, 0x27, 0x10, 0xb1, 0x5b, 0xfd, 0x05, + 0xd0, 0x3f, 0x3b, 0x72, 0xf2, 0xd4, 0x55, 0x79, 0x42, 0xa5, 0x0e, 0x90, 0xd8, 0x50, 0xa3, 0x2d, + 0xe8, 0x86, 0x44, 0x7a, 0x53, 0x16, 0x33, 0xa5, 0x1b, 0xd1, 0xc4, 0x9d, 0x90, 0xc8, 0x2f, 0x0a, + 0x1b, 0x6d, 0x40, 0x2b, 0x21, 0x39, 0x4d, 0xcd, 0x35, 0x56, 0x1a, 0xa8, 0x07, 0xcb, 0x61, 0x4a, + 0xb8, 0x32, 0xb7, 0x57, 0x17, 0x57, 0xe6, 0xf0, 0x4b, 0xb0, 0x8f, 0x58, 0x82, 0x76, 0xdf, 0x58, + 0x78, 0x2d, 0xe3, 0x2a, 0xb4, 0x15, 0x4b, 0x12, 0x9a, 0x9a, 0x0b, 0xc7, 0x58, 0xe3, 0x4f, 0x9e, + 0x9f, 0x0c, 0xac, 0x17, 0x27, 0x03, 0xeb, 0xe5, 0xc9, 0xc0, 0x7a, 0x76, 0x3a, 0x68, 0xbc, 0x38, + 0x1d, 0x34, 0x7e, 0x39, 0x1d, 0x34, 0x9e, 0xdc, 0x58, 0x9c, 0xaa, 0xab, 0x66, 0x7e, 0x5b, 0x7f, + 0x1e, 0xb7, 0xfe, 0x0a, 0x00, 0x00, 0xff, 0xff, 0xfa, 0xf9, 0x59, 0x1a, 0x57, 0x09, 0x00, 0x00, } func (m *Tx) Marshal() (dAtA []byte, err error) { @@ -1134,6 +1301,77 @@ func (m *SignDocJSON) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *SignDocDirectAux) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SignDocDirectAux) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SignDocDirectAux) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Tip != nil { + { + size, err := m.Tip.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.Sequence != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.Sequence)) + i-- + dAtA[i] = 0x28 + } + if m.AccountNumber != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.AccountNumber)) + i-- + dAtA[i] = 0x20 + } + if len(m.ChainId) > 0 { + i -= len(m.ChainId) + copy(dAtA[i:], m.ChainId) + i = encodeVarintTx(dAtA, i, uint64(len(m.ChainId))) + i-- + dAtA[i] = 0x1a + } + if m.PublicKey != nil { + { + size, err := m.PublicKey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.BodyBytes) > 0 { + i -= len(m.BodyBytes) + copy(dAtA[i:], m.BodyBytes) + i = encodeVarintTx(dAtA, i, uint64(len(m.BodyBytes))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *TxBody) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1235,6 +1473,18 @@ func (m *AuthInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Tip != nil { + { + size, err := m.Tip.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } if m.Fee != nil { { size, err := m.Fee.MarshalToSizedBuffer(dAtA[:i]) @@ -1523,6 +1773,50 @@ func (m *Fee) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *Tip) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Tip) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Tip) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Tipper) > 0 { + i -= len(m.Tipper) + copy(dAtA[i:], m.Tipper) + i = encodeVarintTx(dAtA, i, uint64(len(m.Tipper))) + i-- + dAtA[i] = 0x12 + } + if len(m.Amount) > 0 { + for iNdEx := len(m.Amount) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Amount[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func encodeVarintTx(dAtA []byte, offset int, v uint64) int { offset -= sovTx(v) base := offset @@ -1632,6 +1926,37 @@ func (m *SignDocJSON) Size() (n int) { return n } +func (m *SignDocDirectAux) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.BodyBytes) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.PublicKey != nil { + l = m.PublicKey.Size() + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.ChainId) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.AccountNumber != 0 { + n += 1 + sovTx(uint64(m.AccountNumber)) + } + if m.Sequence != 0 { + n += 1 + sovTx(uint64(m.Sequence)) + } + if m.Tip != nil { + l = m.Tip.Size() + n += 1 + l + sovTx(uint64(l)) + } + return n +} + func (m *TxBody) Size() (n int) { if m == nil { return 0 @@ -1682,6 +2007,10 @@ func (m *AuthInfo) Size() (n int) { l = m.Fee.Size() n += 1 + l + sovTx(uint64(l)) } + if m.Tip != nil { + l = m.Tip.Size() + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -1798,11 +2127,30 @@ func (m *Fee) Size() (n int) { return n } -func sovTx(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozTx(x uint64) (n int) { - return sovTx(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +func (m *Tip) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Amount) > 0 { + for _, e := range m.Amount { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } + } + l = len(m.Tipper) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func sovTx(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozTx(x uint64) (n int) { + return sovTx(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } func (m *Tx) Unmarshal(dAtA []byte) error { l := len(dAtA) @@ -2484,6 +2832,232 @@ func (m *SignDocJSON) Unmarshal(dAtA []byte) error { } return nil } +func (m *SignDocDirectAux) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SignDocDirectAux: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SignDocDirectAux: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BodyBytes", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BodyBytes = append(m.BodyBytes[:0], dAtA[iNdEx:postIndex]...) + if m.BodyBytes == nil { + m.BodyBytes = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PublicKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PublicKey == nil { + m.PublicKey = &types.Any{} + } + if err := m.PublicKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChainId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AccountNumber", wireType) + } + m.AccountNumber = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AccountNumber |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType) + } + m.Sequence = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Sequence |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tip", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Tip == nil { + m.Tip = &Tip{} + } + if err := m.Tip.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *TxBody) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -2786,6 +3360,42 @@ func (m *AuthInfo) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tip", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Tip == nil { + m.Tip = &Tip{} + } + if err := m.Tip.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -3424,6 +4034,122 @@ func (m *Fee) Unmarshal(dAtA []byte) error { } return nil } +func (m *Tip) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Tip: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Tip: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Amount = append(m.Amount, &types2.Coin{}) + if err := m.Amount[len(m.Amount)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tipper", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Tipper = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipTx(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0