fix(accounts): lockup check sender in context not in message (#23621)

Co-authored-by: Alex | Interchain Labs <alex@interchainlabs.io>
This commit is contained in:
Marko 2025-02-06 17:48:30 +01:00 committed by GitHub
parent f7f301d1d9
commit 5cedd50480
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 230 additions and 710 deletions

View File

@ -4,7 +4,6 @@ package lockupv1
import (
_ "cosmossdk.io/api/amino"
v1beta1 "cosmossdk.io/api/cosmos/base/v1beta1"
_ "cosmossdk.io/api/cosmos/msg/v1"
fmt "fmt"
_ "github.com/cosmos/cosmos-proto"
runtime "github.com/cosmos/cosmos-proto/runtime"
@ -1948,7 +1947,6 @@ func (x *fastReflection_MsgInitPeriodicLockingAccountResponse) ProtoMethods() *p
var (
md_MsgDelegate protoreflect.MessageDescriptor
fd_MsgDelegate_sender protoreflect.FieldDescriptor
fd_MsgDelegate_validator_address protoreflect.FieldDescriptor
fd_MsgDelegate_amount protoreflect.FieldDescriptor
)
@ -1956,7 +1954,6 @@ var (
func init() {
file_cosmos_accounts_defaults_lockup_v1_tx_proto_init()
md_MsgDelegate = File_cosmos_accounts_defaults_lockup_v1_tx_proto.Messages().ByName("MsgDelegate")
fd_MsgDelegate_sender = md_MsgDelegate.Fields().ByName("sender")
fd_MsgDelegate_validator_address = md_MsgDelegate.Fields().ByName("validator_address")
fd_MsgDelegate_amount = md_MsgDelegate.Fields().ByName("amount")
}
@ -2026,12 +2023,6 @@ func (x *fastReflection_MsgDelegate) Interface() protoreflect.ProtoMessage {
// While iterating, mutating operations may only be performed
// on the current field descriptor.
func (x *fastReflection_MsgDelegate) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
if x.Sender != "" {
value := protoreflect.ValueOfString(x.Sender)
if !f(fd_MsgDelegate_sender, value) {
return
}
}
if x.ValidatorAddress != "" {
value := protoreflect.ValueOfString(x.ValidatorAddress)
if !f(fd_MsgDelegate_validator_address, value) {
@ -2059,8 +2050,6 @@ func (x *fastReflection_MsgDelegate) Range(f func(protoreflect.FieldDescriptor,
// a repeated field is populated if it is non-empty.
func (x *fastReflection_MsgDelegate) Has(fd protoreflect.FieldDescriptor) bool {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgDelegate.sender":
return x.Sender != ""
case "cosmos.accounts.defaults.lockup.v1.MsgDelegate.validator_address":
return x.ValidatorAddress != ""
case "cosmos.accounts.defaults.lockup.v1.MsgDelegate.amount":
@ -2081,8 +2070,6 @@ func (x *fastReflection_MsgDelegate) Has(fd protoreflect.FieldDescriptor) bool {
// Clear is a mutating operation and unsafe for concurrent use.
func (x *fastReflection_MsgDelegate) Clear(fd protoreflect.FieldDescriptor) {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgDelegate.sender":
x.Sender = ""
case "cosmos.accounts.defaults.lockup.v1.MsgDelegate.validator_address":
x.ValidatorAddress = ""
case "cosmos.accounts.defaults.lockup.v1.MsgDelegate.amount":
@ -2103,9 +2090,6 @@ func (x *fastReflection_MsgDelegate) Clear(fd protoreflect.FieldDescriptor) {
// of the value; to obtain a mutable reference, use Mutable.
func (x *fastReflection_MsgDelegate) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
switch descriptor.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgDelegate.sender":
value := x.Sender
return protoreflect.ValueOfString(value)
case "cosmos.accounts.defaults.lockup.v1.MsgDelegate.validator_address":
value := x.ValidatorAddress
return protoreflect.ValueOfString(value)
@ -2132,8 +2116,6 @@ func (x *fastReflection_MsgDelegate) Get(descriptor protoreflect.FieldDescriptor
// Set is a mutating operation and unsafe for concurrent use.
func (x *fastReflection_MsgDelegate) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgDelegate.sender":
x.Sender = value.Interface().(string)
case "cosmos.accounts.defaults.lockup.v1.MsgDelegate.validator_address":
x.ValidatorAddress = value.Interface().(string)
case "cosmos.accounts.defaults.lockup.v1.MsgDelegate.amount":
@ -2163,8 +2145,6 @@ func (x *fastReflection_MsgDelegate) Mutable(fd protoreflect.FieldDescriptor) pr
x.Amount = new(v1beta1.Coin)
}
return protoreflect.ValueOfMessage(x.Amount.ProtoReflect())
case "cosmos.accounts.defaults.lockup.v1.MsgDelegate.sender":
panic(fmt.Errorf("field sender of message cosmos.accounts.defaults.lockup.v1.MsgDelegate is not mutable"))
case "cosmos.accounts.defaults.lockup.v1.MsgDelegate.validator_address":
panic(fmt.Errorf("field validator_address of message cosmos.accounts.defaults.lockup.v1.MsgDelegate is not mutable"))
default:
@ -2180,8 +2160,6 @@ func (x *fastReflection_MsgDelegate) Mutable(fd protoreflect.FieldDescriptor) pr
// For lists, maps, and messages, this returns a new, empty, mutable value.
func (x *fastReflection_MsgDelegate) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgDelegate.sender":
return protoreflect.ValueOfString("")
case "cosmos.accounts.defaults.lockup.v1.MsgDelegate.validator_address":
return protoreflect.ValueOfString("")
case "cosmos.accounts.defaults.lockup.v1.MsgDelegate.amount":
@ -2256,10 +2234,6 @@ func (x *fastReflection_MsgDelegate) ProtoMethods() *protoiface.Methods {
var n int
var l int
_ = l
l = len(x.Sender)
if l > 0 {
n += 1 + l + runtime.Sov(uint64(l))
}
l = len(x.ValidatorAddress)
if l > 0 {
n += 1 + l + runtime.Sov(uint64(l))
@ -2318,13 +2292,6 @@ func (x *fastReflection_MsgDelegate) ProtoMethods() *protoiface.Methods {
i--
dAtA[i] = 0x12
}
if len(x.Sender) > 0 {
i -= len(x.Sender)
copy(dAtA[i:], x.Sender)
i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Sender)))
i--
dAtA[i] = 0xa
}
if input.Buf != nil {
input.Buf = append(input.Buf, dAtA...)
} else {
@ -2374,38 +2341,6 @@ func (x *fastReflection_MsgDelegate) ProtoMethods() *protoiface.Methods {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgDelegate: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
}
if iNdEx >= l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
if postIndex > l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
x.Sender = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType)
@ -2511,7 +2446,6 @@ func (x *fastReflection_MsgDelegate) ProtoMethods() *protoiface.Methods {
var (
md_MsgUndelegate protoreflect.MessageDescriptor
fd_MsgUndelegate_sender protoreflect.FieldDescriptor
fd_MsgUndelegate_validator_address protoreflect.FieldDescriptor
fd_MsgUndelegate_amount protoreflect.FieldDescriptor
)
@ -2519,7 +2453,6 @@ var (
func init() {
file_cosmos_accounts_defaults_lockup_v1_tx_proto_init()
md_MsgUndelegate = File_cosmos_accounts_defaults_lockup_v1_tx_proto.Messages().ByName("MsgUndelegate")
fd_MsgUndelegate_sender = md_MsgUndelegate.Fields().ByName("sender")
fd_MsgUndelegate_validator_address = md_MsgUndelegate.Fields().ByName("validator_address")
fd_MsgUndelegate_amount = md_MsgUndelegate.Fields().ByName("amount")
}
@ -2589,12 +2522,6 @@ func (x *fastReflection_MsgUndelegate) Interface() protoreflect.ProtoMessage {
// While iterating, mutating operations may only be performed
// on the current field descriptor.
func (x *fastReflection_MsgUndelegate) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
if x.Sender != "" {
value := protoreflect.ValueOfString(x.Sender)
if !f(fd_MsgUndelegate_sender, value) {
return
}
}
if x.ValidatorAddress != "" {
value := protoreflect.ValueOfString(x.ValidatorAddress)
if !f(fd_MsgUndelegate_validator_address, value) {
@ -2622,8 +2549,6 @@ func (x *fastReflection_MsgUndelegate) Range(f func(protoreflect.FieldDescriptor
// a repeated field is populated if it is non-empty.
func (x *fastReflection_MsgUndelegate) Has(fd protoreflect.FieldDescriptor) bool {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgUndelegate.sender":
return x.Sender != ""
case "cosmos.accounts.defaults.lockup.v1.MsgUndelegate.validator_address":
return x.ValidatorAddress != ""
case "cosmos.accounts.defaults.lockup.v1.MsgUndelegate.amount":
@ -2644,8 +2569,6 @@ func (x *fastReflection_MsgUndelegate) Has(fd protoreflect.FieldDescriptor) bool
// Clear is a mutating operation and unsafe for concurrent use.
func (x *fastReflection_MsgUndelegate) Clear(fd protoreflect.FieldDescriptor) {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgUndelegate.sender":
x.Sender = ""
case "cosmos.accounts.defaults.lockup.v1.MsgUndelegate.validator_address":
x.ValidatorAddress = ""
case "cosmos.accounts.defaults.lockup.v1.MsgUndelegate.amount":
@ -2666,9 +2589,6 @@ func (x *fastReflection_MsgUndelegate) Clear(fd protoreflect.FieldDescriptor) {
// of the value; to obtain a mutable reference, use Mutable.
func (x *fastReflection_MsgUndelegate) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
switch descriptor.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgUndelegate.sender":
value := x.Sender
return protoreflect.ValueOfString(value)
case "cosmos.accounts.defaults.lockup.v1.MsgUndelegate.validator_address":
value := x.ValidatorAddress
return protoreflect.ValueOfString(value)
@ -2695,8 +2615,6 @@ func (x *fastReflection_MsgUndelegate) Get(descriptor protoreflect.FieldDescript
// Set is a mutating operation and unsafe for concurrent use.
func (x *fastReflection_MsgUndelegate) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgUndelegate.sender":
x.Sender = value.Interface().(string)
case "cosmos.accounts.defaults.lockup.v1.MsgUndelegate.validator_address":
x.ValidatorAddress = value.Interface().(string)
case "cosmos.accounts.defaults.lockup.v1.MsgUndelegate.amount":
@ -2726,8 +2644,6 @@ func (x *fastReflection_MsgUndelegate) Mutable(fd protoreflect.FieldDescriptor)
x.Amount = new(v1beta1.Coin)
}
return protoreflect.ValueOfMessage(x.Amount.ProtoReflect())
case "cosmos.accounts.defaults.lockup.v1.MsgUndelegate.sender":
panic(fmt.Errorf("field sender of message cosmos.accounts.defaults.lockup.v1.MsgUndelegate is not mutable"))
case "cosmos.accounts.defaults.lockup.v1.MsgUndelegate.validator_address":
panic(fmt.Errorf("field validator_address of message cosmos.accounts.defaults.lockup.v1.MsgUndelegate is not mutable"))
default:
@ -2743,8 +2659,6 @@ func (x *fastReflection_MsgUndelegate) Mutable(fd protoreflect.FieldDescriptor)
// For lists, maps, and messages, this returns a new, empty, mutable value.
func (x *fastReflection_MsgUndelegate) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgUndelegate.sender":
return protoreflect.ValueOfString("")
case "cosmos.accounts.defaults.lockup.v1.MsgUndelegate.validator_address":
return protoreflect.ValueOfString("")
case "cosmos.accounts.defaults.lockup.v1.MsgUndelegate.amount":
@ -2819,10 +2733,6 @@ func (x *fastReflection_MsgUndelegate) ProtoMethods() *protoiface.Methods {
var n int
var l int
_ = l
l = len(x.Sender)
if l > 0 {
n += 1 + l + runtime.Sov(uint64(l))
}
l = len(x.ValidatorAddress)
if l > 0 {
n += 1 + l + runtime.Sov(uint64(l))
@ -2881,13 +2791,6 @@ func (x *fastReflection_MsgUndelegate) ProtoMethods() *protoiface.Methods {
i--
dAtA[i] = 0x12
}
if len(x.Sender) > 0 {
i -= len(x.Sender)
copy(dAtA[i:], x.Sender)
i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Sender)))
i--
dAtA[i] = 0xa
}
if input.Buf != nil {
input.Buf = append(input.Buf, dAtA...)
} else {
@ -2937,38 +2840,6 @@ func (x *fastReflection_MsgUndelegate) ProtoMethods() *protoiface.Methods {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgUndelegate: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
}
if iNdEx >= l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
if postIndex > l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
x.Sender = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType)
@ -3074,14 +2945,12 @@ func (x *fastReflection_MsgUndelegate) ProtoMethods() *protoiface.Methods {
var (
md_MsgWithdrawReward protoreflect.MessageDescriptor
fd_MsgWithdrawReward_sender protoreflect.FieldDescriptor
fd_MsgWithdrawReward_validator_address protoreflect.FieldDescriptor
)
func init() {
file_cosmos_accounts_defaults_lockup_v1_tx_proto_init()
md_MsgWithdrawReward = File_cosmos_accounts_defaults_lockup_v1_tx_proto.Messages().ByName("MsgWithdrawReward")
fd_MsgWithdrawReward_sender = md_MsgWithdrawReward.Fields().ByName("sender")
fd_MsgWithdrawReward_validator_address = md_MsgWithdrawReward.Fields().ByName("validator_address")
}
@ -3150,12 +3019,6 @@ func (x *fastReflection_MsgWithdrawReward) Interface() protoreflect.ProtoMessage
// While iterating, mutating operations may only be performed
// on the current field descriptor.
func (x *fastReflection_MsgWithdrawReward) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
if x.Sender != "" {
value := protoreflect.ValueOfString(x.Sender)
if !f(fd_MsgWithdrawReward_sender, value) {
return
}
}
if x.ValidatorAddress != "" {
value := protoreflect.ValueOfString(x.ValidatorAddress)
if !f(fd_MsgWithdrawReward_validator_address, value) {
@ -3177,8 +3040,6 @@ func (x *fastReflection_MsgWithdrawReward) Range(f func(protoreflect.FieldDescri
// a repeated field is populated if it is non-empty.
func (x *fastReflection_MsgWithdrawReward) Has(fd protoreflect.FieldDescriptor) bool {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgWithdrawReward.sender":
return x.Sender != ""
case "cosmos.accounts.defaults.lockup.v1.MsgWithdrawReward.validator_address":
return x.ValidatorAddress != ""
default:
@ -3197,8 +3058,6 @@ func (x *fastReflection_MsgWithdrawReward) Has(fd protoreflect.FieldDescriptor)
// Clear is a mutating operation and unsafe for concurrent use.
func (x *fastReflection_MsgWithdrawReward) Clear(fd protoreflect.FieldDescriptor) {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgWithdrawReward.sender":
x.Sender = ""
case "cosmos.accounts.defaults.lockup.v1.MsgWithdrawReward.validator_address":
x.ValidatorAddress = ""
default:
@ -3217,9 +3076,6 @@ func (x *fastReflection_MsgWithdrawReward) Clear(fd protoreflect.FieldDescriptor
// of the value; to obtain a mutable reference, use Mutable.
func (x *fastReflection_MsgWithdrawReward) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
switch descriptor.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgWithdrawReward.sender":
value := x.Sender
return protoreflect.ValueOfString(value)
case "cosmos.accounts.defaults.lockup.v1.MsgWithdrawReward.validator_address":
value := x.ValidatorAddress
return protoreflect.ValueOfString(value)
@ -3243,8 +3099,6 @@ func (x *fastReflection_MsgWithdrawReward) Get(descriptor protoreflect.FieldDesc
// Set is a mutating operation and unsafe for concurrent use.
func (x *fastReflection_MsgWithdrawReward) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgWithdrawReward.sender":
x.Sender = value.Interface().(string)
case "cosmos.accounts.defaults.lockup.v1.MsgWithdrawReward.validator_address":
x.ValidatorAddress = value.Interface().(string)
default:
@ -3267,8 +3121,6 @@ func (x *fastReflection_MsgWithdrawReward) Set(fd protoreflect.FieldDescriptor,
// Mutable is a mutating operation and unsafe for concurrent use.
func (x *fastReflection_MsgWithdrawReward) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgWithdrawReward.sender":
panic(fmt.Errorf("field sender of message cosmos.accounts.defaults.lockup.v1.MsgWithdrawReward is not mutable"))
case "cosmos.accounts.defaults.lockup.v1.MsgWithdrawReward.validator_address":
panic(fmt.Errorf("field validator_address of message cosmos.accounts.defaults.lockup.v1.MsgWithdrawReward is not mutable"))
default:
@ -3284,8 +3136,6 @@ func (x *fastReflection_MsgWithdrawReward) Mutable(fd protoreflect.FieldDescript
// For lists, maps, and messages, this returns a new, empty, mutable value.
func (x *fastReflection_MsgWithdrawReward) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgWithdrawReward.sender":
return protoreflect.ValueOfString("")
case "cosmos.accounts.defaults.lockup.v1.MsgWithdrawReward.validator_address":
return protoreflect.ValueOfString("")
default:
@ -3357,10 +3207,6 @@ func (x *fastReflection_MsgWithdrawReward) ProtoMethods() *protoiface.Methods {
var n int
var l int
_ = l
l = len(x.Sender)
if l > 0 {
n += 1 + l + runtime.Sov(uint64(l))
}
l = len(x.ValidatorAddress)
if l > 0 {
n += 1 + l + runtime.Sov(uint64(l))
@ -3401,13 +3247,6 @@ func (x *fastReflection_MsgWithdrawReward) ProtoMethods() *protoiface.Methods {
i--
dAtA[i] = 0x12
}
if len(x.Sender) > 0 {
i -= len(x.Sender)
copy(dAtA[i:], x.Sender)
i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Sender)))
i--
dAtA[i] = 0xa
}
if input.Buf != nil {
input.Buf = append(input.Buf, dAtA...)
} else {
@ -3457,38 +3296,6 @@ func (x *fastReflection_MsgWithdrawReward) ProtoMethods() *protoiface.Methods {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgWithdrawReward: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
}
if iNdEx >= l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
if postIndex > l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
x.Sender = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType)
@ -3609,7 +3416,6 @@ func (x *_MsgSend_3_list) IsValid() bool {
var (
md_MsgSend protoreflect.MessageDescriptor
fd_MsgSend_sender protoreflect.FieldDescriptor
fd_MsgSend_to_address protoreflect.FieldDescriptor
fd_MsgSend_amount protoreflect.FieldDescriptor
)
@ -3617,7 +3423,6 @@ var (
func init() {
file_cosmos_accounts_defaults_lockup_v1_tx_proto_init()
md_MsgSend = File_cosmos_accounts_defaults_lockup_v1_tx_proto.Messages().ByName("MsgSend")
fd_MsgSend_sender = md_MsgSend.Fields().ByName("sender")
fd_MsgSend_to_address = md_MsgSend.Fields().ByName("to_address")
fd_MsgSend_amount = md_MsgSend.Fields().ByName("amount")
}
@ -3687,12 +3492,6 @@ func (x *fastReflection_MsgSend) Interface() protoreflect.ProtoMessage {
// While iterating, mutating operations may only be performed
// on the current field descriptor.
func (x *fastReflection_MsgSend) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
if x.Sender != "" {
value := protoreflect.ValueOfString(x.Sender)
if !f(fd_MsgSend_sender, value) {
return
}
}
if x.ToAddress != "" {
value := protoreflect.ValueOfString(x.ToAddress)
if !f(fd_MsgSend_to_address, value) {
@ -3720,8 +3519,6 @@ func (x *fastReflection_MsgSend) Range(f func(protoreflect.FieldDescriptor, prot
// a repeated field is populated if it is non-empty.
func (x *fastReflection_MsgSend) Has(fd protoreflect.FieldDescriptor) bool {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgSend.sender":
return x.Sender != ""
case "cosmos.accounts.defaults.lockup.v1.MsgSend.to_address":
return x.ToAddress != ""
case "cosmos.accounts.defaults.lockup.v1.MsgSend.amount":
@ -3742,8 +3539,6 @@ func (x *fastReflection_MsgSend) Has(fd protoreflect.FieldDescriptor) bool {
// Clear is a mutating operation and unsafe for concurrent use.
func (x *fastReflection_MsgSend) Clear(fd protoreflect.FieldDescriptor) {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgSend.sender":
x.Sender = ""
case "cosmos.accounts.defaults.lockup.v1.MsgSend.to_address":
x.ToAddress = ""
case "cosmos.accounts.defaults.lockup.v1.MsgSend.amount":
@ -3764,9 +3559,6 @@ func (x *fastReflection_MsgSend) Clear(fd protoreflect.FieldDescriptor) {
// of the value; to obtain a mutable reference, use Mutable.
func (x *fastReflection_MsgSend) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
switch descriptor.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgSend.sender":
value := x.Sender
return protoreflect.ValueOfString(value)
case "cosmos.accounts.defaults.lockup.v1.MsgSend.to_address":
value := x.ToAddress
return protoreflect.ValueOfString(value)
@ -3796,8 +3588,6 @@ func (x *fastReflection_MsgSend) Get(descriptor protoreflect.FieldDescriptor) pr
// Set is a mutating operation and unsafe for concurrent use.
func (x *fastReflection_MsgSend) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgSend.sender":
x.Sender = value.Interface().(string)
case "cosmos.accounts.defaults.lockup.v1.MsgSend.to_address":
x.ToAddress = value.Interface().(string)
case "cosmos.accounts.defaults.lockup.v1.MsgSend.amount":
@ -3830,8 +3620,6 @@ func (x *fastReflection_MsgSend) Mutable(fd protoreflect.FieldDescriptor) protor
}
value := &_MsgSend_3_list{list: &x.Amount}
return protoreflect.ValueOfList(value)
case "cosmos.accounts.defaults.lockup.v1.MsgSend.sender":
panic(fmt.Errorf("field sender of message cosmos.accounts.defaults.lockup.v1.MsgSend is not mutable"))
case "cosmos.accounts.defaults.lockup.v1.MsgSend.to_address":
panic(fmt.Errorf("field to_address of message cosmos.accounts.defaults.lockup.v1.MsgSend is not mutable"))
default:
@ -3847,8 +3635,6 @@ func (x *fastReflection_MsgSend) Mutable(fd protoreflect.FieldDescriptor) protor
// For lists, maps, and messages, this returns a new, empty, mutable value.
func (x *fastReflection_MsgSend) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
switch fd.FullName() {
case "cosmos.accounts.defaults.lockup.v1.MsgSend.sender":
return protoreflect.ValueOfString("")
case "cosmos.accounts.defaults.lockup.v1.MsgSend.to_address":
return protoreflect.ValueOfString("")
case "cosmos.accounts.defaults.lockup.v1.MsgSend.amount":
@ -3923,10 +3709,6 @@ func (x *fastReflection_MsgSend) ProtoMethods() *protoiface.Methods {
var n int
var l int
_ = l
l = len(x.Sender)
if l > 0 {
n += 1 + l + runtime.Sov(uint64(l))
}
l = len(x.ToAddress)
if l > 0 {
n += 1 + l + runtime.Sov(uint64(l))
@ -3989,13 +3771,6 @@ func (x *fastReflection_MsgSend) ProtoMethods() *protoiface.Methods {
i--
dAtA[i] = 0x12
}
if len(x.Sender) > 0 {
i -= len(x.Sender)
copy(dAtA[i:], x.Sender)
i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Sender)))
i--
dAtA[i] = 0xa
}
if input.Buf != nil {
input.Buf = append(input.Buf, dAtA...)
} else {
@ -4045,38 +3820,6 @@ func (x *fastReflection_MsgSend) ProtoMethods() *protoiface.Methods {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSend: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
}
if iNdEx >= l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
if postIndex > l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
x.Sender = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ToAddress", wireType)
@ -4857,7 +4600,6 @@ type MsgDelegate struct {
unknownFields protoimpl.UnknownFields
// sender is the owner of the lockup account
Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"`
ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
Amount *v1beta1.Coin `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"`
}
@ -4882,13 +4624,6 @@ func (*MsgDelegate) Descriptor() ([]byte, []int) {
return file_cosmos_accounts_defaults_lockup_v1_tx_proto_rawDescGZIP(), []int{4}
}
func (x *MsgDelegate) GetSender() string {
if x != nil {
return x.Sender
}
return ""
}
func (x *MsgDelegate) GetValidatorAddress() string {
if x != nil {
return x.ValidatorAddress
@ -4909,7 +4644,6 @@ type MsgUndelegate struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"`
ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
Amount *v1beta1.Coin `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"`
}
@ -4934,13 +4668,6 @@ func (*MsgUndelegate) Descriptor() ([]byte, []int) {
return file_cosmos_accounts_defaults_lockup_v1_tx_proto_rawDescGZIP(), []int{5}
}
func (x *MsgUndelegate) GetSender() string {
if x != nil {
return x.Sender
}
return ""
}
func (x *MsgUndelegate) GetValidatorAddress() string {
if x != nil {
return x.ValidatorAddress
@ -4961,7 +4688,6 @@ type MsgWithdrawReward struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"`
ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
}
@ -4985,13 +4711,6 @@ func (*MsgWithdrawReward) Descriptor() ([]byte, []int) {
return file_cosmos_accounts_defaults_lockup_v1_tx_proto_rawDescGZIP(), []int{6}
}
func (x *MsgWithdrawReward) GetSender() string {
if x != nil {
return x.Sender
}
return ""
}
func (x *MsgWithdrawReward) GetValidatorAddress() string {
if x != nil {
return x.ValidatorAddress
@ -5005,7 +4724,6 @@ type MsgSend struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"`
ToAddress string `protobuf:"bytes,2,opt,name=to_address,json=toAddress,proto3" json:"to_address,omitempty"`
Amount []*v1beta1.Coin `protobuf:"bytes,3,rep,name=amount,proto3" json:"amount,omitempty"`
}
@ -5030,13 +4748,6 @@ func (*MsgSend) Descriptor() ([]byte, []int) {
return file_cosmos_accounts_defaults_lockup_v1_tx_proto_rawDescGZIP(), []int{7}
}
func (x *MsgSend) GetSender() string {
if x != nil {
return x.Sender
}
return ""
}
func (x *MsgSend) GetToAddress() string {
if x != nil {
return x.ToAddress
@ -5101,134 +4812,117 @@ var file_cosmos_accounts_defaults_lockup_v1_tx_proto_rawDesc = []byte{
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x63, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x2f, 0x6c,
0x6f, 0x63, 0x6b, 0x75, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73,
0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19,
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65,
0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x80, 0x02, 0x0a, 0x14,
0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x41, 0x63, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x6f,
0x77, 0x6e, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a,
0x01, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x0a, 0x73, 0x74,
0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00,
0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74,
0x54, 0x69, 0x6d, 0x65, 0x3a, 0x28, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x1f, 0x63,
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69,
0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x1e,
0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x41,
0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa9,
0x02, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64,
0x69, 0x63, 0x4c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
0x12, 0x2e, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72,
0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72,
0x12, 0x48, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52,
0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x5e, 0x0a, 0x0f, 0x6c, 0x6f,
0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x18, 0x03, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x63, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x6c,
0x6f, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42,
0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x6c, 0x6f, 0x63, 0x6b,
0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x3a, 0x2e, 0xe8, 0xa0, 0x1f, 0x00,
0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f,
0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x4c, 0x6f, 0x63,
0x6b, 0x75, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x27, 0x0a, 0x25, 0x4d, 0x73,
0x67, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x4c, 0x6f, 0x63,
0x6b, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x0b, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67,
0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x73,
0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x61, 0x6c,
0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72,
0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64,
0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18,
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62,
0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e,
0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f,
0x75, 0x6e, 0x74, 0x3a, 0x13, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0,
0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0xe4, 0x01, 0x0a, 0x0d, 0x4d, 0x73, 0x67,
0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x65,
0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x22, 0x80, 0x02, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x4c, 0x6f,
0x63, 0x6b, 0x75, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x6f,
0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14,
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74,
0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x11,
0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64,
0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69,
0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x06,
0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63,
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0,
0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x13, 0x88, 0xa0, 0x1f, 0x00,
0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22,
0xaa, 0x01, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x52,
0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52,
0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64,
0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56,
0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53,
0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72,
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x13, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f,
0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x84, 0x02, 0x0a,
0x07, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64,
0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f,
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69,
0x6e, 0x67, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x0a, 0x74, 0x6f,
0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18,
0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65,
0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72,
0x65, 0x73, 0x73, 0x12, 0x79, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73,
0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46,
0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73,
0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e,
0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x13,
0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e,
0x64, 0x65, 0x72, 0x22, 0x50, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x32, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x73, 0x42, 0x9c, 0x02, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f,
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x64, 0x65,
0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x6c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31,
0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f,
0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x64, 0x65,
0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x2f, 0x6c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x2f, 0x76, 0x31,
0x3b, 0x6c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x76, 0x31, 0xa2, 0x02, 0x04, 0x43, 0x41, 0x44, 0x4c,
0xaa, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x73, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x4c, 0x6f, 0x63, 0x6b,
0x75, 0x70, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41,
0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73,
0x5c, 0x4c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x2e, 0x43, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5c, 0x44, 0x65, 0x66,
0x61, 0x75, 0x6c, 0x74, 0x73, 0x5c, 0x4c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x5c, 0x56, 0x31, 0x5c,
0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x26, 0x43, 0x6f,
0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x3a, 0x3a,
0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x3a, 0x3a, 0x4c, 0x6f, 0x63, 0x6b, 0x75, 0x70,
0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x08, 0x65,
0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90,
0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d,
0x65, 0x12, 0x48, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01,
0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x28, 0xe8, 0xa0, 0x1f,
0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x1f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b,
0x2f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x41, 0x63,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74,
0x4c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa9, 0x02, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69,
0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x4c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67,
0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d,
0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74,
0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f,
0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d,
0x65, 0x12, 0x5e, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72,
0x69, 0x6f, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x64, 0x65, 0x66,
0x61, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x6c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e,
0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a,
0x01, 0x52, 0x0e, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64,
0x73, 0x3a, 0x2e, 0xe8, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x6f, 0x73, 0x6d,
0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x65,
0x72, 0x69, 0x6f, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x22, 0x27, 0x0a, 0x25, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x65, 0x72, 0x69,
0x6f, 0x64, 0x69, 0x63, 0x4c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x0b, 0x4d,
0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x4e, 0x0a, 0x11, 0x76, 0x61,
0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65,
0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x6d,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01,
0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0,
0x1f, 0x00, 0x22, 0xa7, 0x01, 0x0a, 0x0d, 0x4d, 0x73, 0x67, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65,
0x67, 0x61, 0x74, 0x65, 0x12, 0x4e, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f,
0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69,
0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69,
0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64,
0x72, 0x65, 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61,
0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42,
0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75,
0x6e, 0x74, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x6d, 0x0a, 0x11,
0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x52, 0x65, 0x77, 0x61, 0x72,
0x64, 0x12, 0x4e, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61,
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4,
0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52,
0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73,
0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xc7, 0x01, 0x0a, 0x07,
0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x37, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64,
0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d,
0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53,
0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x12, 0x79, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f,
0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64,
0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0,
0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7,
0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x08, 0x88, 0xa0, 0x1f,
0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x50, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x45, 0x78, 0x65, 0x63,
0x75, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x09, 0x72, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x42, 0x9c, 0x02, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e,
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e,
0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x6c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x2e,
0x76, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x63,
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f,
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f,
0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x2f, 0x6c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x2f,
0x76, 0x31, 0x3b, 0x6c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x76, 0x31, 0xa2, 0x02, 0x04, 0x43, 0x41,
0x44, 0x4c, 0xaa, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x63, 0x63, 0x6f,
0x75, 0x6e, 0x74, 0x73, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x4c, 0x6f,
0x63, 0x6b, 0x75, 0x70, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
0x5c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c,
0x74, 0x73, 0x5c, 0x4c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x2e, 0x43,
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5c, 0x44,
0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x5c, 0x4c, 0x6f, 0x63, 0x6b, 0x75, 0x70, 0x5c, 0x56,
0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x26,
0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73,
0x3a, 0x3a, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x3a, 0x3a, 0x4c, 0x6f, 0x63, 0x6b,
0x75, 0x70, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (

View File

@ -46,7 +46,6 @@ func (s *IntegrationTestSuite) TestContinuousLockingAccount() {
t.Run("error - execute message, wrong sender", func(t *testing.T) {
msg := &types.MsgSend{
Sender: addr,
ToAddress: addr,
Amount: sdk.Coins{sdk.NewCoin("stake", math.NewInt(100))},
}
@ -55,7 +54,6 @@ func (s *IntegrationTestSuite) TestContinuousLockingAccount() {
})
t.Run("error - execute send message, insufficient fund", func(t *testing.T) {
msg := &types.MsgSend{
Sender: ownerAddrStr,
ToAddress: addr,
Amount: sdk.Coins{sdk.NewCoin("stake", math.NewInt(100))},
}
@ -70,7 +68,6 @@ func (s *IntegrationTestSuite) TestContinuousLockingAccount() {
// Check if token is sendable
t.Run("ok - execute send message", func(t *testing.T) {
msg := &types.MsgSend{
Sender: ownerAddrStr,
ToAddress: addr,
Amount: sdk.Coins{sdk.NewCoin("stake", math.NewInt(100))},
}
@ -82,7 +79,6 @@ func (s *IntegrationTestSuite) TestContinuousLockingAccount() {
})
t.Run("ok - execute delegate message", func(t *testing.T) {
msg := &types.MsgDelegate{
Sender: ownerAddrStr,
ValidatorAddress: val.OperatorAddress,
Amount: sdk.NewCoin("stake", math.NewInt(100)),
}
@ -105,7 +101,6 @@ func (s *IntegrationTestSuite) TestContinuousLockingAccount() {
})
t.Run("ok - execute withdraw reward message", func(t *testing.T) {
msg := &types.MsgWithdrawReward{
Sender: ownerAddrStr,
ValidatorAddress: val.OperatorAddress,
}
err = s.executeTx(ctx, msg, s.accountsKeeper, accountAddr, accOwner)
@ -116,7 +111,6 @@ func (s *IntegrationTestSuite) TestContinuousLockingAccount() {
require.NoError(t, err)
val := vals[0]
msg := &types.MsgUndelegate{
Sender: ownerAddrStr,
ValidatorAddress: val.OperatorAddress,
Amount: sdk.NewCoin("stake", math.NewInt(100)),
}
@ -148,7 +142,6 @@ func (s *IntegrationTestSuite) TestContinuousLockingAccount() {
// test if tracking delegate work perfectly
t.Run("ok - execute delegate message", func(t *testing.T) {
msg := &types.MsgDelegate{
Sender: ownerAddrStr,
ValidatorAddress: val.OperatorAddress,
Amount: sdk.NewCoin("stake", math.NewInt(100)),
}

View File

@ -46,7 +46,6 @@ func (s *IntegrationTestSuite) TestDelayedLockingAccount() {
t.Run("error - execute message, wrong sender", func(t *testing.T) {
msg := &types.MsgSend{
Sender: addr,
ToAddress: addr,
Amount: sdk.Coins{sdk.NewCoin("stake", math.NewInt(100))},
}
@ -55,7 +54,6 @@ func (s *IntegrationTestSuite) TestDelayedLockingAccount() {
})
t.Run("error - execute send message, insufficient fund", func(t *testing.T) {
msg := &types.MsgSend{
Sender: ownerAddrStr,
ToAddress: addr,
Amount: sdk.Coins{sdk.NewCoin("stake", math.NewInt(100))},
}
@ -64,7 +62,6 @@ func (s *IntegrationTestSuite) TestDelayedLockingAccount() {
})
t.Run("ok - execute delegate message", func(t *testing.T) {
msg := &types.MsgDelegate{
Sender: ownerAddrStr,
ValidatorAddress: val.OperatorAddress,
Amount: sdk.NewCoin("stake", math.NewInt(100)),
}
@ -87,7 +84,6 @@ func (s *IntegrationTestSuite) TestDelayedLockingAccount() {
})
t.Run("ok - execute withdraw reward message", func(t *testing.T) {
msg := &types.MsgWithdrawReward{
Sender: ownerAddrStr,
ValidatorAddress: val.OperatorAddress,
}
err = s.executeTx(ctx, msg, s.accountsKeeper, accountAddr, accOwner)
@ -98,7 +94,6 @@ func (s *IntegrationTestSuite) TestDelayedLockingAccount() {
require.NoError(t, err)
val := vals[0]
msg := &types.MsgUndelegate{
Sender: ownerAddrStr,
ValidatorAddress: val.OperatorAddress,
Amount: sdk.NewCoin("stake", math.NewInt(100)),
}
@ -131,7 +126,6 @@ func (s *IntegrationTestSuite) TestDelayedLockingAccount() {
// Check if token is sendable after unlock
t.Run("ok - execute send message", func(t *testing.T) {
msg := &types.MsgSend{
Sender: ownerAddrStr,
ToAddress: addr,
Amount: sdk.Coins{sdk.NewCoin("stake", math.NewInt(100))},
}

View File

@ -59,7 +59,6 @@ func (s *IntegrationTestSuite) TestPeriodicLockingAccount() {
t.Run("error - execute message, wrong sender", func(t *testing.T) {
msg := &types.MsgSend{
Sender: addr,
ToAddress: addr,
Amount: sdk.Coins{sdk.NewCoin("stake", math.NewInt(100))},
}
@ -69,7 +68,6 @@ func (s *IntegrationTestSuite) TestPeriodicLockingAccount() {
// No token being unlocked yet
t.Run("error - execute send message, insufficient fund", func(t *testing.T) {
msg := &types.MsgSend{
Sender: ownerAddrStr,
ToAddress: addr,
Amount: sdk.Coins{sdk.NewCoin("stake", math.NewInt(100))},
}
@ -84,7 +82,6 @@ func (s *IntegrationTestSuite) TestPeriodicLockingAccount() {
// Check if 500 stake is sendable now
t.Run("ok - execute send message", func(t *testing.T) {
msg := &types.MsgSend{
Sender: ownerAddrStr,
ToAddress: addr,
Amount: sdk.Coins{sdk.NewCoin("stake", math.NewInt(500))},
}
@ -101,7 +98,6 @@ func (s *IntegrationTestSuite) TestPeriodicLockingAccount() {
t.Run("ok - execute delegate message", func(t *testing.T) {
msg := &types.MsgDelegate{
Sender: ownerAddrStr,
ValidatorAddress: val.OperatorAddress,
Amount: sdk.NewCoin("stake", math.NewInt(100)),
}
@ -124,7 +120,6 @@ func (s *IntegrationTestSuite) TestPeriodicLockingAccount() {
})
t.Run("ok - execute withdraw reward message", func(t *testing.T) {
msg := &types.MsgWithdrawReward{
Sender: ownerAddrStr,
ValidatorAddress: val.OperatorAddress,
}
err = s.executeTx(ctx, msg, s.accountsKeeper, accountAddr, accOwner)
@ -135,7 +130,6 @@ func (s *IntegrationTestSuite) TestPeriodicLockingAccount() {
require.NoError(t, err)
val := vals[0]
msg := &types.MsgUndelegate{
Sender: ownerAddrStr,
ValidatorAddress: val.OperatorAddress,
Amount: sdk.NewCoin("stake", math.NewInt(100)),
}
@ -167,7 +161,6 @@ func (s *IntegrationTestSuite) TestPeriodicLockingAccount() {
t.Run("ok - execute delegate message", func(t *testing.T) {
msg := &types.MsgDelegate{
Sender: ownerAddrStr,
ValidatorAddress: val.OperatorAddress,
Amount: sdk.NewCoin("stake", math.NewInt(100)),
}

View File

@ -44,7 +44,6 @@ func (s *IntegrationTestSuite) TestPermanentLockingAccount() {
t.Run("error - execute message, wrong sender", func(t *testing.T) {
msg := &types.MsgSend{
Sender: addr,
ToAddress: addr,
Amount: sdk.Coins{sdk.NewCoin("stake", math.NewInt(100))},
}
@ -53,7 +52,6 @@ func (s *IntegrationTestSuite) TestPermanentLockingAccount() {
})
t.Run("error - execute send message, insufficient fund", func(t *testing.T) {
msg := &types.MsgSend{
Sender: ownerAddrStr,
ToAddress: addr,
Amount: sdk.Coins{sdk.NewCoin("stake", math.NewInt(100))},
}
@ -62,7 +60,6 @@ func (s *IntegrationTestSuite) TestPermanentLockingAccount() {
})
t.Run("ok - execute delegate message", func(t *testing.T) {
msg := &types.MsgDelegate{
Sender: ownerAddrStr,
ValidatorAddress: val.OperatorAddress,
Amount: sdk.NewCoin("stake", math.NewInt(100)),
}
@ -85,7 +82,6 @@ func (s *IntegrationTestSuite) TestPermanentLockingAccount() {
})
t.Run("ok - execute withdraw reward message", func(t *testing.T) {
msg := &types.MsgWithdrawReward{
Sender: ownerAddrStr,
ValidatorAddress: val.OperatorAddress,
}
err = s.executeTx(ctx, msg, s.accountsKeeper, accountAddr, accOwner)
@ -96,7 +92,6 @@ func (s *IntegrationTestSuite) TestPermanentLockingAccount() {
require.NoError(t, err)
val := vals[0]
msg := &types.MsgUndelegate{
Sender: ownerAddrStr,
ValidatorAddress: val.OperatorAddress,
Amount: sdk.NewCoin("stake", math.NewInt(100)),
}
@ -122,7 +117,6 @@ func (s *IntegrationTestSuite) TestPermanentLockingAccount() {
t.Run("ok - execute send message", func(t *testing.T) {
msg := &types.MsgSend{
Sender: ownerAddrStr,
ToAddress: addr,
Amount: sdk.Coins{sdk.NewCoin("stake", math.NewInt(100))},
}
@ -142,7 +136,6 @@ func (s *IntegrationTestSuite) TestPermanentLockingAccount() {
t.Run("ok - execute delegate message", func(t *testing.T) {
msg := &types.MsgDelegate{
Sender: ownerAddrStr,
ValidatorAddress: val.OperatorAddress,
Amount: sdk.NewCoin("stake", math.NewInt(10)),
}

View File

@ -43,7 +43,6 @@ func TestContinuousAccountDelegate(t *testing.T) {
acc := setupContinuousAccount(t, sdkCtx, ss)
_, err := acc.Delegate(sdkCtx, &lockuptypes.MsgDelegate{
Sender: "owner",
ValidatorAddress: valAddress,
Amount: sdk.NewCoin("test", math.NewInt(1)),
})
@ -62,7 +61,6 @@ func TestContinuousAccountDelegate(t *testing.T) {
})
_, err = acc.Delegate(sdkCtx, &lockuptypes.MsgDelegate{
Sender: "owner",
ValidatorAddress: valAddress,
Amount: sdk.NewCoin("test", math.NewInt(5)),
})
@ -86,7 +84,6 @@ func TestContinuousAccountUndelegate(t *testing.T) {
acc := setupContinuousAccount(t, sdkCtx, ss)
// Delegate first
_, err := acc.Delegate(sdkCtx, &lockuptypes.MsgDelegate{
Sender: "owner",
ValidatorAddress: valAddress,
Amount: sdk.NewCoin("test", math.NewInt(1)),
})
@ -98,7 +95,6 @@ func TestContinuousAccountUndelegate(t *testing.T) {
// Undelegate
_, err = acc.Undelegate(sdkCtx, &lockuptypes.MsgUndelegate{
Sender: "owner",
ValidatorAddress: valAddress,
Amount: sdk.NewCoin("test", math.NewInt(1)),
})
@ -129,7 +125,6 @@ func TestContinuousAccountSendCoins(t *testing.T) {
acc := setupContinuousAccount(t, sdkCtx, ss)
_, err := acc.SendCoins(sdkCtx, &lockuptypes.MsgSend{
Sender: "owner",
ToAddress: "receiver",
Amount: sdk.NewCoins(sdk.NewCoin("test", math.NewInt(5))),
})
@ -144,7 +139,6 @@ func TestContinuousAccountSendCoins(t *testing.T) {
})
_, err = acc.SendCoins(sdkCtx, &lockuptypes.MsgSend{
Sender: "owner",
ToAddress: "receiver",
Amount: sdk.NewCoins(sdk.NewCoin("test", math.NewInt(5))),
})

View File

@ -40,7 +40,6 @@ func TestDelayedAccountDelegate(t *testing.T) {
acc := setupDelayedAccount(t, sdkCtx, ss)
_, err := acc.Delegate(sdkCtx, &lockuptypes.MsgDelegate{
Sender: "owner",
ValidatorAddress: valAddress,
Amount: sdk.NewCoin("test", math.NewInt(1)),
})
@ -59,7 +58,6 @@ func TestDelayedAccountDelegate(t *testing.T) {
})
_, err = acc.Delegate(sdkCtx, &lockuptypes.MsgDelegate{
Sender: "owner",
ValidatorAddress: valAddress,
Amount: sdk.NewCoin("test", math.NewInt(5)),
})
@ -83,7 +81,6 @@ func TestDelayedAccountUndelegate(t *testing.T) {
acc := setupDelayedAccount(t, sdkCtx, ss)
// Delegate first
_, err := acc.Delegate(sdkCtx, &lockuptypes.MsgDelegate{
Sender: "owner",
ValidatorAddress: valAddress,
Amount: sdk.NewCoin("test", math.NewInt(1)),
})
@ -95,7 +92,6 @@ func TestDelayedAccountUndelegate(t *testing.T) {
// Undelegate
_, err = acc.Undelegate(sdkCtx, &lockuptypes.MsgUndelegate{
Sender: "owner",
ValidatorAddress: valAddress,
Amount: sdk.NewCoin("test", math.NewInt(1)),
})
@ -126,7 +122,6 @@ func TestDelayedAccountSendCoins(t *testing.T) {
acc := setupDelayedAccount(t, sdkCtx, ss)
_, err := acc.SendCoins(sdkCtx, &lockuptypes.MsgSend{
Sender: "owner",
ToAddress: "receiver",
Amount: sdk.NewCoins(sdk.NewCoin("test", math.NewInt(5))),
})
@ -141,7 +136,6 @@ func TestDelayedAccountSendCoins(t *testing.T) {
})
_, err = acc.SendCoins(sdkCtx, &lockuptypes.MsgSend{
Sender: "owner",
ToAddress: "receiver",
Amount: sdk.NewCoins(sdk.NewCoin("test", math.NewInt(5))),
})

View File

@ -128,7 +128,8 @@ func (bva *BaseLockup) Delegate(
) (
*lockuptypes.MsgExecuteMessagesResponse, error,
) {
err := bva.checkSender(ctx, msg.Sender)
sender := accountstd.Sender(ctx)
err := bva.checkSender(ctx, sender)
if err != nil {
return nil, err
}
@ -183,7 +184,8 @@ func (bva *BaseLockup) Undelegate(
) (
*lockuptypes.MsgExecuteMessagesResponse, error,
) {
err := bva.checkSender(ctx, msg.Sender)
sender := accountstd.Sender(ctx)
err := bva.checkSender(ctx, sender)
if err != nil {
return nil, err
}
@ -255,7 +257,8 @@ func (bva *BaseLockup) WithdrawReward(
) (
*lockuptypes.MsgExecuteMessagesResponse, error,
) {
err := bva.checkSender(ctx, msg.Sender)
sender := accountstd.Sender(ctx)
err := bva.checkSender(ctx, sender)
if err != nil {
return nil, err
}
@ -282,7 +285,8 @@ func (bva *BaseLockup) SendCoins(
) (
*lockuptypes.MsgExecuteMessagesResponse, error,
) {
err := bva.checkSender(ctx, msg.Sender)
sender := accountstd.Sender(ctx)
err := bva.checkSender(ctx, sender)
if err != nil {
return nil, err
}
@ -321,16 +325,12 @@ func (bva *BaseLockup) SendCoins(
return &lockuptypes.MsgExecuteMessagesResponse{Responses: resp}, nil
}
func (bva *BaseLockup) checkSender(ctx context.Context, sender string) error {
func (bva *BaseLockup) checkSender(ctx context.Context, sender []byte) error {
owner, err := bva.Owner.Get(ctx)
if err != nil {
return sdkerrors.ErrInvalidAddress.Wrapf("invalid owner address: %s", err.Error())
}
senderBytes, err := bva.addressCodec.StringToBytes(sender)
if err != nil {
return sdkerrors.ErrInvalidAddress.Wrapf("invalid sender address: %s", err.Error())
}
if !bytes.Equal(owner, senderBytes) {
if !bytes.Equal(owner, sender) {
return errors.New("sender is not the owner of this vesting account")
}

View File

@ -2,6 +2,7 @@ package lockup
import (
"context"
"errors"
"testing"
"time"
@ -9,9 +10,12 @@ import (
"cosmossdk.io/core/header"
"cosmossdk.io/core/store"
"cosmossdk.io/core/transaction"
"cosmossdk.io/log"
"cosmossdk.io/math"
"cosmossdk.io/x/accounts/accountstd"
lockuptypes "cosmossdk.io/x/accounts/defaults/lockup/v1"
banktypes "cosmossdk.io/x/bank/types"
sdk "github.com/cosmos/cosmos-sdk/types"
)
@ -54,7 +58,6 @@ func TestPeriodicAccountDelegate(t *testing.T) {
acc := setupPeriodicAccount(t, sdkCtx, ss)
_, err := acc.Delegate(sdkCtx, &lockuptypes.MsgDelegate{
Sender: "owner",
ValidatorAddress: valAddress,
Amount: sdk.NewCoin("test", math.NewInt(1)),
})
@ -73,7 +76,6 @@ func TestPeriodicAccountDelegate(t *testing.T) {
})
_, err = acc.Delegate(sdkCtx, &lockuptypes.MsgDelegate{
Sender: "owner",
ValidatorAddress: valAddress,
Amount: sdk.NewCoin("test", math.NewInt(5)),
})
@ -93,7 +95,6 @@ func TestPeriodicAccountDelegate(t *testing.T) {
})
_, err = acc.Delegate(sdkCtx, &lockuptypes.MsgDelegate{
Sender: "owner",
ValidatorAddress: valAddress,
Amount: sdk.NewCoin("test", math.NewInt(4)),
})
@ -117,7 +118,6 @@ func TestPeriodicAccountUndelegate(t *testing.T) {
acc := setupPeriodicAccount(t, sdkCtx, ss)
// Delegate first
_, err := acc.Delegate(sdkCtx, &lockuptypes.MsgDelegate{
Sender: "owner",
ValidatorAddress: valAddress,
Amount: sdk.NewCoin("test", math.NewInt(1)),
})
@ -129,7 +129,6 @@ func TestPeriodicAccountUndelegate(t *testing.T) {
// Undelegate
_, err = acc.Undelegate(sdkCtx, &lockuptypes.MsgUndelegate{
Sender: "owner",
ValidatorAddress: valAddress,
Amount: sdk.NewCoin("test", math.NewInt(1)),
})
@ -161,7 +160,6 @@ func TestPeriodicAccountSendCoins(t *testing.T) {
acc := setupPeriodicAccount(t, sdkCtx, ss)
_, err := acc.SendCoins(sdkCtx, &lockuptypes.MsgSend{
Sender: "owner",
ToAddress: "receiver",
Amount: sdk.NewCoins(sdk.NewCoin("test", math.NewInt(5))),
})
@ -176,7 +174,6 @@ func TestPeriodicAccountSendCoins(t *testing.T) {
})
_, err = acc.SendCoins(sdkCtx, &lockuptypes.MsgSend{
Sender: "owner",
ToAddress: "receiver",
Amount: sdk.NewCoins(sdk.NewCoin("test", math.NewInt(5))),
})
@ -217,3 +214,62 @@ func TestPeriodicAccountGetLockCoinInfo(t *testing.T) {
require.True(t, unlocked.AmountOf("test").Equal(math.NewInt(10)))
require.True(t, locked.AmountOf("test").Equal(math.ZeroInt()))
}
func TestPeriodicAccountSendCoinsUnauthorized(t *testing.T) {
ctx, ss := newMockContext(t)
// Initialize context with current time.
sdkCtx := sdk.NewContext(nil, true, log.NewNopLogger()).WithContext(ctx).WithHeaderInfo(header.Info{
Time: time.Now(),
})
// Create a periodic locking account for the "owner".
acc := setupPeriodicAccount(t, sdkCtx, ss)
// Fast-forward block time so that all tokens are unlocked.
startTime, err := acc.StartTime.Get(sdkCtx)
require.NoError(t, err)
// In our setup, the total locking periods add up to 3 minutes.
sdkCtx = sdkCtx.WithHeaderInfo(header.Info{
Time: startTime.Add(3 * time.Minute),
})
// Verify that the tokens are fully unlocked.
unlocked, locked, err := acc.GetLockCoinsInfo(sdkCtx, sdkCtx.HeaderInfo().Time)
require.NoError(t, err)
require.True(t, unlocked.AmountOf("test").Equal(math.NewInt(10)), "expected all tokens to be unlocked")
require.True(t, locked.AmountOf("test").Equal(math.ZeroInt()), "expected no locked tokens")
ctx2, _ := newMockContext2(t)
sdkCtx2 := sdk.NewContext(nil, true, log.NewNopLogger()).WithContext(ctx2).WithHeaderInfo(header.Info{
Time: startTime.Add(3 * time.Minute),
})
// Attempt to send coins using an unauthorized sender "hacker" instead of "owner".
_, err = acc.SendCoins(sdkCtx2, &lockuptypes.MsgSend{
ToAddress: "receiver",
Amount: sdk.NewCoins(sdk.NewCoin("test", math.NewInt(5))),
})
require.Error(t, err, "non-owner should not be able to send coins")
}
// Create new mock context with different sender
func newMockContext2(t *testing.T) (context.Context, store.KVStoreService) {
t.Helper()
return accountstd.NewMockContext(
0, []byte("lockup_account"), []byte("hacker"), TestFunds,
func(ctx context.Context, sender []byte, msg transaction.Msg) (transaction.Msg, error) {
typeUrl := sdk.MsgTypeURL(msg)
switch typeUrl {
case "/cosmos.bank.v1beta1.MsgSend":
return &banktypes.MsgSendResponse{}, nil
default:
return nil, errors.New("unrecognized request type")
}
}, func(ctx context.Context, req transaction.Msg) (transaction.Msg, error) {
typeUrl := sdk.MsgTypeURL(req)
switch typeUrl {
default:
return nil, errors.New("unrecognized request type")
}
},
)
}

View File

@ -39,7 +39,6 @@ func TestPermanentAccountDelegate(t *testing.T) {
acc := setupPermanentAccount(t, sdkCtx, ss)
_, err := acc.Delegate(sdkCtx, &lockuptypes.MsgDelegate{
Sender: "owner",
ValidatorAddress: valAddress,
Amount: sdk.NewCoin("test", math.NewInt(1)),
})
@ -59,7 +58,6 @@ func TestPermanentAccountUndelegate(t *testing.T) {
acc := setupPermanentAccount(t, sdkCtx, ss)
// Delegate first
_, err := acc.Delegate(sdkCtx, &lockuptypes.MsgDelegate{
Sender: "owner",
ValidatorAddress: valAddress,
Amount: sdk.NewCoin("test", math.NewInt(1)),
})
@ -71,7 +69,6 @@ func TestPermanentAccountUndelegate(t *testing.T) {
// Undelegate
_, err = acc.Undelegate(sdkCtx, &lockuptypes.MsgUndelegate{
Sender: "owner",
ValidatorAddress: valAddress,
Amount: sdk.NewCoin("test", math.NewInt(1)),
})
@ -103,7 +100,6 @@ func TestPermanentAccountSendCoins(t *testing.T) {
acc := setupPermanentAccount(t, sdkCtx, ss)
_, err := acc.SendCoins(sdkCtx, &lockuptypes.MsgSend{
Sender: "owner",
ToAddress: "receiver",
Amount: sdk.NewCoins(sdk.NewCoin("test", math.NewInt(5))),
})

View File

@ -70,7 +70,7 @@ func (h headerService) HeaderInfo(ctx context.Context) header.Info {
func newMockContext(t *testing.T) (context.Context, store.KVStoreService) {
t.Helper()
return accountstd.NewMockContext(
0, []byte("lockup_account"), []byte("sender"), TestFunds,
0, []byte("lockup_account"), []byte("owner"), TestFunds,
func(ctx context.Context, sender []byte, msg transaction.Msg) (transaction.Msg, error) {
typeUrl := sdk.MsgTypeURL(msg)
switch typeUrl {

View File

@ -8,7 +8,6 @@ import (
_ "github.com/cosmos/cosmos-proto"
github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types"
types "github.com/cosmos/cosmos-sdk/types"
_ "github.com/cosmos/cosmos-sdk/types/msgservice"
_ "github.com/cosmos/cosmos-sdk/types/tx/amino"
_ "github.com/cosmos/gogoproto/gogoproto"
proto "github.com/cosmos/gogoproto/proto"
@ -239,7 +238,6 @@ var xxx_messageInfo_MsgInitPeriodicLockingAccountResponse proto.InternalMessageI
// MsgDelegate defines a message that enable lockup account to execute delegate message
type MsgDelegate struct {
// sender is the owner of the lockup account
Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"`
ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
Amount types.Coin `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount"`
}
@ -279,7 +277,6 @@ var xxx_messageInfo_MsgDelegate proto.InternalMessageInfo
// MsgUndelegate defines a message that enable lockup account to execute undelegate message
type MsgUndelegate struct {
Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"`
ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
Amount types.Coin `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount"`
}
@ -319,7 +316,6 @@ var xxx_messageInfo_MsgUndelegate proto.InternalMessageInfo
// MsgWithdrawReward defines a message that enable lockup account to execute withdraw reward message
type MsgWithdrawReward struct {
Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"`
ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
}
@ -358,7 +354,6 @@ var xxx_messageInfo_MsgWithdrawReward proto.InternalMessageInfo
// MsgSend defines a message that enable lockup account to execute send message
type MsgSend struct {
Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"`
ToAddress string `protobuf:"bytes,2,opt,name=to_address,json=toAddress,proto3" json:"to_address,omitempty"`
Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,3,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"`
}
@ -458,53 +453,51 @@ func init() {
}
var fileDescriptor_84e5f410632b9d39 = []byte{
// 735 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x55, 0xbf, 0x4f, 0x1b, 0x49,
0x18, 0xf5, 0xda, 0x3a, 0x38, 0x0f, 0xc7, 0xdd, 0xb1, 0x67, 0xe9, 0x8c, 0x75, 0xec, 0x72, 0x96,
0xd0, 0x59, 0x3e, 0x31, 0x7b, 0xe6, 0x8a, 0x48, 0x28, 0x0d, 0x0e, 0x89, 0x12, 0x29, 0x8e, 0x90,
0xc9, 0x0f, 0x29, 0x45, 0xac, 0xf1, 0xee, 0x30, 0xac, 0xf0, 0xce, 0x58, 0xfb, 0x8d, 0x0d, 0xee,
0xa2, 0x28, 0x45, 0x94, 0x8a, 0x3a, 0x15, 0x65, 0x42, 0xe5, 0x82, 0x3f, 0x82, 0x12, 0x51, 0xa5,
0x0a, 0x91, 0x89, 0x64, 0xfe, 0x8c, 0x68, 0x77, 0x66, 0x13, 0x7e, 0x85, 0x10, 0x9a, 0x48, 0x69,
0xac, 0xdd, 0x79, 0xef, 0x7b, 0xdf, 0xfb, 0x9e, 0x67, 0x76, 0xd0, 0xbf, 0xae, 0x80, 0x40, 0x80,
0x43, 0x5c, 0x57, 0x74, 0xb8, 0x04, 0xc7, 0xa3, 0x2b, 0xa4, 0xd3, 0x92, 0xe0, 0xb4, 0x84, 0xbb,
0xd6, 0x69, 0x3b, 0xdd, 0x8a, 0x23, 0x37, 0x70, 0x3b, 0x14, 0x52, 0x98, 0x45, 0x45, 0xc6, 0x09,
0x19, 0x27, 0x64, 0xac, 0xc8, 0xb8, 0x5b, 0x29, 0x4c, 0x90, 0xc0, 0xe7, 0xc2, 0x89, 0x7f, 0x55,
0x59, 0xc1, 0xd2, 0x3d, 0x9a, 0x04, 0xa8, 0xd3, 0xad, 0x34, 0xa9, 0x24, 0x15, 0xc7, 0x15, 0x3e,
0xd7, 0xb8, 0x73, 0x09, 0x0f, 0xba, 0x81, 0x2a, 0xf8, 0x53, 0x17, 0x04, 0xc0, 0x22, 0x2c, 0x00,
0xa6, 0x81, 0x49, 0x05, 0x34, 0xe2, 0x37, 0x2d, 0xab, 0xa1, 0x1c, 0x13, 0x4c, 0xa8, 0xf5, 0xe8,
0x29, 0x29, 0x60, 0x42, 0xb0, 0x16, 0x75, 0xe2, 0xb7, 0x66, 0x67, 0xc5, 0x21, 0xbc, 0xa7, 0x21,
0xfb, 0x34, 0x24, 0xfd, 0x80, 0x82, 0x24, 0x81, 0x76, 0x51, 0x7c, 0x9a, 0x46, 0xb9, 0x1a, 0xb0,
0x3b, 0xdc, 0x97, 0x77, 0x63, 0x77, 0x0b, 0xca, 0xbf, 0x89, 0xd1, 0x4f, 0x62, 0x9d, 0xd3, 0x30,
0x6f, 0x4c, 0x1b, 0xa5, 0x6c, 0x35, 0xbf, 0xbf, 0x33, 0x9b, 0xd3, 0x5e, 0x16, 0x3c, 0x2f, 0xa4,
0x00, 0xcb, 0x32, 0xf4, 0x39, 0xab, 0x2b, 0x9a, 0xb9, 0x88, 0x7e, 0xa6, 0xdc, 0x6b, 0x44, 0xfa,
0xf9, 0xf4, 0xb4, 0x51, 0x1a, 0x9b, 0x2b, 0x60, 0xd5, 0x1c, 0x27, 0xcd, 0xf1, 0xfd, 0xa4, 0x79,
0x75, 0x7c, 0xf7, 0x9d, 0x9d, 0xda, 0x3c, 0xb0, 0x8d, 0xd7, 0xc3, 0x7e, 0xd9, 0xa8, 0x8f, 0x52,
0xee, 0x45, 0xa0, 0x79, 0x1b, 0x21, 0x90, 0x24, 0x94, 0x4a, 0x27, 0xf3, 0xad, 0x3a, 0xd9, 0xb8,
0x38, 0x82, 0xe7, 0x4b, 0x47, 0x5b, 0xb6, 0xf1, 0x72, 0xd8, 0x2f, 0xdb, 0xca, 0xf5, 0x2c, 0x78,
0x6b, 0xce, 0x79, 0x93, 0x16, 0x2d, 0xf4, 0xd7, 0x79, 0xeb, 0x75, 0x0a, 0x6d, 0xc1, 0x81, 0x16,
0xdf, 0xa4, 0xd1, 0x94, 0x26, 0x2c, 0xd1, 0xd0, 0x17, 0x9e, 0xef, 0x46, 0x44, 0x9f, 0xb3, 0xab,
0x66, 0x75, 0x72, 0xca, 0xf4, 0xd5, 0xa7, 0x34, 0x9f, 0xa0, 0xdf, 0x5a, 0xca, 0x4b, 0xa3, 0x1d,
0x7b, 0x83, 0x7c, 0x66, 0x3a, 0x53, 0x1a, 0x9b, 0x2b, 0xe3, 0xaf, 0x6f, 0x73, 0xac, 0xc6, 0xa9,
0x66, 0x23, 0x79, 0x25, 0xfd, 0xab, 0x56, 0x53, 0x08, 0xcc, 0xe3, 0xa3, 0x2d, 0x3b, 0x15, 0xa5,
0x38, 0x73, 0x36, 0x45, 0xc5, 0x39, 0x99, 0xe5, 0x3f, 0x68, 0xe6, 0xc2, 0xa8, 0x3e, 0x85, 0x3a,
0x30, 0xd0, 0x58, 0x0d, 0xd8, 0x22, 0x6d, 0x51, 0x46, 0x24, 0x35, 0xff, 0x43, 0x23, 0x40, 0xb9,
0x77, 0x89, 0x0c, 0x35, 0xcf, 0xbc, 0x87, 0x26, 0xba, 0xa4, 0xe5, 0x7b, 0x44, 0x8a, 0xb0, 0x41,
0x14, 0x25, 0xce, 0x32, 0x5b, 0xfd, 0x7b, 0x7f, 0x67, 0x76, 0x4a, 0x17, 0x3f, 0x4c, 0x38, 0x27,
0x55, 0x7e, 0xef, 0x9e, 0x5a, 0x37, 0xaf, 0xa3, 0x11, 0x12, 0x44, 0x1e, 0xf5, 0xb6, 0x9b, 0x4c,
0x12, 0x8c, 0x4e, 0x3c, 0xd6, 0x27, 0x1e, 0xdf, 0x10, 0x3e, 0x3f, 0x1e, 0x98, 0xae, 0x99, 0xff,
0xe3, 0xc5, 0x96, 0x9d, 0x8a, 0xc2, 0x7a, 0x36, 0xec, 0x97, 0xb5, 0xc5, 0xe2, 0x07, 0x03, 0x8d,
0xd7, 0x80, 0x3d, 0xe0, 0xde, 0x0f, 0x3d, 0xe6, 0xb6, 0x81, 0x26, 0x6a, 0xc0, 0x1e, 0xf9, 0x72,
0xd5, 0x0b, 0xc9, 0x7a, 0x9d, 0xae, 0x93, 0xd0, 0xfb, 0xfe, 0xa3, 0x9e, 0x6f, 0xf6, 0x79, 0x1a,
0x8d, 0xd6, 0x80, 0x2d, 0x53, 0x7e, 0x15, 0x8b, 0xd7, 0x10, 0x92, 0xe2, 0x94, 0xb7, 0x2f, 0x57,
0x65, 0xa5, 0x48, 0x62, 0xef, 0x1d, 0x8b, 0x3d, 0x73, 0x71, 0xec, 0xb7, 0xa2, 0xd8, 0xb7, 0x0f,
0xec, 0x12, 0xf3, 0xe5, 0x6a, 0xa7, 0x89, 0x5d, 0x11, 0x24, 0x97, 0xcb, 0xb1, 0x43, 0x28, 0x7b,
0x6d, 0x0a, 0x71, 0x01, 0xbc, 0x1a, 0xf6, 0xcb, 0xbf, 0x44, 0x1b, 0xcc, 0xed, 0x35, 0xa2, 0x1b,
0x09, 0x2e, 0xf1, 0x9f, 0x2d, 0xa1, 0x42, 0x0d, 0xd8, 0xcd, 0x0d, 0xea, 0x76, 0x24, 0xad, 0x51,
0x00, 0xc2, 0x28, 0x24, 0xa7, 0xd3, 0x9c, 0x43, 0xd9, 0x50, 0x3f, 0x43, 0xde, 0x88, 0x0d, 0xe7,
0xce, 0x7c, 0x9f, 0x16, 0x78, 0xaf, 0xfe, 0x99, 0x56, 0x5d, 0xdc, 0x1d, 0x58, 0xc6, 0xde, 0xc0,
0x32, 0xde, 0x0f, 0x2c, 0x63, 0xf3, 0xd0, 0x4a, 0xed, 0x1d, 0x5a, 0xa9, 0xb7, 0x87, 0x56, 0xea,
0x71, 0x59, 0xd9, 0x06, 0x6f, 0x0d, 0xfb, 0xc2, 0xd9, 0xb8, 0xe8, 0x8a, 0x6c, 0x8e, 0xc4, 0xf2,
0xff, 0x7f, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x08, 0x33, 0x56, 0xd8, 0xd3, 0x07, 0x00, 0x00,
// 700 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0xcb, 0x4f, 0x13, 0x41,
0x18, 0xef, 0xb6, 0x11, 0xe8, 0x20, 0x2a, 0x9b, 0x1e, 0x4a, 0x23, 0xbb, 0xd8, 0x84, 0xd8, 0xd4,
0x30, 0x9b, 0xe2, 0xc1, 0x84, 0x78, 0xa1, 0xa2, 0xd1, 0xc4, 0x1a, 0x52, 0x7c, 0x24, 0x1e, 0x6c,
0xa6, 0xbb, 0xc3, 0xb0, 0xa1, 0x3b, 0xd3, 0xec, 0x37, 0x2d, 0xf4, 0xe6, 0xd1, 0x78, 0xe2, 0xec,
0x89, 0x8b, 0xf1, 0x71, 0xe2, 0xc0, 0xff, 0x20, 0x47, 0xc2, 0xc9, 0x93, 0x18, 0x38, 0xc0, 0x9f,
0x61, 0x76, 0x67, 0x56, 0xcb, 0x53, 0x25, 0x1e, 0xbc, 0x34, 0xbb, 0xf3, 0xfd, 0xbe, 0xef, 0xf7,
0xe8, 0xcc, 0x2c, 0xba, 0xe5, 0x0a, 0x08, 0x04, 0x38, 0xc4, 0x75, 0x45, 0x87, 0x4b, 0x70, 0x3c,
0xba, 0x48, 0x3a, 0x2d, 0x09, 0x4e, 0x4b, 0xb8, 0xcb, 0x9d, 0xb6, 0xd3, 0xad, 0x38, 0x72, 0x15,
0xb7, 0x43, 0x21, 0x85, 0x59, 0x54, 0x60, 0x9c, 0x80, 0x71, 0x02, 0xc6, 0x0a, 0x8c, 0xbb, 0x95,
0xc2, 0x28, 0x09, 0x7c, 0x2e, 0x9c, 0xf8, 0x57, 0xb5, 0x15, 0x2c, 0xcd, 0xd1, 0x24, 0x40, 0x9d,
0x6e, 0xa5, 0x49, 0x25, 0xa9, 0x38, 0xae, 0xf0, 0xb9, 0xae, 0x3b, 0x7f, 0xa0, 0x41, 0x13, 0xa8,
0x86, 0x31, 0xd5, 0xd0, 0x88, 0xdf, 0x74, 0xb7, 0x2e, 0xe5, 0x98, 0x60, 0x42, 0xad, 0x47, 0x4f,
0x49, 0x03, 0x13, 0x82, 0xb5, 0xa8, 0x13, 0xbf, 0x35, 0x3b, 0x8b, 0x0e, 0xe1, 0x3d, 0x5d, 0xb2,
0x8f, 0x97, 0xa4, 0x1f, 0x50, 0x90, 0x24, 0xd0, 0x64, 0xc5, 0xd7, 0x69, 0x94, 0xab, 0x01, 0x7b,
0xc4, 0x7d, 0xf9, 0x38, 0x16, 0x31, 0xab, 0x64, 0x9a, 0x18, 0x5d, 0x12, 0x2b, 0x9c, 0x86, 0x79,
0x63, 0xc2, 0x28, 0x65, 0xab, 0xf9, 0x9d, 0xcd, 0xa9, 0x9c, 0xd6, 0x32, 0xeb, 0x79, 0x21, 0x05,
0x58, 0x90, 0xa1, 0xcf, 0x59, 0x5d, 0xc1, 0xcc, 0x39, 0x34, 0x44, 0xb9, 0xd7, 0x88, 0xe6, 0xe7,
0xd3, 0x13, 0x46, 0x69, 0x78, 0xba, 0x80, 0x15, 0x39, 0x4e, 0xc8, 0xf1, 0xd3, 0x84, 0xbc, 0x3a,
0xb2, 0xf5, 0xcd, 0x4e, 0xad, 0xed, 0xda, 0xc6, 0xc7, 0x83, 0x8d, 0xb2, 0x51, 0x1f, 0xa4, 0xdc,
0x8b, 0x8a, 0xe6, 0x43, 0x84, 0x40, 0x92, 0x50, 0xaa, 0x39, 0x99, 0xbf, 0x9d, 0x93, 0x8d, 0x9b,
0xa3, 0xf2, 0x4c, 0xe9, 0x70, 0xdd, 0x36, 0xde, 0x1e, 0x6c, 0x94, 0x6d, 0xa5, 0x7a, 0x0a, 0xbc,
0x65, 0xe7, 0x34, 0xa7, 0x45, 0x0b, 0x5d, 0x3f, 0x6d, 0xbd, 0x4e, 0xa1, 0x2d, 0x38, 0xd0, 0xe2,
0xa7, 0x34, 0x1a, 0xd7, 0x80, 0x79, 0x1a, 0xfa, 0xc2, 0xf3, 0xdd, 0x08, 0xe8, 0x73, 0x76, 0xd1,
0xac, 0x8e, 0xba, 0x4c, 0x5f, 0xdc, 0xa5, 0xf9, 0x0a, 0x5d, 0x6d, 0x29, 0x2d, 0x8d, 0x76, 0xac,
0x0d, 0xf2, 0x99, 0x89, 0x4c, 0x69, 0x78, 0xba, 0x8c, 0x7f, 0xbf, 0x9b, 0xb1, 0xb2, 0x53, 0xcd,
0x46, 0xe3, 0xd5, 0xe8, 0x2b, 0x7a, 0x9a, 0xaa, 0xc0, 0x0c, 0x3e, 0x5c, 0xb7, 0x53, 0x51, 0x8a,
0x93, 0x27, 0x53, 0x54, 0x98, 0xa3, 0x59, 0xde, 0x44, 0x93, 0xe7, 0x46, 0xf5, 0x33, 0xd4, 0xf7,
0x06, 0x1a, 0xae, 0x01, 0x9b, 0xa3, 0x2d, 0xca, 0x88, 0xa4, 0xe6, 0x13, 0x34, 0xda, 0x25, 0x2d,
0xdf, 0x23, 0x52, 0x84, 0x0d, 0xa2, 0x42, 0x8b, 0x93, 0xc9, 0x56, 0x6f, 0xec, 0x6c, 0x4e, 0x8d,
0x6b, 0x37, 0xcf, 0x13, 0xcc, 0xd1, 0x5c, 0xaf, 0x75, 0x8f, 0xad, 0x9b, 0x77, 0xd1, 0x00, 0x09,
0x22, 0x46, 0xbd, 0x89, 0xc6, 0x92, 0x3c, 0xa2, 0x63, 0x8a, 0xf5, 0x31, 0xc5, 0xf7, 0x84, 0xcf,
0xfb, 0xed, 0xeb, 0x9e, 0x99, 0xa1, 0x37, 0xeb, 0x76, 0x2a, 0xb2, 0x5e, 0xfc, 0x60, 0xa0, 0x91,
0x1a, 0xb0, 0x67, 0xdc, 0xfb, 0xdf, 0x95, 0x06, 0x68, 0xb4, 0x06, 0xec, 0x85, 0x2f, 0x97, 0xbc,
0x90, 0xac, 0xd4, 0xe9, 0x0a, 0x09, 0xbd, 0x7f, 0x2d, 0xb6, 0x8f, 0xee, 0x8b, 0x81, 0x06, 0x6b,
0xc0, 0x16, 0x28, 0xf7, 0xcc, 0x3b, 0x08, 0x49, 0x71, 0x6c, 0xfc, 0xd9, 0x87, 0x20, 0x2b, 0x45,
0xe2, 0xbd, 0xd7, 0xe7, 0x3d, 0x73, 0xbe, 0xf7, 0x07, 0x91, 0xf7, 0xcf, 0xbb, 0x76, 0x89, 0xf9,
0x72, 0xa9, 0xd3, 0xc4, 0xae, 0x08, 0x92, 0x9b, 0xb5, 0x6f, 0x6b, 0xca, 0x5e, 0x9b, 0x42, 0xdc,
0x00, 0xef, 0x0e, 0x36, 0xca, 0x97, 0xa3, 0xff, 0xcc, 0xed, 0x35, 0xa2, 0xeb, 0x18, 0xce, 0x0a,
0x6e, 0x1e, 0x15, 0x6a, 0xc0, 0xee, 0xaf, 0x52, 0xb7, 0x23, 0x69, 0x8d, 0x02, 0x10, 0x46, 0x21,
0xd9, 0xa8, 0xe6, 0x34, 0xca, 0x86, 0xfa, 0x19, 0xf2, 0x46, 0xac, 0x32, 0x77, 0xe2, 0xa8, 0xce,
0xf2, 0x5e, 0xfd, 0x17, 0xac, 0x3a, 0xb7, 0xb5, 0x67, 0x19, 0xdb, 0x7b, 0x96, 0xf1, 0x7d, 0xcf,
0x32, 0xd6, 0xf6, 0xad, 0xd4, 0xf6, 0xbe, 0x95, 0xfa, 0xba, 0x6f, 0xa5, 0x5e, 0x96, 0x95, 0x56,
0xf0, 0x96, 0xb1, 0x2f, 0x9c, 0xd5, 0xf3, 0x3e, 0x0a, 0xcd, 0x81, 0x78, 0xfc, 0xed, 0x1f, 0x01,
0x00, 0x00, 0xff, 0xff, 0x1e, 0xf1, 0x2a, 0x6f, 0xc5, 0x06, 0x00, 0x00,
}
func (this *MsgInitLockupAccount) Equal(that interface{}) bool {
@ -718,13 +711,6 @@ func (m *MsgDelegate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i--
dAtA[i] = 0x12
}
if len(m.Sender) > 0 {
i -= len(m.Sender)
copy(dAtA[i:], m.Sender)
i = encodeVarintTx(dAtA, i, uint64(len(m.Sender)))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
@ -765,13 +751,6 @@ func (m *MsgUndelegate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i--
dAtA[i] = 0x12
}
if len(m.Sender) > 0 {
i -= len(m.Sender)
copy(dAtA[i:], m.Sender)
i = encodeVarintTx(dAtA, i, uint64(len(m.Sender)))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
@ -802,13 +781,6 @@ func (m *MsgWithdrawReward) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i--
dAtA[i] = 0x12
}
if len(m.Sender) > 0 {
i -= len(m.Sender)
copy(dAtA[i:], m.Sender)
i = encodeVarintTx(dAtA, i, uint64(len(m.Sender)))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
@ -853,13 +825,6 @@ func (m *MsgSend) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i--
dAtA[i] = 0x12
}
if len(m.Sender) > 0 {
i -= len(m.Sender)
copy(dAtA[i:], m.Sender)
i = encodeVarintTx(dAtA, i, uint64(len(m.Sender)))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
@ -973,10 +938,6 @@ func (m *MsgDelegate) Size() (n int) {
}
var l int
_ = l
l = len(m.Sender)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
l = len(m.ValidatorAddress)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
@ -992,10 +953,6 @@ func (m *MsgUndelegate) Size() (n int) {
}
var l int
_ = l
l = len(m.Sender)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
l = len(m.ValidatorAddress)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
@ -1011,10 +968,6 @@ func (m *MsgWithdrawReward) Size() (n int) {
}
var l int
_ = l
l = len(m.Sender)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
l = len(m.ValidatorAddress)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
@ -1028,10 +981,6 @@ func (m *MsgSend) Size() (n int) {
}
var l int
_ = l
l = len(m.Sender)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
l = len(m.ToAddress)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
@ -1492,38 +1441,6 @@ func (m *MsgDelegate) Unmarshal(dAtA []byte) error {
return fmt.Errorf("proto: MsgDelegate: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Sender", 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.Sender = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType)
@ -1639,38 +1556,6 @@ func (m *MsgUndelegate) Unmarshal(dAtA []byte) error {
return fmt.Errorf("proto: MsgUndelegate: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Sender", 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.Sender = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType)
@ -1786,38 +1671,6 @@ func (m *MsgWithdrawReward) Unmarshal(dAtA []byte) error {
return fmt.Errorf("proto: MsgWithdrawReward: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Sender", 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.Sender = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType)
@ -1900,38 +1753,6 @@ func (m *MsgSend) Unmarshal(dAtA []byte) error {
return fmt.Errorf("proto: MsgSend: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Sender", 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.Sender = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ToAddress", wireType)

View File

@ -82,6 +82,7 @@ func (m msgServer) Execute(ctx context.Context, execute *v1.MsgExecute) (*v1.Msg
if err != nil {
return nil, err
}
return &v1.MsgExecuteResponse{
Response: respAny,
}, nil

View File

@ -4,7 +4,6 @@ package cosmos.accounts.defaults.lockup.v1;
import "amino/amino.proto";
import "cosmos/base/v1beta1/coin.proto";
import "cosmos/accounts/defaults/lockup/v1/lockup.proto";
import "cosmos/msg/v1/msg.proto";
import "cosmos_proto/cosmos.proto";
import "gogoproto/gogo.proto";
import "google/protobuf/any.proto";
@ -50,44 +49,36 @@ message MsgInitPeriodicLockingAccountResponse {}
// MsgDelegate defines a message that enable lockup account to execute delegate message
message MsgDelegate {
option (cosmos.msg.v1.signer) = "sender";
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
// sender is the owner of the lockup account
string sender = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"];
cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
}
// MsgUndelegate defines a message that enable lockup account to execute undelegate message
message MsgUndelegate {
option (cosmos.msg.v1.signer) = "sender";
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
string sender = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"];
cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
}
// MsgWithdrawReward defines a message that enable lockup account to execute withdraw reward message
message MsgWithdrawReward {
option (cosmos.msg.v1.signer) = "sender";
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
string sender = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"];
}
// MsgSend defines a message that enable lockup account to execute send message
message MsgSend {
option (cosmos.msg.v1.signer) = "sender";
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
string sender = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
string to_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
repeated cosmos.base.v1beta1.Coin amount = 3 [
(gogoproto.nullable) = false,