Browse Source

abci: remove fee (#2043)

Refs #1861

We don't use the fee field and its likely just confusing.

We can add backwards compatible priority (instead of fee) later.

Note priority is better than fee because it lets the app do the math on how to rank order transactions, rather than forcing that into tendermint (ie. if we return fee, priority would be fee/gas)
pull/2059/head
Anton Kaliaev 7 years ago
committed by Alexander Simmerl
parent
commit
60378fd7f9
8 changed files with 192 additions and 316 deletions
  1. +1
    -0
      CHANGELOG_PENDING.md
  2. +0
    -1
      abci/types/messages_test.go
  3. +184
    -292
      abci/types/types.pb.go
  4. +0
    -2
      abci/types/types.proto
  5. +0
    -2
      docs/app-dev/abci-spec.md
  6. +6
    -16
      docs/app-dev/getting-started.md
  7. +0
    -2
      state/txindex/kv/kv_test.go
  8. +1
    -1
      types/event_bus_test.go

+ 1
- 0
CHANGELOG_PENDING.md View File

@ -3,6 +3,7 @@
BREAKING CHANGES:
- [types] CanonicalTime uses nanoseconds instead of clipping to ms
- breaks serialization/signing of all messages with a timestamp
- [abci] Removed Fee from ResponseDeliverTx and ResponseCheckTx
IMPROVEMENTS:
- [blockchain] Improve fast-sync logic


+ 0
- 1
abci/types/messages_test.go View File

@ -85,7 +85,6 @@ func TestWriteReadMessage2(t *testing.T) {
Tags: []cmn.KVPair{
cmn.KVPair{[]byte("abc"), []byte("def")},
},
// Fee: cmn.KI64Pair{
},
// TODO: add the rest
}


+ 184
- 292
abci/types/types.pb.go View File

@ -1394,7 +1394,6 @@ type ResponseCheckTx struct {
GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"`
GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"`
Tags []common.KVPair `protobuf:"bytes,7,rep,name=tags" json:"tags,omitempty"`
Fee common.KI64Pair `protobuf:"bytes,8,opt,name=fee" json:"fee"`
}
func (m *ResponseCheckTx) Reset() { *m = ResponseCheckTx{} }
@ -1451,13 +1450,6 @@ func (m *ResponseCheckTx) GetTags() []common.KVPair {
return nil
}
func (m *ResponseCheckTx) GetFee() common.KI64Pair {
if m != nil {
return m.Fee
}
return common.KI64Pair{}
}
type ResponseDeliverTx struct {
Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
@ -1466,7 +1458,6 @@ type ResponseDeliverTx struct {
GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"`
GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"`
Tags []common.KVPair `protobuf:"bytes,7,rep,name=tags" json:"tags,omitempty"`
Fee common.KI64Pair `protobuf:"bytes,8,opt,name=fee" json:"fee"`
}
func (m *ResponseDeliverTx) Reset() { *m = ResponseDeliverTx{} }
@ -1523,13 +1514,6 @@ func (m *ResponseDeliverTx) GetTags() []common.KVPair {
return nil
}
func (m *ResponseDeliverTx) GetFee() common.KI64Pair {
if m != nil {
return m.Fee
}
return common.KI64Pair{}
}
type ResponseEndBlock struct {
ValidatorUpdates []Validator `protobuf:"bytes,1,rep,name=validator_updates,json=validatorUpdates" json:"validator_updates"`
ConsensusParamUpdates *ConsensusParams `protobuf:"bytes,2,opt,name=consensus_param_updates,json=consensusParamUpdates" json:"consensus_param_updates,omitempty"`
@ -3176,9 +3160,6 @@ func (this *ResponseCheckTx) Equal(that interface{}) bool {
return false
}
}
if !this.Fee.Equal(&that1.Fee) {
return false
}
return true
}
func (this *ResponseDeliverTx) Equal(that interface{}) bool {
@ -3226,9 +3207,6 @@ func (this *ResponseDeliverTx) Equal(that interface{}) bool {
return false
}
}
if !this.Fee.Equal(&that1.Fee) {
return false
}
return true
}
func (this *ResponseEndBlock) Equal(that interface{}) bool {
@ -5029,14 +5007,6 @@ func (m *ResponseCheckTx) MarshalTo(dAtA []byte) (int, error) {
i += n
}
}
dAtA[i] = 0x42
i++
i = encodeVarintTypes(dAtA, i, uint64(m.Fee.Size()))
n29, err := m.Fee.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n29
return i, nil
}
@ -5100,14 +5070,6 @@ func (m *ResponseDeliverTx) MarshalTo(dAtA []byte) (int, error) {
i += n
}
}
dAtA[i] = 0x42
i++
i = encodeVarintTypes(dAtA, i, uint64(m.Fee.Size()))
n30, err := m.Fee.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n30
return i, nil
}
@ -5142,11 +5104,11 @@ func (m *ResponseEndBlock) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintTypes(dAtA, i, uint64(m.ConsensusParamUpdates.Size()))
n31, err := m.ConsensusParamUpdates.MarshalTo(dAtA[i:])
n29, err := m.ConsensusParamUpdates.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n31
i += n29
}
if len(m.Tags) > 0 {
for _, msg := range m.Tags {
@ -5206,31 +5168,31 @@ func (m *ConsensusParams) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintTypes(dAtA, i, uint64(m.BlockSize.Size()))
n32, err := m.BlockSize.MarshalTo(dAtA[i:])
n30, err := m.BlockSize.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n32
i += n30
}
if m.TxSize != nil {
dAtA[i] = 0x12
i++
i = encodeVarintTypes(dAtA, i, uint64(m.TxSize.Size()))
n33, err := m.TxSize.MarshalTo(dAtA[i:])
n31, err := m.TxSize.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n33
i += n31
}
if m.BlockGossip != nil {
dAtA[i] = 0x1a
i++
i = encodeVarintTypes(dAtA, i, uint64(m.BlockGossip.Size()))
n34, err := m.BlockGossip.MarshalTo(dAtA[i:])
n32, err := m.BlockGossip.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n34
i += n32
}
return i, nil
}
@ -5381,11 +5343,11 @@ func (m *Header) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x4a
i++
i = encodeVarintTypes(dAtA, i, uint64(m.Proposer.Size()))
n35, err := m.Proposer.MarshalTo(dAtA[i:])
n33, err := m.Proposer.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n35
i += n33
return i, nil
}
@ -5413,11 +5375,11 @@ func (m *Validator) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintTypes(dAtA, i, uint64(m.PubKey.Size()))
n36, err := m.PubKey.MarshalTo(dAtA[i:])
n34, err := m.PubKey.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n36
i += n34
if m.Power != 0 {
dAtA[i] = 0x18
i++
@ -5444,11 +5406,11 @@ func (m *SigningValidator) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintTypes(dAtA, i, uint64(m.Validator.Size()))
n37, err := m.Validator.MarshalTo(dAtA[i:])
n35, err := m.Validator.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n37
i += n35
if m.SignedLastBlock {
dAtA[i] = 0x10
i++
@ -5516,11 +5478,11 @@ func (m *Evidence) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintTypes(dAtA, i, uint64(m.Validator.Size()))
n38, err := m.Validator.MarshalTo(dAtA[i:])
n36, err := m.Validator.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n38
i += n36
if m.Height != 0 {
dAtA[i] = 0x18
i++
@ -6022,8 +5984,6 @@ func NewPopulatedResponseCheckTx(r randyTypes, easy bool) *ResponseCheckTx {
this.Tags[i] = *v23
}
}
v24 := common.NewPopulatedKI64Pair(r, easy)
this.Fee = *v24
if !easy && r.Intn(10) != 0 {
}
return this
@ -6032,9 +5992,9 @@ func NewPopulatedResponseCheckTx(r randyTypes, easy bool) *ResponseCheckTx {
func NewPopulatedResponseDeliverTx(r randyTypes, easy bool) *ResponseDeliverTx {
this := &ResponseDeliverTx{}
this.Code = uint32(r.Uint32())
v25 := r.Intn(100)
this.Data = make([]byte, v25)
for i := 0; i < v25; i++ {
v24 := r.Intn(100)
this.Data = make([]byte, v24)
for i := 0; i < v24; i++ {
this.Data[i] = byte(r.Intn(256))
}
this.Log = string(randStringTypes(r))
@ -6048,15 +6008,13 @@ func NewPopulatedResponseDeliverTx(r randyTypes, easy bool) *ResponseDeliverTx {
this.GasUsed *= -1
}
if r.Intn(10) != 0 {
v26 := r.Intn(5)
this.Tags = make([]common.KVPair, v26)
for i := 0; i < v26; i++ {
v27 := common.NewPopulatedKVPair(r, easy)
this.Tags[i] = *v27
v25 := r.Intn(5)
this.Tags = make([]common.KVPair, v25)
for i := 0; i < v25; i++ {
v26 := common.NewPopulatedKVPair(r, easy)
this.Tags[i] = *v26
}
}
v28 := common.NewPopulatedKI64Pair(r, easy)
this.Fee = *v28
if !easy && r.Intn(10) != 0 {
}
return this
@ -6065,22 +6023,22 @@ func NewPopulatedResponseDeliverTx(r randyTypes, easy bool) *ResponseDeliverTx {
func NewPopulatedResponseEndBlock(r randyTypes, easy bool) *ResponseEndBlock {
this := &ResponseEndBlock{}
if r.Intn(10) != 0 {
v29 := r.Intn(5)
this.ValidatorUpdates = make([]Validator, v29)
for i := 0; i < v29; i++ {
v30 := NewPopulatedValidator(r, easy)
this.ValidatorUpdates[i] = *v30
v27 := r.Intn(5)
this.ValidatorUpdates = make([]Validator, v27)
for i := 0; i < v27; i++ {
v28 := NewPopulatedValidator(r, easy)
this.ValidatorUpdates[i] = *v28
}
}
if r.Intn(10) != 0 {
this.ConsensusParamUpdates = NewPopulatedConsensusParams(r, easy)
}
if r.Intn(10) != 0 {
v31 := r.Intn(5)
this.Tags = make([]common.KVPair, v31)
for i := 0; i < v31; i++ {
v32 := common.NewPopulatedKVPair(r, easy)
this.Tags[i] = *v32
v29 := r.Intn(5)
this.Tags = make([]common.KVPair, v29)
for i := 0; i < v29; i++ {
v30 := common.NewPopulatedKVPair(r, easy)
this.Tags[i] = *v30
}
}
if !easy && r.Intn(10) != 0 {
@ -6090,9 +6048,9 @@ func NewPopulatedResponseEndBlock(r randyTypes, easy bool) *ResponseEndBlock {
func NewPopulatedResponseCommit(r randyTypes, easy bool) *ResponseCommit {
this := &ResponseCommit{}
v33 := r.Intn(100)
this.Data = make([]byte, v33)
for i := 0; i < v33; i++ {
v31 := r.Intn(100)
this.Data = make([]byte, v31)
for i := 0; i < v31; i++ {
this.Data[i] = byte(r.Intn(256))
}
if !easy && r.Intn(10) != 0 {
@ -6180,23 +6138,23 @@ func NewPopulatedHeader(r randyTypes, easy bool) *Header {
if r.Intn(2) == 0 {
this.TotalTxs *= -1
}
v34 := r.Intn(100)
this.LastBlockHash = make([]byte, v34)
for i := 0; i < v34; i++ {
v32 := r.Intn(100)
this.LastBlockHash = make([]byte, v32)
for i := 0; i < v32; i++ {
this.LastBlockHash[i] = byte(r.Intn(256))
}
v35 := r.Intn(100)
this.ValidatorsHash = make([]byte, v35)
for i := 0; i < v35; i++ {
v33 := r.Intn(100)
this.ValidatorsHash = make([]byte, v33)
for i := 0; i < v33; i++ {
this.ValidatorsHash[i] = byte(r.Intn(256))
}
v36 := r.Intn(100)
this.AppHash = make([]byte, v36)
for i := 0; i < v36; i++ {
v34 := r.Intn(100)
this.AppHash = make([]byte, v34)
for i := 0; i < v34; i++ {
this.AppHash[i] = byte(r.Intn(256))
}
v37 := NewPopulatedValidator(r, easy)
this.Proposer = *v37
v35 := NewPopulatedValidator(r, easy)
this.Proposer = *v35
if !easy && r.Intn(10) != 0 {
}
return this
@ -6204,13 +6162,13 @@ func NewPopulatedHeader(r randyTypes, easy bool) *Header {
func NewPopulatedValidator(r randyTypes, easy bool) *Validator {
this := &Validator{}
v38 := r.Intn(100)
this.Address = make([]byte, v38)
for i := 0; i < v38; i++ {
v36 := r.Intn(100)
this.Address = make([]byte, v36)
for i := 0; i < v36; i++ {
this.Address[i] = byte(r.Intn(256))
}
v39 := NewPopulatedPubKey(r, easy)
this.PubKey = *v39
v37 := NewPopulatedPubKey(r, easy)
this.PubKey = *v37
this.Power = int64(r.Int63())
if r.Intn(2) == 0 {
this.Power *= -1
@ -6222,8 +6180,8 @@ func NewPopulatedValidator(r randyTypes, easy bool) *Validator {
func NewPopulatedSigningValidator(r randyTypes, easy bool) *SigningValidator {
this := &SigningValidator{}
v40 := NewPopulatedValidator(r, easy)
this.Validator = *v40
v38 := NewPopulatedValidator(r, easy)
this.Validator = *v38
this.SignedLastBlock = bool(bool(r.Intn(2) == 0))
if !easy && r.Intn(10) != 0 {
}
@ -6233,9 +6191,9 @@ func NewPopulatedSigningValidator(r randyTypes, easy bool) *SigningValidator {
func NewPopulatedPubKey(r randyTypes, easy bool) *PubKey {
this := &PubKey{}
this.Type = string(randStringTypes(r))
v41 := r.Intn(100)
this.Data = make([]byte, v41)
for i := 0; i < v41; i++ {
v39 := r.Intn(100)
this.Data = make([]byte, v39)
for i := 0; i < v39; i++ {
this.Data[i] = byte(r.Intn(256))
}
if !easy && r.Intn(10) != 0 {
@ -6246,8 +6204,8 @@ func NewPopulatedPubKey(r randyTypes, easy bool) *PubKey {
func NewPopulatedEvidence(r randyTypes, easy bool) *Evidence {
this := &Evidence{}
this.Type = string(randStringTypes(r))
v42 := NewPopulatedValidator(r, easy)
this.Validator = *v42
v40 := NewPopulatedValidator(r, easy)
this.Validator = *v40
this.Height = int64(r.Int63())
if r.Intn(2) == 0 {
this.Height *= -1
@ -6284,9 +6242,9 @@ func randUTF8RuneTypes(r randyTypes) rune {
return rune(ru + 61)
}
func randStringTypes(r randyTypes) string {
v43 := r.Intn(100)
tmps := make([]rune, v43)
for i := 0; i < v43; i++ {
v41 := r.Intn(100)
tmps := make([]rune, v41)
for i := 0; i < v41; i++ {
tmps[i] = randUTF8RuneTypes(r)
}
return string(tmps)
@ -6308,11 +6266,11 @@ func randFieldTypes(dAtA []byte, r randyTypes, fieldNumber int, wire int) []byte
switch wire {
case 0:
dAtA = encodeVarintPopulateTypes(dAtA, uint64(key))
v44 := r.Int63()
v42 := r.Int63()
if r.Intn(2) == 0 {
v44 *= -1
v42 *= -1
}
dAtA = encodeVarintPopulateTypes(dAtA, uint64(v44))
dAtA = encodeVarintPopulateTypes(dAtA, uint64(v42))
case 1:
dAtA = encodeVarintPopulateTypes(dAtA, uint64(key))
dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
@ -6865,8 +6823,6 @@ func (m *ResponseCheckTx) Size() (n int) {
n += 1 + l + sovTypes(uint64(l))
}
}
l = m.Fee.Size()
n += 1 + l + sovTypes(uint64(l))
return n
}
@ -6900,8 +6856,6 @@ func (m *ResponseDeliverTx) Size() (n int) {
n += 1 + l + sovTypes(uint64(l))
}
}
l = m.Fee.Size()
n += 1 + l + sovTypes(uint64(l))
return n
}
@ -10201,36 +10155,6 @@ func (m *ResponseCheckTx) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
case 8:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTypes
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTypes(dAtA[iNdEx:])
@ -10458,36 +10382,6 @@ func (m *ResponseDeliverTx) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
case 8:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTypes
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTypes(dAtA[iNdEx:])
@ -12041,124 +11935,122 @@ func init() { proto.RegisterFile("abci/types/types.proto", fileDescriptorTypes)
func init() { golang_proto.RegisterFile("abci/types/types.proto", fileDescriptorTypes) }
var fileDescriptorTypes = []byte{
// 1892 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0x4b, 0x73, 0x1c, 0x49,
0x11, 0x56, 0xcf, 0xbb, 0x53, 0x8f, 0x19, 0x97, 0x6c, 0x69, 0x3c, 0x0b, 0xb2, 0xa3, 0x83, 0xf0,
0xca, 0xac, 0x56, 0x02, 0xed, 0xda, 0x61, 0xef, 0xc2, 0x06, 0x1a, 0xad, 0xd9, 0x51, 0x2c, 0x0f,
0xd1, 0xf6, 0x9a, 0x08, 0x2e, 0x13, 0x35, 0xd3, 0xa5, 0x9e, 0x0e, 0xcf, 0x74, 0xf7, 0x76, 0xd5,
0x68, 0x47, 0xbe, 0x71, 0xdf, 0xe0, 0xca, 0x99, 0x1b, 0x27, 0x0e, 0x44, 0x10, 0xc1, 0x91, 0x13,
0xb1, 0x47, 0xfe, 0x00, 0x0e, 0xd0, 0x72, 0xe2, 0x17, 0x70, 0x83, 0xa8, 0xac, 0xea, 0xa7, 0x7a,
0x1c, 0xc2, 0x1c, 0xb9, 0x48, 0x95, 0x9d, 0x99, 0x55, 0x95, 0x39, 0x99, 0x5f, 0x66, 0x16, 0x6c,
0xd1, 0xd1, 0xd8, 0x3b, 0x10, 0x17, 0x21, 0xe3, 0xea, 0xef, 0x7e, 0x18, 0x05, 0x22, 0x20, 0x75,
0x24, 0x7a, 0xef, 0xba, 0x9e, 0x98, 0xcc, 0x47, 0xfb, 0xe3, 0x60, 0x76, 0xe0, 0x06, 0x6e, 0x70,
0x80, 0xdc, 0xd1, 0xfc, 0x0c, 0x29, 0x24, 0x70, 0xa5, 0xb4, 0x7a, 0x8f, 0x32, 0xe2, 0x82, 0xf9,
0x0e, 0x8b, 0x66, 0x9e, 0x2f, 0xb2, 0xcb, 0xa9, 0x37, 0xe2, 0x07, 0xe3, 0x60, 0x36, 0x0b, 0xfc,
0xec, 0x79, 0xd6, 0x9f, 0x6b, 0xd0, 0xb4, 0xd9, 0xe7, 0x73, 0xc6, 0x05, 0xd9, 0x85, 0x1a, 0x1b,
0x4f, 0x82, 0x6e, 0xe5, 0xae, 0xb1, 0xbb, 0x7a, 0x48, 0xf6, 0x95, 0x9c, 0xe6, 0x3e, 0x19, 0x4f,
0x82, 0xc1, 0x8a, 0x8d, 0x12, 0xe4, 0x1d, 0xa8, 0x9f, 0x4d, 0xe7, 0x7c, 0xd2, 0xad, 0xa2, 0xe8,
0x66, 0x5e, 0xf4, 0x87, 0x92, 0x35, 0x58, 0xb1, 0x95, 0x8c, 0xdc, 0xd6, 0xf3, 0xcf, 0x82, 0x6e,
0xad, 0x6c, 0xdb, 0x13, 0xff, 0x0c, 0xb7, 0x95, 0x12, 0xe4, 0x11, 0x00, 0x67, 0x62, 0x18, 0x84,
0xc2, 0x0b, 0xfc, 0x6e, 0x1d, 0xe5, 0xb7, 0xf3, 0xf2, 0x4f, 0x99, 0xf8, 0x29, 0xb2, 0x07, 0x2b,
0xb6, 0xc9, 0x63, 0x42, 0x6a, 0x7a, 0xbe, 0x27, 0x86, 0xe3, 0x09, 0xf5, 0xfc, 0x6e, 0xa3, 0x4c,
0xf3, 0xc4, 0xf7, 0xc4, 0xb1, 0x64, 0x4b, 0x4d, 0x2f, 0x26, 0xa4, 0x29, 0x9f, 0xcf, 0x59, 0x74,
0xd1, 0x6d, 0x96, 0x99, 0xf2, 0x33, 0xc9, 0x92, 0xa6, 0xa0, 0x0c, 0xf9, 0x10, 0x56, 0x47, 0xcc,
0xf5, 0xfc, 0xe1, 0x68, 0x1a, 0x8c, 0x5f, 0x74, 0x5b, 0xa8, 0xd2, 0xcd, 0xab, 0xf4, 0xa5, 0x40,
0x5f, 0xf2, 0x07, 0x2b, 0x36, 0x8c, 0x12, 0x8a, 0x1c, 0x42, 0x6b, 0x3c, 0x61, 0xe3, 0x17, 0x43,
0xb1, 0xe8, 0x9a, 0xa8, 0x79, 0x2b, 0xaf, 0x79, 0x2c, 0xb9, 0xcf, 0x16, 0x83, 0x15, 0xbb, 0x39,
0x56, 0x4b, 0xf2, 0x00, 0x4c, 0xe6, 0x3b, 0xfa, 0xb8, 0x55, 0x54, 0xda, 0x2a, 0xfc, 0x2e, 0xbe,
0x13, 0x1f, 0xd6, 0x62, 0x7a, 0x4d, 0xf6, 0xa1, 0x21, 0x7f, 0x6b, 0x4f, 0x74, 0xd7, 0x50, 0xe7,
0x66, 0xe1, 0x20, 0xe4, 0x0d, 0x56, 0x6c, 0x2d, 0x25, 0xdd, 0xe7, 0xb0, 0xa9, 0x77, 0xce, 0x22,
0x79, 0xb9, 0xcd, 0x32, 0xf7, 0x7d, 0xac, 0xf8, 0x78, 0x3d, 0xd3, 0x89, 0x89, 0x7e, 0x13, 0xea,
0xe7, 0x74, 0x3a, 0x67, 0xd6, 0xdb, 0xb0, 0x9a, 0x89, 0x14, 0xd2, 0x85, 0xe6, 0x8c, 0x71, 0x4e,
0x5d, 0xd6, 0x35, 0xee, 0x1a, 0xbb, 0xa6, 0x1d, 0x93, 0xd6, 0x06, 0xac, 0x65, 0xe3, 0x24, 0xa3,
0x28, 0x63, 0x41, 0x2a, 0x9e, 0xb3, 0x88, 0xcb, 0x00, 0xd0, 0x8a, 0x9a, 0xb4, 0x3e, 0x80, 0x4e,
0x31, 0x08, 0x48, 0x07, 0xaa, 0x2f, 0xd8, 0x85, 0x96, 0x94, 0x4b, 0x72, 0x53, 0x5f, 0x08, 0xa3,
0xd8, 0xb4, 0xf5, 0xed, 0xfe, 0x61, 0x24, 0xca, 0x49, 0x1c, 0x10, 0x02, 0x35, 0xe1, 0xcd, 0xd4,
0x05, 0xab, 0x36, 0xae, 0xc9, 0x6d, 0xf9, 0x23, 0x51, 0xcf, 0x1f, 0x7a, 0x8e, 0xde, 0xa1, 0x89,
0xf4, 0x89, 0x43, 0x8e, 0xa0, 0x33, 0x0e, 0x7c, 0xce, 0x7c, 0x3e, 0xe7, 0xc3, 0x90, 0x46, 0x74,
0xc6, 0x75, 0xfc, 0xc7, 0x3f, 0xc9, 0x71, 0xcc, 0x3e, 0x45, 0xae, 0xdd, 0x1e, 0xe7, 0x3f, 0x90,
0x87, 0x00, 0xe7, 0x74, 0xea, 0x39, 0x54, 0x04, 0x11, 0xef, 0xd6, 0xee, 0x56, 0x77, 0x57, 0x0f,
0x3b, 0x5a, 0xf9, 0x79, 0xcc, 0xe8, 0xd7, 0xbe, 0x7a, 0x75, 0x67, 0xc5, 0xce, 0x48, 0x92, 0x7b,
0xd0, 0xa6, 0x61, 0x38, 0xe4, 0x82, 0x0a, 0x36, 0x1c, 0x5d, 0x08, 0xc6, 0x31, 0x3b, 0xd6, 0xec,
0x75, 0x1a, 0x86, 0x4f, 0xe5, 0xd7, 0xbe, 0xfc, 0x68, 0x39, 0x89, 0x6f, 0x31, 0x70, 0xa5, 0x85,
0x0e, 0x15, 0x14, 0x2d, 0x5c, 0xb3, 0x71, 0x2d, 0xbf, 0x85, 0x54, 0x4c, 0xb4, 0x75, 0xb8, 0x26,
0x5b, 0xd0, 0x98, 0x30, 0xcf, 0x9d, 0x08, 0x34, 0xa8, 0x6a, 0x6b, 0x4a, 0x3a, 0x33, 0x8c, 0x82,
0x73, 0x86, 0xb9, 0xdb, 0xb2, 0x15, 0x61, 0xfd, 0xd5, 0x80, 0x1b, 0x57, 0x82, 0x5d, 0xee, 0x3b,
0xa1, 0x7c, 0x12, 0x9f, 0x25, 0xd7, 0xe4, 0x1d, 0xb9, 0x2f, 0x75, 0x58, 0xa4, 0x31, 0x65, 0x5d,
0xdb, 0x3a, 0xc0, 0x8f, 0xda, 0x50, 0x2d, 0x42, 0xbe, 0x9f, 0x73, 0x4e, 0x15, 0x9d, 0x13, 0x07,
0xe1, 0x53, 0xcf, 0xf5, 0x3d, 0xdf, 0x7d, 0x9d, 0x8f, 0x06, 0x70, 0x73, 0x74, 0xf1, 0x92, 0xfa,
0xc2, 0xf3, 0xd9, 0xf0, 0x8a, 0x97, 0xdb, 0x7a, 0xa3, 0x27, 0xe7, 0x9e, 0xc3, 0xfc, 0x31, 0xd3,
0x1b, 0x6c, 0x26, 0x2a, 0xc9, 0xd6, 0xdc, 0xba, 0x0b, 0x1b, 0xf9, 0x8c, 0x24, 0x1b, 0x50, 0x11,
0x0b, 0x6d, 0x59, 0x45, 0x2c, 0x2c, 0x2b, 0x89, 0xa6, 0x24, 0x2d, 0xae, 0xc8, 0xdc, 0x87, 0x76,
0x21, 0x45, 0x33, 0x6e, 0x36, 0xb2, 0x6e, 0xb6, 0xda, 0xb0, 0x9e, 0xcb, 0x4c, 0xeb, 0xcb, 0x3a,
0xb4, 0x6c, 0xc6, 0x43, 0x19, 0x3e, 0xe4, 0x11, 0x98, 0x6c, 0x31, 0x66, 0x0a, 0x14, 0x8d, 0x02,
0xe4, 0x28, 0x99, 0x27, 0x31, 0x5f, 0x26, 0x67, 0x22, 0x4c, 0xee, 0xe7, 0x00, 0x7d, 0xb3, 0xa8,
0x94, 0x45, 0xf4, 0xbd, 0x3c, 0xa2, 0xdf, 0x2c, 0xc8, 0x16, 0x20, 0xfd, 0x7e, 0x0e, 0xd2, 0x8b,
0x1b, 0xe7, 0x30, 0xfd, 0x71, 0x09, 0xa6, 0x17, 0xaf, 0xbf, 0x04, 0xd4, 0x1f, 0x97, 0x80, 0x7a,
0xf7, 0xca, 0x59, 0xa5, 0xa8, 0xbe, 0x97, 0x47, 0xf5, 0xa2, 0x39, 0x05, 0x58, 0xff, 0x5e, 0x19,
0xac, 0xdf, 0x2e, 0xe8, 0x2c, 0xc5, 0xf5, 0xf7, 0xae, 0xe0, 0xfa, 0x56, 0x41, 0xb5, 0x04, 0xd8,
0x1f, 0xe7, 0x10, 0x17, 0x4a, 0x6d, 0x2b, 0x87, 0x5c, 0xf2, 0xf0, 0x6a, 0x4d, 0xd8, 0x2e, 0xfe,
0xb4, 0x65, 0x45, 0xe1, 0xa0, 0x50, 0x14, 0x6e, 0x15, 0x6f, 0x59, 0xa8, 0x0a, 0x29, 0xb6, 0xdf,
0x97, 0xf9, 0x5e, 0x88, 0x34, 0x89, 0x0d, 0x2c, 0x8a, 0x82, 0x48, 0x83, 0xaf, 0x22, 0xac, 0x5d,
0x89, 0x40, 0x69, 0x7c, 0xbd, 0xa6, 0x0e, 0x60, 0xd0, 0x67, 0xa2, 0xcb, 0xfa, 0xb5, 0x91, 0xea,
0x62, 0x29, 0xc8, 0xa2, 0x97, 0xa9, 0xd1, 0x2b, 0x53, 0x1e, 0x2a, 0xb9, 0xf2, 0x40, 0xbe, 0x0d,
0x37, 0xa6, 0x94, 0x0b, 0xe5, 0x97, 0x61, 0x0e, 0xce, 0xda, 0x92, 0xa1, 0x1c, 0xa2, 0x70, 0xed,
0x5d, 0xd8, 0xcc, 0xc8, 0x4a, 0x68, 0x45, 0xe8, 0xaa, 0x61, 0xf2, 0x76, 0x12, 0xe9, 0xa3, 0x30,
0x1c, 0x50, 0x3e, 0xb1, 0x7e, 0x9c, 0xda, 0x9f, 0x96, 0x1e, 0x02, 0xb5, 0x71, 0xe0, 0x28, 0xb3,
0xd6, 0x6d, 0x5c, 0xcb, 0x72, 0x34, 0x0d, 0x5c, 0x3c, 0xd5, 0xb4, 0xe5, 0x52, 0x4a, 0x25, 0x99,
0x62, 0xaa, 0x94, 0xb0, 0x7e, 0x65, 0xa4, 0xfb, 0xa5, 0xd5, 0xa8, 0xac, 0xbc, 0x18, 0xff, 0x4b,
0x79, 0xa9, 0x5c, 0xb7, 0xbc, 0x58, 0x7f, 0x30, 0xd2, 0xdf, 0x22, 0x29, 0x1c, 0x6f, 0x66, 0x9c,
0x0c, 0x0b, 0xcf, 0x77, 0xd8, 0x02, 0x53, 0xbd, 0x6a, 0x2b, 0x22, 0xae, 0xd3, 0x0d, 0x74, 0x70,
0xbe, 0x4e, 0x37, 0xf1, 0x9b, 0x22, 0x74, 0xc1, 0x09, 0xce, 0x30, 0x07, 0xd7, 0x6c, 0x45, 0x64,
0x70, 0xd3, 0xcc, 0xe1, 0xe6, 0x29, 0x90, 0xab, 0xd9, 0x49, 0x3e, 0x80, 0x9a, 0xa0, 0xae, 0x74,
0x9e, 0xb4, 0x7f, 0x63, 0x5f, 0x75, 0xbd, 0xfb, 0x9f, 0x3e, 0x3f, 0xa5, 0x5e, 0xd4, 0xdf, 0x92,
0xd6, 0xff, 0xf3, 0xd5, 0x9d, 0x0d, 0x29, 0xb3, 0x17, 0xcc, 0x3c, 0xc1, 0x66, 0xa1, 0xb8, 0xb0,
0x51, 0xc7, 0xfa, 0xb7, 0x21, 0x51, 0x3b, 0x97, 0xb5, 0xa5, 0xbe, 0x88, 0x43, 0xb3, 0x92, 0x29,
0xac, 0xd7, 0xf3, 0xcf, 0x37, 0x01, 0x5c, 0xca, 0x87, 0x5f, 0x50, 0x5f, 0x30, 0x47, 0x3b, 0xc9,
0x74, 0x29, 0xff, 0x39, 0x7e, 0x90, 0xfd, 0x87, 0x64, 0xcf, 0x39, 0x73, 0xd0, 0x5b, 0x55, 0xbb,
0xe9, 0x52, 0xfe, 0x19, 0x67, 0x4e, 0x62, 0x57, 0xf3, 0xbf, 0xb7, 0x8b, 0xec, 0x42, 0xf5, 0x8c,
0x31, 0x8d, 0x6c, 0x9d, 0x44, 0xf5, 0xe4, 0xe1, 0xfb, 0xa8, 0xac, 0x42, 0x42, 0x8a, 0x58, 0xbf,
0xac, 0xa4, 0xc1, 0x99, 0x16, 0xb7, 0xff, 0x2f, 0x1f, 0x7c, 0x8d, 0xdd, 0x62, 0x1e, 0x4a, 0xc9,
0x31, 0xdc, 0x48, 0x52, 0x66, 0x38, 0x0f, 0x1d, 0x2a, 0xbb, 0x30, 0xe3, 0xb5, 0x39, 0xd6, 0x49,
0x14, 0x3e, 0x53, 0xf2, 0xe4, 0x27, 0xb0, 0x5d, 0x48, 0xf2, 0x64, 0xab, 0xca, 0x6b, 0x73, 0xfd,
0x56, 0x3e, 0xd7, 0xe3, 0xfd, 0x62, 0x7f, 0x54, 0xdf, 0x20, 0xd6, 0xbf, 0x25, 0xdb, 0x9c, 0x2c,
0xf4, 0x97, 0xfd, 0xa2, 0xd6, 0x6f, 0x0c, 0x68, 0x17, 0x2e, 0x43, 0x0e, 0x00, 0x14, 0x72, 0x72,
0xef, 0x25, 0xd3, 0x20, 0x15, 0xfb, 0x00, 0x9d, 0xf5, 0xd4, 0x7b, 0xc9, 0x6c, 0x73, 0x14, 0x2f,
0xc9, 0x3d, 0x68, 0x8a, 0x85, 0x92, 0xce, 0x37, 0x82, 0xcf, 0x16, 0x28, 0xda, 0x10, 0xf8, 0x9f,
0x3c, 0x80, 0x35, 0xb5, 0xb1, 0x1b, 0x70, 0xee, 0x85, 0xba, 0x19, 0x21, 0xd9, 0xad, 0x3f, 0x41,
0x8e, 0xbd, 0x3a, 0x4a, 0x09, 0xeb, 0x17, 0x60, 0x26, 0xc7, 0x92, 0xb7, 0xc0, 0x9c, 0xd1, 0x85,
0xee, 0x92, 0xe5, 0xdd, 0xea, 0x76, 0x6b, 0x46, 0x17, 0xd8, 0x20, 0x93, 0x6d, 0x68, 0x4a, 0xa6,
0x58, 0x28, 0x7f, 0xd7, 0xed, 0xc6, 0x8c, 0x2e, 0x9e, 0x2d, 0x12, 0x86, 0x4b, 0x79, 0xdc, 0x02,
0xcf, 0xe8, 0xe2, 0x13, 0xca, 0xad, 0x8f, 0xa0, 0xa1, 0x2e, 0x79, 0xad, 0x8d, 0xa5, 0x7e, 0x25,
0xa7, 0xff, 0x03, 0x58, 0xcd, 0xdc, 0x9b, 0x7c, 0x17, 0x6e, 0x29, 0x0b, 0x43, 0x1a, 0x09, 0xf4,
0x48, 0x6e, 0x43, 0x82, 0xcc, 0x53, 0x1a, 0x09, 0x79, 0xa4, 0x6a, 0xea, 0x7f, 0x5f, 0x81, 0x86,
0x6a, 0x98, 0xc9, 0xbd, 0xcc, 0x74, 0x82, 0x55, 0xb1, 0xbf, 0x7a, 0xf9, 0xea, 0x4e, 0x13, 0x0b,
0xc8, 0xc9, 0xc7, 0xe9, 0xa8, 0x92, 0x02, 0x66, 0x25, 0xd7, 0xcf, 0xc7, 0x13, 0x4f, 0x35, 0x33,
0xf1, 0x6c, 0x43, 0xd3, 0x9f, 0xcf, 0xd0, 0x25, 0x35, 0xe5, 0x12, 0x7f, 0x3e, 0x93, 0x2e, 0x79,
0x0b, 0x4c, 0x11, 0x08, 0x3a, 0x45, 0x96, 0x4a, 0xd2, 0x16, 0x7e, 0x90, 0xcc, 0x7b, 0xd0, 0xce,
0x56, 0x5b, 0x59, 0x3d, 0x15, 0xb8, 0xaf, 0xa7, 0xb5, 0x56, 0x4e, 0x00, 0x6f, 0x43, 0x3b, 0x2d,
0x34, 0x4a, 0x4e, 0x01, 0xfe, 0x46, 0xfa, 0x19, 0x05, 0x6f, 0x43, 0x2b, 0xa9, 0xc3, 0x0a, 0xfc,
0x9b, 0x54, 0x95, 0x5f, 0x39, 0x38, 0x87, 0x51, 0x10, 0x06, 0x9c, 0x45, 0xba, 0xc1, 0x5a, 0x96,
0x70, 0x89, 0x9c, 0xe5, 0x81, 0x99, 0x30, 0x65, 0xd3, 0x40, 0x1d, 0x27, 0x62, 0x9c, 0xeb, 0xfe,
0x3c, 0x26, 0xc9, 0x1e, 0x34, 0xc3, 0xf9, 0x68, 0x28, 0x6b, 0x53, 0x3e, 0x30, 0x4f, 0xe7, 0xa3,
0x4f, 0xd9, 0x45, 0x3c, 0xa1, 0x84, 0x48, 0x61, 0x75, 0x0a, 0xbe, 0x60, 0x91, 0xf6, 0x9f, 0x22,
0x2c, 0x01, 0x9d, 0xe2, 0x78, 0x42, 0xde, 0x07, 0x33, 0xb1, 0xaf, 0x90, 0x20, 0xc5, 0x3b, 0xa7,
0x82, 0xb2, 0x85, 0xe1, 0x9e, 0xeb, 0x33, 0x67, 0x98, 0xfa, 0x16, 0xef, 0xd5, 0xb2, 0xdb, 0x8a,
0xf1, 0xa3, 0xd8, 0xb9, 0xd6, 0x77, 0xa0, 0xa1, 0xee, 0x88, 0x3f, 0xea, 0x45, 0x18, 0xf7, 0x57,
0xb8, 0x2e, 0xcd, 0xe4, 0xdf, 0x19, 0xd0, 0x8a, 0xc7, 0x9f, 0x52, 0xa5, 0xdc, 0xa5, 0x2b, 0xd7,
0xbd, 0xf4, 0xb2, 0xd9, 0x31, 0x8e, 0xb5, 0x5a, 0x26, 0xd6, 0xf6, 0x80, 0xa8, 0x90, 0x3a, 0x0f,
0x84, 0xe7, 0xbb, 0x43, 0xe5, 0x4d, 0x15, 0x5b, 0x1d, 0xe4, 0x3c, 0x47, 0xc6, 0xa9, 0xfc, 0x7e,
0xf8, 0x65, 0x1d, 0xda, 0x47, 0xfd, 0xe3, 0x93, 0xa3, 0x30, 0x9c, 0x7a, 0x63, 0x8a, 0x5d, 0xd7,
0x01, 0xd4, 0xb0, 0xaf, 0x2c, 0x79, 0x9d, 0xea, 0x95, 0x0d, 0x38, 0xe4, 0x10, 0xea, 0xd8, 0x5e,
0x92, 0xb2, 0x47, 0xaa, 0x5e, 0xe9, 0x9c, 0x23, 0x0f, 0x51, 0x0d, 0xe8, 0xd5, 0xb7, 0xaa, 0x5e,
0xd9, 0xb0, 0x43, 0x3e, 0x02, 0x33, 0x6d, 0x0c, 0x97, 0xbd, 0x58, 0xf5, 0x96, 0x8e, 0x3d, 0x52,
0x3f, 0xad, 0xb5, 0xcb, 0x1e, 0x5e, 0x7a, 0x4b, 0xe7, 0x03, 0xf2, 0x08, 0x9a, 0x71, 0xb7, 0x52,
0xfe, 0xa6, 0xd4, 0x5b, 0x32, 0x92, 0x48, 0xf7, 0xa8, 0x8e, 0xaf, 0xec, 0xe1, 0xab, 0x57, 0x3a,
0x37, 0x91, 0x07, 0xd0, 0xd0, 0x05, 0xa3, 0xf4, 0x5d, 0xa9, 0x57, 0x3e, 0x58, 0x48, 0x23, 0xd3,
0x6e, 0x77, 0xd9, 0xe3, 0x5c, 0x6f, 0xe9, 0x80, 0x47, 0x8e, 0x00, 0x32, 0x5d, 0xde, 0xd2, 0x57,
0xb7, 0xde, 0xf2, 0xc1, 0x8d, 0x7c, 0x08, 0xad, 0x74, 0x18, 0x2f, 0x7f, 0x47, 0xeb, 0x2d, 0x9b,
0xa5, 0xfa, 0xdf, 0xf8, 0xd7, 0xdf, 0x77, 0x8c, 0xdf, 0x5e, 0xee, 0x18, 0x7f, 0xbc, 0xdc, 0x31,
0xbe, 0xba, 0xdc, 0x31, 0xfe, 0x72, 0xb9, 0x63, 0xfc, 0xed, 0x72, 0xc7, 0xf8, 0xd3, 0xd7, 0x3b,
0xc6, 0xa8, 0x81, 0xef, 0xa9, 0xef, 0xfd, 0x27, 0x00, 0x00, 0xff, 0xff, 0xf4, 0x59, 0x8b, 0xa6,
0xd9, 0x15, 0x00, 0x00,
// 1871 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0x4b, 0x6f, 0x1c, 0xc7,
0x11, 0xe6, 0xec, 0x7b, 0x8a, 0x8f, 0xa5, 0x9a, 0x12, 0xb9, 0x5a, 0x27, 0x94, 0x30, 0x08, 0x64,
0x2a, 0xa6, 0xc9, 0x84, 0x8e, 0x0c, 0xc9, 0x4e, 0x8c, 0x70, 0x69, 0xc5, 0x4b, 0x38, 0x0f, 0x66,
0x24, 0x2b, 0x40, 0x2e, 0x8b, 0xde, 0x99, 0xe6, 0x6c, 0x43, 0xbb, 0x33, 0xe3, 0xe9, 0x5e, 0x7a,
0xa9, 0xdf, 0x60, 0xe4, 0x9a, 0x73, 0x6e, 0x39, 0xe5, 0x10, 0x20, 0x40, 0x8e, 0x39, 0x05, 0x3e,
0xe6, 0x12, 0xe4, 0x14, 0x21, 0xa1, 0x73, 0xca, 0x2f, 0xc8, 0x31, 0xe8, 0xea, 0x79, 0x73, 0x56,
0x10, 0x94, 0x5b, 0x2e, 0x64, 0xd7, 0x54, 0x55, 0x77, 0x57, 0x6d, 0xd5, 0x57, 0x55, 0x0d, 0xdb,
0x74, 0xec, 0xf0, 0x43, 0x79, 0x19, 0x32, 0xa1, 0xff, 0x1e, 0x84, 0x51, 0x20, 0x03, 0xd2, 0x44,
0xa2, 0xff, 0xae, 0xc7, 0xe5, 0x64, 0x3e, 0x3e, 0x70, 0x82, 0xd9, 0xa1, 0x17, 0x78, 0xc1, 0x21,
0x72, 0xc7, 0xf3, 0x73, 0xa4, 0x90, 0xc0, 0x95, 0xd6, 0xea, 0x3f, 0xcc, 0x89, 0x4b, 0xe6, 0xbb,
0x2c, 0x9a, 0x71, 0x5f, 0xe6, 0x97, 0x53, 0x3e, 0x16, 0x87, 0x4e, 0x30, 0x9b, 0x05, 0x7e, 0xfe,
0x3c, 0xeb, 0xcf, 0x0d, 0x68, 0xdb, 0xec, 0xf3, 0x39, 0x13, 0x92, 0xec, 0x41, 0x83, 0x39, 0x93,
0xa0, 0x57, 0xbb, 0x6b, 0xec, 0xad, 0x1e, 0x91, 0x03, 0x2d, 0x17, 0x73, 0x1f, 0x3b, 0x93, 0x60,
0xb8, 0x62, 0xa3, 0x04, 0x79, 0x07, 0x9a, 0xe7, 0xd3, 0xb9, 0x98, 0xf4, 0xea, 0x28, 0xba, 0x55,
0x14, 0xfd, 0x91, 0x62, 0x0d, 0x57, 0x6c, 0x2d, 0xa3, 0xb6, 0xe5, 0xfe, 0x79, 0xd0, 0x6b, 0x54,
0x6d, 0x7b, 0xea, 0x9f, 0xe3, 0xb6, 0x4a, 0x82, 0x3c, 0x04, 0x10, 0x4c, 0x8e, 0x82, 0x50, 0xf2,
0xc0, 0xef, 0x35, 0x51, 0x7e, 0xa7, 0x28, 0xff, 0x84, 0xc9, 0x9f, 0x21, 0x7b, 0xb8, 0x62, 0x9b,
0x22, 0x21, 0x94, 0x26, 0xf7, 0xb9, 0x1c, 0x39, 0x13, 0xca, 0xfd, 0x5e, 0xab, 0x4a, 0xf3, 0xd4,
0xe7, 0xf2, 0x44, 0xb1, 0x95, 0x26, 0x4f, 0x08, 0x65, 0xca, 0xe7, 0x73, 0x16, 0x5d, 0xf6, 0xda,
0x55, 0xa6, 0xfc, 0x5c, 0xb1, 0x94, 0x29, 0x28, 0x43, 0x3e, 0x84, 0xd5, 0x31, 0xf3, 0xb8, 0x3f,
0x1a, 0x4f, 0x03, 0xe7, 0x79, 0xaf, 0x83, 0x2a, 0xbd, 0xa2, 0xca, 0x40, 0x09, 0x0c, 0x14, 0x7f,
0xb8, 0x62, 0xc3, 0x38, 0xa5, 0xc8, 0x11, 0x74, 0x9c, 0x09, 0x73, 0x9e, 0x8f, 0xe4, 0xa2, 0x67,
0xa2, 0xe6, 0xad, 0xa2, 0xe6, 0x89, 0xe2, 0x3e, 0x5d, 0x0c, 0x57, 0xec, 0xb6, 0xa3, 0x97, 0xe4,
0x01, 0x98, 0xcc, 0x77, 0xe3, 0xe3, 0x56, 0x51, 0x69, 0xbb, 0xf4, 0xbb, 0xf8, 0x6e, 0x72, 0x58,
0x87, 0xc5, 0x6b, 0x72, 0x00, 0x2d, 0xf5, 0x5b, 0x73, 0xd9, 0x5b, 0x43, 0x9d, 0x9b, 0xa5, 0x83,
0x90, 0x37, 0x5c, 0xb1, 0x63, 0x29, 0xe5, 0x3e, 0x97, 0x4d, 0xf9, 0x05, 0x8b, 0xd4, 0xe5, 0xb6,
0xaa, 0xdc, 0xf7, 0xb1, 0xe6, 0xe3, 0xf5, 0x4c, 0x37, 0x21, 0x06, 0x6d, 0x68, 0x5e, 0xd0, 0xe9,
0x9c, 0x59, 0x6f, 0xc3, 0x6a, 0x2e, 0x52, 0x48, 0x0f, 0xda, 0x33, 0x26, 0x04, 0xf5, 0x58, 0xcf,
0xb8, 0x6b, 0xec, 0x99, 0x76, 0x42, 0x5a, 0x1b, 0xb0, 0x96, 0x8f, 0x93, 0x9c, 0xa2, 0x8a, 0x05,
0xa5, 0x78, 0xc1, 0x22, 0xa1, 0x02, 0x20, 0x56, 0x8c, 0x49, 0xeb, 0x03, 0xd8, 0x2c, 0x07, 0x01,
0xd9, 0x84, 0xfa, 0x73, 0x76, 0x19, 0x4b, 0xaa, 0x25, 0xb9, 0x19, 0x5f, 0x08, 0xa3, 0xd8, 0xb4,
0xe3, 0xdb, 0xfd, 0xcb, 0x48, 0x95, 0xd3, 0x38, 0x20, 0x04, 0x1a, 0x92, 0xcf, 0xf4, 0x05, 0xeb,
0x36, 0xae, 0xc9, 0x6d, 0xf5, 0x23, 0x51, 0xee, 0x8f, 0xb8, 0x1b, 0xef, 0xd0, 0x46, 0xfa, 0xd4,
0x25, 0xc7, 0xb0, 0xe9, 0x04, 0xbe, 0x60, 0xbe, 0x98, 0x8b, 0x51, 0x48, 0x23, 0x3a, 0x13, 0x71,
0xfc, 0x27, 0x3f, 0xc9, 0x49, 0xc2, 0x3e, 0x43, 0xae, 0xdd, 0x75, 0x8a, 0x1f, 0xc8, 0xfb, 0x00,
0x17, 0x74, 0xca, 0x5d, 0x2a, 0x83, 0x48, 0xf4, 0x1a, 0x77, 0xeb, 0x7b, 0xab, 0x47, 0x9b, 0xb1,
0xf2, 0xb3, 0x84, 0x31, 0x68, 0x7c, 0xf5, 0xf2, 0xce, 0x8a, 0x9d, 0x93, 0x24, 0xf7, 0xa0, 0x4b,
0xc3, 0x70, 0x24, 0x24, 0x95, 0x6c, 0x34, 0xbe, 0x94, 0x4c, 0x60, 0x76, 0xac, 0xd9, 0xeb, 0x34,
0x0c, 0x9f, 0xa8, 0xaf, 0x03, 0xf5, 0xd1, 0x72, 0x53, 0xdf, 0x62, 0xe0, 0x2a, 0x0b, 0x5d, 0x2a,
0x29, 0x5a, 0xb8, 0x66, 0xe3, 0x5a, 0x7d, 0x0b, 0xa9, 0x9c, 0xc4, 0xd6, 0xe1, 0x9a, 0x6c, 0x43,
0x6b, 0xc2, 0xb8, 0x37, 0x91, 0x68, 0x50, 0xdd, 0x8e, 0x29, 0xe5, 0xcc, 0x30, 0x0a, 0x2e, 0x18,
0xe6, 0x6e, 0xc7, 0xd6, 0x84, 0xf5, 0x77, 0x03, 0x6e, 0x5c, 0x0b, 0x76, 0xb5, 0xef, 0x84, 0x8a,
0x49, 0x72, 0x96, 0x5a, 0x93, 0x77, 0xd4, 0xbe, 0xd4, 0x65, 0x51, 0x8c, 0x29, 0xeb, 0xb1, 0xad,
0x43, 0xfc, 0x18, 0x1b, 0x1a, 0x8b, 0x90, 0x1f, 0x14, 0x9c, 0x53, 0x47, 0xe7, 0x24, 0x41, 0xf8,
0x84, 0x7b, 0x3e, 0xf7, 0xbd, 0x57, 0xf9, 0x68, 0x08, 0x37, 0xc7, 0x97, 0x2f, 0xa8, 0x2f, 0xb9,
0xcf, 0x46, 0xd7, 0xbc, 0xdc, 0x8d, 0x37, 0x7a, 0x7c, 0xc1, 0x5d, 0xe6, 0x3b, 0x2c, 0xde, 0x60,
0x2b, 0x55, 0x49, 0xb7, 0x16, 0xd6, 0x5d, 0xd8, 0x28, 0x66, 0x24, 0xd9, 0x80, 0x9a, 0x5c, 0xc4,
0x96, 0xd5, 0xe4, 0xc2, 0xb2, 0xd2, 0x68, 0x4a, 0xd3, 0xe2, 0x9a, 0xcc, 0x7d, 0xe8, 0x96, 0x52,
0x34, 0xe7, 0x66, 0x23, 0xef, 0x66, 0xab, 0x0b, 0xeb, 0x85, 0xcc, 0xb4, 0xbe, 0x6c, 0x42, 0xc7,
0x66, 0x22, 0x54, 0xe1, 0x43, 0x1e, 0x82, 0xc9, 0x16, 0x0e, 0xd3, 0xa0, 0x68, 0x94, 0x20, 0x47,
0xcb, 0x3c, 0x4e, 0xf8, 0x2a, 0x39, 0x53, 0x61, 0x72, 0xbf, 0x00, 0xe8, 0x5b, 0x65, 0xa5, 0x3c,
0xa2, 0xef, 0x17, 0x11, 0xfd, 0x66, 0x49, 0xb6, 0x04, 0xe9, 0xf7, 0x0b, 0x90, 0x5e, 0xde, 0xb8,
0x80, 0xe9, 0x8f, 0x2a, 0x30, 0xbd, 0x7c, 0xfd, 0x25, 0xa0, 0xfe, 0xa8, 0x02, 0xd4, 0x7b, 0xd7,
0xce, 0xaa, 0x44, 0xf5, 0xfd, 0x22, 0xaa, 0x97, 0xcd, 0x29, 0xc1, 0xfa, 0xf7, 0xab, 0x60, 0xfd,
0x76, 0x49, 0x67, 0x29, 0xae, 0xbf, 0x77, 0x0d, 0xd7, 0xb7, 0x4b, 0xaa, 0x15, 0xc0, 0xfe, 0xa8,
0x80, 0xb8, 0x50, 0x69, 0x5b, 0x35, 0xe4, 0x92, 0xf7, 0xaf, 0xd7, 0x84, 0x9d, 0xf2, 0x4f, 0x5b,
0x55, 0x14, 0x0e, 0x4b, 0x45, 0xe1, 0x56, 0xf9, 0x96, 0xa5, 0xaa, 0x90, 0x61, 0xfb, 0x7d, 0x95,
0xef, 0xa5, 0x48, 0x53, 0xd8, 0xc0, 0xa2, 0x28, 0x88, 0x62, 0xf0, 0xd5, 0x84, 0xb5, 0xa7, 0x10,
0x28, 0x8b, 0xaf, 0x57, 0xd4, 0x01, 0x0c, 0xfa, 0x5c, 0x74, 0x59, 0xbf, 0x36, 0x32, 0x5d, 0x2c,
0x05, 0x79, 0xf4, 0x32, 0x63, 0xf4, 0xca, 0x95, 0x87, 0x5a, 0xa1, 0x3c, 0x90, 0x6f, 0xc3, 0x8d,
0x29, 0x15, 0x52, 0xfb, 0x65, 0x54, 0x80, 0xb3, 0xae, 0x62, 0x68, 0x87, 0x68, 0x5c, 0x7b, 0x17,
0xb6, 0x72, 0xb2, 0x0a, 0x5a, 0x11, 0xba, 0x1a, 0x98, 0xbc, 0x9b, 0xa9, 0xf4, 0x71, 0x18, 0x0e,
0xa9, 0x98, 0x58, 0x3f, 0xc9, 0xec, 0xcf, 0x4a, 0x0f, 0x81, 0x86, 0x13, 0xb8, 0xda, 0xac, 0x75,
0x1b, 0xd7, 0xaa, 0x1c, 0x4d, 0x03, 0x0f, 0x4f, 0x35, 0x6d, 0xb5, 0x54, 0x52, 0x69, 0xa6, 0x98,
0x3a, 0x25, 0xac, 0x5f, 0x19, 0xd9, 0x7e, 0x59, 0x35, 0xaa, 0x2a, 0x2f, 0xc6, 0xff, 0x52, 0x5e,
0x6a, 0xaf, 0x5b, 0x5e, 0xac, 0x3f, 0x18, 0xd9, 0x6f, 0x91, 0x16, 0x8e, 0x37, 0x33, 0x4e, 0x85,
0x05, 0xf7, 0x5d, 0xb6, 0xc0, 0x54, 0xaf, 0xdb, 0x9a, 0x48, 0xea, 0x74, 0x0b, 0x1d, 0x5c, 0xac,
0xd3, 0x6d, 0xfc, 0xa6, 0x89, 0xb8, 0xe0, 0x04, 0xe7, 0x98, 0x83, 0x6b, 0xb6, 0x26, 0x72, 0xb8,
0x69, 0x16, 0x70, 0xf3, 0x0c, 0xc8, 0xf5, 0xec, 0x24, 0x1f, 0x40, 0x43, 0x52, 0x4f, 0x39, 0x4f,
0xd9, 0xbf, 0x71, 0xa0, 0xbb, 0xde, 0x83, 0x4f, 0x9f, 0x9d, 0x51, 0x1e, 0x0d, 0xb6, 0x95, 0xf5,
0xff, 0x7e, 0x79, 0x67, 0x43, 0xc9, 0xec, 0x07, 0x33, 0x2e, 0xd9, 0x2c, 0x94, 0x97, 0x36, 0xea,
0x58, 0x7f, 0x35, 0x14, 0x6a, 0x17, 0xb2, 0xb6, 0xd2, 0x17, 0x49, 0x68, 0xd6, 0x72, 0x85, 0xf5,
0xf5, 0xfc, 0xf3, 0x4d, 0x00, 0x8f, 0x8a, 0xd1, 0x17, 0xd4, 0x97, 0xcc, 0x8d, 0x9d, 0x64, 0x7a,
0x54, 0xfc, 0x02, 0x3f, 0xa8, 0xfe, 0x43, 0xb1, 0xe7, 0x82, 0xb9, 0xe8, 0xad, 0xba, 0xdd, 0xf6,
0xa8, 0xf8, 0x4c, 0x30, 0x37, 0xb5, 0xab, 0xfd, 0x06, 0x76, 0xfd, 0x2d, 0x17, 0x72, 0x59, 0xc9,
0xfa, 0x7f, 0xb0, 0xec, 0x6b, 0xec, 0xec, 0x8a, 0xb0, 0x47, 0x4e, 0xe0, 0x46, 0x1a, 0xde, 0xa3,
0x79, 0xe8, 0x52, 0xd5, 0x31, 0x19, 0xaf, 0xcc, 0x87, 0xcd, 0x54, 0xe1, 0x33, 0x2d, 0x4f, 0x7e,
0x0a, 0x3b, 0xa5, 0x84, 0x4c, 0xb7, 0xaa, 0xbd, 0x32, 0x2f, 0x6f, 0x15, 0xf3, 0x32, 0xd9, 0x2f,
0xb1, 0xb2, 0xfe, 0x06, 0x56, 0x7e, 0x4b, 0xb5, 0x24, 0x79, 0x98, 0xae, 0xfa, 0x9d, 0xac, 0xdf,
0x18, 0xd0, 0x2d, 0x5d, 0x86, 0x1c, 0x02, 0x68, 0x94, 0x13, 0xfc, 0x05, 0x8b, 0x01, 0x25, 0xf1,
0x01, 0x3a, 0xeb, 0x09, 0x7f, 0xc1, 0x6c, 0x73, 0x9c, 0x2c, 0xc9, 0x3d, 0x68, 0xcb, 0x85, 0x96,
0x2e, 0x36, 0x6d, 0x4f, 0x17, 0x28, 0xda, 0x92, 0xf8, 0x9f, 0x3c, 0x80, 0x35, 0xbd, 0xb1, 0x17,
0x08, 0xc1, 0xc3, 0xb8, 0x71, 0x20, 0xf9, 0xad, 0x3f, 0x41, 0x8e, 0xbd, 0x3a, 0xce, 0x08, 0xeb,
0x97, 0x60, 0xa6, 0xc7, 0x92, 0xb7, 0xc0, 0x9c, 0xd1, 0x45, 0xdc, 0xd1, 0xaa, 0xbb, 0x35, 0xed,
0xce, 0x8c, 0x2e, 0xb0, 0x99, 0x25, 0x3b, 0xd0, 0x56, 0x4c, 0xb9, 0xd0, 0xfe, 0x6e, 0xda, 0xad,
0x19, 0x5d, 0x3c, 0x5d, 0xa4, 0x0c, 0x8f, 0x8a, 0xa4, 0x5d, 0x9d, 0xd1, 0xc5, 0x27, 0x54, 0x58,
0x1f, 0x41, 0x4b, 0x5f, 0xf2, 0xb5, 0x36, 0x56, 0xfa, 0xb5, 0x82, 0xfe, 0x0f, 0x61, 0x35, 0x77,
0x6f, 0xf2, 0x5d, 0xb8, 0xa5, 0x2d, 0x0c, 0x69, 0x24, 0xd1, 0x23, 0x85, 0x0d, 0x09, 0x32, 0xcf,
0x68, 0x24, 0xd5, 0x91, 0xba, 0x01, 0xff, 0x7d, 0x0d, 0x5a, 0xba, 0xb9, 0x25, 0xf7, 0x72, 0x93,
0x04, 0x56, 0xb0, 0xc1, 0xea, 0xd5, 0xcb, 0x3b, 0x6d, 0x04, 0xfb, 0xd3, 0x8f, 0xb3, 0xb1, 0x22,
0x03, 0xb7, 0x5a, 0xa1, 0xf7, 0x4e, 0xa6, 0x93, 0x7a, 0x6e, 0x3a, 0xd9, 0x81, 0xb6, 0x3f, 0x9f,
0xa1, 0x4b, 0x1a, 0xda, 0x25, 0xfe, 0x7c, 0xa6, 0x5c, 0xf2, 0x16, 0x98, 0x32, 0x90, 0x74, 0x8a,
0x2c, 0x9d, 0x7a, 0x1d, 0xfc, 0xa0, 0x98, 0xf7, 0xa0, 0x9b, 0xaf, 0x8c, 0xaa, 0xd2, 0x69, 0x20,
0x5e, 0xcf, 0xea, 0xa2, 0xea, 0xd6, 0xdf, 0x86, 0x6e, 0x56, 0x14, 0xb4, 0x9c, 0x06, 0xe7, 0x8d,
0xec, 0x33, 0x0a, 0xde, 0x86, 0x4e, 0x5a, 0x33, 0x35, 0x50, 0xb7, 0xa9, 0x2e, 0x95, 0x6a, 0xc8,
0x0d, 0xa3, 0x20, 0x0c, 0x04, 0x8b, 0xe2, 0x66, 0x68, 0x59, 0xc2, 0xa5, 0x72, 0x16, 0x07, 0x33,
0x65, 0xaa, 0x02, 0x4f, 0x5d, 0x37, 0x62, 0x42, 0xc4, 0xbd, 0x74, 0x42, 0x92, 0x7d, 0x68, 0x87,
0xf3, 0xf1, 0x48, 0xd5, 0x91, 0x62, 0x60, 0x9e, 0xcd, 0xc7, 0x9f, 0xb2, 0xcb, 0x64, 0x9a, 0x08,
0x91, 0xc2, 0x4a, 0x12, 0x7c, 0xc1, 0xa2, 0xd8, 0x7f, 0x9a, 0xb0, 0x24, 0x6c, 0x96, 0x47, 0x09,
0xf2, 0x3d, 0x30, 0x53, 0xfb, 0x4a, 0x09, 0x52, 0xbe, 0x73, 0x26, 0xa8, 0xda, 0x0d, 0xc1, 0x3d,
0x9f, 0xb9, 0xa3, 0xcc, 0xb7, 0x78, 0xaf, 0x8e, 0xdd, 0xd5, 0x8c, 0x1f, 0x27, 0xce, 0xb5, 0xbe,
0x03, 0x2d, 0x7d, 0x47, 0xfc, 0x51, 0x2f, 0xc3, 0xa4, 0x17, 0xc2, 0x75, 0x65, 0x26, 0xff, 0xce,
0x80, 0x4e, 0x32, 0xaa, 0x54, 0x2a, 0x15, 0x2e, 0x5d, 0x7b, 0xdd, 0x4b, 0x2f, 0x9b, 0xf3, 0x92,
0x58, 0x6b, 0xe4, 0x62, 0x6d, 0x1f, 0x88, 0x0e, 0xa9, 0x8b, 0x40, 0x72, 0xdf, 0x1b, 0x69, 0x6f,
0xea, 0xd8, 0xda, 0x44, 0xce, 0x33, 0x64, 0x9c, 0xa9, 0xef, 0x47, 0x5f, 0x36, 0xa1, 0x7b, 0x3c,
0x38, 0x39, 0x3d, 0x0e, 0xc3, 0x29, 0x77, 0x28, 0x76, 0x48, 0x87, 0xd0, 0xc0, 0x1e, 0xb0, 0xe2,
0x25, 0xa9, 0x5f, 0x35, 0x8c, 0x90, 0x23, 0x68, 0x62, 0x2b, 0x48, 0xaa, 0x1e, 0x94, 0xfa, 0x95,
0x33, 0x89, 0x3a, 0x44, 0x37, 0x8b, 0xd7, 0xdf, 0x95, 0xfa, 0x55, 0x83, 0x09, 0xf9, 0x08, 0xcc,
0xac, 0x89, 0x5b, 0xf6, 0xba, 0xd4, 0x5f, 0x3a, 0xa2, 0x28, 0xfd, 0xac, 0x82, 0x2e, 0x7b, 0x24,
0xe9, 0x2f, 0xed, 0xe5, 0xc9, 0x43, 0x68, 0x27, 0x9d, 0x45, 0xf5, 0xfb, 0x4f, 0x7f, 0xc9, 0xf8,
0xa0, 0xdc, 0xa3, 0xbb, 0xb3, 0xaa, 0x47, 0xaa, 0x7e, 0xe5, 0x8c, 0x43, 0x1e, 0x40, 0x2b, 0x2e,
0x18, 0x95, 0x6f, 0x40, 0xfd, 0xea, 0x21, 0x40, 0x19, 0x99, 0x75, 0xa6, 0xcb, 0x1e, 0xd2, 0xfa,
0x4b, 0x87, 0x31, 0x72, 0x0c, 0x90, 0xeb, 0xc8, 0x96, 0xbe, 0x90, 0xf5, 0x97, 0x0f, 0x59, 0xe4,
0x43, 0xe8, 0x64, 0x83, 0x73, 0xf5, 0x9b, 0x57, 0x7f, 0xd9, 0xdc, 0x33, 0xf8, 0xc6, 0x7f, 0xfe,
0xb9, 0x6b, 0xfc, 0xf6, 0x6a, 0xd7, 0xf8, 0xe3, 0xd5, 0xae, 0xf1, 0xd5, 0xd5, 0xae, 0xf1, 0x97,
0xab, 0x5d, 0xe3, 0x1f, 0x57, 0xbb, 0xc6, 0x9f, 0xbe, 0xde, 0x35, 0xc6, 0x2d, 0x7c, 0xfb, 0x7c,
0xef, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x14, 0xb6, 0x0c, 0x6d, 0x85, 0x15, 0x00, 0x00,
}

+ 0
- 2
abci/types/types.proto View File

@ -168,7 +168,6 @@ message ResponseCheckTx {
int64 gas_wanted = 5;
int64 gas_used = 6;
repeated common.KVPair tags = 7 [(gogoproto.nullable)=false, (gogoproto.jsontag)="tags,omitempty"];
common.KI64Pair fee = 8 [(gogoproto.nullable)=false];
}
message ResponseDeliverTx {
@ -179,7 +178,6 @@ message ResponseDeliverTx {
int64 gas_wanted = 5;
int64 gas_used = 6;
repeated common.KVPair tags = 7 [(gogoproto.nullable)=false, (gogoproto.jsontag)="tags,omitempty"];
common.KI64Pair fee = 8 [(gogoproto.nullable)=false];
}
message ResponseEndBlock {


+ 0
- 2
docs/app-dev/abci-spec.md View File

@ -186,7 +186,6 @@ See below for more details on the message types and how they are used.
- `GasUsed (int64)`: Amount of gas consumed by transaction.
- `Tags ([]cmn.KVPair)`: Key-Value tags for filtering and indexing
transactions (eg. by account).
- `Fee (cmn.KI64Pair)`: Fee paid for the transaction.
- **Usage**: Validate a mempool transaction, prior to broadcasting
or proposing. CheckTx should perform stateful but light-weight
checks of the validity of the transaction (like checking signatures
@ -223,7 +222,6 @@ See below for more details on the message types and how they are used.
- `GasUsed (int64)`: Amount of gas consumed by transaction.
- `Tags ([]cmn.KVPair)`: Key-Value tags for filtering and indexing
transactions (eg. by account).
- `Fee (cmn.KI64Pair)`: Fee paid for the transaction.
- **Usage**:
- Deliver a transaction to be executed in full by the application.
If the transaction is valid, returns CodeType.OK.


+ 6
- 16
docs/app-dev/getting-started.md View File

@ -93,9 +93,7 @@ like:
"jsonrpc": "2.0",
"id": "",
"result": {
"check_tx": {
"fee": {}
},
"check_tx": {},
"deliver_tx": {
"tags": [
{
@ -106,8 +104,7 @@ like:
"key": "YXBwLmtleQ==",
"value": "YWJjZA=="
}
],
"fee": {}
]
},
"hash": "9DF66553F98DE3C26E3C3317A3E4CED54F714E39",
"height": 14
@ -219,13 +216,10 @@ the number `1`. If instead, we try to send a `5`, we get an error:
"jsonrpc": "2.0",
"id": "",
"result": {
"check_tx": {
"fee": {}
},
"check_tx": {},
"deliver_tx": {
"code": 2,
"log": "Invalid nonce. Expected 1, got 5",
"fee": {}
"log": "Invalid nonce. Expected 1, got 5"
},
"hash": "33B93DFF98749B0D6996A70F64071347060DC19C",
"height": 34
@ -241,12 +235,8 @@ But if we send a `1`, it works again:
"jsonrpc": "2.0",
"id": "",
"result": {
"check_tx": {
"fee": {}
},
"deliver_tx": {
"fee": {}
},
"check_tx": {},
"deliver_tx": {},
"hash": "F17854A977F6FA7EEA1BD758E296710B86F72F3D",
"height": 60
}


+ 0
- 2
state/txindex/kv/kv_test.go View File

@ -185,7 +185,6 @@ func txResultWithTags(tags []cmn.KVPair) *types.TxResult {
Code: abci.CodeTypeOK,
Log: "",
Tags: tags,
Fee: cmn.KI64Pair{Key: nil, Value: 0},
},
}
}
@ -201,7 +200,6 @@ func benchmarkTxIndex(txsCount int64, b *testing.B) {
Code: abci.CodeTypeOK,
Log: "",
Tags: []cmn.KVPair{},
Fee: cmn.KI64Pair{Key: []uint8{}, Value: 0},
},
}


+ 1
- 1
types/event_bus_test.go View File

@ -22,7 +22,7 @@ func TestEventBusPublishEventTx(t *testing.T) {
defer eventBus.Stop()
tx := Tx("foo")
result := abci.ResponseDeliverTx{Data: []byte("bar"), Tags: []cmn.KVPair{{[]byte("baz"), []byte("1")}}, Fee: cmn.KI64Pair{Key: []uint8{}, Value: 0}}
result := abci.ResponseDeliverTx{Data: []byte("bar"), Tags: []cmn.KVPair{{[]byte("baz"), []byte("1")}}}
txEventsCh := make(chan interface{})


Loading…
Cancel
Save