diff --git a/CHANGELOG.md b/CHANGELOG.md index c17ffc609..8a2a11c80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -64,6 +64,8 @@ - [\#477](https://github.com/cosmos/evm/pull/477) Refactor precompile constructors to accept keeper interfaces instead of concrete implementations, breaking the existing `NewPrecompile` function signatures. - [\#594](https://github.com/cosmos/evm/pull/594) Remove all usage of x/params - [\#577](https://github.com/cosmos/evm/pull/577) Changed the way to create a stateful precompile based on the cmn.Precompile, change `NewPrecompile` to not return error. +- [\#661](https://github.com/cosmos/evm/pull/661) Removes evmAppOptions from the repository and moves initialization to genesis. Chains must now have a display and denom metadata set for the defined EVM denom in the bank module's metadata. + ## v0.4.1 diff --git a/ante/evm/fee_checker_test.go b/ante/evm/fee_checker_test.go index fae0755be..fdd2db012 100644 --- a/ante/evm/fee_checker_test.go +++ b/ante/evm/fee_checker_test.go @@ -35,9 +35,24 @@ func TestSDKTxFeeChecker(t *testing.T) { // without extension option // london hardfork enableness chainID := uint64(config.EighteenDecimalsChainID) - encodingConfig := encoding.MakeConfig(chainID) - err := config.EvmAppOptions(chainID) + encodingConfig := encoding.MakeConfig(chainID) //nolint:staticcheck // this is used + + configurator := evmtypes.NewEVMConfigurator() + configurator.ResetTestConfig() + // set global chain config + ethCfg := evmtypes.DefaultChainConfig(chainID) + if err := evmtypes.SetChainConfig(ethCfg); err != nil { + panic(err) + } + err := configurator. + WithExtendedEips(evmtypes.DefaultCosmosEVMActivators). + // NOTE: we're using the 18 decimals default for the example chain + WithEVMCoinInfo(config.ChainsCoinInfo[chainID]). + Configure() require.NoError(t, err) + if err != nil { + panic(err) + } evmDenom := evmtypes.GetEVMCoinDenom() minGasPrices := sdk.NewDecCoins(sdk.NewDecCoin(evmDenom, math.NewInt(10))) diff --git a/ante/evm/mono_decorator.go b/ante/evm/mono_decorator.go index 8c632ebdc..ba4601557 100644 --- a/ante/evm/mono_decorator.go +++ b/ante/evm/mono_decorator.go @@ -111,8 +111,11 @@ func (md MonoDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, ne Time: uint64(ctx.BlockTime().Unix()), //nolint:gosec Difficulty: big.NewInt(0), } + + chainConfig := evmtypes.GetEthChainConfig() + if err := txpool.ValidateTransaction(ethTx, &header, decUtils.Signer, &txpool.ValidationOptions{ - Config: evmtypes.GetEthChainConfig(), + Config: chainConfig, Accept: AcceptedTxType, MaxSize: math.MaxUint64, // tx size is checked in cometbft MinTip: new(big.Int), diff --git a/ante/evm/mono_decorator_test.go b/ante/evm/mono_decorator_test.go index f1b2d42d8..72e205993 100644 --- a/ante/evm/mono_decorator_test.go +++ b/ante/evm/mono_decorator_test.go @@ -147,7 +147,6 @@ func toMsgSlice(msgs []*evmsdktypes.MsgEthereumTx) []sdk.Msg { func TestMonoDecorator(t *testing.T) { chainID := uint64(config.EighteenDecimalsChainID) - require.NoError(t, config.EvmAppOptions(chainID)) cfg := encoding.MakeConfig(chainID) testCases := []struct { @@ -197,6 +196,23 @@ func TestMonoDecorator(t *testing.T) { for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { + configurator := evmsdktypes.NewEVMConfigurator() + configurator.ResetTestConfig() + chainConfig := evmsdktypes.DefaultChainConfig(evmsdktypes.DefaultEVMChainID) + err := evmsdktypes.SetChainConfig(chainConfig) + require.NoError(t, err) + coinInfo := evmsdktypes.EvmCoinInfo{ + Denom: evmsdktypes.DefaultEVMExtendedDenom, + ExtendedDenom: evmsdktypes.DefaultEVMExtendedDenom, + DisplayDenom: evmsdktypes.DefaultEVMDisplayDenom, + Decimals: 18, + } + err = configurator. + WithExtendedEips(evmsdktypes.DefaultCosmosEVMActivators). + // NOTE: we're using the 18 decimals default for the example chain + WithEVMCoinInfo(coinInfo). + Configure() + require.NoError(t, err) privKey, _ := ethsecp256k1.GenerateKey() keeper, cosmosAddr := setupFundedKeeper(t, privKey) accountKeeper := MockAccountKeeper{FundedAddr: cosmosAddr} diff --git a/api/cosmos/evm/vm/v1/evm.pulsar.go b/api/cosmos/evm/vm/v1/evm.pulsar.go index 7980ded78..7e5c9a62b 100644 --- a/api/cosmos/evm/vm/v1/evm.pulsar.go +++ b/api/cosmos/evm/vm/v1/evm.pulsar.go @@ -160,6 +160,7 @@ var ( fd_Params_access_control protoreflect.FieldDescriptor fd_Params_active_static_precompiles protoreflect.FieldDescriptor fd_Params_history_serve_window protoreflect.FieldDescriptor + fd_Params_extended_denom_options protoreflect.FieldDescriptor ) func init() { @@ -171,6 +172,7 @@ func init() { fd_Params_access_control = md_Params.Fields().ByName("access_control") fd_Params_active_static_precompiles = md_Params.Fields().ByName("active_static_precompiles") fd_Params_history_serve_window = md_Params.Fields().ByName("history_serve_window") + fd_Params_extended_denom_options = md_Params.Fields().ByName("extended_denom_options") } var _ protoreflect.Message = (*fastReflection_Params)(nil) @@ -274,6 +276,12 @@ func (x *fastReflection_Params) Range(f func(protoreflect.FieldDescriptor, proto return } } + if x.ExtendedDenomOptions != nil { + value := protoreflect.ValueOfMessage(x.ExtendedDenomOptions.ProtoReflect()) + if !f(fd_Params_extended_denom_options, value) { + return + } + } } // Has reports whether a field is populated. @@ -301,6 +309,8 @@ func (x *fastReflection_Params) Has(fd protoreflect.FieldDescriptor) bool { return len(x.ActiveStaticPrecompiles) != 0 case "cosmos.evm.vm.v1.Params.history_serve_window": return x.HistoryServeWindow != uint64(0) + case "cosmos.evm.vm.v1.Params.extended_denom_options": + return x.ExtendedDenomOptions != nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Params")) @@ -329,6 +339,8 @@ func (x *fastReflection_Params) Clear(fd protoreflect.FieldDescriptor) { x.ActiveStaticPrecompiles = nil case "cosmos.evm.vm.v1.Params.history_serve_window": x.HistoryServeWindow = uint64(0) + case "cosmos.evm.vm.v1.Params.extended_denom_options": + x.ExtendedDenomOptions = nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Params")) @@ -372,6 +384,9 @@ func (x *fastReflection_Params) Get(descriptor protoreflect.FieldDescriptor) pro case "cosmos.evm.vm.v1.Params.history_serve_window": value := x.HistoryServeWindow return protoreflect.ValueOfUint64(value) + case "cosmos.evm.vm.v1.Params.extended_denom_options": + value := x.ExtendedDenomOptions + return protoreflect.ValueOfMessage(value.ProtoReflect()) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Params")) @@ -410,6 +425,8 @@ func (x *fastReflection_Params) Set(fd protoreflect.FieldDescriptor, value proto x.ActiveStaticPrecompiles = *clv.list case "cosmos.evm.vm.v1.Params.history_serve_window": x.HistoryServeWindow = value.Uint() + case "cosmos.evm.vm.v1.Params.extended_denom_options": + x.ExtendedDenomOptions = value.Message().Interface().(*ExtendedDenomOptions) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Params")) @@ -453,6 +470,11 @@ func (x *fastReflection_Params) Mutable(fd protoreflect.FieldDescriptor) protore } value := &_Params_9_list{list: &x.ActiveStaticPrecompiles} return protoreflect.ValueOfList(value) + case "cosmos.evm.vm.v1.Params.extended_denom_options": + if x.ExtendedDenomOptions == nil { + x.ExtendedDenomOptions = new(ExtendedDenomOptions) + } + return protoreflect.ValueOfMessage(x.ExtendedDenomOptions.ProtoReflect()) case "cosmos.evm.vm.v1.Params.evm_denom": panic(fmt.Errorf("field evm_denom of message cosmos.evm.vm.v1.Params is not mutable")) case "cosmos.evm.vm.v1.Params.history_serve_window": @@ -486,6 +508,9 @@ func (x *fastReflection_Params) NewField(fd protoreflect.FieldDescriptor) protor return protoreflect.ValueOfList(&_Params_9_list{list: &list}) case "cosmos.evm.vm.v1.Params.history_serve_window": return protoreflect.ValueOfUint64(uint64(0)) + case "cosmos.evm.vm.v1.Params.extended_denom_options": + m := new(ExtendedDenomOptions) + return protoreflect.ValueOfMessage(m.ProtoReflect()) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Params")) @@ -585,6 +610,10 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { if x.HistoryServeWindow != 0 { n += 1 + runtime.Sov(uint64(x.HistoryServeWindow)) } + if x.ExtendedDenomOptions != nil { + l = options.Size(x.ExtendedDenomOptions) + n += 1 + l + runtime.Sov(uint64(l)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -614,6 +643,20 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if x.ExtendedDenomOptions != nil { + encoded, err := options.Marshal(x.ExtendedDenomOptions) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x5a + } if x.HistoryServeWindow != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.HistoryServeWindow)) i-- @@ -955,6 +998,42 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { break } } + case 11: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ExtendedDenomOptions", wireType) + } + var msglen int + 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++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + 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 + } + if x.ExtendedDenomOptions == nil { + x.ExtendedDenomOptions = &ExtendedDenomOptions{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.ExtendedDenomOptions); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -991,27 +1070,25 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { } var ( - md_AccessControl protoreflect.MessageDescriptor - fd_AccessControl_create protoreflect.FieldDescriptor - fd_AccessControl_call protoreflect.FieldDescriptor + md_ExtendedDenomOptions protoreflect.MessageDescriptor + fd_ExtendedDenomOptions_extended_denom protoreflect.FieldDescriptor ) func init() { file_cosmos_evm_vm_v1_evm_proto_init() - md_AccessControl = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("AccessControl") - fd_AccessControl_create = md_AccessControl.Fields().ByName("create") - fd_AccessControl_call = md_AccessControl.Fields().ByName("call") + md_ExtendedDenomOptions = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("ExtendedDenomOptions") + fd_ExtendedDenomOptions_extended_denom = md_ExtendedDenomOptions.Fields().ByName("extended_denom") } -var _ protoreflect.Message = (*fastReflection_AccessControl)(nil) +var _ protoreflect.Message = (*fastReflection_ExtendedDenomOptions)(nil) -type fastReflection_AccessControl AccessControl +type fastReflection_ExtendedDenomOptions ExtendedDenomOptions -func (x *AccessControl) ProtoReflect() protoreflect.Message { - return (*fastReflection_AccessControl)(x) +func (x *ExtendedDenomOptions) ProtoReflect() protoreflect.Message { + return (*fastReflection_ExtendedDenomOptions)(x) } -func (x *AccessControl) slowProtoReflect() protoreflect.Message { +func (x *ExtendedDenomOptions) slowProtoReflect() protoreflect.Message { mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1023,43 +1100,43 @@ func (x *AccessControl) slowProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -var _fastReflection_AccessControl_messageType fastReflection_AccessControl_messageType -var _ protoreflect.MessageType = fastReflection_AccessControl_messageType{} +var _fastReflection_ExtendedDenomOptions_messageType fastReflection_ExtendedDenomOptions_messageType +var _ protoreflect.MessageType = fastReflection_ExtendedDenomOptions_messageType{} -type fastReflection_AccessControl_messageType struct{} +type fastReflection_ExtendedDenomOptions_messageType struct{} -func (x fastReflection_AccessControl_messageType) Zero() protoreflect.Message { - return (*fastReflection_AccessControl)(nil) +func (x fastReflection_ExtendedDenomOptions_messageType) Zero() protoreflect.Message { + return (*fastReflection_ExtendedDenomOptions)(nil) } -func (x fastReflection_AccessControl_messageType) New() protoreflect.Message { - return new(fastReflection_AccessControl) +func (x fastReflection_ExtendedDenomOptions_messageType) New() protoreflect.Message { + return new(fastReflection_ExtendedDenomOptions) } -func (x fastReflection_AccessControl_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_AccessControl +func (x fastReflection_ExtendedDenomOptions_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_ExtendedDenomOptions } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_AccessControl) Descriptor() protoreflect.MessageDescriptor { - return md_AccessControl +func (x *fastReflection_ExtendedDenomOptions) Descriptor() protoreflect.MessageDescriptor { + return md_ExtendedDenomOptions } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_AccessControl) Type() protoreflect.MessageType { - return _fastReflection_AccessControl_messageType +func (x *fastReflection_ExtendedDenomOptions) Type() protoreflect.MessageType { + return _fastReflection_ExtendedDenomOptions_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_AccessControl) New() protoreflect.Message { - return new(fastReflection_AccessControl) +func (x *fastReflection_ExtendedDenomOptions) New() protoreflect.Message { + return new(fastReflection_ExtendedDenomOptions) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_AccessControl) Interface() protoreflect.ProtoMessage { - return (*AccessControl)(x) +func (x *fastReflection_ExtendedDenomOptions) Interface() protoreflect.ProtoMessage { + return (*ExtendedDenomOptions)(x) } // Range iterates over every populated field in an undefined order, @@ -1067,16 +1144,10 @@ func (x *fastReflection_AccessControl) Interface() protoreflect.ProtoMessage { // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_AccessControl) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if x.Create != nil { - value := protoreflect.ValueOfMessage(x.Create.ProtoReflect()) - if !f(fd_AccessControl_create, value) { - return - } - } - if x.Call != nil { - value := protoreflect.ValueOfMessage(x.Call.ProtoReflect()) - if !f(fd_AccessControl_call, value) { +func (x *fastReflection_ExtendedDenomOptions) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.ExtendedDenom != "" { + value := protoreflect.ValueOfString(x.ExtendedDenom) + if !f(fd_ExtendedDenomOptions_extended_denom, value) { return } } @@ -1093,17 +1164,15 @@ func (x *fastReflection_AccessControl) Range(f func(protoreflect.FieldDescriptor // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_AccessControl) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_ExtendedDenomOptions) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "cosmos.evm.vm.v1.AccessControl.create": - return x.Create != nil - case "cosmos.evm.vm.v1.AccessControl.call": - return x.Call != nil + case "cosmos.evm.vm.v1.ExtendedDenomOptions.extended_denom": + return x.ExtendedDenom != "" default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControl")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ExtendedDenomOptions")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControl does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.ExtendedDenomOptions does not contain field %s", fd.FullName())) } } @@ -1113,17 +1182,15 @@ func (x *fastReflection_AccessControl) Has(fd protoreflect.FieldDescriptor) bool // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_AccessControl) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_ExtendedDenomOptions) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "cosmos.evm.vm.v1.AccessControl.create": - x.Create = nil - case "cosmos.evm.vm.v1.AccessControl.call": - x.Call = nil + case "cosmos.evm.vm.v1.ExtendedDenomOptions.extended_denom": + x.ExtendedDenom = "" default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControl")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ExtendedDenomOptions")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControl does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.ExtendedDenomOptions does not contain field %s", fd.FullName())) } } @@ -1133,19 +1200,16 @@ func (x *fastReflection_AccessControl) Clear(fd protoreflect.FieldDescriptor) { // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_AccessControl) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_ExtendedDenomOptions) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "cosmos.evm.vm.v1.AccessControl.create": - value := x.Create - return protoreflect.ValueOfMessage(value.ProtoReflect()) - case "cosmos.evm.vm.v1.AccessControl.call": - value := x.Call - return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.evm.vm.v1.ExtendedDenomOptions.extended_denom": + value := x.ExtendedDenom + return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControl")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ExtendedDenomOptions")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControl does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.ExtendedDenomOptions does not contain field %s", descriptor.FullName())) } } @@ -1159,17 +1223,15 @@ func (x *fastReflection_AccessControl) Get(descriptor protoreflect.FieldDescript // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_AccessControl) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_ExtendedDenomOptions) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "cosmos.evm.vm.v1.AccessControl.create": - x.Create = value.Message().Interface().(*AccessControlType) - case "cosmos.evm.vm.v1.AccessControl.call": - x.Call = value.Message().Interface().(*AccessControlType) + case "cosmos.evm.vm.v1.ExtendedDenomOptions.extended_denom": + x.ExtendedDenom = value.Interface().(string) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControl")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ExtendedDenomOptions")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControl does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.ExtendedDenomOptions does not contain field %s", fd.FullName())) } } @@ -1183,52 +1245,40 @@ func (x *fastReflection_AccessControl) Set(fd protoreflect.FieldDescriptor, valu // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_AccessControl) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_ExtendedDenomOptions) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.AccessControl.create": - if x.Create == nil { - x.Create = new(AccessControlType) - } - return protoreflect.ValueOfMessage(x.Create.ProtoReflect()) - case "cosmos.evm.vm.v1.AccessControl.call": - if x.Call == nil { - x.Call = new(AccessControlType) - } - return protoreflect.ValueOfMessage(x.Call.ProtoReflect()) + case "cosmos.evm.vm.v1.ExtendedDenomOptions.extended_denom": + panic(fmt.Errorf("field extended_denom of message cosmos.evm.vm.v1.ExtendedDenomOptions is not mutable")) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControl")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ExtendedDenomOptions")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControl does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.ExtendedDenomOptions does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_AccessControl) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_ExtendedDenomOptions) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.AccessControl.create": - m := new(AccessControlType) - return protoreflect.ValueOfMessage(m.ProtoReflect()) - case "cosmos.evm.vm.v1.AccessControl.call": - m := new(AccessControlType) - return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.evm.vm.v1.ExtendedDenomOptions.extended_denom": + return protoreflect.ValueOfString("") default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControl")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ExtendedDenomOptions")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControl does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.ExtendedDenomOptions does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_AccessControl) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_ExtendedDenomOptions) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.AccessControl", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.ExtendedDenomOptions", d.FullName())) } panic("unreachable") } @@ -1236,7 +1286,7 @@ func (x *fastReflection_AccessControl) WhichOneof(d protoreflect.OneofDescriptor // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_AccessControl) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_ExtendedDenomOptions) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -1247,7 +1297,7 @@ func (x *fastReflection_AccessControl) GetUnknown() protoreflect.RawFields { // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_AccessControl) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_ExtendedDenomOptions) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -1259,7 +1309,7 @@ func (x *fastReflection_AccessControl) SetUnknown(fields protoreflect.RawFields) // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_AccessControl) IsValid() bool { +func (x *fastReflection_ExtendedDenomOptions) IsValid() bool { return x != nil } @@ -1269,9 +1319,9 @@ func (x *fastReflection_AccessControl) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_AccessControl) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_ExtendedDenomOptions) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*AccessControl) + x := input.Message.Interface().(*ExtendedDenomOptions) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -1283,12 +1333,8 @@ func (x *fastReflection_AccessControl) ProtoMethods() *protoiface.Methods { var n int var l int _ = l - if x.Create != nil { - l = options.Size(x.Create) - n += 1 + l + runtime.Sov(uint64(l)) - } - if x.Call != nil { - l = options.Size(x.Call) + l = len(x.ExtendedDenom) + if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } if x.unknownFields != nil { @@ -1301,7 +1347,7 @@ func (x *fastReflection_AccessControl) ProtoMethods() *protoiface.Methods { } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*AccessControl) + x := input.Message.Interface().(*ExtendedDenomOptions) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -1320,31 +1366,10 @@ func (x *fastReflection_AccessControl) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if x.Call != nil { - encoded, err := options.Marshal(x.Call) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x12 - } - if x.Create != nil { - encoded, err := options.Marshal(x.Create) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + if len(x.ExtendedDenom) > 0 { + i -= len(x.ExtendedDenom) + copy(dAtA[i:], x.ExtendedDenom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ExtendedDenom))) i-- dAtA[i] = 0xa } @@ -1359,7 +1384,7 @@ func (x *fastReflection_AccessControl) ProtoMethods() *protoiface.Methods { }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*AccessControl) + x := input.Message.Interface().(*ExtendedDenomOptions) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -1391,53 +1416,17 @@ func (x *fastReflection_AccessControl) ProtoMethods() *protoiface.Methods { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AccessControl: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ExtendedDenomOptions: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AccessControl: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ExtendedDenomOptions: 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 Create", wireType) - } - var msglen int - 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++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + msglen - 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 - } - if x.Create == nil { - x.Create = &AccessControlType{} - } - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Create); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Call", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ExtendedDenom", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -1447,27 +1436,23 @@ func (x *fastReflection_AccessControl) ProtoMethods() *protoiface.Methods { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength } - postIndex := iNdEx + msglen + 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 } - if x.Call == nil { - x.Call = &AccessControlType{} - } - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Call); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } + x.ExtendedDenom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -1504,74 +1489,28 @@ func (x *fastReflection_AccessControl) ProtoMethods() *protoiface.Methods { } } -var _ protoreflect.List = (*_AccessControlType_2_list)(nil) +var ( + md_AccessControl protoreflect.MessageDescriptor + fd_AccessControl_create protoreflect.FieldDescriptor + fd_AccessControl_call protoreflect.FieldDescriptor +) -type _AccessControlType_2_list struct { - list *[]string +func init() { + file_cosmos_evm_vm_v1_evm_proto_init() + md_AccessControl = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("AccessControl") + fd_AccessControl_create = md_AccessControl.Fields().ByName("create") + fd_AccessControl_call = md_AccessControl.Fields().ByName("call") } -func (x *_AccessControlType_2_list) Len() int { - if x.list == nil { - return 0 - } - return len(*x.list) -} - -func (x *_AccessControlType_2_list) Get(i int) protoreflect.Value { - return protoreflect.ValueOfString((*x.list)[i]) -} - -func (x *_AccessControlType_2_list) Set(i int, value protoreflect.Value) { - valueUnwrapped := value.String() - concreteValue := valueUnwrapped - (*x.list)[i] = concreteValue -} - -func (x *_AccessControlType_2_list) Append(value protoreflect.Value) { - valueUnwrapped := value.String() - concreteValue := valueUnwrapped - *x.list = append(*x.list, concreteValue) -} - -func (x *_AccessControlType_2_list) AppendMutable() protoreflect.Value { - panic(fmt.Errorf("AppendMutable can not be called on message AccessControlType at list field AccessControlList as it is not of Message kind")) -} - -func (x *_AccessControlType_2_list) Truncate(n int) { - *x.list = (*x.list)[:n] -} - -func (x *_AccessControlType_2_list) NewElement() protoreflect.Value { - v := "" - return protoreflect.ValueOfString(v) -} - -func (x *_AccessControlType_2_list) IsValid() bool { - return x.list != nil -} - -var ( - md_AccessControlType protoreflect.MessageDescriptor - fd_AccessControlType_access_type protoreflect.FieldDescriptor - fd_AccessControlType_access_control_list protoreflect.FieldDescriptor -) - -func init() { - file_cosmos_evm_vm_v1_evm_proto_init() - md_AccessControlType = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("AccessControlType") - fd_AccessControlType_access_type = md_AccessControlType.Fields().ByName("access_type") - fd_AccessControlType_access_control_list = md_AccessControlType.Fields().ByName("access_control_list") -} - -var _ protoreflect.Message = (*fastReflection_AccessControlType)(nil) +var _ protoreflect.Message = (*fastReflection_AccessControl)(nil) -type fastReflection_AccessControlType AccessControlType +type fastReflection_AccessControl AccessControl -func (x *AccessControlType) ProtoReflect() protoreflect.Message { - return (*fastReflection_AccessControlType)(x) +func (x *AccessControl) ProtoReflect() protoreflect.Message { + return (*fastReflection_AccessControl)(x) } -func (x *AccessControlType) slowProtoReflect() protoreflect.Message { +func (x *AccessControl) slowProtoReflect() protoreflect.Message { mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1583,43 +1522,43 @@ func (x *AccessControlType) slowProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -var _fastReflection_AccessControlType_messageType fastReflection_AccessControlType_messageType -var _ protoreflect.MessageType = fastReflection_AccessControlType_messageType{} +var _fastReflection_AccessControl_messageType fastReflection_AccessControl_messageType +var _ protoreflect.MessageType = fastReflection_AccessControl_messageType{} -type fastReflection_AccessControlType_messageType struct{} +type fastReflection_AccessControl_messageType struct{} -func (x fastReflection_AccessControlType_messageType) Zero() protoreflect.Message { - return (*fastReflection_AccessControlType)(nil) +func (x fastReflection_AccessControl_messageType) Zero() protoreflect.Message { + return (*fastReflection_AccessControl)(nil) } -func (x fastReflection_AccessControlType_messageType) New() protoreflect.Message { - return new(fastReflection_AccessControlType) +func (x fastReflection_AccessControl_messageType) New() protoreflect.Message { + return new(fastReflection_AccessControl) } -func (x fastReflection_AccessControlType_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_AccessControlType +func (x fastReflection_AccessControl_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_AccessControl } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_AccessControlType) Descriptor() protoreflect.MessageDescriptor { - return md_AccessControlType +func (x *fastReflection_AccessControl) Descriptor() protoreflect.MessageDescriptor { + return md_AccessControl } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_AccessControlType) Type() protoreflect.MessageType { - return _fastReflection_AccessControlType_messageType +func (x *fastReflection_AccessControl) Type() protoreflect.MessageType { + return _fastReflection_AccessControl_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_AccessControlType) New() protoreflect.Message { - return new(fastReflection_AccessControlType) +func (x *fastReflection_AccessControl) New() protoreflect.Message { + return new(fastReflection_AccessControl) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_AccessControlType) Interface() protoreflect.ProtoMessage { - return (*AccessControlType)(x) +func (x *fastReflection_AccessControl) Interface() protoreflect.ProtoMessage { + return (*AccessControl)(x) } // Range iterates over every populated field in an undefined order, @@ -1627,16 +1566,16 @@ func (x *fastReflection_AccessControlType) Interface() protoreflect.ProtoMessage // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_AccessControlType) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if x.AccessType != 0 { - value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(x.AccessType)) - if !f(fd_AccessControlType_access_type, value) { +func (x *fastReflection_AccessControl) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Create != nil { + value := protoreflect.ValueOfMessage(x.Create.ProtoReflect()) + if !f(fd_AccessControl_create, value) { return } } - if len(x.AccessControlList) != 0 { - value := protoreflect.ValueOfList(&_AccessControlType_2_list{list: &x.AccessControlList}) - if !f(fd_AccessControlType_access_control_list, value) { + if x.Call != nil { + value := protoreflect.ValueOfMessage(x.Call.ProtoReflect()) + if !f(fd_AccessControl_call, value) { return } } @@ -1653,17 +1592,17 @@ func (x *fastReflection_AccessControlType) Range(f func(protoreflect.FieldDescri // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_AccessControlType) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_AccessControl) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "cosmos.evm.vm.v1.AccessControlType.access_type": - return x.AccessType != 0 - case "cosmos.evm.vm.v1.AccessControlType.access_control_list": - return len(x.AccessControlList) != 0 + case "cosmos.evm.vm.v1.AccessControl.create": + return x.Create != nil + case "cosmos.evm.vm.v1.AccessControl.call": + return x.Call != nil default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControlType")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControl")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControlType does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControl does not contain field %s", fd.FullName())) } } @@ -1673,17 +1612,17 @@ func (x *fastReflection_AccessControlType) Has(fd protoreflect.FieldDescriptor) // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_AccessControlType) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_AccessControl) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "cosmos.evm.vm.v1.AccessControlType.access_type": - x.AccessType = 0 - case "cosmos.evm.vm.v1.AccessControlType.access_control_list": - x.AccessControlList = nil + case "cosmos.evm.vm.v1.AccessControl.create": + x.Create = nil + case "cosmos.evm.vm.v1.AccessControl.call": + x.Call = nil default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControlType")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControl")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControlType does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControl does not contain field %s", fd.FullName())) } } @@ -1693,22 +1632,19 @@ func (x *fastReflection_AccessControlType) Clear(fd protoreflect.FieldDescriptor // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_AccessControlType) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_AccessControl) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "cosmos.evm.vm.v1.AccessControlType.access_type": - value := x.AccessType - return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value)) - case "cosmos.evm.vm.v1.AccessControlType.access_control_list": - if len(x.AccessControlList) == 0 { - return protoreflect.ValueOfList(&_AccessControlType_2_list{}) - } - listValue := &_AccessControlType_2_list{list: &x.AccessControlList} - return protoreflect.ValueOfList(listValue) + case "cosmos.evm.vm.v1.AccessControl.create": + value := x.Create + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.evm.vm.v1.AccessControl.call": + value := x.Call + return protoreflect.ValueOfMessage(value.ProtoReflect()) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControlType")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControl")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControlType does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControl does not contain field %s", descriptor.FullName())) } } @@ -1722,19 +1658,17 @@ func (x *fastReflection_AccessControlType) Get(descriptor protoreflect.FieldDesc // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_AccessControlType) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_AccessControl) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "cosmos.evm.vm.v1.AccessControlType.access_type": - x.AccessType = (AccessType)(value.Enum()) - case "cosmos.evm.vm.v1.AccessControlType.access_control_list": - lv := value.List() - clv := lv.(*_AccessControlType_2_list) - x.AccessControlList = *clv.list + case "cosmos.evm.vm.v1.AccessControl.create": + x.Create = value.Message().Interface().(*AccessControlType) + case "cosmos.evm.vm.v1.AccessControl.call": + x.Call = value.Message().Interface().(*AccessControlType) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControlType")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControl")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControlType does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControl does not contain field %s", fd.FullName())) } } @@ -1748,49 +1682,52 @@ func (x *fastReflection_AccessControlType) Set(fd protoreflect.FieldDescriptor, // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_AccessControlType) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_AccessControl) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.AccessControlType.access_control_list": - if x.AccessControlList == nil { - x.AccessControlList = []string{} + case "cosmos.evm.vm.v1.AccessControl.create": + if x.Create == nil { + x.Create = new(AccessControlType) } - value := &_AccessControlType_2_list{list: &x.AccessControlList} - return protoreflect.ValueOfList(value) - case "cosmos.evm.vm.v1.AccessControlType.access_type": - panic(fmt.Errorf("field access_type of message cosmos.evm.vm.v1.AccessControlType is not mutable")) + return protoreflect.ValueOfMessage(x.Create.ProtoReflect()) + case "cosmos.evm.vm.v1.AccessControl.call": + if x.Call == nil { + x.Call = new(AccessControlType) + } + return protoreflect.ValueOfMessage(x.Call.ProtoReflect()) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControlType")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControl")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControlType does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControl does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_AccessControlType) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_AccessControl) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.AccessControlType.access_type": - return protoreflect.ValueOfEnum(0) - case "cosmos.evm.vm.v1.AccessControlType.access_control_list": - list := []string{} - return protoreflect.ValueOfList(&_AccessControlType_2_list{list: &list}) + case "cosmos.evm.vm.v1.AccessControl.create": + m := new(AccessControlType) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.evm.vm.v1.AccessControl.call": + m := new(AccessControlType) + return protoreflect.ValueOfMessage(m.ProtoReflect()) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControlType")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControl")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControlType does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControl does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_AccessControlType) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_AccessControl) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.AccessControlType", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.AccessControl", d.FullName())) } panic("unreachable") } @@ -1798,7 +1735,7 @@ func (x *fastReflection_AccessControlType) WhichOneof(d protoreflect.OneofDescri // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_AccessControlType) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_AccessControl) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -1809,7 +1746,7 @@ func (x *fastReflection_AccessControlType) GetUnknown() protoreflect.RawFields { // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_AccessControlType) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_AccessControl) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -1821,7 +1758,7 @@ func (x *fastReflection_AccessControlType) SetUnknown(fields protoreflect.RawFie // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_AccessControlType) IsValid() bool { +func (x *fastReflection_AccessControl) IsValid() bool { return x != nil } @@ -1831,9 +1768,9 @@ func (x *fastReflection_AccessControlType) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_AccessControlType) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_AccessControl) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*AccessControlType) + x := input.Message.Interface().(*AccessControl) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -1845,14 +1782,13 @@ func (x *fastReflection_AccessControlType) ProtoMethods() *protoiface.Methods { var n int var l int _ = l - if x.AccessType != 0 { - n += 1 + runtime.Sov(uint64(x.AccessType)) + if x.Create != nil { + l = options.Size(x.Create) + n += 1 + l + runtime.Sov(uint64(l)) } - if len(x.AccessControlList) > 0 { - for _, s := range x.AccessControlList { - l = len(s) - n += 1 + l + runtime.Sov(uint64(l)) - } + if x.Call != nil { + l = options.Size(x.Call) + n += 1 + l + runtime.Sov(uint64(l)) } if x.unknownFields != nil { n += len(x.unknownFields) @@ -1864,7 +1800,7 @@ func (x *fastReflection_AccessControlType) ProtoMethods() *protoiface.Methods { } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*AccessControlType) + x := input.Message.Interface().(*AccessControl) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -1883,19 +1819,33 @@ func (x *fastReflection_AccessControlType) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if len(x.AccessControlList) > 0 { - for iNdEx := len(x.AccessControlList) - 1; iNdEx >= 0; iNdEx-- { - i -= len(x.AccessControlList[iNdEx]) - copy(dAtA[i:], x.AccessControlList[iNdEx]) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.AccessControlList[iNdEx]))) - i-- - dAtA[i] = 0x12 + if x.Call != nil { + encoded, err := options.Marshal(x.Call) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err } - } - if x.AccessType != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.AccessType)) + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- - dAtA[i] = 0x8 + dAtA[i] = 0x12 + } + if x.Create != nil { + encoded, err := options.Marshal(x.Create) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa } if input.Buf != nil { input.Buf = append(input.Buf, dAtA...) @@ -1908,7 +1858,7 @@ func (x *fastReflection_AccessControlType) ProtoMethods() *protoiface.Methods { }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*AccessControlType) + x := input.Message.Interface().(*AccessControl) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -1940,17 +1890,17 @@ func (x *fastReflection_AccessControlType) ProtoMethods() *protoiface.Methods { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AccessControlType: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AccessControl: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AccessControlType: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AccessControl: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AccessType", wireType) + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Create", wireType) } - x.AccessType = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -1960,16 +1910,33 @@ func (x *fastReflection_AccessControlType) ProtoMethods() *protoiface.Methods { } b := dAtA[iNdEx] iNdEx++ - x.AccessType |= AccessType(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + 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 + } + if x.Create == nil { + x.Create = &AccessControlType{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Create); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex case 2: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AccessControlList", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Call", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -1979,23 +1946,27 @@ func (x *fastReflection_AccessControlType) ProtoMethods() *protoiface.Methods { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen 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.AccessControlList = append(x.AccessControlList, string(dAtA[iNdEx:postIndex])) + if x.Call == nil { + x.Call = &AccessControlType{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Call); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } iNdEx = postIndex default: iNdEx = preIndex @@ -2032,72 +2003,74 @@ func (x *fastReflection_AccessControlType) ProtoMethods() *protoiface.Methods { } } +var _ protoreflect.List = (*_AccessControlType_2_list)(nil) + +type _AccessControlType_2_list struct { + list *[]string +} + +func (x *_AccessControlType_2_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_AccessControlType_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfString((*x.list)[i]) +} + +func (x *_AccessControlType_2_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_AccessControlType_2_list) Append(value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_AccessControlType_2_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message AccessControlType at list field AccessControlList as it is not of Message kind")) +} + +func (x *_AccessControlType_2_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_AccessControlType_2_list) NewElement() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) +} + +func (x *_AccessControlType_2_list) IsValid() bool { + return x.list != nil +} + var ( - md_ChainConfig protoreflect.MessageDescriptor - fd_ChainConfig_homestead_block protoreflect.FieldDescriptor - fd_ChainConfig_dao_fork_block protoreflect.FieldDescriptor - fd_ChainConfig_dao_fork_support protoreflect.FieldDescriptor - fd_ChainConfig_eip150_block protoreflect.FieldDescriptor - fd_ChainConfig_eip155_block protoreflect.FieldDescriptor - fd_ChainConfig_eip158_block protoreflect.FieldDescriptor - fd_ChainConfig_byzantium_block protoreflect.FieldDescriptor - fd_ChainConfig_constantinople_block protoreflect.FieldDescriptor - fd_ChainConfig_petersburg_block protoreflect.FieldDescriptor - fd_ChainConfig_istanbul_block protoreflect.FieldDescriptor - fd_ChainConfig_muir_glacier_block protoreflect.FieldDescriptor - fd_ChainConfig_berlin_block protoreflect.FieldDescriptor - fd_ChainConfig_london_block protoreflect.FieldDescriptor - fd_ChainConfig_arrow_glacier_block protoreflect.FieldDescriptor - fd_ChainConfig_gray_glacier_block protoreflect.FieldDescriptor - fd_ChainConfig_merge_netsplit_block protoreflect.FieldDescriptor - fd_ChainConfig_chain_id protoreflect.FieldDescriptor - fd_ChainConfig_denom protoreflect.FieldDescriptor - fd_ChainConfig_decimals protoreflect.FieldDescriptor - fd_ChainConfig_shanghai_time protoreflect.FieldDescriptor - fd_ChainConfig_cancun_time protoreflect.FieldDescriptor - fd_ChainConfig_prague_time protoreflect.FieldDescriptor - fd_ChainConfig_verkle_time protoreflect.FieldDescriptor - fd_ChainConfig_osaka_time protoreflect.FieldDescriptor + md_AccessControlType protoreflect.MessageDescriptor + fd_AccessControlType_access_type protoreflect.FieldDescriptor + fd_AccessControlType_access_control_list protoreflect.FieldDescriptor ) func init() { file_cosmos_evm_vm_v1_evm_proto_init() - md_ChainConfig = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("ChainConfig") - fd_ChainConfig_homestead_block = md_ChainConfig.Fields().ByName("homestead_block") - fd_ChainConfig_dao_fork_block = md_ChainConfig.Fields().ByName("dao_fork_block") - fd_ChainConfig_dao_fork_support = md_ChainConfig.Fields().ByName("dao_fork_support") - fd_ChainConfig_eip150_block = md_ChainConfig.Fields().ByName("eip150_block") - fd_ChainConfig_eip155_block = md_ChainConfig.Fields().ByName("eip155_block") - fd_ChainConfig_eip158_block = md_ChainConfig.Fields().ByName("eip158_block") - fd_ChainConfig_byzantium_block = md_ChainConfig.Fields().ByName("byzantium_block") - fd_ChainConfig_constantinople_block = md_ChainConfig.Fields().ByName("constantinople_block") - fd_ChainConfig_petersburg_block = md_ChainConfig.Fields().ByName("petersburg_block") - fd_ChainConfig_istanbul_block = md_ChainConfig.Fields().ByName("istanbul_block") - fd_ChainConfig_muir_glacier_block = md_ChainConfig.Fields().ByName("muir_glacier_block") - fd_ChainConfig_berlin_block = md_ChainConfig.Fields().ByName("berlin_block") - fd_ChainConfig_london_block = md_ChainConfig.Fields().ByName("london_block") - fd_ChainConfig_arrow_glacier_block = md_ChainConfig.Fields().ByName("arrow_glacier_block") - fd_ChainConfig_gray_glacier_block = md_ChainConfig.Fields().ByName("gray_glacier_block") - fd_ChainConfig_merge_netsplit_block = md_ChainConfig.Fields().ByName("merge_netsplit_block") - fd_ChainConfig_chain_id = md_ChainConfig.Fields().ByName("chain_id") - fd_ChainConfig_denom = md_ChainConfig.Fields().ByName("denom") - fd_ChainConfig_decimals = md_ChainConfig.Fields().ByName("decimals") - fd_ChainConfig_shanghai_time = md_ChainConfig.Fields().ByName("shanghai_time") - fd_ChainConfig_cancun_time = md_ChainConfig.Fields().ByName("cancun_time") - fd_ChainConfig_prague_time = md_ChainConfig.Fields().ByName("prague_time") - fd_ChainConfig_verkle_time = md_ChainConfig.Fields().ByName("verkle_time") - fd_ChainConfig_osaka_time = md_ChainConfig.Fields().ByName("osaka_time") + md_AccessControlType = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("AccessControlType") + fd_AccessControlType_access_type = md_AccessControlType.Fields().ByName("access_type") + fd_AccessControlType_access_control_list = md_AccessControlType.Fields().ByName("access_control_list") } -var _ protoreflect.Message = (*fastReflection_ChainConfig)(nil) +var _ protoreflect.Message = (*fastReflection_AccessControlType)(nil) -type fastReflection_ChainConfig ChainConfig +type fastReflection_AccessControlType AccessControlType -func (x *ChainConfig) ProtoReflect() protoreflect.Message { - return (*fastReflection_ChainConfig)(x) +func (x *AccessControlType) ProtoReflect() protoreflect.Message { + return (*fastReflection_AccessControlType)(x) } -func (x *ChainConfig) slowProtoReflect() protoreflect.Message { +func (x *AccessControlType) slowProtoReflect() protoreflect.Message { mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2109,43 +2082,43 @@ func (x *ChainConfig) slowProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -var _fastReflection_ChainConfig_messageType fastReflection_ChainConfig_messageType -var _ protoreflect.MessageType = fastReflection_ChainConfig_messageType{} +var _fastReflection_AccessControlType_messageType fastReflection_AccessControlType_messageType +var _ protoreflect.MessageType = fastReflection_AccessControlType_messageType{} -type fastReflection_ChainConfig_messageType struct{} +type fastReflection_AccessControlType_messageType struct{} -func (x fastReflection_ChainConfig_messageType) Zero() protoreflect.Message { - return (*fastReflection_ChainConfig)(nil) +func (x fastReflection_AccessControlType_messageType) Zero() protoreflect.Message { + return (*fastReflection_AccessControlType)(nil) } -func (x fastReflection_ChainConfig_messageType) New() protoreflect.Message { - return new(fastReflection_ChainConfig) +func (x fastReflection_AccessControlType_messageType) New() protoreflect.Message { + return new(fastReflection_AccessControlType) } -func (x fastReflection_ChainConfig_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_ChainConfig +func (x fastReflection_AccessControlType_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_AccessControlType } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_ChainConfig) Descriptor() protoreflect.MessageDescriptor { - return md_ChainConfig +func (x *fastReflection_AccessControlType) Descriptor() protoreflect.MessageDescriptor { + return md_AccessControlType } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_ChainConfig) Type() protoreflect.MessageType { - return _fastReflection_ChainConfig_messageType +func (x *fastReflection_AccessControlType) Type() protoreflect.MessageType { + return _fastReflection_AccessControlType_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_ChainConfig) New() protoreflect.Message { - return new(fastReflection_ChainConfig) +func (x *fastReflection_AccessControlType) New() protoreflect.Message { + return new(fastReflection_AccessControlType) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_ChainConfig) Interface() protoreflect.ProtoMessage { - return (*ChainConfig)(x) +func (x *fastReflection_AccessControlType) Interface() protoreflect.ProtoMessage { + return (*AccessControlType)(x) } // Range iterates over every populated field in an undefined order, @@ -2153,219 +2126,43 @@ func (x *fastReflection_ChainConfig) Interface() protoreflect.ProtoMessage { // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_ChainConfig) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if x.HomesteadBlock != "" { - value := protoreflect.ValueOfString(x.HomesteadBlock) - if !f(fd_ChainConfig_homestead_block, value) { +func (x *fastReflection_AccessControlType) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.AccessType != 0 { + value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(x.AccessType)) + if !f(fd_AccessControlType_access_type, value) { return } } - if x.DaoForkBlock != "" { - value := protoreflect.ValueOfString(x.DaoForkBlock) - if !f(fd_ChainConfig_dao_fork_block, value) { + if len(x.AccessControlList) != 0 { + value := protoreflect.ValueOfList(&_AccessControlType_2_list{list: &x.AccessControlList}) + if !f(fd_AccessControlType_access_control_list, value) { return } } - if x.DaoForkSupport != false { - value := protoreflect.ValueOfBool(x.DaoForkSupport) - if !f(fd_ChainConfig_dao_fork_support, value) { - return +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_AccessControlType) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.evm.vm.v1.AccessControlType.access_type": + return x.AccessType != 0 + case "cosmos.evm.vm.v1.AccessControlType.access_control_list": + return len(x.AccessControlList) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControlType")) } - } - if x.Eip150Block != "" { - value := protoreflect.ValueOfString(x.Eip150Block) - if !f(fd_ChainConfig_eip150_block, value) { - return - } - } - if x.Eip155Block != "" { - value := protoreflect.ValueOfString(x.Eip155Block) - if !f(fd_ChainConfig_eip155_block, value) { - return - } - } - if x.Eip158Block != "" { - value := protoreflect.ValueOfString(x.Eip158Block) - if !f(fd_ChainConfig_eip158_block, value) { - return - } - } - if x.ByzantiumBlock != "" { - value := protoreflect.ValueOfString(x.ByzantiumBlock) - if !f(fd_ChainConfig_byzantium_block, value) { - return - } - } - if x.ConstantinopleBlock != "" { - value := protoreflect.ValueOfString(x.ConstantinopleBlock) - if !f(fd_ChainConfig_constantinople_block, value) { - return - } - } - if x.PetersburgBlock != "" { - value := protoreflect.ValueOfString(x.PetersburgBlock) - if !f(fd_ChainConfig_petersburg_block, value) { - return - } - } - if x.IstanbulBlock != "" { - value := protoreflect.ValueOfString(x.IstanbulBlock) - if !f(fd_ChainConfig_istanbul_block, value) { - return - } - } - if x.MuirGlacierBlock != "" { - value := protoreflect.ValueOfString(x.MuirGlacierBlock) - if !f(fd_ChainConfig_muir_glacier_block, value) { - return - } - } - if x.BerlinBlock != "" { - value := protoreflect.ValueOfString(x.BerlinBlock) - if !f(fd_ChainConfig_berlin_block, value) { - return - } - } - if x.LondonBlock != "" { - value := protoreflect.ValueOfString(x.LondonBlock) - if !f(fd_ChainConfig_london_block, value) { - return - } - } - if x.ArrowGlacierBlock != "" { - value := protoreflect.ValueOfString(x.ArrowGlacierBlock) - if !f(fd_ChainConfig_arrow_glacier_block, value) { - return - } - } - if x.GrayGlacierBlock != "" { - value := protoreflect.ValueOfString(x.GrayGlacierBlock) - if !f(fd_ChainConfig_gray_glacier_block, value) { - return - } - } - if x.MergeNetsplitBlock != "" { - value := protoreflect.ValueOfString(x.MergeNetsplitBlock) - if !f(fd_ChainConfig_merge_netsplit_block, value) { - return - } - } - if x.ChainId != uint64(0) { - value := protoreflect.ValueOfUint64(x.ChainId) - if !f(fd_ChainConfig_chain_id, value) { - return - } - } - if x.Denom != "" { - value := protoreflect.ValueOfString(x.Denom) - if !f(fd_ChainConfig_denom, value) { - return - } - } - if x.Decimals != uint64(0) { - value := protoreflect.ValueOfUint64(x.Decimals) - if !f(fd_ChainConfig_decimals, value) { - return - } - } - if x.ShanghaiTime != "" { - value := protoreflect.ValueOfString(x.ShanghaiTime) - if !f(fd_ChainConfig_shanghai_time, value) { - return - } - } - if x.CancunTime != "" { - value := protoreflect.ValueOfString(x.CancunTime) - if !f(fd_ChainConfig_cancun_time, value) { - return - } - } - if x.PragueTime != "" { - value := protoreflect.ValueOfString(x.PragueTime) - if !f(fd_ChainConfig_prague_time, value) { - return - } - } - if x.VerkleTime != "" { - value := protoreflect.ValueOfString(x.VerkleTime) - if !f(fd_ChainConfig_verkle_time, value) { - return - } - } - if x.OsakaTime != "" { - value := protoreflect.ValueOfString(x.OsakaTime) - if !f(fd_ChainConfig_osaka_time, value) { - return - } - } -} - -// Has reports whether a field is populated. -// -// Some fields have the property of nullability where it is possible to -// distinguish between the default value of a field and whether the field -// was explicitly populated with the default value. Singular message fields, -// member fields of a oneof, and proto2 scalar fields are nullable. Such -// fields are populated only if explicitly set. -// -// In other cases (aside from the nullable cases above), -// a proto3 scalar field is populated if it contains a non-zero value, and -// a repeated field is populated if it is non-empty. -func (x *fastReflection_ChainConfig) Has(fd protoreflect.FieldDescriptor) bool { - switch fd.FullName() { - case "cosmos.evm.vm.v1.ChainConfig.homestead_block": - return x.HomesteadBlock != "" - case "cosmos.evm.vm.v1.ChainConfig.dao_fork_block": - return x.DaoForkBlock != "" - case "cosmos.evm.vm.v1.ChainConfig.dao_fork_support": - return x.DaoForkSupport != false - case "cosmos.evm.vm.v1.ChainConfig.eip150_block": - return x.Eip150Block != "" - case "cosmos.evm.vm.v1.ChainConfig.eip155_block": - return x.Eip155Block != "" - case "cosmos.evm.vm.v1.ChainConfig.eip158_block": - return x.Eip158Block != "" - case "cosmos.evm.vm.v1.ChainConfig.byzantium_block": - return x.ByzantiumBlock != "" - case "cosmos.evm.vm.v1.ChainConfig.constantinople_block": - return x.ConstantinopleBlock != "" - case "cosmos.evm.vm.v1.ChainConfig.petersburg_block": - return x.PetersburgBlock != "" - case "cosmos.evm.vm.v1.ChainConfig.istanbul_block": - return x.IstanbulBlock != "" - case "cosmos.evm.vm.v1.ChainConfig.muir_glacier_block": - return x.MuirGlacierBlock != "" - case "cosmos.evm.vm.v1.ChainConfig.berlin_block": - return x.BerlinBlock != "" - case "cosmos.evm.vm.v1.ChainConfig.london_block": - return x.LondonBlock != "" - case "cosmos.evm.vm.v1.ChainConfig.arrow_glacier_block": - return x.ArrowGlacierBlock != "" - case "cosmos.evm.vm.v1.ChainConfig.gray_glacier_block": - return x.GrayGlacierBlock != "" - case "cosmos.evm.vm.v1.ChainConfig.merge_netsplit_block": - return x.MergeNetsplitBlock != "" - case "cosmos.evm.vm.v1.ChainConfig.chain_id": - return x.ChainId != uint64(0) - case "cosmos.evm.vm.v1.ChainConfig.denom": - return x.Denom != "" - case "cosmos.evm.vm.v1.ChainConfig.decimals": - return x.Decimals != uint64(0) - case "cosmos.evm.vm.v1.ChainConfig.shanghai_time": - return x.ShanghaiTime != "" - case "cosmos.evm.vm.v1.ChainConfig.cancun_time": - return x.CancunTime != "" - case "cosmos.evm.vm.v1.ChainConfig.prague_time": - return x.PragueTime != "" - case "cosmos.evm.vm.v1.ChainConfig.verkle_time": - return x.VerkleTime != "" - case "cosmos.evm.vm.v1.ChainConfig.osaka_time": - return x.OsakaTime != "" - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ChainConfig")) - } - panic(fmt.Errorf("message cosmos.evm.vm.v1.ChainConfig does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControlType does not contain field %s", fd.FullName())) } } @@ -2375,61 +2172,17 @@ func (x *fastReflection_ChainConfig) Has(fd protoreflect.FieldDescriptor) bool { // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_ChainConfig) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_AccessControlType) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "cosmos.evm.vm.v1.ChainConfig.homestead_block": - x.HomesteadBlock = "" - case "cosmos.evm.vm.v1.ChainConfig.dao_fork_block": - x.DaoForkBlock = "" - case "cosmos.evm.vm.v1.ChainConfig.dao_fork_support": - x.DaoForkSupport = false - case "cosmos.evm.vm.v1.ChainConfig.eip150_block": - x.Eip150Block = "" - case "cosmos.evm.vm.v1.ChainConfig.eip155_block": - x.Eip155Block = "" - case "cosmos.evm.vm.v1.ChainConfig.eip158_block": - x.Eip158Block = "" - case "cosmos.evm.vm.v1.ChainConfig.byzantium_block": - x.ByzantiumBlock = "" - case "cosmos.evm.vm.v1.ChainConfig.constantinople_block": - x.ConstantinopleBlock = "" - case "cosmos.evm.vm.v1.ChainConfig.petersburg_block": - x.PetersburgBlock = "" - case "cosmos.evm.vm.v1.ChainConfig.istanbul_block": - x.IstanbulBlock = "" - case "cosmos.evm.vm.v1.ChainConfig.muir_glacier_block": - x.MuirGlacierBlock = "" - case "cosmos.evm.vm.v1.ChainConfig.berlin_block": - x.BerlinBlock = "" - case "cosmos.evm.vm.v1.ChainConfig.london_block": - x.LondonBlock = "" - case "cosmos.evm.vm.v1.ChainConfig.arrow_glacier_block": - x.ArrowGlacierBlock = "" - case "cosmos.evm.vm.v1.ChainConfig.gray_glacier_block": - x.GrayGlacierBlock = "" - case "cosmos.evm.vm.v1.ChainConfig.merge_netsplit_block": - x.MergeNetsplitBlock = "" - case "cosmos.evm.vm.v1.ChainConfig.chain_id": - x.ChainId = uint64(0) - case "cosmos.evm.vm.v1.ChainConfig.denom": - x.Denom = "" - case "cosmos.evm.vm.v1.ChainConfig.decimals": - x.Decimals = uint64(0) - case "cosmos.evm.vm.v1.ChainConfig.shanghai_time": - x.ShanghaiTime = "" - case "cosmos.evm.vm.v1.ChainConfig.cancun_time": - x.CancunTime = "" - case "cosmos.evm.vm.v1.ChainConfig.prague_time": - x.PragueTime = "" - case "cosmos.evm.vm.v1.ChainConfig.verkle_time": - x.VerkleTime = "" - case "cosmos.evm.vm.v1.ChainConfig.osaka_time": - x.OsakaTime = "" + case "cosmos.evm.vm.v1.AccessControlType.access_type": + x.AccessType = 0 + case "cosmos.evm.vm.v1.AccessControlType.access_control_list": + x.AccessControlList = nil default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ChainConfig")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControlType")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.ChainConfig does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControlType does not contain field %s", fd.FullName())) } } @@ -2439,85 +2192,22 @@ func (x *fastReflection_ChainConfig) Clear(fd protoreflect.FieldDescriptor) { // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_ChainConfig) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_AccessControlType) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "cosmos.evm.vm.v1.ChainConfig.homestead_block": - value := x.HomesteadBlock - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.dao_fork_block": - value := x.DaoForkBlock - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.dao_fork_support": - value := x.DaoForkSupport - return protoreflect.ValueOfBool(value) - case "cosmos.evm.vm.v1.ChainConfig.eip150_block": - value := x.Eip150Block - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.eip155_block": - value := x.Eip155Block - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.eip158_block": - value := x.Eip158Block - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.byzantium_block": - value := x.ByzantiumBlock - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.constantinople_block": - value := x.ConstantinopleBlock - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.petersburg_block": - value := x.PetersburgBlock - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.istanbul_block": - value := x.IstanbulBlock - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.muir_glacier_block": - value := x.MuirGlacierBlock - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.berlin_block": - value := x.BerlinBlock - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.london_block": - value := x.LondonBlock - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.arrow_glacier_block": - value := x.ArrowGlacierBlock - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.gray_glacier_block": - value := x.GrayGlacierBlock - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.merge_netsplit_block": - value := x.MergeNetsplitBlock - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.chain_id": - value := x.ChainId - return protoreflect.ValueOfUint64(value) - case "cosmos.evm.vm.v1.ChainConfig.denom": - value := x.Denom - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.decimals": - value := x.Decimals - return protoreflect.ValueOfUint64(value) - case "cosmos.evm.vm.v1.ChainConfig.shanghai_time": - value := x.ShanghaiTime - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.cancun_time": - value := x.CancunTime - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.prague_time": - value := x.PragueTime - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.verkle_time": - value := x.VerkleTime - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.ChainConfig.osaka_time": - value := x.OsakaTime - return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.AccessControlType.access_type": + value := x.AccessType + return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value)) + case "cosmos.evm.vm.v1.AccessControlType.access_control_list": + if len(x.AccessControlList) == 0 { + return protoreflect.ValueOfList(&_AccessControlType_2_list{}) + } + listValue := &_AccessControlType_2_list{list: &x.AccessControlList} + return protoreflect.ValueOfList(listValue) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ChainConfig")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControlType")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.ChainConfig does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControlType does not contain field %s", descriptor.FullName())) } } @@ -2531,61 +2221,19 @@ func (x *fastReflection_ChainConfig) Get(descriptor protoreflect.FieldDescriptor // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_ChainConfig) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_AccessControlType) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "cosmos.evm.vm.v1.ChainConfig.homestead_block": - x.HomesteadBlock = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.dao_fork_block": - x.DaoForkBlock = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.dao_fork_support": - x.DaoForkSupport = value.Bool() - case "cosmos.evm.vm.v1.ChainConfig.eip150_block": - x.Eip150Block = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.eip155_block": - x.Eip155Block = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.eip158_block": - x.Eip158Block = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.byzantium_block": - x.ByzantiumBlock = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.constantinople_block": - x.ConstantinopleBlock = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.petersburg_block": - x.PetersburgBlock = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.istanbul_block": - x.IstanbulBlock = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.muir_glacier_block": - x.MuirGlacierBlock = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.berlin_block": - x.BerlinBlock = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.london_block": - x.LondonBlock = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.arrow_glacier_block": - x.ArrowGlacierBlock = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.gray_glacier_block": - x.GrayGlacierBlock = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.merge_netsplit_block": - x.MergeNetsplitBlock = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.chain_id": - x.ChainId = value.Uint() - case "cosmos.evm.vm.v1.ChainConfig.denom": - x.Denom = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.decimals": - x.Decimals = value.Uint() - case "cosmos.evm.vm.v1.ChainConfig.shanghai_time": - x.ShanghaiTime = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.cancun_time": - x.CancunTime = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.prague_time": - x.PragueTime = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.verkle_time": - x.VerkleTime = value.Interface().(string) - case "cosmos.evm.vm.v1.ChainConfig.osaka_time": - x.OsakaTime = value.Interface().(string) + case "cosmos.evm.vm.v1.AccessControlType.access_type": + x.AccessType = (AccessType)(value.Enum()) + case "cosmos.evm.vm.v1.AccessControlType.access_control_list": + lv := value.List() + clv := lv.(*_AccessControlType_2_list) + x.AccessControlList = *clv.list default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ChainConfig")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControlType")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.ChainConfig does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControlType does not contain field %s", fd.FullName())) } } @@ -2599,132 +2247,49 @@ func (x *fastReflection_ChainConfig) Set(fd protoreflect.FieldDescriptor, value // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_ChainConfig) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_AccessControlType) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.ChainConfig.homestead_block": - panic(fmt.Errorf("field homestead_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.dao_fork_block": - panic(fmt.Errorf("field dao_fork_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.dao_fork_support": - panic(fmt.Errorf("field dao_fork_support of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.eip150_block": - panic(fmt.Errorf("field eip150_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.eip155_block": - panic(fmt.Errorf("field eip155_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.eip158_block": - panic(fmt.Errorf("field eip158_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.byzantium_block": - panic(fmt.Errorf("field byzantium_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.constantinople_block": - panic(fmt.Errorf("field constantinople_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.petersburg_block": - panic(fmt.Errorf("field petersburg_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.istanbul_block": - panic(fmt.Errorf("field istanbul_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.muir_glacier_block": - panic(fmt.Errorf("field muir_glacier_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.berlin_block": - panic(fmt.Errorf("field berlin_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.london_block": - panic(fmt.Errorf("field london_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.arrow_glacier_block": - panic(fmt.Errorf("field arrow_glacier_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.gray_glacier_block": - panic(fmt.Errorf("field gray_glacier_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.merge_netsplit_block": - panic(fmt.Errorf("field merge_netsplit_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.chain_id": - panic(fmt.Errorf("field chain_id of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.denom": - panic(fmt.Errorf("field denom of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.decimals": - panic(fmt.Errorf("field decimals of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.shanghai_time": - panic(fmt.Errorf("field shanghai_time of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.cancun_time": - panic(fmt.Errorf("field cancun_time of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.prague_time": - panic(fmt.Errorf("field prague_time of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.verkle_time": - panic(fmt.Errorf("field verkle_time of message cosmos.evm.vm.v1.ChainConfig is not mutable")) - case "cosmos.evm.vm.v1.ChainConfig.osaka_time": - panic(fmt.Errorf("field osaka_time of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.AccessControlType.access_control_list": + if x.AccessControlList == nil { + x.AccessControlList = []string{} + } + value := &_AccessControlType_2_list{list: &x.AccessControlList} + return protoreflect.ValueOfList(value) + case "cosmos.evm.vm.v1.AccessControlType.access_type": + panic(fmt.Errorf("field access_type of message cosmos.evm.vm.v1.AccessControlType is not mutable")) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ChainConfig")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControlType")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.ChainConfig does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControlType does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_ChainConfig) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_AccessControlType) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.ChainConfig.homestead_block": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.dao_fork_block": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.dao_fork_support": - return protoreflect.ValueOfBool(false) - case "cosmos.evm.vm.v1.ChainConfig.eip150_block": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.eip155_block": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.eip158_block": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.byzantium_block": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.constantinople_block": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.petersburg_block": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.istanbul_block": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.muir_glacier_block": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.berlin_block": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.london_block": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.arrow_glacier_block": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.gray_glacier_block": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.merge_netsplit_block": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.chain_id": - return protoreflect.ValueOfUint64(uint64(0)) - case "cosmos.evm.vm.v1.ChainConfig.denom": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.decimals": - return protoreflect.ValueOfUint64(uint64(0)) - case "cosmos.evm.vm.v1.ChainConfig.shanghai_time": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.cancun_time": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.prague_time": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.verkle_time": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.ChainConfig.osaka_time": - return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.AccessControlType.access_type": + return protoreflect.ValueOfEnum(0) + case "cosmos.evm.vm.v1.AccessControlType.access_control_list": + list := []string{} + return protoreflect.ValueOfList(&_AccessControlType_2_list{list: &list}) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ChainConfig")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessControlType")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.ChainConfig does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessControlType does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_ChainConfig) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_AccessControlType) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.ChainConfig", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.AccessControlType", d.FullName())) } panic("unreachable") } @@ -2732,7 +2297,7 @@ func (x *fastReflection_ChainConfig) WhichOneof(d protoreflect.OneofDescriptor) // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_ChainConfig) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_AccessControlType) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -2743,7 +2308,7 @@ func (x *fastReflection_ChainConfig) GetUnknown() protoreflect.RawFields { // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_ChainConfig) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_AccessControlType) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -2755,7 +2320,7 @@ func (x *fastReflection_ChainConfig) SetUnknown(fields protoreflect.RawFields) { // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_ChainConfig) IsValid() bool { +func (x *fastReflection_AccessControlType) IsValid() bool { return x != nil } @@ -2765,9 +2330,9 @@ func (x *fastReflection_ChainConfig) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_ChainConfig) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_AccessControlType) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*ChainConfig) + x := input.Message.Interface().(*AccessControlType) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -2779,98 +2344,14 @@ func (x *fastReflection_ChainConfig) ProtoMethods() *protoiface.Methods { var n int var l int _ = l - l = len(x.HomesteadBlock) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.DaoForkBlock) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - if x.DaoForkSupport { - n += 2 - } - l = len(x.Eip150Block) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.Eip155Block) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.Eip158Block) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.ByzantiumBlock) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.ConstantinopleBlock) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.PetersburgBlock) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.IstanbulBlock) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.MuirGlacierBlock) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.BerlinBlock) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.LondonBlock) - if l > 0 { - n += 2 + l + runtime.Sov(uint64(l)) - } - l = len(x.ArrowGlacierBlock) - if l > 0 { - n += 2 + l + runtime.Sov(uint64(l)) - } - l = len(x.GrayGlacierBlock) - if l > 0 { - n += 2 + l + runtime.Sov(uint64(l)) - } - l = len(x.MergeNetsplitBlock) - if l > 0 { - n += 2 + l + runtime.Sov(uint64(l)) - } - if x.ChainId != 0 { - n += 2 + runtime.Sov(uint64(x.ChainId)) - } - l = len(x.Denom) - if l > 0 { - n += 2 + l + runtime.Sov(uint64(l)) - } - if x.Decimals != 0 { - n += 2 + runtime.Sov(uint64(x.Decimals)) - } - l = len(x.ShanghaiTime) - if l > 0 { - n += 2 + l + runtime.Sov(uint64(l)) - } - l = len(x.CancunTime) - if l > 0 { - n += 2 + l + runtime.Sov(uint64(l)) - } - l = len(x.PragueTime) - if l > 0 { - n += 2 + l + runtime.Sov(uint64(l)) - } - l = len(x.VerkleTime) - if l > 0 { - n += 2 + l + runtime.Sov(uint64(l)) + if x.AccessType != 0 { + n += 1 + runtime.Sov(uint64(x.AccessType)) } - l = len(x.OsakaTime) - if l > 0 { - n += 2 + l + runtime.Sov(uint64(l)) + if len(x.AccessControlList) > 0 { + for _, s := range x.AccessControlList { + l = len(s) + n += 1 + l + runtime.Sov(uint64(l)) + } } if x.unknownFields != nil { n += len(x.unknownFields) @@ -2882,7 +2363,7 @@ func (x *fastReflection_ChainConfig) ProtoMethods() *protoiface.Methods { } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*ChainConfig) + x := input.Message.Interface().(*AccessControlType) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -2901,214 +2382,37 @@ func (x *fastReflection_ChainConfig) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if len(x.OsakaTime) > 0 { - i -= len(x.OsakaTime) - copy(dAtA[i:], x.OsakaTime) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.OsakaTime))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xfa - } - if len(x.VerkleTime) > 0 { - i -= len(x.VerkleTime) - copy(dAtA[i:], x.VerkleTime) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.VerkleTime))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xf2 - } - if len(x.PragueTime) > 0 { - i -= len(x.PragueTime) - copy(dAtA[i:], x.PragueTime) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.PragueTime))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xea - } - if len(x.CancunTime) > 0 { - i -= len(x.CancunTime) - copy(dAtA[i:], x.CancunTime) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.CancunTime))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xe2 - } - if len(x.ShanghaiTime) > 0 { - i -= len(x.ShanghaiTime) - copy(dAtA[i:], x.ShanghaiTime) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ShanghaiTime))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xda - } - if x.Decimals != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.Decimals)) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xd0 - } - if len(x.Denom) > 0 { - i -= len(x.Denom) - copy(dAtA[i:], x.Denom) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xca - } - if x.ChainId != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.ChainId)) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xc0 - } - if len(x.MergeNetsplitBlock) > 0 { - i -= len(x.MergeNetsplitBlock) - copy(dAtA[i:], x.MergeNetsplitBlock) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.MergeNetsplitBlock))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xaa - } - if len(x.GrayGlacierBlock) > 0 { - i -= len(x.GrayGlacierBlock) - copy(dAtA[i:], x.GrayGlacierBlock) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.GrayGlacierBlock))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xa2 + if len(x.AccessControlList) > 0 { + for iNdEx := len(x.AccessControlList) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.AccessControlList[iNdEx]) + copy(dAtA[i:], x.AccessControlList[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.AccessControlList[iNdEx]))) + i-- + dAtA[i] = 0x12 + } } - if len(x.ArrowGlacierBlock) > 0 { - i -= len(x.ArrowGlacierBlock) - copy(dAtA[i:], x.ArrowGlacierBlock) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ArrowGlacierBlock))) - i-- - dAtA[i] = 0x1 + if x.AccessType != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.AccessType)) i-- - dAtA[i] = 0x92 + dAtA[i] = 0x8 } - if len(x.LondonBlock) > 0 { - i -= len(x.LondonBlock) - copy(dAtA[i:], x.LondonBlock) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.LondonBlock))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0x8a + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA } - if len(x.BerlinBlock) > 0 { - i -= len(x.BerlinBlock) - copy(dAtA[i:], x.BerlinBlock) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.BerlinBlock))) - i-- - dAtA[i] = 0x6a - } - if len(x.MuirGlacierBlock) > 0 { - i -= len(x.MuirGlacierBlock) - copy(dAtA[i:], x.MuirGlacierBlock) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.MuirGlacierBlock))) - i-- - dAtA[i] = 0x62 - } - if len(x.IstanbulBlock) > 0 { - i -= len(x.IstanbulBlock) - copy(dAtA[i:], x.IstanbulBlock) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.IstanbulBlock))) - i-- - dAtA[i] = 0x5a - } - if len(x.PetersburgBlock) > 0 { - i -= len(x.PetersburgBlock) - copy(dAtA[i:], x.PetersburgBlock) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.PetersburgBlock))) - i-- - dAtA[i] = 0x52 - } - if len(x.ConstantinopleBlock) > 0 { - i -= len(x.ConstantinopleBlock) - copy(dAtA[i:], x.ConstantinopleBlock) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ConstantinopleBlock))) - i-- - dAtA[i] = 0x4a - } - if len(x.ByzantiumBlock) > 0 { - i -= len(x.ByzantiumBlock) - copy(dAtA[i:], x.ByzantiumBlock) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ByzantiumBlock))) - i-- - dAtA[i] = 0x42 - } - if len(x.Eip158Block) > 0 { - i -= len(x.Eip158Block) - copy(dAtA[i:], x.Eip158Block) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Eip158Block))) - i-- - dAtA[i] = 0x3a - } - if len(x.Eip155Block) > 0 { - i -= len(x.Eip155Block) - copy(dAtA[i:], x.Eip155Block) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Eip155Block))) - i-- - dAtA[i] = 0x32 - } - if len(x.Eip150Block) > 0 { - i -= len(x.Eip150Block) - copy(dAtA[i:], x.Eip150Block) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Eip150Block))) - i-- - dAtA[i] = 0x22 - } - if x.DaoForkSupport { - i-- - if x.DaoForkSupport { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 - } - if len(x.DaoForkBlock) > 0 { - i -= len(x.DaoForkBlock) - copy(dAtA[i:], x.DaoForkBlock) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.DaoForkBlock))) - i-- - dAtA[i] = 0x12 - } - if len(x.HomesteadBlock) > 0 { - i -= len(x.HomesteadBlock) - copy(dAtA[i:], x.HomesteadBlock) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.HomesteadBlock))) - i-- - dAtA[i] = 0xa - } - if input.Buf != nil { - input.Buf = append(input.Buf, dAtA...) - } else { - input.Buf = dAtA - } - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, nil - } - unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*ChainConfig) - if x == nil { - return protoiface.UnmarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Flags: input.Flags, - }, nil + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*AccessControlType) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil } options := runtime.UnmarshalInputToOptions(input) _ = options @@ -3135,101 +2439,17 @@ func (x *fastReflection_ChainConfig) ProtoMethods() *protoiface.Methods { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ChainConfig: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AccessControlType: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ChainConfig: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AccessControlType: 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 HomesteadBlock", 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.HomesteadBlock = 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 DaoForkBlock", 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.DaoForkBlock = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field DaoForkSupport", wireType) - } - var v int - 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++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - x.DaoForkSupport = bool(v != 0) - case 4: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Eip150Block", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AccessType", wireType) } - var stringLen uint64 + x.AccessType = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -3239,27 +2459,14 @@ func (x *fastReflection_ChainConfig) ProtoMethods() *protoiface.Methods { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + x.AccessType |= AccessType(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.Eip150Block = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: + case 2: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Eip155Block", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AccessControlList", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3287,50 +2494,1342 @@ func (x *fastReflection_ChainConfig) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.Eip155Block = string(dAtA[iNdEx:postIndex]) + x.AccessControlList = append(x.AccessControlList, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 7: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Eip158Block", 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 + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } - postIndex := iNdEx + intStringLen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.Eip158Block = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 8: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ByzantiumBlock", wireType) + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) } - 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 { + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_ChainConfig protoreflect.MessageDescriptor + fd_ChainConfig_homestead_block protoreflect.FieldDescriptor + fd_ChainConfig_dao_fork_block protoreflect.FieldDescriptor + fd_ChainConfig_dao_fork_support protoreflect.FieldDescriptor + fd_ChainConfig_eip150_block protoreflect.FieldDescriptor + fd_ChainConfig_eip155_block protoreflect.FieldDescriptor + fd_ChainConfig_eip158_block protoreflect.FieldDescriptor + fd_ChainConfig_byzantium_block protoreflect.FieldDescriptor + fd_ChainConfig_constantinople_block protoreflect.FieldDescriptor + fd_ChainConfig_petersburg_block protoreflect.FieldDescriptor + fd_ChainConfig_istanbul_block protoreflect.FieldDescriptor + fd_ChainConfig_muir_glacier_block protoreflect.FieldDescriptor + fd_ChainConfig_berlin_block protoreflect.FieldDescriptor + fd_ChainConfig_london_block protoreflect.FieldDescriptor + fd_ChainConfig_arrow_glacier_block protoreflect.FieldDescriptor + fd_ChainConfig_gray_glacier_block protoreflect.FieldDescriptor + fd_ChainConfig_merge_netsplit_block protoreflect.FieldDescriptor + fd_ChainConfig_chain_id protoreflect.FieldDescriptor + fd_ChainConfig_denom protoreflect.FieldDescriptor + fd_ChainConfig_decimals protoreflect.FieldDescriptor + fd_ChainConfig_shanghai_time protoreflect.FieldDescriptor + fd_ChainConfig_cancun_time protoreflect.FieldDescriptor + fd_ChainConfig_prague_time protoreflect.FieldDescriptor + fd_ChainConfig_verkle_time protoreflect.FieldDescriptor + fd_ChainConfig_osaka_time protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_evm_vm_v1_evm_proto_init() + md_ChainConfig = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("ChainConfig") + fd_ChainConfig_homestead_block = md_ChainConfig.Fields().ByName("homestead_block") + fd_ChainConfig_dao_fork_block = md_ChainConfig.Fields().ByName("dao_fork_block") + fd_ChainConfig_dao_fork_support = md_ChainConfig.Fields().ByName("dao_fork_support") + fd_ChainConfig_eip150_block = md_ChainConfig.Fields().ByName("eip150_block") + fd_ChainConfig_eip155_block = md_ChainConfig.Fields().ByName("eip155_block") + fd_ChainConfig_eip158_block = md_ChainConfig.Fields().ByName("eip158_block") + fd_ChainConfig_byzantium_block = md_ChainConfig.Fields().ByName("byzantium_block") + fd_ChainConfig_constantinople_block = md_ChainConfig.Fields().ByName("constantinople_block") + fd_ChainConfig_petersburg_block = md_ChainConfig.Fields().ByName("petersburg_block") + fd_ChainConfig_istanbul_block = md_ChainConfig.Fields().ByName("istanbul_block") + fd_ChainConfig_muir_glacier_block = md_ChainConfig.Fields().ByName("muir_glacier_block") + fd_ChainConfig_berlin_block = md_ChainConfig.Fields().ByName("berlin_block") + fd_ChainConfig_london_block = md_ChainConfig.Fields().ByName("london_block") + fd_ChainConfig_arrow_glacier_block = md_ChainConfig.Fields().ByName("arrow_glacier_block") + fd_ChainConfig_gray_glacier_block = md_ChainConfig.Fields().ByName("gray_glacier_block") + fd_ChainConfig_merge_netsplit_block = md_ChainConfig.Fields().ByName("merge_netsplit_block") + fd_ChainConfig_chain_id = md_ChainConfig.Fields().ByName("chain_id") + fd_ChainConfig_denom = md_ChainConfig.Fields().ByName("denom") + fd_ChainConfig_decimals = md_ChainConfig.Fields().ByName("decimals") + fd_ChainConfig_shanghai_time = md_ChainConfig.Fields().ByName("shanghai_time") + fd_ChainConfig_cancun_time = md_ChainConfig.Fields().ByName("cancun_time") + fd_ChainConfig_prague_time = md_ChainConfig.Fields().ByName("prague_time") + fd_ChainConfig_verkle_time = md_ChainConfig.Fields().ByName("verkle_time") + fd_ChainConfig_osaka_time = md_ChainConfig.Fields().ByName("osaka_time") +} + +var _ protoreflect.Message = (*fastReflection_ChainConfig)(nil) + +type fastReflection_ChainConfig ChainConfig + +func (x *ChainConfig) ProtoReflect() protoreflect.Message { + return (*fastReflection_ChainConfig)(x) +} + +func (x *ChainConfig) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_ChainConfig_messageType fastReflection_ChainConfig_messageType +var _ protoreflect.MessageType = fastReflection_ChainConfig_messageType{} + +type fastReflection_ChainConfig_messageType struct{} + +func (x fastReflection_ChainConfig_messageType) Zero() protoreflect.Message { + return (*fastReflection_ChainConfig)(nil) +} +func (x fastReflection_ChainConfig_messageType) New() protoreflect.Message { + return new(fastReflection_ChainConfig) +} +func (x fastReflection_ChainConfig_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_ChainConfig +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_ChainConfig) Descriptor() protoreflect.MessageDescriptor { + return md_ChainConfig +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_ChainConfig) Type() protoreflect.MessageType { + return _fastReflection_ChainConfig_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_ChainConfig) New() protoreflect.Message { + return new(fastReflection_ChainConfig) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_ChainConfig) Interface() protoreflect.ProtoMessage { + return (*ChainConfig)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_ChainConfig) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.HomesteadBlock != "" { + value := protoreflect.ValueOfString(x.HomesteadBlock) + if !f(fd_ChainConfig_homestead_block, value) { + return + } + } + if x.DaoForkBlock != "" { + value := protoreflect.ValueOfString(x.DaoForkBlock) + if !f(fd_ChainConfig_dao_fork_block, value) { + return + } + } + if x.DaoForkSupport != false { + value := protoreflect.ValueOfBool(x.DaoForkSupport) + if !f(fd_ChainConfig_dao_fork_support, value) { + return + } + } + if x.Eip150Block != "" { + value := protoreflect.ValueOfString(x.Eip150Block) + if !f(fd_ChainConfig_eip150_block, value) { + return + } + } + if x.Eip155Block != "" { + value := protoreflect.ValueOfString(x.Eip155Block) + if !f(fd_ChainConfig_eip155_block, value) { + return + } + } + if x.Eip158Block != "" { + value := protoreflect.ValueOfString(x.Eip158Block) + if !f(fd_ChainConfig_eip158_block, value) { + return + } + } + if x.ByzantiumBlock != "" { + value := protoreflect.ValueOfString(x.ByzantiumBlock) + if !f(fd_ChainConfig_byzantium_block, value) { + return + } + } + if x.ConstantinopleBlock != "" { + value := protoreflect.ValueOfString(x.ConstantinopleBlock) + if !f(fd_ChainConfig_constantinople_block, value) { + return + } + } + if x.PetersburgBlock != "" { + value := protoreflect.ValueOfString(x.PetersburgBlock) + if !f(fd_ChainConfig_petersburg_block, value) { + return + } + } + if x.IstanbulBlock != "" { + value := protoreflect.ValueOfString(x.IstanbulBlock) + if !f(fd_ChainConfig_istanbul_block, value) { + return + } + } + if x.MuirGlacierBlock != "" { + value := protoreflect.ValueOfString(x.MuirGlacierBlock) + if !f(fd_ChainConfig_muir_glacier_block, value) { + return + } + } + if x.BerlinBlock != "" { + value := protoreflect.ValueOfString(x.BerlinBlock) + if !f(fd_ChainConfig_berlin_block, value) { + return + } + } + if x.LondonBlock != "" { + value := protoreflect.ValueOfString(x.LondonBlock) + if !f(fd_ChainConfig_london_block, value) { + return + } + } + if x.ArrowGlacierBlock != "" { + value := protoreflect.ValueOfString(x.ArrowGlacierBlock) + if !f(fd_ChainConfig_arrow_glacier_block, value) { + return + } + } + if x.GrayGlacierBlock != "" { + value := protoreflect.ValueOfString(x.GrayGlacierBlock) + if !f(fd_ChainConfig_gray_glacier_block, value) { + return + } + } + if x.MergeNetsplitBlock != "" { + value := protoreflect.ValueOfString(x.MergeNetsplitBlock) + if !f(fd_ChainConfig_merge_netsplit_block, value) { + return + } + } + if x.ChainId != uint64(0) { + value := protoreflect.ValueOfUint64(x.ChainId) + if !f(fd_ChainConfig_chain_id, value) { + return + } + } + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_ChainConfig_denom, value) { + return + } + } + if x.Decimals != uint64(0) { + value := protoreflect.ValueOfUint64(x.Decimals) + if !f(fd_ChainConfig_decimals, value) { + return + } + } + if x.ShanghaiTime != "" { + value := protoreflect.ValueOfString(x.ShanghaiTime) + if !f(fd_ChainConfig_shanghai_time, value) { + return + } + } + if x.CancunTime != "" { + value := protoreflect.ValueOfString(x.CancunTime) + if !f(fd_ChainConfig_cancun_time, value) { + return + } + } + if x.PragueTime != "" { + value := protoreflect.ValueOfString(x.PragueTime) + if !f(fd_ChainConfig_prague_time, value) { + return + } + } + if x.VerkleTime != "" { + value := protoreflect.ValueOfString(x.VerkleTime) + if !f(fd_ChainConfig_verkle_time, value) { + return + } + } + if x.OsakaTime != "" { + value := protoreflect.ValueOfString(x.OsakaTime) + if !f(fd_ChainConfig_osaka_time, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_ChainConfig) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.evm.vm.v1.ChainConfig.homestead_block": + return x.HomesteadBlock != "" + case "cosmos.evm.vm.v1.ChainConfig.dao_fork_block": + return x.DaoForkBlock != "" + case "cosmos.evm.vm.v1.ChainConfig.dao_fork_support": + return x.DaoForkSupport != false + case "cosmos.evm.vm.v1.ChainConfig.eip150_block": + return x.Eip150Block != "" + case "cosmos.evm.vm.v1.ChainConfig.eip155_block": + return x.Eip155Block != "" + case "cosmos.evm.vm.v1.ChainConfig.eip158_block": + return x.Eip158Block != "" + case "cosmos.evm.vm.v1.ChainConfig.byzantium_block": + return x.ByzantiumBlock != "" + case "cosmos.evm.vm.v1.ChainConfig.constantinople_block": + return x.ConstantinopleBlock != "" + case "cosmos.evm.vm.v1.ChainConfig.petersburg_block": + return x.PetersburgBlock != "" + case "cosmos.evm.vm.v1.ChainConfig.istanbul_block": + return x.IstanbulBlock != "" + case "cosmos.evm.vm.v1.ChainConfig.muir_glacier_block": + return x.MuirGlacierBlock != "" + case "cosmos.evm.vm.v1.ChainConfig.berlin_block": + return x.BerlinBlock != "" + case "cosmos.evm.vm.v1.ChainConfig.london_block": + return x.LondonBlock != "" + case "cosmos.evm.vm.v1.ChainConfig.arrow_glacier_block": + return x.ArrowGlacierBlock != "" + case "cosmos.evm.vm.v1.ChainConfig.gray_glacier_block": + return x.GrayGlacierBlock != "" + case "cosmos.evm.vm.v1.ChainConfig.merge_netsplit_block": + return x.MergeNetsplitBlock != "" + case "cosmos.evm.vm.v1.ChainConfig.chain_id": + return x.ChainId != uint64(0) + case "cosmos.evm.vm.v1.ChainConfig.denom": + return x.Denom != "" + case "cosmos.evm.vm.v1.ChainConfig.decimals": + return x.Decimals != uint64(0) + case "cosmos.evm.vm.v1.ChainConfig.shanghai_time": + return x.ShanghaiTime != "" + case "cosmos.evm.vm.v1.ChainConfig.cancun_time": + return x.CancunTime != "" + case "cosmos.evm.vm.v1.ChainConfig.prague_time": + return x.PragueTime != "" + case "cosmos.evm.vm.v1.ChainConfig.verkle_time": + return x.VerkleTime != "" + case "cosmos.evm.vm.v1.ChainConfig.osaka_time": + return x.OsakaTime != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ChainConfig")) + } + panic(fmt.Errorf("message cosmos.evm.vm.v1.ChainConfig does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ChainConfig) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.evm.vm.v1.ChainConfig.homestead_block": + x.HomesteadBlock = "" + case "cosmos.evm.vm.v1.ChainConfig.dao_fork_block": + x.DaoForkBlock = "" + case "cosmos.evm.vm.v1.ChainConfig.dao_fork_support": + x.DaoForkSupport = false + case "cosmos.evm.vm.v1.ChainConfig.eip150_block": + x.Eip150Block = "" + case "cosmos.evm.vm.v1.ChainConfig.eip155_block": + x.Eip155Block = "" + case "cosmos.evm.vm.v1.ChainConfig.eip158_block": + x.Eip158Block = "" + case "cosmos.evm.vm.v1.ChainConfig.byzantium_block": + x.ByzantiumBlock = "" + case "cosmos.evm.vm.v1.ChainConfig.constantinople_block": + x.ConstantinopleBlock = "" + case "cosmos.evm.vm.v1.ChainConfig.petersburg_block": + x.PetersburgBlock = "" + case "cosmos.evm.vm.v1.ChainConfig.istanbul_block": + x.IstanbulBlock = "" + case "cosmos.evm.vm.v1.ChainConfig.muir_glacier_block": + x.MuirGlacierBlock = "" + case "cosmos.evm.vm.v1.ChainConfig.berlin_block": + x.BerlinBlock = "" + case "cosmos.evm.vm.v1.ChainConfig.london_block": + x.LondonBlock = "" + case "cosmos.evm.vm.v1.ChainConfig.arrow_glacier_block": + x.ArrowGlacierBlock = "" + case "cosmos.evm.vm.v1.ChainConfig.gray_glacier_block": + x.GrayGlacierBlock = "" + case "cosmos.evm.vm.v1.ChainConfig.merge_netsplit_block": + x.MergeNetsplitBlock = "" + case "cosmos.evm.vm.v1.ChainConfig.chain_id": + x.ChainId = uint64(0) + case "cosmos.evm.vm.v1.ChainConfig.denom": + x.Denom = "" + case "cosmos.evm.vm.v1.ChainConfig.decimals": + x.Decimals = uint64(0) + case "cosmos.evm.vm.v1.ChainConfig.shanghai_time": + x.ShanghaiTime = "" + case "cosmos.evm.vm.v1.ChainConfig.cancun_time": + x.CancunTime = "" + case "cosmos.evm.vm.v1.ChainConfig.prague_time": + x.PragueTime = "" + case "cosmos.evm.vm.v1.ChainConfig.verkle_time": + x.VerkleTime = "" + case "cosmos.evm.vm.v1.ChainConfig.osaka_time": + x.OsakaTime = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ChainConfig")) + } + panic(fmt.Errorf("message cosmos.evm.vm.v1.ChainConfig does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_ChainConfig) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.evm.vm.v1.ChainConfig.homestead_block": + value := x.HomesteadBlock + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.dao_fork_block": + value := x.DaoForkBlock + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.dao_fork_support": + value := x.DaoForkSupport + return protoreflect.ValueOfBool(value) + case "cosmos.evm.vm.v1.ChainConfig.eip150_block": + value := x.Eip150Block + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.eip155_block": + value := x.Eip155Block + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.eip158_block": + value := x.Eip158Block + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.byzantium_block": + value := x.ByzantiumBlock + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.constantinople_block": + value := x.ConstantinopleBlock + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.petersburg_block": + value := x.PetersburgBlock + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.istanbul_block": + value := x.IstanbulBlock + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.muir_glacier_block": + value := x.MuirGlacierBlock + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.berlin_block": + value := x.BerlinBlock + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.london_block": + value := x.LondonBlock + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.arrow_glacier_block": + value := x.ArrowGlacierBlock + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.gray_glacier_block": + value := x.GrayGlacierBlock + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.merge_netsplit_block": + value := x.MergeNetsplitBlock + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.chain_id": + value := x.ChainId + return protoreflect.ValueOfUint64(value) + case "cosmos.evm.vm.v1.ChainConfig.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.decimals": + value := x.Decimals + return protoreflect.ValueOfUint64(value) + case "cosmos.evm.vm.v1.ChainConfig.shanghai_time": + value := x.ShanghaiTime + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.cancun_time": + value := x.CancunTime + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.prague_time": + value := x.PragueTime + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.verkle_time": + value := x.VerkleTime + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.ChainConfig.osaka_time": + value := x.OsakaTime + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ChainConfig")) + } + panic(fmt.Errorf("message cosmos.evm.vm.v1.ChainConfig does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ChainConfig) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.evm.vm.v1.ChainConfig.homestead_block": + x.HomesteadBlock = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.dao_fork_block": + x.DaoForkBlock = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.dao_fork_support": + x.DaoForkSupport = value.Bool() + case "cosmos.evm.vm.v1.ChainConfig.eip150_block": + x.Eip150Block = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.eip155_block": + x.Eip155Block = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.eip158_block": + x.Eip158Block = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.byzantium_block": + x.ByzantiumBlock = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.constantinople_block": + x.ConstantinopleBlock = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.petersburg_block": + x.PetersburgBlock = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.istanbul_block": + x.IstanbulBlock = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.muir_glacier_block": + x.MuirGlacierBlock = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.berlin_block": + x.BerlinBlock = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.london_block": + x.LondonBlock = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.arrow_glacier_block": + x.ArrowGlacierBlock = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.gray_glacier_block": + x.GrayGlacierBlock = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.merge_netsplit_block": + x.MergeNetsplitBlock = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.chain_id": + x.ChainId = value.Uint() + case "cosmos.evm.vm.v1.ChainConfig.denom": + x.Denom = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.decimals": + x.Decimals = value.Uint() + case "cosmos.evm.vm.v1.ChainConfig.shanghai_time": + x.ShanghaiTime = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.cancun_time": + x.CancunTime = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.prague_time": + x.PragueTime = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.verkle_time": + x.VerkleTime = value.Interface().(string) + case "cosmos.evm.vm.v1.ChainConfig.osaka_time": + x.OsakaTime = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ChainConfig")) + } + panic(fmt.Errorf("message cosmos.evm.vm.v1.ChainConfig does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ChainConfig) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.evm.vm.v1.ChainConfig.homestead_block": + panic(fmt.Errorf("field homestead_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.dao_fork_block": + panic(fmt.Errorf("field dao_fork_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.dao_fork_support": + panic(fmt.Errorf("field dao_fork_support of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.eip150_block": + panic(fmt.Errorf("field eip150_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.eip155_block": + panic(fmt.Errorf("field eip155_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.eip158_block": + panic(fmt.Errorf("field eip158_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.byzantium_block": + panic(fmt.Errorf("field byzantium_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.constantinople_block": + panic(fmt.Errorf("field constantinople_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.petersburg_block": + panic(fmt.Errorf("field petersburg_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.istanbul_block": + panic(fmt.Errorf("field istanbul_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.muir_glacier_block": + panic(fmt.Errorf("field muir_glacier_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.berlin_block": + panic(fmt.Errorf("field berlin_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.london_block": + panic(fmt.Errorf("field london_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.arrow_glacier_block": + panic(fmt.Errorf("field arrow_glacier_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.gray_glacier_block": + panic(fmt.Errorf("field gray_glacier_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.merge_netsplit_block": + panic(fmt.Errorf("field merge_netsplit_block of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.chain_id": + panic(fmt.Errorf("field chain_id of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.denom": + panic(fmt.Errorf("field denom of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.decimals": + panic(fmt.Errorf("field decimals of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.shanghai_time": + panic(fmt.Errorf("field shanghai_time of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.cancun_time": + panic(fmt.Errorf("field cancun_time of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.prague_time": + panic(fmt.Errorf("field prague_time of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.verkle_time": + panic(fmt.Errorf("field verkle_time of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + case "cosmos.evm.vm.v1.ChainConfig.osaka_time": + panic(fmt.Errorf("field osaka_time of message cosmos.evm.vm.v1.ChainConfig is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ChainConfig")) + } + panic(fmt.Errorf("message cosmos.evm.vm.v1.ChainConfig does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_ChainConfig) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.evm.vm.v1.ChainConfig.homestead_block": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.dao_fork_block": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.dao_fork_support": + return protoreflect.ValueOfBool(false) + case "cosmos.evm.vm.v1.ChainConfig.eip150_block": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.eip155_block": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.eip158_block": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.byzantium_block": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.constantinople_block": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.petersburg_block": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.istanbul_block": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.muir_glacier_block": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.berlin_block": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.london_block": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.arrow_glacier_block": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.gray_glacier_block": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.merge_netsplit_block": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.chain_id": + return protoreflect.ValueOfUint64(uint64(0)) + case "cosmos.evm.vm.v1.ChainConfig.denom": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.decimals": + return protoreflect.ValueOfUint64(uint64(0)) + case "cosmos.evm.vm.v1.ChainConfig.shanghai_time": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.cancun_time": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.prague_time": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.verkle_time": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.ChainConfig.osaka_time": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.ChainConfig")) + } + panic(fmt.Errorf("message cosmos.evm.vm.v1.ChainConfig does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_ChainConfig) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.ChainConfig", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_ChainConfig) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ChainConfig) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_ChainConfig) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_ChainConfig) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*ChainConfig) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.HomesteadBlock) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.DaoForkBlock) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.DaoForkSupport { + n += 2 + } + l = len(x.Eip150Block) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Eip155Block) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Eip158Block) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.ByzantiumBlock) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.ConstantinopleBlock) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.PetersburgBlock) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.IstanbulBlock) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.MuirGlacierBlock) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.BerlinBlock) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.LondonBlock) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } + l = len(x.ArrowGlacierBlock) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } + l = len(x.GrayGlacierBlock) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } + l = len(x.MergeNetsplitBlock) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } + if x.ChainId != 0 { + n += 2 + runtime.Sov(uint64(x.ChainId)) + } + l = len(x.Denom) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } + if x.Decimals != 0 { + n += 2 + runtime.Sov(uint64(x.Decimals)) + } + l = len(x.ShanghaiTime) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } + l = len(x.CancunTime) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } + l = len(x.PragueTime) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } + l = len(x.VerkleTime) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } + l = len(x.OsakaTime) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*ChainConfig) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.OsakaTime) > 0 { + i -= len(x.OsakaTime) + copy(dAtA[i:], x.OsakaTime) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.OsakaTime))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xfa + } + if len(x.VerkleTime) > 0 { + i -= len(x.VerkleTime) + copy(dAtA[i:], x.VerkleTime) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.VerkleTime))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xf2 + } + if len(x.PragueTime) > 0 { + i -= len(x.PragueTime) + copy(dAtA[i:], x.PragueTime) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.PragueTime))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xea + } + if len(x.CancunTime) > 0 { + i -= len(x.CancunTime) + copy(dAtA[i:], x.CancunTime) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.CancunTime))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xe2 + } + if len(x.ShanghaiTime) > 0 { + i -= len(x.ShanghaiTime) + copy(dAtA[i:], x.ShanghaiTime) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ShanghaiTime))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xda + } + if x.Decimals != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Decimals)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xd0 + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xca + } + if x.ChainId != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.ChainId)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc0 + } + if len(x.MergeNetsplitBlock) > 0 { + i -= len(x.MergeNetsplitBlock) + copy(dAtA[i:], x.MergeNetsplitBlock) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.MergeNetsplitBlock))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xaa + } + if len(x.GrayGlacierBlock) > 0 { + i -= len(x.GrayGlacierBlock) + copy(dAtA[i:], x.GrayGlacierBlock) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.GrayGlacierBlock))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa2 + } + if len(x.ArrowGlacierBlock) > 0 { + i -= len(x.ArrowGlacierBlock) + copy(dAtA[i:], x.ArrowGlacierBlock) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ArrowGlacierBlock))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } + if len(x.LondonBlock) > 0 { + i -= len(x.LondonBlock) + copy(dAtA[i:], x.LondonBlock) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.LondonBlock))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + if len(x.BerlinBlock) > 0 { + i -= len(x.BerlinBlock) + copy(dAtA[i:], x.BerlinBlock) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.BerlinBlock))) + i-- + dAtA[i] = 0x6a + } + if len(x.MuirGlacierBlock) > 0 { + i -= len(x.MuirGlacierBlock) + copy(dAtA[i:], x.MuirGlacierBlock) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.MuirGlacierBlock))) + i-- + dAtA[i] = 0x62 + } + if len(x.IstanbulBlock) > 0 { + i -= len(x.IstanbulBlock) + copy(dAtA[i:], x.IstanbulBlock) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.IstanbulBlock))) + i-- + dAtA[i] = 0x5a + } + if len(x.PetersburgBlock) > 0 { + i -= len(x.PetersburgBlock) + copy(dAtA[i:], x.PetersburgBlock) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.PetersburgBlock))) + i-- + dAtA[i] = 0x52 + } + if len(x.ConstantinopleBlock) > 0 { + i -= len(x.ConstantinopleBlock) + copy(dAtA[i:], x.ConstantinopleBlock) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ConstantinopleBlock))) + i-- + dAtA[i] = 0x4a + } + if len(x.ByzantiumBlock) > 0 { + i -= len(x.ByzantiumBlock) + copy(dAtA[i:], x.ByzantiumBlock) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ByzantiumBlock))) + i-- + dAtA[i] = 0x42 + } + if len(x.Eip158Block) > 0 { + i -= len(x.Eip158Block) + copy(dAtA[i:], x.Eip158Block) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Eip158Block))) + i-- + dAtA[i] = 0x3a + } + if len(x.Eip155Block) > 0 { + i -= len(x.Eip155Block) + copy(dAtA[i:], x.Eip155Block) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Eip155Block))) + i-- + dAtA[i] = 0x32 + } + if len(x.Eip150Block) > 0 { + i -= len(x.Eip150Block) + copy(dAtA[i:], x.Eip150Block) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Eip150Block))) + i-- + dAtA[i] = 0x22 + } + if x.DaoForkSupport { + i-- + if x.DaoForkSupport { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if len(x.DaoForkBlock) > 0 { + i -= len(x.DaoForkBlock) + copy(dAtA[i:], x.DaoForkBlock) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.DaoForkBlock))) + i-- + dAtA[i] = 0x12 + } + if len(x.HomesteadBlock) > 0 { + i -= len(x.HomesteadBlock) + copy(dAtA[i:], x.HomesteadBlock) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.HomesteadBlock))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*ChainConfig) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire 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++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ChainConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ChainConfig: 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 HomesteadBlock", 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.HomesteadBlock = 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 DaoForkBlock", 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.DaoForkBlock = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field DaoForkSupport", wireType) + } + var v int + 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++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.DaoForkSupport = bool(v != 0) + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Eip150Block", 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.Eip150Block = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Eip155Block", 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.Eip155Block = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Eip158Block", 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.Eip158Block = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ByzantiumBlock", 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] @@ -3770,46 +4269,530 @@ func (x *fastReflection_ChainConfig) ProtoMethods() *protoiface.Methods { if postIndex < 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength } - if postIndex > l { + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.CancunTime = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 29: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field PragueTime", 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.PragueTime = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 30: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field VerkleTime", 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.VerkleTime = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 31: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field OsakaTime", 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.OsakaTime = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_State protoreflect.MessageDescriptor + fd_State_key protoreflect.FieldDescriptor + fd_State_value protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_evm_vm_v1_evm_proto_init() + md_State = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("State") + fd_State_key = md_State.Fields().ByName("key") + fd_State_value = md_State.Fields().ByName("value") +} + +var _ protoreflect.Message = (*fastReflection_State)(nil) + +type fastReflection_State State + +func (x *State) ProtoReflect() protoreflect.Message { + return (*fastReflection_State)(x) +} + +func (x *State) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_State_messageType fastReflection_State_messageType +var _ protoreflect.MessageType = fastReflection_State_messageType{} + +type fastReflection_State_messageType struct{} + +func (x fastReflection_State_messageType) Zero() protoreflect.Message { + return (*fastReflection_State)(nil) +} +func (x fastReflection_State_messageType) New() protoreflect.Message { + return new(fastReflection_State) +} +func (x fastReflection_State_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_State +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_State) Descriptor() protoreflect.MessageDescriptor { + return md_State +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_State) Type() protoreflect.MessageType { + return _fastReflection_State_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_State) New() protoreflect.Message { + return new(fastReflection_State) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_State) Interface() protoreflect.ProtoMessage { + return (*State)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_State) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Key != "" { + value := protoreflect.ValueOfString(x.Key) + if !f(fd_State_key, value) { + return + } + } + if x.Value != "" { + value := protoreflect.ValueOfString(x.Value) + if !f(fd_State_value, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_State) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.evm.vm.v1.State.key": + return x.Key != "" + case "cosmos.evm.vm.v1.State.value": + return x.Value != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.State")) + } + panic(fmt.Errorf("message cosmos.evm.vm.v1.State does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_State) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.evm.vm.v1.State.key": + x.Key = "" + case "cosmos.evm.vm.v1.State.value": + x.Value = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.State")) + } + panic(fmt.Errorf("message cosmos.evm.vm.v1.State does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_State) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.evm.vm.v1.State.key": + value := x.Key + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.State.value": + value := x.Value + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.State")) + } + panic(fmt.Errorf("message cosmos.evm.vm.v1.State does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_State) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.evm.vm.v1.State.key": + x.Key = value.Interface().(string) + case "cosmos.evm.vm.v1.State.value": + x.Value = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.State")) + } + panic(fmt.Errorf("message cosmos.evm.vm.v1.State does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_State) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.evm.vm.v1.State.key": + panic(fmt.Errorf("field key of message cosmos.evm.vm.v1.State is not mutable")) + case "cosmos.evm.vm.v1.State.value": + panic(fmt.Errorf("field value of message cosmos.evm.vm.v1.State is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.State")) + } + panic(fmt.Errorf("message cosmos.evm.vm.v1.State does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_State) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.evm.vm.v1.State.key": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.State.value": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.State")) + } + panic(fmt.Errorf("message cosmos.evm.vm.v1.State does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_State) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.State", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_State) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_State) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_State) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_State) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*State) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Key) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Value) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*State) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Value) > 0 { + i -= len(x.Value) + copy(dAtA[i:], x.Value) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Value))) + i-- + dAtA[i] = 0x12 + } + if len(x.Key) > 0 { + i -= len(x.Key) + copy(dAtA[i:], x.Key) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Key))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*State) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire 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 } - x.CancunTime = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 29: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field PragueTime", 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 + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - x.PragueTime = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 30: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: State: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: State: 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 VerkleTime", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3837,11 +4820,11 @@ func (x *fastReflection_ChainConfig) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.VerkleTime = string(dAtA[iNdEx:postIndex]) + x.Key = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 31: + case 2: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field OsakaTime", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3869,7 +4852,7 @@ func (x *fastReflection_ChainConfig) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.OsakaTime = string(dAtA[iNdEx:postIndex]) + x.Value = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -3906,29 +4889,80 @@ func (x *fastReflection_ChainConfig) ProtoMethods() *protoiface.Methods { } } +var _ protoreflect.List = (*_TransactionLogs_2_list)(nil) + +type _TransactionLogs_2_list struct { + list *[]*Log +} + +func (x *_TransactionLogs_2_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_TransactionLogs_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_TransactionLogs_2_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*Log) + (*x.list)[i] = concreteValue +} + +func (x *_TransactionLogs_2_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*Log) + *x.list = append(*x.list, concreteValue) +} + +func (x *_TransactionLogs_2_list) AppendMutable() protoreflect.Value { + v := new(Log) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_TransactionLogs_2_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_TransactionLogs_2_list) NewElement() protoreflect.Value { + v := new(Log) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_TransactionLogs_2_list) IsValid() bool { + return x.list != nil +} + var ( - md_State protoreflect.MessageDescriptor - fd_State_key protoreflect.FieldDescriptor - fd_State_value protoreflect.FieldDescriptor + md_TransactionLogs protoreflect.MessageDescriptor + fd_TransactionLogs_hash protoreflect.FieldDescriptor + fd_TransactionLogs_logs protoreflect.FieldDescriptor ) func init() { file_cosmos_evm_vm_v1_evm_proto_init() - md_State = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("State") - fd_State_key = md_State.Fields().ByName("key") - fd_State_value = md_State.Fields().ByName("value") + md_TransactionLogs = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("TransactionLogs") + fd_TransactionLogs_hash = md_TransactionLogs.Fields().ByName("hash") + fd_TransactionLogs_logs = md_TransactionLogs.Fields().ByName("logs") } -var _ protoreflect.Message = (*fastReflection_State)(nil) +var _ protoreflect.Message = (*fastReflection_TransactionLogs)(nil) -type fastReflection_State State +type fastReflection_TransactionLogs TransactionLogs -func (x *State) ProtoReflect() protoreflect.Message { - return (*fastReflection_State)(x) +func (x *TransactionLogs) ProtoReflect() protoreflect.Message { + return (*fastReflection_TransactionLogs)(x) } -func (x *State) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[4] +func (x *TransactionLogs) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3939,43 +4973,43 @@ func (x *State) slowProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -var _fastReflection_State_messageType fastReflection_State_messageType -var _ protoreflect.MessageType = fastReflection_State_messageType{} +var _fastReflection_TransactionLogs_messageType fastReflection_TransactionLogs_messageType +var _ protoreflect.MessageType = fastReflection_TransactionLogs_messageType{} -type fastReflection_State_messageType struct{} +type fastReflection_TransactionLogs_messageType struct{} -func (x fastReflection_State_messageType) Zero() protoreflect.Message { - return (*fastReflection_State)(nil) +func (x fastReflection_TransactionLogs_messageType) Zero() protoreflect.Message { + return (*fastReflection_TransactionLogs)(nil) } -func (x fastReflection_State_messageType) New() protoreflect.Message { - return new(fastReflection_State) +func (x fastReflection_TransactionLogs_messageType) New() protoreflect.Message { + return new(fastReflection_TransactionLogs) } -func (x fastReflection_State_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_State +func (x fastReflection_TransactionLogs_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_TransactionLogs } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_State) Descriptor() protoreflect.MessageDescriptor { - return md_State +func (x *fastReflection_TransactionLogs) Descriptor() protoreflect.MessageDescriptor { + return md_TransactionLogs } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_State) Type() protoreflect.MessageType { - return _fastReflection_State_messageType +func (x *fastReflection_TransactionLogs) Type() protoreflect.MessageType { + return _fastReflection_TransactionLogs_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_State) New() protoreflect.Message { - return new(fastReflection_State) +func (x *fastReflection_TransactionLogs) New() protoreflect.Message { + return new(fastReflection_TransactionLogs) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_State) Interface() protoreflect.ProtoMessage { - return (*State)(x) +func (x *fastReflection_TransactionLogs) Interface() protoreflect.ProtoMessage { + return (*TransactionLogs)(x) } // Range iterates over every populated field in an undefined order, @@ -3983,16 +5017,16 @@ func (x *fastReflection_State) Interface() protoreflect.ProtoMessage { // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_State) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if x.Key != "" { - value := protoreflect.ValueOfString(x.Key) - if !f(fd_State_key, value) { +func (x *fastReflection_TransactionLogs) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Hash != "" { + value := protoreflect.ValueOfString(x.Hash) + if !f(fd_TransactionLogs_hash, value) { return } } - if x.Value != "" { - value := protoreflect.ValueOfString(x.Value) - if !f(fd_State_value, value) { + if len(x.Logs) != 0 { + value := protoreflect.ValueOfList(&_TransactionLogs_2_list{list: &x.Logs}) + if !f(fd_TransactionLogs_logs, value) { return } } @@ -4009,17 +5043,17 @@ func (x *fastReflection_State) Range(f func(protoreflect.FieldDescriptor, protor // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_State) Has(fd protoreflect.FieldDescriptor) bool { - switch fd.FullName() { - case "cosmos.evm.vm.v1.State.key": - return x.Key != "" - case "cosmos.evm.vm.v1.State.value": - return x.Value != "" +func (x *fastReflection_TransactionLogs) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.evm.vm.v1.TransactionLogs.hash": + return x.Hash != "" + case "cosmos.evm.vm.v1.TransactionLogs.logs": + return len(x.Logs) != 0 default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.State")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TransactionLogs")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.State does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TransactionLogs does not contain field %s", fd.FullName())) } } @@ -4029,17 +5063,17 @@ func (x *fastReflection_State) Has(fd protoreflect.FieldDescriptor) bool { // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_State) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_TransactionLogs) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "cosmos.evm.vm.v1.State.key": - x.Key = "" - case "cosmos.evm.vm.v1.State.value": - x.Value = "" + case "cosmos.evm.vm.v1.TransactionLogs.hash": + x.Hash = "" + case "cosmos.evm.vm.v1.TransactionLogs.logs": + x.Logs = nil default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.State")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TransactionLogs")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.State does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TransactionLogs does not contain field %s", fd.FullName())) } } @@ -4049,19 +5083,22 @@ func (x *fastReflection_State) Clear(fd protoreflect.FieldDescriptor) { // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_State) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_TransactionLogs) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "cosmos.evm.vm.v1.State.key": - value := x.Key - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.State.value": - value := x.Value + case "cosmos.evm.vm.v1.TransactionLogs.hash": + value := x.Hash return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.TransactionLogs.logs": + if len(x.Logs) == 0 { + return protoreflect.ValueOfList(&_TransactionLogs_2_list{}) + } + listValue := &_TransactionLogs_2_list{list: &x.Logs} + return protoreflect.ValueOfList(listValue) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.State")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TransactionLogs")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.State does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TransactionLogs does not contain field %s", descriptor.FullName())) } } @@ -4075,17 +5112,19 @@ func (x *fastReflection_State) Get(descriptor protoreflect.FieldDescriptor) prot // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_State) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_TransactionLogs) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "cosmos.evm.vm.v1.State.key": - x.Key = value.Interface().(string) - case "cosmos.evm.vm.v1.State.value": - x.Value = value.Interface().(string) + case "cosmos.evm.vm.v1.TransactionLogs.hash": + x.Hash = value.Interface().(string) + case "cosmos.evm.vm.v1.TransactionLogs.logs": + lv := value.List() + clv := lv.(*_TransactionLogs_2_list) + x.Logs = *clv.list default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.State")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TransactionLogs")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.State does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TransactionLogs does not contain field %s", fd.FullName())) } } @@ -4099,44 +5138,49 @@ func (x *fastReflection_State) Set(fd protoreflect.FieldDescriptor, value protor // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_State) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_TransactionLogs) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.State.key": - panic(fmt.Errorf("field key of message cosmos.evm.vm.v1.State is not mutable")) - case "cosmos.evm.vm.v1.State.value": - panic(fmt.Errorf("field value of message cosmos.evm.vm.v1.State is not mutable")) + case "cosmos.evm.vm.v1.TransactionLogs.logs": + if x.Logs == nil { + x.Logs = []*Log{} + } + value := &_TransactionLogs_2_list{list: &x.Logs} + return protoreflect.ValueOfList(value) + case "cosmos.evm.vm.v1.TransactionLogs.hash": + panic(fmt.Errorf("field hash of message cosmos.evm.vm.v1.TransactionLogs is not mutable")) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.State")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TransactionLogs")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.State does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TransactionLogs does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_State) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_TransactionLogs) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.State.key": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.State.value": + case "cosmos.evm.vm.v1.TransactionLogs.hash": return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.TransactionLogs.logs": + list := []*Log{} + return protoreflect.ValueOfList(&_TransactionLogs_2_list{list: &list}) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.State")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TransactionLogs")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.State does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TransactionLogs does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_State) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_TransactionLogs) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.State", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.TransactionLogs", d.FullName())) } panic("unreachable") } @@ -4144,7 +5188,7 @@ func (x *fastReflection_State) WhichOneof(d protoreflect.OneofDescriptor) protor // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_State) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_TransactionLogs) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -4155,7 +5199,7 @@ func (x *fastReflection_State) GetUnknown() protoreflect.RawFields { // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_State) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_TransactionLogs) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -4167,7 +5211,7 @@ func (x *fastReflection_State) SetUnknown(fields protoreflect.RawFields) { // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_State) IsValid() bool { +func (x *fastReflection_TransactionLogs) IsValid() bool { return x != nil } @@ -4177,9 +5221,9 @@ func (x *fastReflection_State) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_State) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_TransactionLogs) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*State) + x := input.Message.Interface().(*TransactionLogs) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -4191,13 +5235,15 @@ func (x *fastReflection_State) ProtoMethods() *protoiface.Methods { var n int var l int _ = l - l = len(x.Key) + l = len(x.Hash) if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } - l = len(x.Value) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) + if len(x.Logs) > 0 { + for _, e := range x.Logs { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } } if x.unknownFields != nil { n += len(x.unknownFields) @@ -4209,7 +5255,7 @@ func (x *fastReflection_State) ProtoMethods() *protoiface.Methods { } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*State) + x := input.Message.Interface().(*TransactionLogs) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -4228,17 +5274,26 @@ func (x *fastReflection_State) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if len(x.Value) > 0 { - i -= len(x.Value) - copy(dAtA[i:], x.Value) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Value))) - i-- - dAtA[i] = 0x12 + if len(x.Logs) > 0 { + for iNdEx := len(x.Logs) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Logs[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } } - if len(x.Key) > 0 { - i -= len(x.Key) - copy(dAtA[i:], x.Key) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Key))) + if len(x.Hash) > 0 { + i -= len(x.Hash) + copy(dAtA[i:], x.Hash) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Hash))) i-- dAtA[i] = 0xa } @@ -4253,7 +5308,7 @@ func (x *fastReflection_State) ProtoMethods() *protoiface.Methods { }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*State) + x := input.Message.Interface().(*TransactionLogs) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -4285,15 +5340,15 @@ func (x *fastReflection_State) ProtoMethods() *protoiface.Methods { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: State: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TransactionLogs: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: State: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TransactionLogs: 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 Key", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4321,13 +5376,13 @@ func (x *fastReflection_State) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.Key = string(dAtA[iNdEx:postIndex]) + x.Hash = 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 Value", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Logs", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -4337,23 +5392,25 @@ func (x *fastReflection_State) ProtoMethods() *protoiface.Methods { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen 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.Value = string(dAtA[iNdEx:postIndex]) + x.Logs = append(x.Logs, &Log{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Logs[len(x.Logs)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } iNdEx = postIndex default: iNdEx = preIndex @@ -4390,80 +5447,91 @@ func (x *fastReflection_State) ProtoMethods() *protoiface.Methods { } } -var _ protoreflect.List = (*_TransactionLogs_2_list)(nil) +var _ protoreflect.List = (*_Log_2_list)(nil) -type _TransactionLogs_2_list struct { - list *[]*Log +type _Log_2_list struct { + list *[]string } -func (x *_TransactionLogs_2_list) Len() int { +func (x *_Log_2_list) Len() int { if x.list == nil { return 0 } return len(*x.list) } -func (x *_TransactionLogs_2_list) Get(i int) protoreflect.Value { - return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +func (x *_Log_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfString((*x.list)[i]) } -func (x *_TransactionLogs_2_list) Set(i int, value protoreflect.Value) { - valueUnwrapped := value.Message() - concreteValue := valueUnwrapped.Interface().(*Log) +func (x *_Log_2_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped (*x.list)[i] = concreteValue } -func (x *_TransactionLogs_2_list) Append(value protoreflect.Value) { - valueUnwrapped := value.Message() - concreteValue := valueUnwrapped.Interface().(*Log) +func (x *_Log_2_list) Append(value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped *x.list = append(*x.list, concreteValue) } -func (x *_TransactionLogs_2_list) AppendMutable() protoreflect.Value { - v := new(Log) - *x.list = append(*x.list, v) - return protoreflect.ValueOfMessage(v.ProtoReflect()) +func (x *_Log_2_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message Log at list field Topics as it is not of Message kind")) } -func (x *_TransactionLogs_2_list) Truncate(n int) { - for i := n; i < len(*x.list); i++ { - (*x.list)[i] = nil - } +func (x *_Log_2_list) Truncate(n int) { *x.list = (*x.list)[:n] } -func (x *_TransactionLogs_2_list) NewElement() protoreflect.Value { - v := new(Log) - return protoreflect.ValueOfMessage(v.ProtoReflect()) +func (x *_Log_2_list) NewElement() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) } -func (x *_TransactionLogs_2_list) IsValid() bool { +func (x *_Log_2_list) IsValid() bool { return x.list != nil } var ( - md_TransactionLogs protoreflect.MessageDescriptor - fd_TransactionLogs_hash protoreflect.FieldDescriptor - fd_TransactionLogs_logs protoreflect.FieldDescriptor + md_Log protoreflect.MessageDescriptor + fd_Log_address protoreflect.FieldDescriptor + fd_Log_topics protoreflect.FieldDescriptor + fd_Log_data protoreflect.FieldDescriptor + fd_Log_block_number protoreflect.FieldDescriptor + fd_Log_tx_hash protoreflect.FieldDescriptor + fd_Log_tx_index protoreflect.FieldDescriptor + fd_Log_block_hash protoreflect.FieldDescriptor + fd_Log_index protoreflect.FieldDescriptor + fd_Log_removed protoreflect.FieldDescriptor + fd_Log_block_timestamp protoreflect.FieldDescriptor ) func init() { file_cosmos_evm_vm_v1_evm_proto_init() - md_TransactionLogs = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("TransactionLogs") - fd_TransactionLogs_hash = md_TransactionLogs.Fields().ByName("hash") - fd_TransactionLogs_logs = md_TransactionLogs.Fields().ByName("logs") + md_Log = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("Log") + fd_Log_address = md_Log.Fields().ByName("address") + fd_Log_topics = md_Log.Fields().ByName("topics") + fd_Log_data = md_Log.Fields().ByName("data") + fd_Log_block_number = md_Log.Fields().ByName("block_number") + fd_Log_tx_hash = md_Log.Fields().ByName("tx_hash") + fd_Log_tx_index = md_Log.Fields().ByName("tx_index") + fd_Log_block_hash = md_Log.Fields().ByName("block_hash") + fd_Log_index = md_Log.Fields().ByName("index") + fd_Log_removed = md_Log.Fields().ByName("removed") + fd_Log_block_timestamp = md_Log.Fields().ByName("block_timestamp") } -var _ protoreflect.Message = (*fastReflection_TransactionLogs)(nil) +var _ protoreflect.Message = (*fastReflection_Log)(nil) -type fastReflection_TransactionLogs TransactionLogs +type fastReflection_Log Log -func (x *TransactionLogs) ProtoReflect() protoreflect.Message { - return (*fastReflection_TransactionLogs)(x) +func (x *Log) ProtoReflect() protoreflect.Message { + return (*fastReflection_Log)(x) } -func (x *TransactionLogs) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[5] +func (x *Log) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4474,43 +5542,43 @@ func (x *TransactionLogs) slowProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -var _fastReflection_TransactionLogs_messageType fastReflection_TransactionLogs_messageType -var _ protoreflect.MessageType = fastReflection_TransactionLogs_messageType{} +var _fastReflection_Log_messageType fastReflection_Log_messageType +var _ protoreflect.MessageType = fastReflection_Log_messageType{} -type fastReflection_TransactionLogs_messageType struct{} +type fastReflection_Log_messageType struct{} -func (x fastReflection_TransactionLogs_messageType) Zero() protoreflect.Message { - return (*fastReflection_TransactionLogs)(nil) +func (x fastReflection_Log_messageType) Zero() protoreflect.Message { + return (*fastReflection_Log)(nil) } -func (x fastReflection_TransactionLogs_messageType) New() protoreflect.Message { - return new(fastReflection_TransactionLogs) +func (x fastReflection_Log_messageType) New() protoreflect.Message { + return new(fastReflection_Log) } -func (x fastReflection_TransactionLogs_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_TransactionLogs +func (x fastReflection_Log_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Log } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_TransactionLogs) Descriptor() protoreflect.MessageDescriptor { - return md_TransactionLogs +func (x *fastReflection_Log) Descriptor() protoreflect.MessageDescriptor { + return md_Log } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_TransactionLogs) Type() protoreflect.MessageType { - return _fastReflection_TransactionLogs_messageType +func (x *fastReflection_Log) Type() protoreflect.MessageType { + return _fastReflection_Log_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_TransactionLogs) New() protoreflect.Message { - return new(fastReflection_TransactionLogs) +func (x *fastReflection_Log) New() protoreflect.Message { + return new(fastReflection_Log) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_TransactionLogs) Interface() protoreflect.ProtoMessage { - return (*TransactionLogs)(x) +func (x *fastReflection_Log) Interface() protoreflect.ProtoMessage { + return (*Log)(x) } // Range iterates over every populated field in an undefined order, @@ -4518,16 +5586,64 @@ func (x *fastReflection_TransactionLogs) Interface() protoreflect.ProtoMessage { // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_TransactionLogs) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if x.Hash != "" { - value := protoreflect.ValueOfString(x.Hash) - if !f(fd_TransactionLogs_hash, value) { +func (x *fastReflection_Log) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Address != "" { + value := protoreflect.ValueOfString(x.Address) + if !f(fd_Log_address, value) { return } } - if len(x.Logs) != 0 { - value := protoreflect.ValueOfList(&_TransactionLogs_2_list{list: &x.Logs}) - if !f(fd_TransactionLogs_logs, value) { + if len(x.Topics) != 0 { + value := protoreflect.ValueOfList(&_Log_2_list{list: &x.Topics}) + if !f(fd_Log_topics, value) { + return + } + } + if len(x.Data) != 0 { + value := protoreflect.ValueOfBytes(x.Data) + if !f(fd_Log_data, value) { + return + } + } + if x.BlockNumber != uint64(0) { + value := protoreflect.ValueOfUint64(x.BlockNumber) + if !f(fd_Log_block_number, value) { + return + } + } + if x.TxHash != "" { + value := protoreflect.ValueOfString(x.TxHash) + if !f(fd_Log_tx_hash, value) { + return + } + } + if x.TxIndex != uint64(0) { + value := protoreflect.ValueOfUint64(x.TxIndex) + if !f(fd_Log_tx_index, value) { + return + } + } + if x.BlockHash != "" { + value := protoreflect.ValueOfString(x.BlockHash) + if !f(fd_Log_block_hash, value) { + return + } + } + if x.Index != uint64(0) { + value := protoreflect.ValueOfUint64(x.Index) + if !f(fd_Log_index, value) { + return + } + } + if x.Removed != false { + value := protoreflect.ValueOfBool(x.Removed) + if !f(fd_Log_removed, value) { + return + } + } + if x.BlockTimestamp != uint64(0) { + value := protoreflect.ValueOfUint64(x.BlockTimestamp) + if !f(fd_Log_block_timestamp, value) { return } } @@ -4544,17 +5660,33 @@ func (x *fastReflection_TransactionLogs) Range(f func(protoreflect.FieldDescript // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_TransactionLogs) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_Log) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "cosmos.evm.vm.v1.TransactionLogs.hash": - return x.Hash != "" - case "cosmos.evm.vm.v1.TransactionLogs.logs": - return len(x.Logs) != 0 + case "cosmos.evm.vm.v1.Log.address": + return x.Address != "" + case "cosmos.evm.vm.v1.Log.topics": + return len(x.Topics) != 0 + case "cosmos.evm.vm.v1.Log.data": + return len(x.Data) != 0 + case "cosmos.evm.vm.v1.Log.block_number": + return x.BlockNumber != uint64(0) + case "cosmos.evm.vm.v1.Log.tx_hash": + return x.TxHash != "" + case "cosmos.evm.vm.v1.Log.tx_index": + return x.TxIndex != uint64(0) + case "cosmos.evm.vm.v1.Log.block_hash": + return x.BlockHash != "" + case "cosmos.evm.vm.v1.Log.index": + return x.Index != uint64(0) + case "cosmos.evm.vm.v1.Log.removed": + return x.Removed != false + case "cosmos.evm.vm.v1.Log.block_timestamp": + return x.BlockTimestamp != uint64(0) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TransactionLogs")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Log")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TransactionLogs does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.Log does not contain field %s", fd.FullName())) } } @@ -4564,17 +5696,33 @@ func (x *fastReflection_TransactionLogs) Has(fd protoreflect.FieldDescriptor) bo // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_TransactionLogs) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_Log) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "cosmos.evm.vm.v1.TransactionLogs.hash": - x.Hash = "" - case "cosmos.evm.vm.v1.TransactionLogs.logs": - x.Logs = nil + case "cosmos.evm.vm.v1.Log.address": + x.Address = "" + case "cosmos.evm.vm.v1.Log.topics": + x.Topics = nil + case "cosmos.evm.vm.v1.Log.data": + x.Data = nil + case "cosmos.evm.vm.v1.Log.block_number": + x.BlockNumber = uint64(0) + case "cosmos.evm.vm.v1.Log.tx_hash": + x.TxHash = "" + case "cosmos.evm.vm.v1.Log.tx_index": + x.TxIndex = uint64(0) + case "cosmos.evm.vm.v1.Log.block_hash": + x.BlockHash = "" + case "cosmos.evm.vm.v1.Log.index": + x.Index = uint64(0) + case "cosmos.evm.vm.v1.Log.removed": + x.Removed = false + case "cosmos.evm.vm.v1.Log.block_timestamp": + x.BlockTimestamp = uint64(0) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TransactionLogs")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Log")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TransactionLogs does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.Log does not contain field %s", fd.FullName())) } } @@ -4584,22 +5732,46 @@ func (x *fastReflection_TransactionLogs) Clear(fd protoreflect.FieldDescriptor) // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_TransactionLogs) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_Log) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "cosmos.evm.vm.v1.TransactionLogs.hash": - value := x.Hash + case "cosmos.evm.vm.v1.Log.address": + value := x.Address return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.TransactionLogs.logs": - if len(x.Logs) == 0 { - return protoreflect.ValueOfList(&_TransactionLogs_2_list{}) + case "cosmos.evm.vm.v1.Log.topics": + if len(x.Topics) == 0 { + return protoreflect.ValueOfList(&_Log_2_list{}) } - listValue := &_TransactionLogs_2_list{list: &x.Logs} + listValue := &_Log_2_list{list: &x.Topics} return protoreflect.ValueOfList(listValue) + case "cosmos.evm.vm.v1.Log.data": + value := x.Data + return protoreflect.ValueOfBytes(value) + case "cosmos.evm.vm.v1.Log.block_number": + value := x.BlockNumber + return protoreflect.ValueOfUint64(value) + case "cosmos.evm.vm.v1.Log.tx_hash": + value := x.TxHash + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.Log.tx_index": + value := x.TxIndex + return protoreflect.ValueOfUint64(value) + case "cosmos.evm.vm.v1.Log.block_hash": + value := x.BlockHash + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.Log.index": + value := x.Index + return protoreflect.ValueOfUint64(value) + case "cosmos.evm.vm.v1.Log.removed": + value := x.Removed + return protoreflect.ValueOfBool(value) + case "cosmos.evm.vm.v1.Log.block_timestamp": + value := x.BlockTimestamp + return protoreflect.ValueOfUint64(value) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TransactionLogs")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Log")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TransactionLogs does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.Log does not contain field %s", descriptor.FullName())) } } @@ -4613,19 +5785,35 @@ func (x *fastReflection_TransactionLogs) Get(descriptor protoreflect.FieldDescri // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_TransactionLogs) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_Log) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "cosmos.evm.vm.v1.TransactionLogs.hash": - x.Hash = value.Interface().(string) - case "cosmos.evm.vm.v1.TransactionLogs.logs": + case "cosmos.evm.vm.v1.Log.address": + x.Address = value.Interface().(string) + case "cosmos.evm.vm.v1.Log.topics": lv := value.List() - clv := lv.(*_TransactionLogs_2_list) - x.Logs = *clv.list + clv := lv.(*_Log_2_list) + x.Topics = *clv.list + case "cosmos.evm.vm.v1.Log.data": + x.Data = value.Bytes() + case "cosmos.evm.vm.v1.Log.block_number": + x.BlockNumber = value.Uint() + case "cosmos.evm.vm.v1.Log.tx_hash": + x.TxHash = value.Interface().(string) + case "cosmos.evm.vm.v1.Log.tx_index": + x.TxIndex = value.Uint() + case "cosmos.evm.vm.v1.Log.block_hash": + x.BlockHash = value.Interface().(string) + case "cosmos.evm.vm.v1.Log.index": + x.Index = value.Uint() + case "cosmos.evm.vm.v1.Log.removed": + x.Removed = value.Bool() + case "cosmos.evm.vm.v1.Log.block_timestamp": + x.BlockTimestamp = value.Uint() default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TransactionLogs")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Log")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TransactionLogs does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.Log does not contain field %s", fd.FullName())) } } @@ -4639,49 +5827,81 @@ func (x *fastReflection_TransactionLogs) Set(fd protoreflect.FieldDescriptor, va // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_TransactionLogs) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_Log) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.TransactionLogs.logs": - if x.Logs == nil { - x.Logs = []*Log{} + case "cosmos.evm.vm.v1.Log.topics": + if x.Topics == nil { + x.Topics = []string{} } - value := &_TransactionLogs_2_list{list: &x.Logs} + value := &_Log_2_list{list: &x.Topics} return protoreflect.ValueOfList(value) - case "cosmos.evm.vm.v1.TransactionLogs.hash": - panic(fmt.Errorf("field hash of message cosmos.evm.vm.v1.TransactionLogs is not mutable")) + case "cosmos.evm.vm.v1.Log.address": + panic(fmt.Errorf("field address of message cosmos.evm.vm.v1.Log is not mutable")) + case "cosmos.evm.vm.v1.Log.data": + panic(fmt.Errorf("field data of message cosmos.evm.vm.v1.Log is not mutable")) + case "cosmos.evm.vm.v1.Log.block_number": + panic(fmt.Errorf("field block_number of message cosmos.evm.vm.v1.Log is not mutable")) + case "cosmos.evm.vm.v1.Log.tx_hash": + panic(fmt.Errorf("field tx_hash of message cosmos.evm.vm.v1.Log is not mutable")) + case "cosmos.evm.vm.v1.Log.tx_index": + panic(fmt.Errorf("field tx_index of message cosmos.evm.vm.v1.Log is not mutable")) + case "cosmos.evm.vm.v1.Log.block_hash": + panic(fmt.Errorf("field block_hash of message cosmos.evm.vm.v1.Log is not mutable")) + case "cosmos.evm.vm.v1.Log.index": + panic(fmt.Errorf("field index of message cosmos.evm.vm.v1.Log is not mutable")) + case "cosmos.evm.vm.v1.Log.removed": + panic(fmt.Errorf("field removed of message cosmos.evm.vm.v1.Log is not mutable")) + case "cosmos.evm.vm.v1.Log.block_timestamp": + panic(fmt.Errorf("field block_timestamp of message cosmos.evm.vm.v1.Log is not mutable")) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TransactionLogs")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Log")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TransactionLogs does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.Log does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_TransactionLogs) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_Log) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.TransactionLogs.hash": + case "cosmos.evm.vm.v1.Log.address": return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.TransactionLogs.logs": - list := []*Log{} - return protoreflect.ValueOfList(&_TransactionLogs_2_list{list: &list}) + case "cosmos.evm.vm.v1.Log.topics": + list := []string{} + return protoreflect.ValueOfList(&_Log_2_list{list: &list}) + case "cosmos.evm.vm.v1.Log.data": + return protoreflect.ValueOfBytes(nil) + case "cosmos.evm.vm.v1.Log.block_number": + return protoreflect.ValueOfUint64(uint64(0)) + case "cosmos.evm.vm.v1.Log.tx_hash": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.Log.tx_index": + return protoreflect.ValueOfUint64(uint64(0)) + case "cosmos.evm.vm.v1.Log.block_hash": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.Log.index": + return protoreflect.ValueOfUint64(uint64(0)) + case "cosmos.evm.vm.v1.Log.removed": + return protoreflect.ValueOfBool(false) + case "cosmos.evm.vm.v1.Log.block_timestamp": + return protoreflect.ValueOfUint64(uint64(0)) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TransactionLogs")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Log")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TransactionLogs does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.Log does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_TransactionLogs) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_Log) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.TransactionLogs", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.Log", d.FullName())) } panic("unreachable") } @@ -4689,7 +5909,7 @@ func (x *fastReflection_TransactionLogs) WhichOneof(d protoreflect.OneofDescript // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_TransactionLogs) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_Log) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -4700,7 +5920,7 @@ func (x *fastReflection_TransactionLogs) GetUnknown() protoreflect.RawFields { // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_TransactionLogs) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_Log) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -4712,7 +5932,7 @@ func (x *fastReflection_TransactionLogs) SetUnknown(fields protoreflect.RawField // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_TransactionLogs) IsValid() bool { +func (x *fastReflection_Log) IsValid() bool { return x != nil } @@ -4722,9 +5942,9 @@ func (x *fastReflection_TransactionLogs) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_TransactionLogs) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_Log) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*TransactionLogs) + x := input.Message.Interface().(*Log) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -4736,16 +5956,43 @@ func (x *fastReflection_TransactionLogs) ProtoMethods() *protoiface.Methods { var n int var l int _ = l - l = len(x.Hash) + l = len(x.Address) if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } - if len(x.Logs) > 0 { - for _, e := range x.Logs { - l = options.Size(e) + if len(x.Topics) > 0 { + for _, s := range x.Topics { + l = len(s) n += 1 + l + runtime.Sov(uint64(l)) } } + l = len(x.Data) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.BlockNumber != 0 { + n += 1 + runtime.Sov(uint64(x.BlockNumber)) + } + l = len(x.TxHash) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.TxIndex != 0 { + n += 1 + runtime.Sov(uint64(x.TxIndex)) + } + l = len(x.BlockHash) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Index != 0 { + n += 1 + runtime.Sov(uint64(x.Index)) + } + if x.Removed { + n += 2 + } + if x.BlockTimestamp != 0 { + n += 1 + runtime.Sov(uint64(x.BlockTimestamp)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -4756,7 +6003,7 @@ func (x *fastReflection_TransactionLogs) ProtoMethods() *protoiface.Methods { } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*TransactionLogs) + x := input.Message.Interface().(*Log) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -4775,26 +6022,70 @@ func (x *fastReflection_TransactionLogs) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if len(x.Logs) > 0 { - for iNdEx := len(x.Logs) - 1; iNdEx >= 0; iNdEx-- { - encoded, err := options.Marshal(x.Logs[iNdEx]) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + if x.BlockTimestamp != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.BlockTimestamp)) + i-- + dAtA[i] = 0x50 + } + if x.Removed { + i-- + if x.Removed { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x48 + } + if x.Index != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Index)) + i-- + dAtA[i] = 0x40 + } + if len(x.BlockHash) > 0 { + i -= len(x.BlockHash) + copy(dAtA[i:], x.BlockHash) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.BlockHash))) + i-- + dAtA[i] = 0x3a + } + if x.TxIndex != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.TxIndex)) + i-- + dAtA[i] = 0x30 + } + if len(x.TxHash) > 0 { + i -= len(x.TxHash) + copy(dAtA[i:], x.TxHash) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.TxHash))) + i-- + dAtA[i] = 0x2a + } + if x.BlockNumber != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.BlockNumber)) + i-- + dAtA[i] = 0x20 + } + if len(x.Data) > 0 { + i -= len(x.Data) + copy(dAtA[i:], x.Data) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Data))) + i-- + dAtA[i] = 0x1a + } + if len(x.Topics) > 0 { + for iNdEx := len(x.Topics) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.Topics[iNdEx]) + copy(dAtA[i:], x.Topics[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Topics[iNdEx]))) i-- dAtA[i] = 0x12 } } - if len(x.Hash) > 0 { - i -= len(x.Hash) - copy(dAtA[i:], x.Hash) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Hash))) + if len(x.Address) > 0 { + i -= len(x.Address) + copy(dAtA[i:], x.Address) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Address))) i-- dAtA[i] = 0xa } @@ -4809,7 +6100,7 @@ func (x *fastReflection_TransactionLogs) ProtoMethods() *protoiface.Methods { }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*TransactionLogs) + x := input.Message.Interface().(*Log) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -4828,28 +6119,145 @@ func (x *fastReflection_TransactionLogs) ProtoMethods() *protoiface.Methods { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow } - if iNdEx >= l { + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Log: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Log: 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 Address", 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.Address = 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 Topics", 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.Topics = append(x.Topics, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + 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++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + byteLen + 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 } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + x.Data = append(x.Data[:0], dAtA[iNdEx:postIndex]...) + if x.Data == nil { + x.Data = []byte{} } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TransactionLogs: wiretype end group for non-group") - } - if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TransactionLogs: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 4: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BlockNumber", wireType) + } + x.BlockNumber = 0 + 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++ + x.BlockNumber |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TxHash", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4877,13 +6285,32 @@ func (x *fastReflection_TransactionLogs) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.Hash = string(dAtA[iNdEx:postIndex]) + x.TxHash = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 6: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TxIndex", wireType) + } + x.TxIndex = 0 + 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++ + x.TxIndex |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Logs", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BlockHash", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -4893,26 +6320,82 @@ func (x *fastReflection_TransactionLogs) ProtoMethods() *protoiface.Methods { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength } - postIndex := iNdEx + msglen + 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.Logs = append(x.Logs, &Log{}) - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Logs[len(x.Logs)-1]); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } + x.BlockHash = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 8: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + } + x.Index = 0 + 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++ + x.Index |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Removed", wireType) + } + var v int + 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++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Removed = bool(v != 0) + case 10: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BlockTimestamp", wireType) + } + x.BlockTimestamp = 0 + 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++ + x.BlockTimestamp |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -4948,91 +6431,37 @@ func (x *fastReflection_TransactionLogs) ProtoMethods() *protoiface.Methods { } } -var _ protoreflect.List = (*_Log_2_list)(nil) - -type _Log_2_list struct { - list *[]string -} - -func (x *_Log_2_list) Len() int { - if x.list == nil { - return 0 - } - return len(*x.list) -} - -func (x *_Log_2_list) Get(i int) protoreflect.Value { - return protoreflect.ValueOfString((*x.list)[i]) -} - -func (x *_Log_2_list) Set(i int, value protoreflect.Value) { - valueUnwrapped := value.String() - concreteValue := valueUnwrapped - (*x.list)[i] = concreteValue -} - -func (x *_Log_2_list) Append(value protoreflect.Value) { - valueUnwrapped := value.String() - concreteValue := valueUnwrapped - *x.list = append(*x.list, concreteValue) -} - -func (x *_Log_2_list) AppendMutable() protoreflect.Value { - panic(fmt.Errorf("AppendMutable can not be called on message Log at list field Topics as it is not of Message kind")) -} - -func (x *_Log_2_list) Truncate(n int) { - *x.list = (*x.list)[:n] -} - -func (x *_Log_2_list) NewElement() protoreflect.Value { - v := "" - return protoreflect.ValueOfString(v) -} - -func (x *_Log_2_list) IsValid() bool { - return x.list != nil -} - var ( - md_Log protoreflect.MessageDescriptor - fd_Log_address protoreflect.FieldDescriptor - fd_Log_topics protoreflect.FieldDescriptor - fd_Log_data protoreflect.FieldDescriptor - fd_Log_block_number protoreflect.FieldDescriptor - fd_Log_tx_hash protoreflect.FieldDescriptor - fd_Log_tx_index protoreflect.FieldDescriptor - fd_Log_block_hash protoreflect.FieldDescriptor - fd_Log_index protoreflect.FieldDescriptor - fd_Log_removed protoreflect.FieldDescriptor - fd_Log_block_timestamp protoreflect.FieldDescriptor + md_TxResult protoreflect.MessageDescriptor + fd_TxResult_contract_address protoreflect.FieldDescriptor + fd_TxResult_bloom protoreflect.FieldDescriptor + fd_TxResult_tx_logs protoreflect.FieldDescriptor + fd_TxResult_ret protoreflect.FieldDescriptor + fd_TxResult_reverted protoreflect.FieldDescriptor + fd_TxResult_gas_used protoreflect.FieldDescriptor ) func init() { file_cosmos_evm_vm_v1_evm_proto_init() - md_Log = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("Log") - fd_Log_address = md_Log.Fields().ByName("address") - fd_Log_topics = md_Log.Fields().ByName("topics") - fd_Log_data = md_Log.Fields().ByName("data") - fd_Log_block_number = md_Log.Fields().ByName("block_number") - fd_Log_tx_hash = md_Log.Fields().ByName("tx_hash") - fd_Log_tx_index = md_Log.Fields().ByName("tx_index") - fd_Log_block_hash = md_Log.Fields().ByName("block_hash") - fd_Log_index = md_Log.Fields().ByName("index") - fd_Log_removed = md_Log.Fields().ByName("removed") - fd_Log_block_timestamp = md_Log.Fields().ByName("block_timestamp") + md_TxResult = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("TxResult") + fd_TxResult_contract_address = md_TxResult.Fields().ByName("contract_address") + fd_TxResult_bloom = md_TxResult.Fields().ByName("bloom") + fd_TxResult_tx_logs = md_TxResult.Fields().ByName("tx_logs") + fd_TxResult_ret = md_TxResult.Fields().ByName("ret") + fd_TxResult_reverted = md_TxResult.Fields().ByName("reverted") + fd_TxResult_gas_used = md_TxResult.Fields().ByName("gas_used") } -var _ protoreflect.Message = (*fastReflection_Log)(nil) +var _ protoreflect.Message = (*fastReflection_TxResult)(nil) -type fastReflection_Log Log +type fastReflection_TxResult TxResult -func (x *Log) ProtoReflect() protoreflect.Message { - return (*fastReflection_Log)(x) +func (x *TxResult) ProtoReflect() protoreflect.Message { + return (*fastReflection_TxResult)(x) } -func (x *Log) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[6] +func (x *TxResult) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5043,43 +6472,43 @@ func (x *Log) slowProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -var _fastReflection_Log_messageType fastReflection_Log_messageType -var _ protoreflect.MessageType = fastReflection_Log_messageType{} +var _fastReflection_TxResult_messageType fastReflection_TxResult_messageType +var _ protoreflect.MessageType = fastReflection_TxResult_messageType{} -type fastReflection_Log_messageType struct{} +type fastReflection_TxResult_messageType struct{} -func (x fastReflection_Log_messageType) Zero() protoreflect.Message { - return (*fastReflection_Log)(nil) +func (x fastReflection_TxResult_messageType) Zero() protoreflect.Message { + return (*fastReflection_TxResult)(nil) } -func (x fastReflection_Log_messageType) New() protoreflect.Message { - return new(fastReflection_Log) +func (x fastReflection_TxResult_messageType) New() protoreflect.Message { + return new(fastReflection_TxResult) } -func (x fastReflection_Log_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_Log +func (x fastReflection_TxResult_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_TxResult } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_Log) Descriptor() protoreflect.MessageDescriptor { - return md_Log +func (x *fastReflection_TxResult) Descriptor() protoreflect.MessageDescriptor { + return md_TxResult } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_Log) Type() protoreflect.MessageType { - return _fastReflection_Log_messageType +func (x *fastReflection_TxResult) Type() protoreflect.MessageType { + return _fastReflection_TxResult_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_Log) New() protoreflect.Message { - return new(fastReflection_Log) +func (x *fastReflection_TxResult) New() protoreflect.Message { + return new(fastReflection_TxResult) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_Log) Interface() protoreflect.ProtoMessage { - return (*Log)(x) +func (x *fastReflection_TxResult) Interface() protoreflect.ProtoMessage { + return (*TxResult)(x) } // Range iterates over every populated field in an undefined order, @@ -5087,64 +6516,40 @@ func (x *fastReflection_Log) Interface() protoreflect.ProtoMessage { // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_Log) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if x.Address != "" { - value := protoreflect.ValueOfString(x.Address) - if !f(fd_Log_address, value) { - return - } - } - if len(x.Topics) != 0 { - value := protoreflect.ValueOfList(&_Log_2_list{list: &x.Topics}) - if !f(fd_Log_topics, value) { - return - } - } - if len(x.Data) != 0 { - value := protoreflect.ValueOfBytes(x.Data) - if !f(fd_Log_data, value) { - return - } - } - if x.BlockNumber != uint64(0) { - value := protoreflect.ValueOfUint64(x.BlockNumber) - if !f(fd_Log_block_number, value) { - return - } - } - if x.TxHash != "" { - value := protoreflect.ValueOfString(x.TxHash) - if !f(fd_Log_tx_hash, value) { +func (x *fastReflection_TxResult) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.ContractAddress != "" { + value := protoreflect.ValueOfString(x.ContractAddress) + if !f(fd_TxResult_contract_address, value) { return } } - if x.TxIndex != uint64(0) { - value := protoreflect.ValueOfUint64(x.TxIndex) - if !f(fd_Log_tx_index, value) { + if len(x.Bloom) != 0 { + value := protoreflect.ValueOfBytes(x.Bloom) + if !f(fd_TxResult_bloom, value) { return } } - if x.BlockHash != "" { - value := protoreflect.ValueOfString(x.BlockHash) - if !f(fd_Log_block_hash, value) { + if x.TxLogs != nil { + value := protoreflect.ValueOfMessage(x.TxLogs.ProtoReflect()) + if !f(fd_TxResult_tx_logs, value) { return } } - if x.Index != uint64(0) { - value := protoreflect.ValueOfUint64(x.Index) - if !f(fd_Log_index, value) { + if len(x.Ret) != 0 { + value := protoreflect.ValueOfBytes(x.Ret) + if !f(fd_TxResult_ret, value) { return } } - if x.Removed != false { - value := protoreflect.ValueOfBool(x.Removed) - if !f(fd_Log_removed, value) { + if x.Reverted != false { + value := protoreflect.ValueOfBool(x.Reverted) + if !f(fd_TxResult_reverted, value) { return } } - if x.BlockTimestamp != uint64(0) { - value := protoreflect.ValueOfUint64(x.BlockTimestamp) - if !f(fd_Log_block_timestamp, value) { + if x.GasUsed != uint64(0) { + value := protoreflect.ValueOfUint64(x.GasUsed) + if !f(fd_TxResult_gas_used, value) { return } } @@ -5161,33 +6566,25 @@ func (x *fastReflection_Log) Range(f func(protoreflect.FieldDescriptor, protoref // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_Log) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_TxResult) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "cosmos.evm.vm.v1.Log.address": - return x.Address != "" - case "cosmos.evm.vm.v1.Log.topics": - return len(x.Topics) != 0 - case "cosmos.evm.vm.v1.Log.data": - return len(x.Data) != 0 - case "cosmos.evm.vm.v1.Log.block_number": - return x.BlockNumber != uint64(0) - case "cosmos.evm.vm.v1.Log.tx_hash": - return x.TxHash != "" - case "cosmos.evm.vm.v1.Log.tx_index": - return x.TxIndex != uint64(0) - case "cosmos.evm.vm.v1.Log.block_hash": - return x.BlockHash != "" - case "cosmos.evm.vm.v1.Log.index": - return x.Index != uint64(0) - case "cosmos.evm.vm.v1.Log.removed": - return x.Removed != false - case "cosmos.evm.vm.v1.Log.block_timestamp": - return x.BlockTimestamp != uint64(0) + case "cosmos.evm.vm.v1.TxResult.contract_address": + return x.ContractAddress != "" + case "cosmos.evm.vm.v1.TxResult.bloom": + return len(x.Bloom) != 0 + case "cosmos.evm.vm.v1.TxResult.tx_logs": + return x.TxLogs != nil + case "cosmos.evm.vm.v1.TxResult.ret": + return len(x.Ret) != 0 + case "cosmos.evm.vm.v1.TxResult.reverted": + return x.Reverted != false + case "cosmos.evm.vm.v1.TxResult.gas_used": + return x.GasUsed != uint64(0) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Log")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TxResult")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.Log does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TxResult does not contain field %s", fd.FullName())) } } @@ -5197,33 +6594,25 @@ func (x *fastReflection_Log) Has(fd protoreflect.FieldDescriptor) bool { // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_Log) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_TxResult) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "cosmos.evm.vm.v1.Log.address": - x.Address = "" - case "cosmos.evm.vm.v1.Log.topics": - x.Topics = nil - case "cosmos.evm.vm.v1.Log.data": - x.Data = nil - case "cosmos.evm.vm.v1.Log.block_number": - x.BlockNumber = uint64(0) - case "cosmos.evm.vm.v1.Log.tx_hash": - x.TxHash = "" - case "cosmos.evm.vm.v1.Log.tx_index": - x.TxIndex = uint64(0) - case "cosmos.evm.vm.v1.Log.block_hash": - x.BlockHash = "" - case "cosmos.evm.vm.v1.Log.index": - x.Index = uint64(0) - case "cosmos.evm.vm.v1.Log.removed": - x.Removed = false - case "cosmos.evm.vm.v1.Log.block_timestamp": - x.BlockTimestamp = uint64(0) + case "cosmos.evm.vm.v1.TxResult.contract_address": + x.ContractAddress = "" + case "cosmos.evm.vm.v1.TxResult.bloom": + x.Bloom = nil + case "cosmos.evm.vm.v1.TxResult.tx_logs": + x.TxLogs = nil + case "cosmos.evm.vm.v1.TxResult.ret": + x.Ret = nil + case "cosmos.evm.vm.v1.TxResult.reverted": + x.Reverted = false + case "cosmos.evm.vm.v1.TxResult.gas_used": + x.GasUsed = uint64(0) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Log")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TxResult")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.Log does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TxResult does not contain field %s", fd.FullName())) } } @@ -5233,46 +6622,31 @@ func (x *fastReflection_Log) Clear(fd protoreflect.FieldDescriptor) { // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_Log) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_TxResult) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "cosmos.evm.vm.v1.Log.address": - value := x.Address + case "cosmos.evm.vm.v1.TxResult.contract_address": + value := x.ContractAddress return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.Log.topics": - if len(x.Topics) == 0 { - return protoreflect.ValueOfList(&_Log_2_list{}) - } - listValue := &_Log_2_list{list: &x.Topics} - return protoreflect.ValueOfList(listValue) - case "cosmos.evm.vm.v1.Log.data": - value := x.Data + case "cosmos.evm.vm.v1.TxResult.bloom": + value := x.Bloom return protoreflect.ValueOfBytes(value) - case "cosmos.evm.vm.v1.Log.block_number": - value := x.BlockNumber - return protoreflect.ValueOfUint64(value) - case "cosmos.evm.vm.v1.Log.tx_hash": - value := x.TxHash - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.Log.tx_index": - value := x.TxIndex - return protoreflect.ValueOfUint64(value) - case "cosmos.evm.vm.v1.Log.block_hash": - value := x.BlockHash - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.Log.index": - value := x.Index - return protoreflect.ValueOfUint64(value) - case "cosmos.evm.vm.v1.Log.removed": - value := x.Removed + case "cosmos.evm.vm.v1.TxResult.tx_logs": + value := x.TxLogs + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.evm.vm.v1.TxResult.ret": + value := x.Ret + return protoreflect.ValueOfBytes(value) + case "cosmos.evm.vm.v1.TxResult.reverted": + value := x.Reverted return protoreflect.ValueOfBool(value) - case "cosmos.evm.vm.v1.Log.block_timestamp": - value := x.BlockTimestamp + case "cosmos.evm.vm.v1.TxResult.gas_used": + value := x.GasUsed return protoreflect.ValueOfUint64(value) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Log")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TxResult")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.Log does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TxResult does not contain field %s", descriptor.FullName())) } } @@ -5286,35 +6660,25 @@ func (x *fastReflection_Log) Get(descriptor protoreflect.FieldDescriptor) protor // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_Log) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_TxResult) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "cosmos.evm.vm.v1.Log.address": - x.Address = value.Interface().(string) - case "cosmos.evm.vm.v1.Log.topics": - lv := value.List() - clv := lv.(*_Log_2_list) - x.Topics = *clv.list - case "cosmos.evm.vm.v1.Log.data": - x.Data = value.Bytes() - case "cosmos.evm.vm.v1.Log.block_number": - x.BlockNumber = value.Uint() - case "cosmos.evm.vm.v1.Log.tx_hash": - x.TxHash = value.Interface().(string) - case "cosmos.evm.vm.v1.Log.tx_index": - x.TxIndex = value.Uint() - case "cosmos.evm.vm.v1.Log.block_hash": - x.BlockHash = value.Interface().(string) - case "cosmos.evm.vm.v1.Log.index": - x.Index = value.Uint() - case "cosmos.evm.vm.v1.Log.removed": - x.Removed = value.Bool() - case "cosmos.evm.vm.v1.Log.block_timestamp": - x.BlockTimestamp = value.Uint() + case "cosmos.evm.vm.v1.TxResult.contract_address": + x.ContractAddress = value.Interface().(string) + case "cosmos.evm.vm.v1.TxResult.bloom": + x.Bloom = value.Bytes() + case "cosmos.evm.vm.v1.TxResult.tx_logs": + x.TxLogs = value.Message().Interface().(*TransactionLogs) + case "cosmos.evm.vm.v1.TxResult.ret": + x.Ret = value.Bytes() + case "cosmos.evm.vm.v1.TxResult.reverted": + x.Reverted = value.Bool() + case "cosmos.evm.vm.v1.TxResult.gas_used": + x.GasUsed = value.Uint() default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Log")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TxResult")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.Log does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TxResult does not contain field %s", fd.FullName())) } } @@ -5328,81 +6692,64 @@ func (x *fastReflection_Log) Set(fd protoreflect.FieldDescriptor, value protoref // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_Log) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_TxResult) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.Log.topics": - if x.Topics == nil { - x.Topics = []string{} + case "cosmos.evm.vm.v1.TxResult.tx_logs": + if x.TxLogs == nil { + x.TxLogs = new(TransactionLogs) } - value := &_Log_2_list{list: &x.Topics} - return protoreflect.ValueOfList(value) - case "cosmos.evm.vm.v1.Log.address": - panic(fmt.Errorf("field address of message cosmos.evm.vm.v1.Log is not mutable")) - case "cosmos.evm.vm.v1.Log.data": - panic(fmt.Errorf("field data of message cosmos.evm.vm.v1.Log is not mutable")) - case "cosmos.evm.vm.v1.Log.block_number": - panic(fmt.Errorf("field block_number of message cosmos.evm.vm.v1.Log is not mutable")) - case "cosmos.evm.vm.v1.Log.tx_hash": - panic(fmt.Errorf("field tx_hash of message cosmos.evm.vm.v1.Log is not mutable")) - case "cosmos.evm.vm.v1.Log.tx_index": - panic(fmt.Errorf("field tx_index of message cosmos.evm.vm.v1.Log is not mutable")) - case "cosmos.evm.vm.v1.Log.block_hash": - panic(fmt.Errorf("field block_hash of message cosmos.evm.vm.v1.Log is not mutable")) - case "cosmos.evm.vm.v1.Log.index": - panic(fmt.Errorf("field index of message cosmos.evm.vm.v1.Log is not mutable")) - case "cosmos.evm.vm.v1.Log.removed": - panic(fmt.Errorf("field removed of message cosmos.evm.vm.v1.Log is not mutable")) - case "cosmos.evm.vm.v1.Log.block_timestamp": - panic(fmt.Errorf("field block_timestamp of message cosmos.evm.vm.v1.Log is not mutable")) + return protoreflect.ValueOfMessage(x.TxLogs.ProtoReflect()) + case "cosmos.evm.vm.v1.TxResult.contract_address": + panic(fmt.Errorf("field contract_address of message cosmos.evm.vm.v1.TxResult is not mutable")) + case "cosmos.evm.vm.v1.TxResult.bloom": + panic(fmt.Errorf("field bloom of message cosmos.evm.vm.v1.TxResult is not mutable")) + case "cosmos.evm.vm.v1.TxResult.ret": + panic(fmt.Errorf("field ret of message cosmos.evm.vm.v1.TxResult is not mutable")) + case "cosmos.evm.vm.v1.TxResult.reverted": + panic(fmt.Errorf("field reverted of message cosmos.evm.vm.v1.TxResult is not mutable")) + case "cosmos.evm.vm.v1.TxResult.gas_used": + panic(fmt.Errorf("field gas_used of message cosmos.evm.vm.v1.TxResult is not mutable")) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Log")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TxResult")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.Log does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TxResult does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_Log) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_TxResult) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.Log.address": + case "cosmos.evm.vm.v1.TxResult.contract_address": return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.Log.topics": - list := []string{} - return protoreflect.ValueOfList(&_Log_2_list{list: &list}) - case "cosmos.evm.vm.v1.Log.data": + case "cosmos.evm.vm.v1.TxResult.bloom": return protoreflect.ValueOfBytes(nil) - case "cosmos.evm.vm.v1.Log.block_number": - return protoreflect.ValueOfUint64(uint64(0)) - case "cosmos.evm.vm.v1.Log.tx_hash": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.Log.tx_index": - return protoreflect.ValueOfUint64(uint64(0)) - case "cosmos.evm.vm.v1.Log.block_hash": - return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.Log.index": - return protoreflect.ValueOfUint64(uint64(0)) - case "cosmos.evm.vm.v1.Log.removed": + case "cosmos.evm.vm.v1.TxResult.tx_logs": + m := new(TransactionLogs) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.evm.vm.v1.TxResult.ret": + return protoreflect.ValueOfBytes(nil) + case "cosmos.evm.vm.v1.TxResult.reverted": return protoreflect.ValueOfBool(false) - case "cosmos.evm.vm.v1.Log.block_timestamp": + case "cosmos.evm.vm.v1.TxResult.gas_used": return protoreflect.ValueOfUint64(uint64(0)) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Log")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TxResult")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.Log does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TxResult does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_Log) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_TxResult) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.Log", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.TxResult", d.FullName())) } panic("unreachable") } @@ -5410,7 +6757,7 @@ func (x *fastReflection_Log) WhichOneof(d protoreflect.OneofDescriptor) protoref // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_Log) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_TxResult) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -5421,7 +6768,7 @@ func (x *fastReflection_Log) GetUnknown() protoreflect.RawFields { // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_Log) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_TxResult) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -5433,7 +6780,7 @@ func (x *fastReflection_Log) SetUnknown(fields protoreflect.RawFields) { // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_Log) IsValid() bool { +func (x *fastReflection_TxResult) IsValid() bool { return x != nil } @@ -5443,9 +6790,9 @@ func (x *fastReflection_Log) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_Log) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_TxResult) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*Log) + x := input.Message.Interface().(*TxResult) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -5457,42 +6804,27 @@ func (x *fastReflection_Log) ProtoMethods() *protoiface.Methods { var n int var l int _ = l - l = len(x.Address) + l = len(x.ContractAddress) if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } - if len(x.Topics) > 0 { - for _, s := range x.Topics { - l = len(s) - n += 1 + l + runtime.Sov(uint64(l)) - } - } - l = len(x.Data) + l = len(x.Bloom) if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } - if x.BlockNumber != 0 { - n += 1 + runtime.Sov(uint64(x.BlockNumber)) - } - l = len(x.TxHash) - if l > 0 { + if x.TxLogs != nil { + l = options.Size(x.TxLogs) n += 1 + l + runtime.Sov(uint64(l)) } - if x.TxIndex != 0 { - n += 1 + runtime.Sov(uint64(x.TxIndex)) - } - l = len(x.BlockHash) + l = len(x.Ret) if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } - if x.Index != 0 { - n += 1 + runtime.Sov(uint64(x.Index)) - } - if x.Removed { + if x.Reverted { n += 2 } - if x.BlockTimestamp != 0 { - n += 1 + runtime.Sov(uint64(x.BlockTimestamp)) + if x.GasUsed != 0 { + n += 1 + runtime.Sov(uint64(x.GasUsed)) } if x.unknownFields != nil { n += len(x.unknownFields) @@ -5504,7 +6836,7 @@ func (x *fastReflection_Log) ProtoMethods() *protoiface.Methods { } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*Log) + x := input.Message.Interface().(*TxResult) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -5523,70 +6855,53 @@ func (x *fastReflection_Log) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if x.BlockTimestamp != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.BlockTimestamp)) + if x.GasUsed != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.GasUsed)) i-- - dAtA[i] = 0x50 + dAtA[i] = 0x30 } - if x.Removed { + if x.Reverted { i-- - if x.Removed { + if x.Reverted { dAtA[i] = 1 } else { dAtA[i] = 0 } i-- - dAtA[i] = 0x48 - } - if x.Index != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.Index)) - i-- - dAtA[i] = 0x40 - } - if len(x.BlockHash) > 0 { - i -= len(x.BlockHash) - copy(dAtA[i:], x.BlockHash) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.BlockHash))) - i-- - dAtA[i] = 0x3a - } - if x.TxIndex != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.TxIndex)) - i-- - dAtA[i] = 0x30 - } - if len(x.TxHash) > 0 { - i -= len(x.TxHash) - copy(dAtA[i:], x.TxHash) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.TxHash))) - i-- - dAtA[i] = 0x2a + dAtA[i] = 0x28 } - if x.BlockNumber != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.BlockNumber)) + if len(x.Ret) > 0 { + i -= len(x.Ret) + copy(dAtA[i:], x.Ret) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Ret))) i-- - dAtA[i] = 0x20 + dAtA[i] = 0x22 } - if len(x.Data) > 0 { - i -= len(x.Data) - copy(dAtA[i:], x.Data) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Data))) + if x.TxLogs != nil { + encoded, err := options.Marshal(x.TxLogs) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- dAtA[i] = 0x1a } - if len(x.Topics) > 0 { - for iNdEx := len(x.Topics) - 1; iNdEx >= 0; iNdEx-- { - i -= len(x.Topics[iNdEx]) - copy(dAtA[i:], x.Topics[iNdEx]) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Topics[iNdEx]))) - i-- - dAtA[i] = 0x12 - } + if len(x.Bloom) > 0 { + i -= len(x.Bloom) + copy(dAtA[i:], x.Bloom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Bloom))) + i-- + dAtA[i] = 0x12 } - if len(x.Address) > 0 { - i -= len(x.Address) - copy(dAtA[i:], x.Address) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Address))) + if len(x.ContractAddress) > 0 { + i -= len(x.ContractAddress) + copy(dAtA[i:], x.ContractAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ContractAddress))) i-- dAtA[i] = 0xa } @@ -5601,7 +6916,7 @@ func (x *fastReflection_Log) ProtoMethods() *protoiface.Methods { }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*Log) + x := input.Message.Interface().(*TxResult) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -5616,64 +6931,32 @@ func (x *fastReflection_Log) ProtoMethods() *protoiface.Methods { for iNdEx < l { preIndex := iNdEx var wire 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++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Log: wiretype end group for non-group") - } - if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Log: 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 Address", 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 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow } - if postIndex > l { + if iNdEx >= l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.Address = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TxResult: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TxResult: 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 Topics", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ContractAddress", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -5701,11 +6984,11 @@ func (x *fastReflection_Log) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.Topics = append(x.Topics, string(dAtA[iNdEx:postIndex])) + x.ContractAddress = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 2: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Bloom", wireType) } var byteLen int for shift := uint(0); ; shift += 7 { @@ -5732,35 +7015,16 @@ func (x *fastReflection_Log) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.Data = append(x.Data[:0], dAtA[iNdEx:postIndex]...) - if x.Data == nil { - x.Data = []byte{} + x.Bloom = append(x.Bloom[:0], dAtA[iNdEx:postIndex]...) + if x.Bloom == nil { + x.Bloom = []byte{} } iNdEx = postIndex - case 4: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BlockNumber", wireType) - } - x.BlockNumber = 0 - 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++ - x.BlockNumber |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 5: + case 3: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TxHash", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TxLogs", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -5770,48 +7034,33 @@ func (x *fastReflection_Log) ProtoMethods() *protoiface.Methods { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen 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.TxHash = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TxIndex", wireType) + if x.TxLogs == nil { + x.TxLogs = &TransactionLogs{} } - x.TxIndex = 0 - 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++ - x.TxIndex |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.TxLogs); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } - case 7: + iNdEx = postIndex + case 4: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BlockHash", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Ret", wireType) } - var stringLen uint64 + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -5821,46 +7070,29 @@ func (x *fastReflection_Log) ProtoMethods() *protoiface.Methods { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if byteLen < 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + byteLen 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.BlockHash = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 8: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) - } - x.Index = 0 - 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++ - x.Index |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + x.Ret = append(x.Ret[:0], dAtA[iNdEx:postIndex]...) + if x.Ret == nil { + x.Ret = []byte{} } - case 9: + iNdEx = postIndex + case 5: if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Removed", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Reverted", wireType) } var v int for shift := uint(0); ; shift += 7 { @@ -5877,12 +7109,12 @@ func (x *fastReflection_Log) ProtoMethods() *protoiface.Methods { break } } - x.Removed = bool(v != 0) - case 10: + x.Reverted = bool(v != 0) + case 6: if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BlockTimestamp", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field GasUsed", wireType) } - x.BlockTimestamp = 0 + x.GasUsed = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -5892,7 +7124,7 @@ func (x *fastReflection_Log) ProtoMethods() *protoiface.Methods { } b := dAtA[iNdEx] iNdEx++ - x.BlockTimestamp |= uint64(b&0x7F) << shift + x.GasUsed |= uint64(b&0x7F) << shift if b < 0x80 { break } @@ -5932,37 +7164,75 @@ func (x *fastReflection_Log) ProtoMethods() *protoiface.Methods { } } +var _ protoreflect.List = (*_AccessTuple_2_list)(nil) + +type _AccessTuple_2_list struct { + list *[]string +} + +func (x *_AccessTuple_2_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_AccessTuple_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfString((*x.list)[i]) +} + +func (x *_AccessTuple_2_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_AccessTuple_2_list) Append(value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_AccessTuple_2_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message AccessTuple at list field StorageKeys as it is not of Message kind")) +} + +func (x *_AccessTuple_2_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_AccessTuple_2_list) NewElement() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) +} + +func (x *_AccessTuple_2_list) IsValid() bool { + return x.list != nil +} + var ( - md_TxResult protoreflect.MessageDescriptor - fd_TxResult_contract_address protoreflect.FieldDescriptor - fd_TxResult_bloom protoreflect.FieldDescriptor - fd_TxResult_tx_logs protoreflect.FieldDescriptor - fd_TxResult_ret protoreflect.FieldDescriptor - fd_TxResult_reverted protoreflect.FieldDescriptor - fd_TxResult_gas_used protoreflect.FieldDescriptor + md_AccessTuple protoreflect.MessageDescriptor + fd_AccessTuple_address protoreflect.FieldDescriptor + fd_AccessTuple_storage_keys protoreflect.FieldDescriptor ) func init() { file_cosmos_evm_vm_v1_evm_proto_init() - md_TxResult = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("TxResult") - fd_TxResult_contract_address = md_TxResult.Fields().ByName("contract_address") - fd_TxResult_bloom = md_TxResult.Fields().ByName("bloom") - fd_TxResult_tx_logs = md_TxResult.Fields().ByName("tx_logs") - fd_TxResult_ret = md_TxResult.Fields().ByName("ret") - fd_TxResult_reverted = md_TxResult.Fields().ByName("reverted") - fd_TxResult_gas_used = md_TxResult.Fields().ByName("gas_used") + md_AccessTuple = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("AccessTuple") + fd_AccessTuple_address = md_AccessTuple.Fields().ByName("address") + fd_AccessTuple_storage_keys = md_AccessTuple.Fields().ByName("storage_keys") } -var _ protoreflect.Message = (*fastReflection_TxResult)(nil) +var _ protoreflect.Message = (*fastReflection_AccessTuple)(nil) -type fastReflection_TxResult TxResult +type fastReflection_AccessTuple AccessTuple -func (x *TxResult) ProtoReflect() protoreflect.Message { - return (*fastReflection_TxResult)(x) +func (x *AccessTuple) ProtoReflect() protoreflect.Message { + return (*fastReflection_AccessTuple)(x) } -func (x *TxResult) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[7] +func (x *AccessTuple) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5973,43 +7243,43 @@ func (x *TxResult) slowProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -var _fastReflection_TxResult_messageType fastReflection_TxResult_messageType -var _ protoreflect.MessageType = fastReflection_TxResult_messageType{} +var _fastReflection_AccessTuple_messageType fastReflection_AccessTuple_messageType +var _ protoreflect.MessageType = fastReflection_AccessTuple_messageType{} -type fastReflection_TxResult_messageType struct{} +type fastReflection_AccessTuple_messageType struct{} -func (x fastReflection_TxResult_messageType) Zero() protoreflect.Message { - return (*fastReflection_TxResult)(nil) +func (x fastReflection_AccessTuple_messageType) Zero() protoreflect.Message { + return (*fastReflection_AccessTuple)(nil) } -func (x fastReflection_TxResult_messageType) New() protoreflect.Message { - return new(fastReflection_TxResult) +func (x fastReflection_AccessTuple_messageType) New() protoreflect.Message { + return new(fastReflection_AccessTuple) } -func (x fastReflection_TxResult_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_TxResult +func (x fastReflection_AccessTuple_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_AccessTuple } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_TxResult) Descriptor() protoreflect.MessageDescriptor { - return md_TxResult +func (x *fastReflection_AccessTuple) Descriptor() protoreflect.MessageDescriptor { + return md_AccessTuple } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_TxResult) Type() protoreflect.MessageType { - return _fastReflection_TxResult_messageType +func (x *fastReflection_AccessTuple) Type() protoreflect.MessageType { + return _fastReflection_AccessTuple_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_TxResult) New() protoreflect.Message { - return new(fastReflection_TxResult) +func (x *fastReflection_AccessTuple) New() protoreflect.Message { + return new(fastReflection_AccessTuple) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_TxResult) Interface() protoreflect.ProtoMessage { - return (*TxResult)(x) +func (x *fastReflection_AccessTuple) Interface() protoreflect.ProtoMessage { + return (*AccessTuple)(x) } // Range iterates over every populated field in an undefined order, @@ -6017,40 +7287,16 @@ func (x *fastReflection_TxResult) Interface() protoreflect.ProtoMessage { // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_TxResult) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if x.ContractAddress != "" { - value := protoreflect.ValueOfString(x.ContractAddress) - if !f(fd_TxResult_contract_address, value) { - return - } - } - if len(x.Bloom) != 0 { - value := protoreflect.ValueOfBytes(x.Bloom) - if !f(fd_TxResult_bloom, value) { - return - } - } - if x.TxLogs != nil { - value := protoreflect.ValueOfMessage(x.TxLogs.ProtoReflect()) - if !f(fd_TxResult_tx_logs, value) { - return - } - } - if len(x.Ret) != 0 { - value := protoreflect.ValueOfBytes(x.Ret) - if !f(fd_TxResult_ret, value) { - return - } - } - if x.Reverted != false { - value := protoreflect.ValueOfBool(x.Reverted) - if !f(fd_TxResult_reverted, value) { +func (x *fastReflection_AccessTuple) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Address != "" { + value := protoreflect.ValueOfString(x.Address) + if !f(fd_AccessTuple_address, value) { return } } - if x.GasUsed != uint64(0) { - value := protoreflect.ValueOfUint64(x.GasUsed) - if !f(fd_TxResult_gas_used, value) { + if len(x.StorageKeys) != 0 { + value := protoreflect.ValueOfList(&_AccessTuple_2_list{list: &x.StorageKeys}) + if !f(fd_AccessTuple_storage_keys, value) { return } } @@ -6067,25 +7313,17 @@ func (x *fastReflection_TxResult) Range(f func(protoreflect.FieldDescriptor, pro // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_TxResult) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_AccessTuple) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "cosmos.evm.vm.v1.TxResult.contract_address": - return x.ContractAddress != "" - case "cosmos.evm.vm.v1.TxResult.bloom": - return len(x.Bloom) != 0 - case "cosmos.evm.vm.v1.TxResult.tx_logs": - return x.TxLogs != nil - case "cosmos.evm.vm.v1.TxResult.ret": - return len(x.Ret) != 0 - case "cosmos.evm.vm.v1.TxResult.reverted": - return x.Reverted != false - case "cosmos.evm.vm.v1.TxResult.gas_used": - return x.GasUsed != uint64(0) + case "cosmos.evm.vm.v1.AccessTuple.address": + return x.Address != "" + case "cosmos.evm.vm.v1.AccessTuple.storage_keys": + return len(x.StorageKeys) != 0 default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TxResult")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessTuple")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TxResult does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessTuple does not contain field %s", fd.FullName())) } } @@ -6095,25 +7333,17 @@ func (x *fastReflection_TxResult) Has(fd protoreflect.FieldDescriptor) bool { // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_TxResult) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_AccessTuple) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "cosmos.evm.vm.v1.TxResult.contract_address": - x.ContractAddress = "" - case "cosmos.evm.vm.v1.TxResult.bloom": - x.Bloom = nil - case "cosmos.evm.vm.v1.TxResult.tx_logs": - x.TxLogs = nil - case "cosmos.evm.vm.v1.TxResult.ret": - x.Ret = nil - case "cosmos.evm.vm.v1.TxResult.reverted": - x.Reverted = false - case "cosmos.evm.vm.v1.TxResult.gas_used": - x.GasUsed = uint64(0) + case "cosmos.evm.vm.v1.AccessTuple.address": + x.Address = "" + case "cosmos.evm.vm.v1.AccessTuple.storage_keys": + x.StorageKeys = nil default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TxResult")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessTuple")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TxResult does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessTuple does not contain field %s", fd.FullName())) } } @@ -6123,31 +7353,22 @@ func (x *fastReflection_TxResult) Clear(fd protoreflect.FieldDescriptor) { // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_TxResult) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_AccessTuple) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "cosmos.evm.vm.v1.TxResult.contract_address": - value := x.ContractAddress + case "cosmos.evm.vm.v1.AccessTuple.address": + value := x.Address return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.TxResult.bloom": - value := x.Bloom - return protoreflect.ValueOfBytes(value) - case "cosmos.evm.vm.v1.TxResult.tx_logs": - value := x.TxLogs - return protoreflect.ValueOfMessage(value.ProtoReflect()) - case "cosmos.evm.vm.v1.TxResult.ret": - value := x.Ret - return protoreflect.ValueOfBytes(value) - case "cosmos.evm.vm.v1.TxResult.reverted": - value := x.Reverted - return protoreflect.ValueOfBool(value) - case "cosmos.evm.vm.v1.TxResult.gas_used": - value := x.GasUsed - return protoreflect.ValueOfUint64(value) + case "cosmos.evm.vm.v1.AccessTuple.storage_keys": + if len(x.StorageKeys) == 0 { + return protoreflect.ValueOfList(&_AccessTuple_2_list{}) + } + listValue := &_AccessTuple_2_list{list: &x.StorageKeys} + return protoreflect.ValueOfList(listValue) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TxResult")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessTuple")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TxResult does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessTuple does not contain field %s", descriptor.FullName())) } } @@ -6161,25 +7382,19 @@ func (x *fastReflection_TxResult) Get(descriptor protoreflect.FieldDescriptor) p // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_TxResult) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_AccessTuple) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "cosmos.evm.vm.v1.TxResult.contract_address": - x.ContractAddress = value.Interface().(string) - case "cosmos.evm.vm.v1.TxResult.bloom": - x.Bloom = value.Bytes() - case "cosmos.evm.vm.v1.TxResult.tx_logs": - x.TxLogs = value.Message().Interface().(*TransactionLogs) - case "cosmos.evm.vm.v1.TxResult.ret": - x.Ret = value.Bytes() - case "cosmos.evm.vm.v1.TxResult.reverted": - x.Reverted = value.Bool() - case "cosmos.evm.vm.v1.TxResult.gas_used": - x.GasUsed = value.Uint() + case "cosmos.evm.vm.v1.AccessTuple.address": + x.Address = value.Interface().(string) + case "cosmos.evm.vm.v1.AccessTuple.storage_keys": + lv := value.List() + clv := lv.(*_AccessTuple_2_list) + x.StorageKeys = *clv.list default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TxResult")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessTuple")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TxResult does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessTuple does not contain field %s", fd.FullName())) } } @@ -6193,64 +7408,49 @@ func (x *fastReflection_TxResult) Set(fd protoreflect.FieldDescriptor, value pro // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_TxResult) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_AccessTuple) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.TxResult.tx_logs": - if x.TxLogs == nil { - x.TxLogs = new(TransactionLogs) + case "cosmos.evm.vm.v1.AccessTuple.storage_keys": + if x.StorageKeys == nil { + x.StorageKeys = []string{} } - return protoreflect.ValueOfMessage(x.TxLogs.ProtoReflect()) - case "cosmos.evm.vm.v1.TxResult.contract_address": - panic(fmt.Errorf("field contract_address of message cosmos.evm.vm.v1.TxResult is not mutable")) - case "cosmos.evm.vm.v1.TxResult.bloom": - panic(fmt.Errorf("field bloom of message cosmos.evm.vm.v1.TxResult is not mutable")) - case "cosmos.evm.vm.v1.TxResult.ret": - panic(fmt.Errorf("field ret of message cosmos.evm.vm.v1.TxResult is not mutable")) - case "cosmos.evm.vm.v1.TxResult.reverted": - panic(fmt.Errorf("field reverted of message cosmos.evm.vm.v1.TxResult is not mutable")) - case "cosmos.evm.vm.v1.TxResult.gas_used": - panic(fmt.Errorf("field gas_used of message cosmos.evm.vm.v1.TxResult is not mutable")) + value := &_AccessTuple_2_list{list: &x.StorageKeys} + return protoreflect.ValueOfList(value) + case "cosmos.evm.vm.v1.AccessTuple.address": + panic(fmt.Errorf("field address of message cosmos.evm.vm.v1.AccessTuple is not mutable")) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TxResult")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessTuple")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TxResult does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessTuple does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_TxResult) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_AccessTuple) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.TxResult.contract_address": + case "cosmos.evm.vm.v1.AccessTuple.address": return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.TxResult.bloom": - return protoreflect.ValueOfBytes(nil) - case "cosmos.evm.vm.v1.TxResult.tx_logs": - m := new(TransactionLogs) - return protoreflect.ValueOfMessage(m.ProtoReflect()) - case "cosmos.evm.vm.v1.TxResult.ret": - return protoreflect.ValueOfBytes(nil) - case "cosmos.evm.vm.v1.TxResult.reverted": - return protoreflect.ValueOfBool(false) - case "cosmos.evm.vm.v1.TxResult.gas_used": - return protoreflect.ValueOfUint64(uint64(0)) + case "cosmos.evm.vm.v1.AccessTuple.storage_keys": + list := []string{} + return protoreflect.ValueOfList(&_AccessTuple_2_list{list: &list}) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TxResult")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessTuple")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TxResult does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessTuple does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_TxResult) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_AccessTuple) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.TxResult", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.AccessTuple", d.FullName())) } panic("unreachable") } @@ -6258,7 +7458,7 @@ func (x *fastReflection_TxResult) WhichOneof(d protoreflect.OneofDescriptor) pro // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_TxResult) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_AccessTuple) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -6269,7 +7469,7 @@ func (x *fastReflection_TxResult) GetUnknown() protoreflect.RawFields { // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_TxResult) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_AccessTuple) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -6281,7 +7481,7 @@ func (x *fastReflection_TxResult) SetUnknown(fields protoreflect.RawFields) { // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_TxResult) IsValid() bool { +func (x *fastReflection_AccessTuple) IsValid() bool { return x != nil } @@ -6291,9 +7491,9 @@ func (x *fastReflection_TxResult) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_TxResult) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_AccessTuple) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*TxResult) + x := input.Message.Interface().(*AccessTuple) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -6305,27 +7505,15 @@ func (x *fastReflection_TxResult) ProtoMethods() *protoiface.Methods { var n int var l int _ = l - l = len(x.ContractAddress) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.Bloom) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - if x.TxLogs != nil { - l = options.Size(x.TxLogs) - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.Ret) + l = len(x.Address) if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } - if x.Reverted { - n += 2 - } - if x.GasUsed != 0 { - n += 1 + runtime.Sov(uint64(x.GasUsed)) + if len(x.StorageKeys) > 0 { + for _, s := range x.StorageKeys { + l = len(s) + n += 1 + l + runtime.Sov(uint64(l)) + } } if x.unknownFields != nil { n += len(x.unknownFields) @@ -6337,7 +7525,7 @@ func (x *fastReflection_TxResult) ProtoMethods() *protoiface.Methods { } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*TxResult) + x := input.Message.Interface().(*AccessTuple) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -6349,60 +7537,26 @@ func (x *fastReflection_TxResult) ProtoMethods() *protoiface.Methods { size := options.Size(x) dAtA := make([]byte, size) i := len(dAtA) - _ = i - var l int - _ = l - if x.unknownFields != nil { - i -= len(x.unknownFields) - copy(dAtA[i:], x.unknownFields) - } - if x.GasUsed != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.GasUsed)) - i-- - dAtA[i] = 0x30 - } - if x.Reverted { - i-- - if x.Reverted { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x28 - } - if len(x.Ret) > 0 { - i -= len(x.Ret) - copy(dAtA[i:], x.Ret) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Ret))) - i-- - dAtA[i] = 0x22 + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) } - if x.TxLogs != nil { - encoded, err := options.Marshal(x.TxLogs) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err + if len(x.StorageKeys) > 0 { + for iNdEx := len(x.StorageKeys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.StorageKeys[iNdEx]) + copy(dAtA[i:], x.StorageKeys[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.StorageKeys[iNdEx]))) + i-- + dAtA[i] = 0x12 } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x1a - } - if len(x.Bloom) > 0 { - i -= len(x.Bloom) - copy(dAtA[i:], x.Bloom) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Bloom))) - i-- - dAtA[i] = 0x12 } - if len(x.ContractAddress) > 0 { - i -= len(x.ContractAddress) - copy(dAtA[i:], x.ContractAddress) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ContractAddress))) + if len(x.Address) > 0 { + i -= len(x.Address) + copy(dAtA[i:], x.Address) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Address))) i-- dAtA[i] = 0xa } @@ -6417,7 +7571,7 @@ func (x *fastReflection_TxResult) ProtoMethods() *protoiface.Methods { }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*TxResult) + x := input.Message.Interface().(*AccessTuple) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -6449,15 +7603,15 @@ func (x *fastReflection_TxResult) ProtoMethods() *protoiface.Methods { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TxResult: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AccessTuple: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TxResult: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AccessTuple: 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 ContractAddress", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6485,83 +7639,13 @@ func (x *fastReflection_TxResult) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.ContractAddress = string(dAtA[iNdEx:postIndex]) + x.Address = 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 Bloom", wireType) - } - var byteLen int - 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++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + byteLen - 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.Bloom = append(x.Bloom[:0], dAtA[iNdEx:postIndex]...) - if x.Bloom == nil { - x.Bloom = []byte{} - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TxLogs", wireType) - } - var msglen int - 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++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + msglen - 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 - } - if x.TxLogs == nil { - x.TxLogs = &TransactionLogs{} - } - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.TxLogs); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Ret", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field StorageKeys", wireType) } - var byteLen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -6571,169 +7655,100 @@ func (x *fastReflection_TxResult) ProtoMethods() *protoiface.Methods { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength } - postIndex := iNdEx + byteLen + 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.Ret = append(x.Ret[:0], dAtA[iNdEx:postIndex]...) - if x.Ret == nil { - x.Ret = []byte{} - } - iNdEx = postIndex - case 5: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Reverted", wireType) - } - var v int - 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++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - x.Reverted = bool(v != 0) - case 6: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field GasUsed", wireType) - } - x.GasUsed = 0 - 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++ - x.GasUsed |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := runtime.Skip(dAtA[iNdEx:]) - if err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - if !options.DiscardUnknown { - x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - } - iNdEx += skippy - } - } - - if iNdEx > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil - } - return &protoiface.Methods{ - NoUnkeyedLiterals: struct{}{}, - Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, - Size: size, - Marshal: marshal, - Unmarshal: unmarshal, - Merge: nil, - CheckInitialized: nil, - } -} - -var _ protoreflect.List = (*_AccessTuple_2_list)(nil) - -type _AccessTuple_2_list struct { - list *[]string -} - -func (x *_AccessTuple_2_list) Len() int { - if x.list == nil { - return 0 - } - return len(*x.list) -} - -func (x *_AccessTuple_2_list) Get(i int) protoreflect.Value { - return protoreflect.ValueOfString((*x.list)[i]) -} - -func (x *_AccessTuple_2_list) Set(i int, value protoreflect.Value) { - valueUnwrapped := value.String() - concreteValue := valueUnwrapped - (*x.list)[i] = concreteValue -} - -func (x *_AccessTuple_2_list) Append(value protoreflect.Value) { - valueUnwrapped := value.String() - concreteValue := valueUnwrapped - *x.list = append(*x.list, concreteValue) -} - -func (x *_AccessTuple_2_list) AppendMutable() protoreflect.Value { - panic(fmt.Errorf("AppendMutable can not be called on message AccessTuple at list field StorageKeys as it is not of Message kind")) -} - -func (x *_AccessTuple_2_list) Truncate(n int) { - *x.list = (*x.list)[:n] -} - -func (x *_AccessTuple_2_list) NewElement() protoreflect.Value { - v := "" - return protoreflect.ValueOfString(v) -} + 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.StorageKeys = append(x.StorageKeys, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } -func (x *_AccessTuple_2_list) IsValid() bool { - return x.list != nil + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } } var ( - md_AccessTuple protoreflect.MessageDescriptor - fd_AccessTuple_address protoreflect.FieldDescriptor - fd_AccessTuple_storage_keys protoreflect.FieldDescriptor + md_TraceConfig protoreflect.MessageDescriptor + fd_TraceConfig_tracer protoreflect.FieldDescriptor + fd_TraceConfig_timeout protoreflect.FieldDescriptor + fd_TraceConfig_reexec protoreflect.FieldDescriptor + fd_TraceConfig_disable_stack protoreflect.FieldDescriptor + fd_TraceConfig_disable_storage protoreflect.FieldDescriptor + fd_TraceConfig_debug protoreflect.FieldDescriptor + fd_TraceConfig_limit protoreflect.FieldDescriptor + fd_TraceConfig_overrides protoreflect.FieldDescriptor + fd_TraceConfig_enable_memory protoreflect.FieldDescriptor + fd_TraceConfig_enable_return_data protoreflect.FieldDescriptor + fd_TraceConfig_tracer_json_config protoreflect.FieldDescriptor ) func init() { file_cosmos_evm_vm_v1_evm_proto_init() - md_AccessTuple = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("AccessTuple") - fd_AccessTuple_address = md_AccessTuple.Fields().ByName("address") - fd_AccessTuple_storage_keys = md_AccessTuple.Fields().ByName("storage_keys") + md_TraceConfig = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("TraceConfig") + fd_TraceConfig_tracer = md_TraceConfig.Fields().ByName("tracer") + fd_TraceConfig_timeout = md_TraceConfig.Fields().ByName("timeout") + fd_TraceConfig_reexec = md_TraceConfig.Fields().ByName("reexec") + fd_TraceConfig_disable_stack = md_TraceConfig.Fields().ByName("disable_stack") + fd_TraceConfig_disable_storage = md_TraceConfig.Fields().ByName("disable_storage") + fd_TraceConfig_debug = md_TraceConfig.Fields().ByName("debug") + fd_TraceConfig_limit = md_TraceConfig.Fields().ByName("limit") + fd_TraceConfig_overrides = md_TraceConfig.Fields().ByName("overrides") + fd_TraceConfig_enable_memory = md_TraceConfig.Fields().ByName("enable_memory") + fd_TraceConfig_enable_return_data = md_TraceConfig.Fields().ByName("enable_return_data") + fd_TraceConfig_tracer_json_config = md_TraceConfig.Fields().ByName("tracer_json_config") } -var _ protoreflect.Message = (*fastReflection_AccessTuple)(nil) +var _ protoreflect.Message = (*fastReflection_TraceConfig)(nil) -type fastReflection_AccessTuple AccessTuple +type fastReflection_TraceConfig TraceConfig -func (x *AccessTuple) ProtoReflect() protoreflect.Message { - return (*fastReflection_AccessTuple)(x) +func (x *TraceConfig) ProtoReflect() protoreflect.Message { + return (*fastReflection_TraceConfig)(x) } -func (x *AccessTuple) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[8] +func (x *TraceConfig) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6744,43 +7759,43 @@ func (x *AccessTuple) slowProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -var _fastReflection_AccessTuple_messageType fastReflection_AccessTuple_messageType -var _ protoreflect.MessageType = fastReflection_AccessTuple_messageType{} +var _fastReflection_TraceConfig_messageType fastReflection_TraceConfig_messageType +var _ protoreflect.MessageType = fastReflection_TraceConfig_messageType{} -type fastReflection_AccessTuple_messageType struct{} +type fastReflection_TraceConfig_messageType struct{} -func (x fastReflection_AccessTuple_messageType) Zero() protoreflect.Message { - return (*fastReflection_AccessTuple)(nil) +func (x fastReflection_TraceConfig_messageType) Zero() protoreflect.Message { + return (*fastReflection_TraceConfig)(nil) } -func (x fastReflection_AccessTuple_messageType) New() protoreflect.Message { - return new(fastReflection_AccessTuple) +func (x fastReflection_TraceConfig_messageType) New() protoreflect.Message { + return new(fastReflection_TraceConfig) } -func (x fastReflection_AccessTuple_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_AccessTuple +func (x fastReflection_TraceConfig_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_TraceConfig } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_AccessTuple) Descriptor() protoreflect.MessageDescriptor { - return md_AccessTuple +func (x *fastReflection_TraceConfig) Descriptor() protoreflect.MessageDescriptor { + return md_TraceConfig } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_AccessTuple) Type() protoreflect.MessageType { - return _fastReflection_AccessTuple_messageType +func (x *fastReflection_TraceConfig) Type() protoreflect.MessageType { + return _fastReflection_TraceConfig_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_AccessTuple) New() protoreflect.Message { - return new(fastReflection_AccessTuple) +func (x *fastReflection_TraceConfig) New() protoreflect.Message { + return new(fastReflection_TraceConfig) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_AccessTuple) Interface() protoreflect.ProtoMessage { - return (*AccessTuple)(x) +func (x *fastReflection_TraceConfig) Interface() protoreflect.ProtoMessage { + return (*TraceConfig)(x) } // Range iterates over every populated field in an undefined order, @@ -6788,16 +7803,70 @@ func (x *fastReflection_AccessTuple) Interface() protoreflect.ProtoMessage { // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_AccessTuple) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if x.Address != "" { - value := protoreflect.ValueOfString(x.Address) - if !f(fd_AccessTuple_address, value) { +func (x *fastReflection_TraceConfig) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Tracer != "" { + value := protoreflect.ValueOfString(x.Tracer) + if !f(fd_TraceConfig_tracer, value) { return } } - if len(x.StorageKeys) != 0 { - value := protoreflect.ValueOfList(&_AccessTuple_2_list{list: &x.StorageKeys}) - if !f(fd_AccessTuple_storage_keys, value) { + if x.Timeout != "" { + value := protoreflect.ValueOfString(x.Timeout) + if !f(fd_TraceConfig_timeout, value) { + return + } + } + if x.Reexec != uint64(0) { + value := protoreflect.ValueOfUint64(x.Reexec) + if !f(fd_TraceConfig_reexec, value) { + return + } + } + if x.DisableStack != false { + value := protoreflect.ValueOfBool(x.DisableStack) + if !f(fd_TraceConfig_disable_stack, value) { + return + } + } + if x.DisableStorage != false { + value := protoreflect.ValueOfBool(x.DisableStorage) + if !f(fd_TraceConfig_disable_storage, value) { + return + } + } + if x.Debug != false { + value := protoreflect.ValueOfBool(x.Debug) + if !f(fd_TraceConfig_debug, value) { + return + } + } + if x.Limit != int32(0) { + value := protoreflect.ValueOfInt32(x.Limit) + if !f(fd_TraceConfig_limit, value) { + return + } + } + if x.Overrides != nil { + value := protoreflect.ValueOfMessage(x.Overrides.ProtoReflect()) + if !f(fd_TraceConfig_overrides, value) { + return + } + } + if x.EnableMemory != false { + value := protoreflect.ValueOfBool(x.EnableMemory) + if !f(fd_TraceConfig_enable_memory, value) { + return + } + } + if x.EnableReturnData != false { + value := protoreflect.ValueOfBool(x.EnableReturnData) + if !f(fd_TraceConfig_enable_return_data, value) { + return + } + } + if x.TracerJsonConfig != "" { + value := protoreflect.ValueOfString(x.TracerJsonConfig) + if !f(fd_TraceConfig_tracer_json_config, value) { return } } @@ -6814,17 +7883,35 @@ func (x *fastReflection_AccessTuple) Range(f func(protoreflect.FieldDescriptor, // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_AccessTuple) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_TraceConfig) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "cosmos.evm.vm.v1.AccessTuple.address": - return x.Address != "" - case "cosmos.evm.vm.v1.AccessTuple.storage_keys": - return len(x.StorageKeys) != 0 + case "cosmos.evm.vm.v1.TraceConfig.tracer": + return x.Tracer != "" + case "cosmos.evm.vm.v1.TraceConfig.timeout": + return x.Timeout != "" + case "cosmos.evm.vm.v1.TraceConfig.reexec": + return x.Reexec != uint64(0) + case "cosmos.evm.vm.v1.TraceConfig.disable_stack": + return x.DisableStack != false + case "cosmos.evm.vm.v1.TraceConfig.disable_storage": + return x.DisableStorage != false + case "cosmos.evm.vm.v1.TraceConfig.debug": + return x.Debug != false + case "cosmos.evm.vm.v1.TraceConfig.limit": + return x.Limit != int32(0) + case "cosmos.evm.vm.v1.TraceConfig.overrides": + return x.Overrides != nil + case "cosmos.evm.vm.v1.TraceConfig.enable_memory": + return x.EnableMemory != false + case "cosmos.evm.vm.v1.TraceConfig.enable_return_data": + return x.EnableReturnData != false + case "cosmos.evm.vm.v1.TraceConfig.tracer_json_config": + return x.TracerJsonConfig != "" default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessTuple")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TraceConfig")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessTuple does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TraceConfig does not contain field %s", fd.FullName())) } } @@ -6834,17 +7921,35 @@ func (x *fastReflection_AccessTuple) Has(fd protoreflect.FieldDescriptor) bool { // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_AccessTuple) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_TraceConfig) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "cosmos.evm.vm.v1.AccessTuple.address": - x.Address = "" - case "cosmos.evm.vm.v1.AccessTuple.storage_keys": - x.StorageKeys = nil + case "cosmos.evm.vm.v1.TraceConfig.tracer": + x.Tracer = "" + case "cosmos.evm.vm.v1.TraceConfig.timeout": + x.Timeout = "" + case "cosmos.evm.vm.v1.TraceConfig.reexec": + x.Reexec = uint64(0) + case "cosmos.evm.vm.v1.TraceConfig.disable_stack": + x.DisableStack = false + case "cosmos.evm.vm.v1.TraceConfig.disable_storage": + x.DisableStorage = false + case "cosmos.evm.vm.v1.TraceConfig.debug": + x.Debug = false + case "cosmos.evm.vm.v1.TraceConfig.limit": + x.Limit = int32(0) + case "cosmos.evm.vm.v1.TraceConfig.overrides": + x.Overrides = nil + case "cosmos.evm.vm.v1.TraceConfig.enable_memory": + x.EnableMemory = false + case "cosmos.evm.vm.v1.TraceConfig.enable_return_data": + x.EnableReturnData = false + case "cosmos.evm.vm.v1.TraceConfig.tracer_json_config": + x.TracerJsonConfig = "" default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessTuple")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TraceConfig")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessTuple does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TraceConfig does not contain field %s", fd.FullName())) } } @@ -6854,22 +7959,46 @@ func (x *fastReflection_AccessTuple) Clear(fd protoreflect.FieldDescriptor) { // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_AccessTuple) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_TraceConfig) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "cosmos.evm.vm.v1.AccessTuple.address": - value := x.Address + case "cosmos.evm.vm.v1.TraceConfig.tracer": + value := x.Tracer + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.TraceConfig.timeout": + value := x.Timeout + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.TraceConfig.reexec": + value := x.Reexec + return protoreflect.ValueOfUint64(value) + case "cosmos.evm.vm.v1.TraceConfig.disable_stack": + value := x.DisableStack + return protoreflect.ValueOfBool(value) + case "cosmos.evm.vm.v1.TraceConfig.disable_storage": + value := x.DisableStorage + return protoreflect.ValueOfBool(value) + case "cosmos.evm.vm.v1.TraceConfig.debug": + value := x.Debug + return protoreflect.ValueOfBool(value) + case "cosmos.evm.vm.v1.TraceConfig.limit": + value := x.Limit + return protoreflect.ValueOfInt32(value) + case "cosmos.evm.vm.v1.TraceConfig.overrides": + value := x.Overrides + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.evm.vm.v1.TraceConfig.enable_memory": + value := x.EnableMemory + return protoreflect.ValueOfBool(value) + case "cosmos.evm.vm.v1.TraceConfig.enable_return_data": + value := x.EnableReturnData + return protoreflect.ValueOfBool(value) + case "cosmos.evm.vm.v1.TraceConfig.tracer_json_config": + value := x.TracerJsonConfig return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.AccessTuple.storage_keys": - if len(x.StorageKeys) == 0 { - return protoreflect.ValueOfList(&_AccessTuple_2_list{}) - } - listValue := &_AccessTuple_2_list{list: &x.StorageKeys} - return protoreflect.ValueOfList(listValue) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessTuple")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TraceConfig")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessTuple does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TraceConfig does not contain field %s", descriptor.FullName())) } } @@ -6883,19 +8012,35 @@ func (x *fastReflection_AccessTuple) Get(descriptor protoreflect.FieldDescriptor // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_AccessTuple) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_TraceConfig) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "cosmos.evm.vm.v1.AccessTuple.address": - x.Address = value.Interface().(string) - case "cosmos.evm.vm.v1.AccessTuple.storage_keys": - lv := value.List() - clv := lv.(*_AccessTuple_2_list) - x.StorageKeys = *clv.list + case "cosmos.evm.vm.v1.TraceConfig.tracer": + x.Tracer = value.Interface().(string) + case "cosmos.evm.vm.v1.TraceConfig.timeout": + x.Timeout = value.Interface().(string) + case "cosmos.evm.vm.v1.TraceConfig.reexec": + x.Reexec = value.Uint() + case "cosmos.evm.vm.v1.TraceConfig.disable_stack": + x.DisableStack = value.Bool() + case "cosmos.evm.vm.v1.TraceConfig.disable_storage": + x.DisableStorage = value.Bool() + case "cosmos.evm.vm.v1.TraceConfig.debug": + x.Debug = value.Bool() + case "cosmos.evm.vm.v1.TraceConfig.limit": + x.Limit = int32(value.Int()) + case "cosmos.evm.vm.v1.TraceConfig.overrides": + x.Overrides = value.Message().Interface().(*ChainConfig) + case "cosmos.evm.vm.v1.TraceConfig.enable_memory": + x.EnableMemory = value.Bool() + case "cosmos.evm.vm.v1.TraceConfig.enable_return_data": + x.EnableReturnData = value.Bool() + case "cosmos.evm.vm.v1.TraceConfig.tracer_json_config": + x.TracerJsonConfig = value.Interface().(string) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessTuple")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TraceConfig")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessTuple does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TraceConfig does not contain field %s", fd.FullName())) } } @@ -6909,49 +8054,84 @@ func (x *fastReflection_AccessTuple) Set(fd protoreflect.FieldDescriptor, value // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_AccessTuple) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_TraceConfig) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.AccessTuple.storage_keys": - if x.StorageKeys == nil { - x.StorageKeys = []string{} + case "cosmos.evm.vm.v1.TraceConfig.overrides": + if x.Overrides == nil { + x.Overrides = new(ChainConfig) } - value := &_AccessTuple_2_list{list: &x.StorageKeys} - return protoreflect.ValueOfList(value) - case "cosmos.evm.vm.v1.AccessTuple.address": - panic(fmt.Errorf("field address of message cosmos.evm.vm.v1.AccessTuple is not mutable")) + return protoreflect.ValueOfMessage(x.Overrides.ProtoReflect()) + case "cosmos.evm.vm.v1.TraceConfig.tracer": + panic(fmt.Errorf("field tracer of message cosmos.evm.vm.v1.TraceConfig is not mutable")) + case "cosmos.evm.vm.v1.TraceConfig.timeout": + panic(fmt.Errorf("field timeout of message cosmos.evm.vm.v1.TraceConfig is not mutable")) + case "cosmos.evm.vm.v1.TraceConfig.reexec": + panic(fmt.Errorf("field reexec of message cosmos.evm.vm.v1.TraceConfig is not mutable")) + case "cosmos.evm.vm.v1.TraceConfig.disable_stack": + panic(fmt.Errorf("field disable_stack of message cosmos.evm.vm.v1.TraceConfig is not mutable")) + case "cosmos.evm.vm.v1.TraceConfig.disable_storage": + panic(fmt.Errorf("field disable_storage of message cosmos.evm.vm.v1.TraceConfig is not mutable")) + case "cosmos.evm.vm.v1.TraceConfig.debug": + panic(fmt.Errorf("field debug of message cosmos.evm.vm.v1.TraceConfig is not mutable")) + case "cosmos.evm.vm.v1.TraceConfig.limit": + panic(fmt.Errorf("field limit of message cosmos.evm.vm.v1.TraceConfig is not mutable")) + case "cosmos.evm.vm.v1.TraceConfig.enable_memory": + panic(fmt.Errorf("field enable_memory of message cosmos.evm.vm.v1.TraceConfig is not mutable")) + case "cosmos.evm.vm.v1.TraceConfig.enable_return_data": + panic(fmt.Errorf("field enable_return_data of message cosmos.evm.vm.v1.TraceConfig is not mutable")) + case "cosmos.evm.vm.v1.TraceConfig.tracer_json_config": + panic(fmt.Errorf("field tracer_json_config of message cosmos.evm.vm.v1.TraceConfig is not mutable")) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessTuple")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TraceConfig")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessTuple does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TraceConfig does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_AccessTuple) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_TraceConfig) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.AccessTuple.address": + case "cosmos.evm.vm.v1.TraceConfig.tracer": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.TraceConfig.timeout": + return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.TraceConfig.reexec": + return protoreflect.ValueOfUint64(uint64(0)) + case "cosmos.evm.vm.v1.TraceConfig.disable_stack": + return protoreflect.ValueOfBool(false) + case "cosmos.evm.vm.v1.TraceConfig.disable_storage": + return protoreflect.ValueOfBool(false) + case "cosmos.evm.vm.v1.TraceConfig.debug": + return protoreflect.ValueOfBool(false) + case "cosmos.evm.vm.v1.TraceConfig.limit": + return protoreflect.ValueOfInt32(int32(0)) + case "cosmos.evm.vm.v1.TraceConfig.overrides": + m := new(ChainConfig) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.evm.vm.v1.TraceConfig.enable_memory": + return protoreflect.ValueOfBool(false) + case "cosmos.evm.vm.v1.TraceConfig.enable_return_data": + return protoreflect.ValueOfBool(false) + case "cosmos.evm.vm.v1.TraceConfig.tracer_json_config": return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.AccessTuple.storage_keys": - list := []string{} - return protoreflect.ValueOfList(&_AccessTuple_2_list{list: &list}) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.AccessTuple")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TraceConfig")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.AccessTuple does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.TraceConfig does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_AccessTuple) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_TraceConfig) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.AccessTuple", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.TraceConfig", d.FullName())) } panic("unreachable") } @@ -6959,7 +8139,7 @@ func (x *fastReflection_AccessTuple) WhichOneof(d protoreflect.OneofDescriptor) // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_AccessTuple) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_TraceConfig) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -6970,7 +8150,7 @@ func (x *fastReflection_AccessTuple) GetUnknown() protoreflect.RawFields { // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_AccessTuple) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_TraceConfig) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -6982,7 +8162,7 @@ func (x *fastReflection_AccessTuple) SetUnknown(fields protoreflect.RawFields) { // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_AccessTuple) IsValid() bool { +func (x *fastReflection_TraceConfig) IsValid() bool { return x != nil } @@ -6992,9 +8172,9 @@ func (x *fastReflection_AccessTuple) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_AccessTuple) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_TraceConfig) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*AccessTuple) + x := input.Message.Interface().(*TraceConfig) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -7006,15 +8186,42 @@ func (x *fastReflection_AccessTuple) ProtoMethods() *protoiface.Methods { var n int var l int _ = l - l = len(x.Address) + l = len(x.Tracer) if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } - if len(x.StorageKeys) > 0 { - for _, s := range x.StorageKeys { - l = len(s) - n += 1 + l + runtime.Sov(uint64(l)) - } + l = len(x.Timeout) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Reexec != 0 { + n += 1 + runtime.Sov(uint64(x.Reexec)) + } + if x.DisableStack { + n += 2 + } + if x.DisableStorage { + n += 2 + } + if x.Debug { + n += 2 + } + if x.Limit != 0 { + n += 1 + runtime.Sov(uint64(x.Limit)) + } + if x.Overrides != nil { + l = options.Size(x.Overrides) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.EnableMemory { + n += 2 + } + if x.EnableReturnData { + n += 2 + } + l = len(x.TracerJsonConfig) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) } if x.unknownFields != nil { n += len(x.unknownFields) @@ -7026,7 +8233,7 @@ func (x *fastReflection_AccessTuple) ProtoMethods() *protoiface.Methods { } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*AccessTuple) + x := input.Message.Interface().(*TraceConfig) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -7045,19 +8252,98 @@ func (x *fastReflection_AccessTuple) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if len(x.StorageKeys) > 0 { - for iNdEx := len(x.StorageKeys) - 1; iNdEx >= 0; iNdEx-- { - i -= len(x.StorageKeys[iNdEx]) - copy(dAtA[i:], x.StorageKeys[iNdEx]) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.StorageKeys[iNdEx]))) - i-- - dAtA[i] = 0x12 + if len(x.TracerJsonConfig) > 0 { + i -= len(x.TracerJsonConfig) + copy(dAtA[i:], x.TracerJsonConfig) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.TracerJsonConfig))) + i-- + dAtA[i] = 0x6a + } + if x.EnableReturnData { + i-- + if x.EnableReturnData { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x60 + } + if x.EnableMemory { + i-- + if x.EnableMemory { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x58 + } + if x.Overrides != nil { + encoded, err := options.Marshal(x.Overrides) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x52 + } + if x.Limit != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Limit)) + i-- + dAtA[i] = 0x48 + } + if x.Debug { + i-- + if x.Debug { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x40 + } + if x.DisableStorage { + i-- + if x.DisableStorage { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 + } + if x.DisableStack { + i-- + if x.DisableStack { + dAtA[i] = 1 + } else { + dAtA[i] = 0 } + i-- + dAtA[i] = 0x28 } - if len(x.Address) > 0 { - i -= len(x.Address) - copy(dAtA[i:], x.Address) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Address))) + if x.Reexec != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Reexec)) + i-- + dAtA[i] = 0x18 + } + if len(x.Timeout) > 0 { + i -= len(x.Timeout) + copy(dAtA[i:], x.Timeout) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Timeout))) + i-- + dAtA[i] = 0x12 + } + if len(x.Tracer) > 0 { + i -= len(x.Tracer) + copy(dAtA[i:], x.Tracer) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Tracer))) i-- dAtA[i] = 0xa } @@ -7072,7 +8358,7 @@ func (x *fastReflection_AccessTuple) ProtoMethods() *protoiface.Methods { }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*AccessTuple) + x := input.Message.Interface().(*TraceConfig) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -7104,15 +8390,15 @@ func (x *fastReflection_AccessTuple) ProtoMethods() *protoiface.Methods { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AccessTuple: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TraceConfig: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AccessTuple: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TraceConfig: 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 Address", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Tracer", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7140,11 +8426,217 @@ func (x *fastReflection_AccessTuple) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.Address = string(dAtA[iNdEx:postIndex]) + x.Tracer = 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 StorageKeys", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Timeout", 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.Timeout = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Reexec", wireType) + } + x.Reexec = 0 + 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++ + x.Reexec |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field DisableStack", wireType) + } + var v int + 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++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.DisableStack = bool(v != 0) + case 6: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field DisableStorage", wireType) + } + var v int + 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++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.DisableStorage = bool(v != 0) + case 8: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Debug", wireType) + } + var v int + 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++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Debug = bool(v != 0) + case 9: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType) + } + x.Limit = 0 + 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++ + x.Limit |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Overrides", wireType) + } + var msglen int + 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++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + 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 + } + if x.Overrides == nil { + x.Overrides = &ChainConfig{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Overrides); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 11: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field EnableMemory", wireType) + } + var v int + 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++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.EnableMemory = bool(v != 0) + case 12: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field EnableReturnData", wireType) + } + var v int + 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++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.EnableReturnData = bool(v != 0) + case 13: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TracerJsonConfig", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7172,7 +8664,7 @@ func (x *fastReflection_AccessTuple) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.StorageKeys = append(x.StorageKeys, string(dAtA[iNdEx:postIndex])) + x.TracerJsonConfig = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -7210,46 +8702,30 @@ func (x *fastReflection_AccessTuple) ProtoMethods() *protoiface.Methods { } var ( - md_TraceConfig protoreflect.MessageDescriptor - fd_TraceConfig_tracer protoreflect.FieldDescriptor - fd_TraceConfig_timeout protoreflect.FieldDescriptor - fd_TraceConfig_reexec protoreflect.FieldDescriptor - fd_TraceConfig_disable_stack protoreflect.FieldDescriptor - fd_TraceConfig_disable_storage protoreflect.FieldDescriptor - fd_TraceConfig_debug protoreflect.FieldDescriptor - fd_TraceConfig_limit protoreflect.FieldDescriptor - fd_TraceConfig_overrides protoreflect.FieldDescriptor - fd_TraceConfig_enable_memory protoreflect.FieldDescriptor - fd_TraceConfig_enable_return_data protoreflect.FieldDescriptor - fd_TraceConfig_tracer_json_config protoreflect.FieldDescriptor + md_Preinstall protoreflect.MessageDescriptor + fd_Preinstall_name protoreflect.FieldDescriptor + fd_Preinstall_address protoreflect.FieldDescriptor + fd_Preinstall_code protoreflect.FieldDescriptor ) func init() { file_cosmos_evm_vm_v1_evm_proto_init() - md_TraceConfig = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("TraceConfig") - fd_TraceConfig_tracer = md_TraceConfig.Fields().ByName("tracer") - fd_TraceConfig_timeout = md_TraceConfig.Fields().ByName("timeout") - fd_TraceConfig_reexec = md_TraceConfig.Fields().ByName("reexec") - fd_TraceConfig_disable_stack = md_TraceConfig.Fields().ByName("disable_stack") - fd_TraceConfig_disable_storage = md_TraceConfig.Fields().ByName("disable_storage") - fd_TraceConfig_debug = md_TraceConfig.Fields().ByName("debug") - fd_TraceConfig_limit = md_TraceConfig.Fields().ByName("limit") - fd_TraceConfig_overrides = md_TraceConfig.Fields().ByName("overrides") - fd_TraceConfig_enable_memory = md_TraceConfig.Fields().ByName("enable_memory") - fd_TraceConfig_enable_return_data = md_TraceConfig.Fields().ByName("enable_return_data") - fd_TraceConfig_tracer_json_config = md_TraceConfig.Fields().ByName("tracer_json_config") + md_Preinstall = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("Preinstall") + fd_Preinstall_name = md_Preinstall.Fields().ByName("name") + fd_Preinstall_address = md_Preinstall.Fields().ByName("address") + fd_Preinstall_code = md_Preinstall.Fields().ByName("code") } -var _ protoreflect.Message = (*fastReflection_TraceConfig)(nil) +var _ protoreflect.Message = (*fastReflection_Preinstall)(nil) -type fastReflection_TraceConfig TraceConfig +type fastReflection_Preinstall Preinstall -func (x *TraceConfig) ProtoReflect() protoreflect.Message { - return (*fastReflection_TraceConfig)(x) +func (x *Preinstall) ProtoReflect() protoreflect.Message { + return (*fastReflection_Preinstall)(x) } -func (x *TraceConfig) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[9] +func (x *Preinstall) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7260,43 +8736,43 @@ func (x *TraceConfig) slowProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -var _fastReflection_TraceConfig_messageType fastReflection_TraceConfig_messageType -var _ protoreflect.MessageType = fastReflection_TraceConfig_messageType{} +var _fastReflection_Preinstall_messageType fastReflection_Preinstall_messageType +var _ protoreflect.MessageType = fastReflection_Preinstall_messageType{} -type fastReflection_TraceConfig_messageType struct{} +type fastReflection_Preinstall_messageType struct{} -func (x fastReflection_TraceConfig_messageType) Zero() protoreflect.Message { - return (*fastReflection_TraceConfig)(nil) +func (x fastReflection_Preinstall_messageType) Zero() protoreflect.Message { + return (*fastReflection_Preinstall)(nil) } -func (x fastReflection_TraceConfig_messageType) New() protoreflect.Message { - return new(fastReflection_TraceConfig) +func (x fastReflection_Preinstall_messageType) New() protoreflect.Message { + return new(fastReflection_Preinstall) } -func (x fastReflection_TraceConfig_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_TraceConfig +func (x fastReflection_Preinstall_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Preinstall } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_TraceConfig) Descriptor() protoreflect.MessageDescriptor { - return md_TraceConfig +func (x *fastReflection_Preinstall) Descriptor() protoreflect.MessageDescriptor { + return md_Preinstall } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_TraceConfig) Type() protoreflect.MessageType { - return _fastReflection_TraceConfig_messageType +func (x *fastReflection_Preinstall) Type() protoreflect.MessageType { + return _fastReflection_Preinstall_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_TraceConfig) New() protoreflect.Message { - return new(fastReflection_TraceConfig) +func (x *fastReflection_Preinstall) New() protoreflect.Message { + return new(fastReflection_Preinstall) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_TraceConfig) Interface() protoreflect.ProtoMessage { - return (*TraceConfig)(x) +func (x *fastReflection_Preinstall) Interface() protoreflect.ProtoMessage { + return (*Preinstall)(x) } // Range iterates over every populated field in an undefined order, @@ -7304,70 +8780,22 @@ func (x *fastReflection_TraceConfig) Interface() protoreflect.ProtoMessage { // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_TraceConfig) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if x.Tracer != "" { - value := protoreflect.ValueOfString(x.Tracer) - if !f(fd_TraceConfig_tracer, value) { - return - } - } - if x.Timeout != "" { - value := protoreflect.ValueOfString(x.Timeout) - if !f(fd_TraceConfig_timeout, value) { - return - } - } - if x.Reexec != uint64(0) { - value := protoreflect.ValueOfUint64(x.Reexec) - if !f(fd_TraceConfig_reexec, value) { - return - } - } - if x.DisableStack != false { - value := protoreflect.ValueOfBool(x.DisableStack) - if !f(fd_TraceConfig_disable_stack, value) { - return - } - } - if x.DisableStorage != false { - value := protoreflect.ValueOfBool(x.DisableStorage) - if !f(fd_TraceConfig_disable_storage, value) { - return - } - } - if x.Debug != false { - value := protoreflect.ValueOfBool(x.Debug) - if !f(fd_TraceConfig_debug, value) { - return - } - } - if x.Limit != int32(0) { - value := protoreflect.ValueOfInt32(x.Limit) - if !f(fd_TraceConfig_limit, value) { - return - } - } - if x.Overrides != nil { - value := protoreflect.ValueOfMessage(x.Overrides.ProtoReflect()) - if !f(fd_TraceConfig_overrides, value) { - return - } - } - if x.EnableMemory != false { - value := protoreflect.ValueOfBool(x.EnableMemory) - if !f(fd_TraceConfig_enable_memory, value) { +func (x *fastReflection_Preinstall) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Name != "" { + value := protoreflect.ValueOfString(x.Name) + if !f(fd_Preinstall_name, value) { return } } - if x.EnableReturnData != false { - value := protoreflect.ValueOfBool(x.EnableReturnData) - if !f(fd_TraceConfig_enable_return_data, value) { + if x.Address != "" { + value := protoreflect.ValueOfString(x.Address) + if !f(fd_Preinstall_address, value) { return } } - if x.TracerJsonConfig != "" { - value := protoreflect.ValueOfString(x.TracerJsonConfig) - if !f(fd_TraceConfig_tracer_json_config, value) { + if x.Code != "" { + value := protoreflect.ValueOfString(x.Code) + if !f(fd_Preinstall_code, value) { return } } @@ -7384,35 +8812,19 @@ func (x *fastReflection_TraceConfig) Range(f func(protoreflect.FieldDescriptor, // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_TraceConfig) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_Preinstall) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "cosmos.evm.vm.v1.TraceConfig.tracer": - return x.Tracer != "" - case "cosmos.evm.vm.v1.TraceConfig.timeout": - return x.Timeout != "" - case "cosmos.evm.vm.v1.TraceConfig.reexec": - return x.Reexec != uint64(0) - case "cosmos.evm.vm.v1.TraceConfig.disable_stack": - return x.DisableStack != false - case "cosmos.evm.vm.v1.TraceConfig.disable_storage": - return x.DisableStorage != false - case "cosmos.evm.vm.v1.TraceConfig.debug": - return x.Debug != false - case "cosmos.evm.vm.v1.TraceConfig.limit": - return x.Limit != int32(0) - case "cosmos.evm.vm.v1.TraceConfig.overrides": - return x.Overrides != nil - case "cosmos.evm.vm.v1.TraceConfig.enable_memory": - return x.EnableMemory != false - case "cosmos.evm.vm.v1.TraceConfig.enable_return_data": - return x.EnableReturnData != false - case "cosmos.evm.vm.v1.TraceConfig.tracer_json_config": - return x.TracerJsonConfig != "" + case "cosmos.evm.vm.v1.Preinstall.name": + return x.Name != "" + case "cosmos.evm.vm.v1.Preinstall.address": + return x.Address != "" + case "cosmos.evm.vm.v1.Preinstall.code": + return x.Code != "" default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TraceConfig")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Preinstall")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TraceConfig does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.Preinstall does not contain field %s", fd.FullName())) } } @@ -7422,35 +8834,19 @@ func (x *fastReflection_TraceConfig) Has(fd protoreflect.FieldDescriptor) bool { // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_TraceConfig) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_Preinstall) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "cosmos.evm.vm.v1.TraceConfig.tracer": - x.Tracer = "" - case "cosmos.evm.vm.v1.TraceConfig.timeout": - x.Timeout = "" - case "cosmos.evm.vm.v1.TraceConfig.reexec": - x.Reexec = uint64(0) - case "cosmos.evm.vm.v1.TraceConfig.disable_stack": - x.DisableStack = false - case "cosmos.evm.vm.v1.TraceConfig.disable_storage": - x.DisableStorage = false - case "cosmos.evm.vm.v1.TraceConfig.debug": - x.Debug = false - case "cosmos.evm.vm.v1.TraceConfig.limit": - x.Limit = int32(0) - case "cosmos.evm.vm.v1.TraceConfig.overrides": - x.Overrides = nil - case "cosmos.evm.vm.v1.TraceConfig.enable_memory": - x.EnableMemory = false - case "cosmos.evm.vm.v1.TraceConfig.enable_return_data": - x.EnableReturnData = false - case "cosmos.evm.vm.v1.TraceConfig.tracer_json_config": - x.TracerJsonConfig = "" + case "cosmos.evm.vm.v1.Preinstall.name": + x.Name = "" + case "cosmos.evm.vm.v1.Preinstall.address": + x.Address = "" + case "cosmos.evm.vm.v1.Preinstall.code": + x.Code = "" default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TraceConfig")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Preinstall")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TraceConfig does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.Preinstall does not contain field %s", fd.FullName())) } } @@ -7460,46 +8856,22 @@ func (x *fastReflection_TraceConfig) Clear(fd protoreflect.FieldDescriptor) { // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_TraceConfig) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_Preinstall) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "cosmos.evm.vm.v1.TraceConfig.tracer": - value := x.Tracer - return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.TraceConfig.timeout": - value := x.Timeout + case "cosmos.evm.vm.v1.Preinstall.name": + value := x.Name return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.TraceConfig.reexec": - value := x.Reexec - return protoreflect.ValueOfUint64(value) - case "cosmos.evm.vm.v1.TraceConfig.disable_stack": - value := x.DisableStack - return protoreflect.ValueOfBool(value) - case "cosmos.evm.vm.v1.TraceConfig.disable_storage": - value := x.DisableStorage - return protoreflect.ValueOfBool(value) - case "cosmos.evm.vm.v1.TraceConfig.debug": - value := x.Debug - return protoreflect.ValueOfBool(value) - case "cosmos.evm.vm.v1.TraceConfig.limit": - value := x.Limit - return protoreflect.ValueOfInt32(value) - case "cosmos.evm.vm.v1.TraceConfig.overrides": - value := x.Overrides - return protoreflect.ValueOfMessage(value.ProtoReflect()) - case "cosmos.evm.vm.v1.TraceConfig.enable_memory": - value := x.EnableMemory - return protoreflect.ValueOfBool(value) - case "cosmos.evm.vm.v1.TraceConfig.enable_return_data": - value := x.EnableReturnData - return protoreflect.ValueOfBool(value) - case "cosmos.evm.vm.v1.TraceConfig.tracer_json_config": - value := x.TracerJsonConfig + case "cosmos.evm.vm.v1.Preinstall.address": + value := x.Address + return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.Preinstall.code": + value := x.Code return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TraceConfig")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Preinstall")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TraceConfig does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.Preinstall does not contain field %s", descriptor.FullName())) } } @@ -7513,35 +8885,19 @@ func (x *fastReflection_TraceConfig) Get(descriptor protoreflect.FieldDescriptor // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_TraceConfig) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_Preinstall) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "cosmos.evm.vm.v1.TraceConfig.tracer": - x.Tracer = value.Interface().(string) - case "cosmos.evm.vm.v1.TraceConfig.timeout": - x.Timeout = value.Interface().(string) - case "cosmos.evm.vm.v1.TraceConfig.reexec": - x.Reexec = value.Uint() - case "cosmos.evm.vm.v1.TraceConfig.disable_stack": - x.DisableStack = value.Bool() - case "cosmos.evm.vm.v1.TraceConfig.disable_storage": - x.DisableStorage = value.Bool() - case "cosmos.evm.vm.v1.TraceConfig.debug": - x.Debug = value.Bool() - case "cosmos.evm.vm.v1.TraceConfig.limit": - x.Limit = int32(value.Int()) - case "cosmos.evm.vm.v1.TraceConfig.overrides": - x.Overrides = value.Message().Interface().(*ChainConfig) - case "cosmos.evm.vm.v1.TraceConfig.enable_memory": - x.EnableMemory = value.Bool() - case "cosmos.evm.vm.v1.TraceConfig.enable_return_data": - x.EnableReturnData = value.Bool() - case "cosmos.evm.vm.v1.TraceConfig.tracer_json_config": - x.TracerJsonConfig = value.Interface().(string) + case "cosmos.evm.vm.v1.Preinstall.name": + x.Name = value.Interface().(string) + case "cosmos.evm.vm.v1.Preinstall.address": + x.Address = value.Interface().(string) + case "cosmos.evm.vm.v1.Preinstall.code": + x.Code = value.Interface().(string) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TraceConfig")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Preinstall")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TraceConfig does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.Preinstall does not contain field %s", fd.FullName())) } } @@ -7555,84 +8911,48 @@ func (x *fastReflection_TraceConfig) Set(fd protoreflect.FieldDescriptor, value // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_TraceConfig) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_Preinstall) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.TraceConfig.overrides": - if x.Overrides == nil { - x.Overrides = new(ChainConfig) - } - return protoreflect.ValueOfMessage(x.Overrides.ProtoReflect()) - case "cosmos.evm.vm.v1.TraceConfig.tracer": - panic(fmt.Errorf("field tracer of message cosmos.evm.vm.v1.TraceConfig is not mutable")) - case "cosmos.evm.vm.v1.TraceConfig.timeout": - panic(fmt.Errorf("field timeout of message cosmos.evm.vm.v1.TraceConfig is not mutable")) - case "cosmos.evm.vm.v1.TraceConfig.reexec": - panic(fmt.Errorf("field reexec of message cosmos.evm.vm.v1.TraceConfig is not mutable")) - case "cosmos.evm.vm.v1.TraceConfig.disable_stack": - panic(fmt.Errorf("field disable_stack of message cosmos.evm.vm.v1.TraceConfig is not mutable")) - case "cosmos.evm.vm.v1.TraceConfig.disable_storage": - panic(fmt.Errorf("field disable_storage of message cosmos.evm.vm.v1.TraceConfig is not mutable")) - case "cosmos.evm.vm.v1.TraceConfig.debug": - panic(fmt.Errorf("field debug of message cosmos.evm.vm.v1.TraceConfig is not mutable")) - case "cosmos.evm.vm.v1.TraceConfig.limit": - panic(fmt.Errorf("field limit of message cosmos.evm.vm.v1.TraceConfig is not mutable")) - case "cosmos.evm.vm.v1.TraceConfig.enable_memory": - panic(fmt.Errorf("field enable_memory of message cosmos.evm.vm.v1.TraceConfig is not mutable")) - case "cosmos.evm.vm.v1.TraceConfig.enable_return_data": - panic(fmt.Errorf("field enable_return_data of message cosmos.evm.vm.v1.TraceConfig is not mutable")) - case "cosmos.evm.vm.v1.TraceConfig.tracer_json_config": - panic(fmt.Errorf("field tracer_json_config of message cosmos.evm.vm.v1.TraceConfig is not mutable")) + case "cosmos.evm.vm.v1.Preinstall.name": + panic(fmt.Errorf("field name of message cosmos.evm.vm.v1.Preinstall is not mutable")) + case "cosmos.evm.vm.v1.Preinstall.address": + panic(fmt.Errorf("field address of message cosmos.evm.vm.v1.Preinstall is not mutable")) + case "cosmos.evm.vm.v1.Preinstall.code": + panic(fmt.Errorf("field code of message cosmos.evm.vm.v1.Preinstall is not mutable")) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TraceConfig")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Preinstall")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TraceConfig does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.Preinstall does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_TraceConfig) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_Preinstall) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.TraceConfig.tracer": + case "cosmos.evm.vm.v1.Preinstall.name": return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.TraceConfig.timeout": + case "cosmos.evm.vm.v1.Preinstall.address": return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.TraceConfig.reexec": - return protoreflect.ValueOfUint64(uint64(0)) - case "cosmos.evm.vm.v1.TraceConfig.disable_stack": - return protoreflect.ValueOfBool(false) - case "cosmos.evm.vm.v1.TraceConfig.disable_storage": - return protoreflect.ValueOfBool(false) - case "cosmos.evm.vm.v1.TraceConfig.debug": - return protoreflect.ValueOfBool(false) - case "cosmos.evm.vm.v1.TraceConfig.limit": - return protoreflect.ValueOfInt32(int32(0)) - case "cosmos.evm.vm.v1.TraceConfig.overrides": - m := new(ChainConfig) - return protoreflect.ValueOfMessage(m.ProtoReflect()) - case "cosmos.evm.vm.v1.TraceConfig.enable_memory": - return protoreflect.ValueOfBool(false) - case "cosmos.evm.vm.v1.TraceConfig.enable_return_data": - return protoreflect.ValueOfBool(false) - case "cosmos.evm.vm.v1.TraceConfig.tracer_json_config": + case "cosmos.evm.vm.v1.Preinstall.code": return protoreflect.ValueOfString("") default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.TraceConfig")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Preinstall")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.TraceConfig does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.Preinstall does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_TraceConfig) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_Preinstall) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.TraceConfig", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.Preinstall", d.FullName())) } panic("unreachable") } @@ -7640,7 +8960,7 @@ func (x *fastReflection_TraceConfig) WhichOneof(d protoreflect.OneofDescriptor) // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_TraceConfig) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_Preinstall) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -7651,7 +8971,7 @@ func (x *fastReflection_TraceConfig) GetUnknown() protoreflect.RawFields { // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_TraceConfig) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_Preinstall) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -7663,7 +8983,7 @@ func (x *fastReflection_TraceConfig) SetUnknown(fields protoreflect.RawFields) { // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_TraceConfig) IsValid() bool { +func (x *fastReflection_Preinstall) IsValid() bool { return x != nil } @@ -7673,9 +8993,9 @@ func (x *fastReflection_TraceConfig) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_TraceConfig) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_Preinstall) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*TraceConfig) + x := input.Message.Interface().(*Preinstall) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -7687,40 +9007,15 @@ func (x *fastReflection_TraceConfig) ProtoMethods() *protoiface.Methods { var n int var l int _ = l - l = len(x.Tracer) + l = len(x.Name) if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } - l = len(x.Timeout) + l = len(x.Address) if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } - if x.Reexec != 0 { - n += 1 + runtime.Sov(uint64(x.Reexec)) - } - if x.DisableStack { - n += 2 - } - if x.DisableStorage { - n += 2 - } - if x.Debug { - n += 2 - } - if x.Limit != 0 { - n += 1 + runtime.Sov(uint64(x.Limit)) - } - if x.Overrides != nil { - l = options.Size(x.Overrides) - n += 1 + l + runtime.Sov(uint64(l)) - } - if x.EnableMemory { - n += 2 - } - if x.EnableReturnData { - n += 2 - } - l = len(x.TracerJsonConfig) + l = len(x.Code) if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } @@ -7734,7 +9029,7 @@ func (x *fastReflection_TraceConfig) ProtoMethods() *protoiface.Methods { } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*TraceConfig) + x := input.Message.Interface().(*Preinstall) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -7753,98 +9048,24 @@ func (x *fastReflection_TraceConfig) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if len(x.TracerJsonConfig) > 0 { - i -= len(x.TracerJsonConfig) - copy(dAtA[i:], x.TracerJsonConfig) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.TracerJsonConfig))) - i-- - dAtA[i] = 0x6a - } - if x.EnableReturnData { - i-- - if x.EnableReturnData { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x60 - } - if x.EnableMemory { - i-- - if x.EnableMemory { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x58 - } - if x.Overrides != nil { - encoded, err := options.Marshal(x.Overrides) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x52 - } - if x.Limit != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.Limit)) - i-- - dAtA[i] = 0x48 - } - if x.Debug { - i-- - if x.Debug { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x40 - } - if x.DisableStorage { - i-- - if x.DisableStorage { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x30 - } - if x.DisableStack { - i-- - if x.DisableStack { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x28 - } - if x.Reexec != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.Reexec)) + if len(x.Code) > 0 { + i -= len(x.Code) + copy(dAtA[i:], x.Code) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Code))) i-- - dAtA[i] = 0x18 + dAtA[i] = 0x1a } - if len(x.Timeout) > 0 { - i -= len(x.Timeout) - copy(dAtA[i:], x.Timeout) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Timeout))) + if len(x.Address) > 0 { + i -= len(x.Address) + copy(dAtA[i:], x.Address) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Address))) i-- dAtA[i] = 0x12 } - if len(x.Tracer) > 0 { - i -= len(x.Tracer) - copy(dAtA[i:], x.Tracer) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Tracer))) + if len(x.Name) > 0 { + i -= len(x.Name) + copy(dAtA[i:], x.Name) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Name))) i-- dAtA[i] = 0xa } @@ -7859,7 +9080,7 @@ func (x *fastReflection_TraceConfig) ProtoMethods() *protoiface.Methods { }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*TraceConfig) + x := input.Message.Interface().(*Preinstall) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -7891,15 +9112,15 @@ func (x *fastReflection_TraceConfig) ProtoMethods() *protoiface.Methods { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TraceConfig: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Preinstall: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TraceConfig: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Preinstall: 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 Tracer", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7927,11 +9148,11 @@ func (x *fastReflection_TraceConfig) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.Tracer = string(dAtA[iNdEx:postIndex]) + x.Name = 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 Timeout", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7959,185 +9180,11 @@ func (x *fastReflection_TraceConfig) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.Timeout = string(dAtA[iNdEx:postIndex]) + x.Address = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Reexec", wireType) - } - x.Reexec = 0 - 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++ - x.Reexec |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field DisableStack", wireType) - } - var v int - 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++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - x.DisableStack = bool(v != 0) - case 6: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field DisableStorage", wireType) - } - var v int - 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++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - x.DisableStorage = bool(v != 0) - case 8: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Debug", wireType) - } - var v int - 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++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - x.Debug = bool(v != 0) - case 9: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType) - } - x.Limit = 0 - 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++ - x.Limit |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 10: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Overrides", wireType) - } - var msglen int - 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++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + msglen - 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 - } - if x.Overrides == nil { - x.Overrides = &ChainConfig{} - } - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Overrides); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex - case 11: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field EnableMemory", wireType) - } - var v int - 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++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - x.EnableMemory = bool(v != 0) - case 12: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field EnableReturnData", wireType) - } - var v int - 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++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - x.EnableReturnData = bool(v != 0) - case 13: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TracerJsonConfig", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -8165,7 +9212,7 @@ func (x *fastReflection_TraceConfig) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.TracerJsonConfig = string(dAtA[iNdEx:postIndex]) + x.Code = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -8203,30 +9250,32 @@ func (x *fastReflection_TraceConfig) ProtoMethods() *protoiface.Methods { } var ( - md_Preinstall protoreflect.MessageDescriptor - fd_Preinstall_name protoreflect.FieldDescriptor - fd_Preinstall_address protoreflect.FieldDescriptor - fd_Preinstall_code protoreflect.FieldDescriptor + md_EvmCoinInfo protoreflect.MessageDescriptor + fd_EvmCoinInfo_denom protoreflect.FieldDescriptor + fd_EvmCoinInfo_extended_denom protoreflect.FieldDescriptor + fd_EvmCoinInfo_display_denom protoreflect.FieldDescriptor + fd_EvmCoinInfo_decimals protoreflect.FieldDescriptor ) func init() { file_cosmos_evm_vm_v1_evm_proto_init() - md_Preinstall = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("Preinstall") - fd_Preinstall_name = md_Preinstall.Fields().ByName("name") - fd_Preinstall_address = md_Preinstall.Fields().ByName("address") - fd_Preinstall_code = md_Preinstall.Fields().ByName("code") + md_EvmCoinInfo = File_cosmos_evm_vm_v1_evm_proto.Messages().ByName("EvmCoinInfo") + fd_EvmCoinInfo_denom = md_EvmCoinInfo.Fields().ByName("denom") + fd_EvmCoinInfo_extended_denom = md_EvmCoinInfo.Fields().ByName("extended_denom") + fd_EvmCoinInfo_display_denom = md_EvmCoinInfo.Fields().ByName("display_denom") + fd_EvmCoinInfo_decimals = md_EvmCoinInfo.Fields().ByName("decimals") } -var _ protoreflect.Message = (*fastReflection_Preinstall)(nil) +var _ protoreflect.Message = (*fastReflection_EvmCoinInfo)(nil) -type fastReflection_Preinstall Preinstall +type fastReflection_EvmCoinInfo EvmCoinInfo -func (x *Preinstall) ProtoReflect() protoreflect.Message { - return (*fastReflection_Preinstall)(x) +func (x *EvmCoinInfo) ProtoReflect() protoreflect.Message { + return (*fastReflection_EvmCoinInfo)(x) } -func (x *Preinstall) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[10] +func (x *EvmCoinInfo) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8237,43 +9286,43 @@ func (x *Preinstall) slowProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -var _fastReflection_Preinstall_messageType fastReflection_Preinstall_messageType -var _ protoreflect.MessageType = fastReflection_Preinstall_messageType{} +var _fastReflection_EvmCoinInfo_messageType fastReflection_EvmCoinInfo_messageType +var _ protoreflect.MessageType = fastReflection_EvmCoinInfo_messageType{} -type fastReflection_Preinstall_messageType struct{} +type fastReflection_EvmCoinInfo_messageType struct{} -func (x fastReflection_Preinstall_messageType) Zero() protoreflect.Message { - return (*fastReflection_Preinstall)(nil) +func (x fastReflection_EvmCoinInfo_messageType) Zero() protoreflect.Message { + return (*fastReflection_EvmCoinInfo)(nil) } -func (x fastReflection_Preinstall_messageType) New() protoreflect.Message { - return new(fastReflection_Preinstall) +func (x fastReflection_EvmCoinInfo_messageType) New() protoreflect.Message { + return new(fastReflection_EvmCoinInfo) } -func (x fastReflection_Preinstall_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_Preinstall +func (x fastReflection_EvmCoinInfo_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_EvmCoinInfo } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_Preinstall) Descriptor() protoreflect.MessageDescriptor { - return md_Preinstall +func (x *fastReflection_EvmCoinInfo) Descriptor() protoreflect.MessageDescriptor { + return md_EvmCoinInfo } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_Preinstall) Type() protoreflect.MessageType { - return _fastReflection_Preinstall_messageType +func (x *fastReflection_EvmCoinInfo) Type() protoreflect.MessageType { + return _fastReflection_EvmCoinInfo_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_Preinstall) New() protoreflect.Message { - return new(fastReflection_Preinstall) +func (x *fastReflection_EvmCoinInfo) New() protoreflect.Message { + return new(fastReflection_EvmCoinInfo) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_Preinstall) Interface() protoreflect.ProtoMessage { - return (*Preinstall)(x) +func (x *fastReflection_EvmCoinInfo) Interface() protoreflect.ProtoMessage { + return (*EvmCoinInfo)(x) } // Range iterates over every populated field in an undefined order, @@ -8281,22 +9330,28 @@ func (x *fastReflection_Preinstall) Interface() protoreflect.ProtoMessage { // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_Preinstall) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if x.Name != "" { - value := protoreflect.ValueOfString(x.Name) - if !f(fd_Preinstall_name, value) { +func (x *fastReflection_EvmCoinInfo) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_EvmCoinInfo_denom, value) { return } } - if x.Address != "" { - value := protoreflect.ValueOfString(x.Address) - if !f(fd_Preinstall_address, value) { + if x.ExtendedDenom != "" { + value := protoreflect.ValueOfString(x.ExtendedDenom) + if !f(fd_EvmCoinInfo_extended_denom, value) { return } } - if x.Code != "" { - value := protoreflect.ValueOfString(x.Code) - if !f(fd_Preinstall_code, value) { + if x.DisplayDenom != "" { + value := protoreflect.ValueOfString(x.DisplayDenom) + if !f(fd_EvmCoinInfo_display_denom, value) { + return + } + } + if x.Decimals != uint32(0) { + value := protoreflect.ValueOfUint32(x.Decimals) + if !f(fd_EvmCoinInfo_decimals, value) { return } } @@ -8313,19 +9368,21 @@ func (x *fastReflection_Preinstall) Range(f func(protoreflect.FieldDescriptor, p // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_Preinstall) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_EvmCoinInfo) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "cosmos.evm.vm.v1.Preinstall.name": - return x.Name != "" - case "cosmos.evm.vm.v1.Preinstall.address": - return x.Address != "" - case "cosmos.evm.vm.v1.Preinstall.code": - return x.Code != "" + case "cosmos.evm.vm.v1.EvmCoinInfo.denom": + return x.Denom != "" + case "cosmos.evm.vm.v1.EvmCoinInfo.extended_denom": + return x.ExtendedDenom != "" + case "cosmos.evm.vm.v1.EvmCoinInfo.display_denom": + return x.DisplayDenom != "" + case "cosmos.evm.vm.v1.EvmCoinInfo.decimals": + return x.Decimals != uint32(0) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Preinstall")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.EvmCoinInfo")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.Preinstall does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.EvmCoinInfo does not contain field %s", fd.FullName())) } } @@ -8335,19 +9392,21 @@ func (x *fastReflection_Preinstall) Has(fd protoreflect.FieldDescriptor) bool { // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_Preinstall) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_EvmCoinInfo) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "cosmos.evm.vm.v1.Preinstall.name": - x.Name = "" - case "cosmos.evm.vm.v1.Preinstall.address": - x.Address = "" - case "cosmos.evm.vm.v1.Preinstall.code": - x.Code = "" + case "cosmos.evm.vm.v1.EvmCoinInfo.denom": + x.Denom = "" + case "cosmos.evm.vm.v1.EvmCoinInfo.extended_denom": + x.ExtendedDenom = "" + case "cosmos.evm.vm.v1.EvmCoinInfo.display_denom": + x.DisplayDenom = "" + case "cosmos.evm.vm.v1.EvmCoinInfo.decimals": + x.Decimals = uint32(0) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Preinstall")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.EvmCoinInfo")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.Preinstall does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.EvmCoinInfo does not contain field %s", fd.FullName())) } } @@ -8357,22 +9416,25 @@ func (x *fastReflection_Preinstall) Clear(fd protoreflect.FieldDescriptor) { // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_Preinstall) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_EvmCoinInfo) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "cosmos.evm.vm.v1.Preinstall.name": - value := x.Name + case "cosmos.evm.vm.v1.EvmCoinInfo.denom": + value := x.Denom return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.Preinstall.address": - value := x.Address + case "cosmos.evm.vm.v1.EvmCoinInfo.extended_denom": + value := x.ExtendedDenom return protoreflect.ValueOfString(value) - case "cosmos.evm.vm.v1.Preinstall.code": - value := x.Code + case "cosmos.evm.vm.v1.EvmCoinInfo.display_denom": + value := x.DisplayDenom return protoreflect.ValueOfString(value) + case "cosmos.evm.vm.v1.EvmCoinInfo.decimals": + value := x.Decimals + return protoreflect.ValueOfUint32(value) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Preinstall")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.EvmCoinInfo")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.Preinstall does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.EvmCoinInfo does not contain field %s", descriptor.FullName())) } } @@ -8386,19 +9448,21 @@ func (x *fastReflection_Preinstall) Get(descriptor protoreflect.FieldDescriptor) // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_Preinstall) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_EvmCoinInfo) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "cosmos.evm.vm.v1.Preinstall.name": - x.Name = value.Interface().(string) - case "cosmos.evm.vm.v1.Preinstall.address": - x.Address = value.Interface().(string) - case "cosmos.evm.vm.v1.Preinstall.code": - x.Code = value.Interface().(string) + case "cosmos.evm.vm.v1.EvmCoinInfo.denom": + x.Denom = value.Interface().(string) + case "cosmos.evm.vm.v1.EvmCoinInfo.extended_denom": + x.ExtendedDenom = value.Interface().(string) + case "cosmos.evm.vm.v1.EvmCoinInfo.display_denom": + x.DisplayDenom = value.Interface().(string) + case "cosmos.evm.vm.v1.EvmCoinInfo.decimals": + x.Decimals = uint32(value.Uint()) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Preinstall")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.EvmCoinInfo")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.Preinstall does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.EvmCoinInfo does not contain field %s", fd.FullName())) } } @@ -8412,48 +9476,52 @@ func (x *fastReflection_Preinstall) Set(fd protoreflect.FieldDescriptor, value p // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_Preinstall) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_EvmCoinInfo) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.Preinstall.name": - panic(fmt.Errorf("field name of message cosmos.evm.vm.v1.Preinstall is not mutable")) - case "cosmos.evm.vm.v1.Preinstall.address": - panic(fmt.Errorf("field address of message cosmos.evm.vm.v1.Preinstall is not mutable")) - case "cosmos.evm.vm.v1.Preinstall.code": - panic(fmt.Errorf("field code of message cosmos.evm.vm.v1.Preinstall is not mutable")) + case "cosmos.evm.vm.v1.EvmCoinInfo.denom": + panic(fmt.Errorf("field denom of message cosmos.evm.vm.v1.EvmCoinInfo is not mutable")) + case "cosmos.evm.vm.v1.EvmCoinInfo.extended_denom": + panic(fmt.Errorf("field extended_denom of message cosmos.evm.vm.v1.EvmCoinInfo is not mutable")) + case "cosmos.evm.vm.v1.EvmCoinInfo.display_denom": + panic(fmt.Errorf("field display_denom of message cosmos.evm.vm.v1.EvmCoinInfo is not mutable")) + case "cosmos.evm.vm.v1.EvmCoinInfo.decimals": + panic(fmt.Errorf("field decimals of message cosmos.evm.vm.v1.EvmCoinInfo is not mutable")) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Preinstall")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.EvmCoinInfo")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.Preinstall does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.EvmCoinInfo does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_Preinstall) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_EvmCoinInfo) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.evm.vm.v1.Preinstall.name": + case "cosmos.evm.vm.v1.EvmCoinInfo.denom": return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.Preinstall.address": + case "cosmos.evm.vm.v1.EvmCoinInfo.extended_denom": return protoreflect.ValueOfString("") - case "cosmos.evm.vm.v1.Preinstall.code": + case "cosmos.evm.vm.v1.EvmCoinInfo.display_denom": return protoreflect.ValueOfString("") + case "cosmos.evm.vm.v1.EvmCoinInfo.decimals": + return protoreflect.ValueOfUint32(uint32(0)) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Preinstall")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.EvmCoinInfo")) } - panic(fmt.Errorf("message cosmos.evm.vm.v1.Preinstall does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.evm.vm.v1.EvmCoinInfo does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_Preinstall) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_EvmCoinInfo) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.Preinstall", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in cosmos.evm.vm.v1.EvmCoinInfo", d.FullName())) } panic("unreachable") } @@ -8461,7 +9529,7 @@ func (x *fastReflection_Preinstall) WhichOneof(d protoreflect.OneofDescriptor) p // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_Preinstall) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_EvmCoinInfo) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -8472,7 +9540,7 @@ func (x *fastReflection_Preinstall) GetUnknown() protoreflect.RawFields { // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_Preinstall) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_EvmCoinInfo) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -8484,7 +9552,7 @@ func (x *fastReflection_Preinstall) SetUnknown(fields protoreflect.RawFields) { // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_Preinstall) IsValid() bool { +func (x *fastReflection_EvmCoinInfo) IsValid() bool { return x != nil } @@ -8494,9 +9562,9 @@ func (x *fastReflection_Preinstall) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_Preinstall) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_EvmCoinInfo) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*Preinstall) + x := input.Message.Interface().(*EvmCoinInfo) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -8508,18 +9576,21 @@ func (x *fastReflection_Preinstall) ProtoMethods() *protoiface.Methods { var n int var l int _ = l - l = len(x.Name) + l = len(x.Denom) if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } - l = len(x.Address) + l = len(x.ExtendedDenom) if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } - l = len(x.Code) + l = len(x.DisplayDenom) if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } + if x.Decimals != 0 { + n += 1 + runtime.Sov(uint64(x.Decimals)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -8530,7 +9601,7 @@ func (x *fastReflection_Preinstall) ProtoMethods() *protoiface.Methods { } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*Preinstall) + x := input.Message.Interface().(*EvmCoinInfo) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -8549,24 +9620,29 @@ func (x *fastReflection_Preinstall) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if len(x.Code) > 0 { - i -= len(x.Code) - copy(dAtA[i:], x.Code) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Code))) + if x.Decimals != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Decimals)) + i-- + dAtA[i] = 0x20 + } + if len(x.DisplayDenom) > 0 { + i -= len(x.DisplayDenom) + copy(dAtA[i:], x.DisplayDenom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.DisplayDenom))) i-- dAtA[i] = 0x1a } - if len(x.Address) > 0 { - i -= len(x.Address) - copy(dAtA[i:], x.Address) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Address))) + if len(x.ExtendedDenom) > 0 { + i -= len(x.ExtendedDenom) + copy(dAtA[i:], x.ExtendedDenom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ExtendedDenom))) i-- dAtA[i] = 0x12 } - if len(x.Name) > 0 { - i -= len(x.Name) - copy(dAtA[i:], x.Name) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Name))) + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) i-- dAtA[i] = 0xa } @@ -8581,7 +9657,7 @@ func (x *fastReflection_Preinstall) ProtoMethods() *protoiface.Methods { }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*Preinstall) + x := input.Message.Interface().(*EvmCoinInfo) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -8613,15 +9689,15 @@ func (x *fastReflection_Preinstall) ProtoMethods() *protoiface.Methods { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Preinstall: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EvmCoinInfo: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Preinstall: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EvmCoinInfo: 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 Name", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -8649,11 +9725,11 @@ func (x *fastReflection_Preinstall) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.Name = string(dAtA[iNdEx:postIndex]) + x.Denom = 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 Address", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ExtendedDenom", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -8681,11 +9757,11 @@ func (x *fastReflection_Preinstall) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.Address = string(dAtA[iNdEx:postIndex]) + x.ExtendedDenom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field DisplayDenom", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -8713,8 +9789,27 @@ func (x *fastReflection_Preinstall) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.Code = string(dAtA[iNdEx:postIndex]) + x.DisplayDenom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 4: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Decimals", wireType) + } + x.Decimals = 0 + 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++ + x.Decimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -8833,8 +9928,9 @@ type Params struct { AccessControl *AccessControl `protobuf:"bytes,8,opt,name=access_control,json=accessControl,proto3" json:"access_control,omitempty"` // active_static_precompiles defines the slice of hex addresses of the // precompiled contracts that are active - ActiveStaticPrecompiles []string `protobuf:"bytes,9,rep,name=active_static_precompiles,json=activeStaticPrecompiles,proto3" json:"active_static_precompiles,omitempty"` - HistoryServeWindow uint64 `protobuf:"varint,10,opt,name=history_serve_window,json=historyServeWindow,proto3" json:"history_serve_window,omitempty"` + ActiveStaticPrecompiles []string `protobuf:"bytes,9,rep,name=active_static_precompiles,json=activeStaticPrecompiles,proto3" json:"active_static_precompiles,omitempty"` + HistoryServeWindow uint64 `protobuf:"varint,10,opt,name=history_serve_window,json=historyServeWindow,proto3" json:"history_serve_window,omitempty"` + ExtendedDenomOptions *ExtendedDenomOptions `protobuf:"bytes,11,opt,name=extended_denom_options,json=extendedDenomOptions,proto3" json:"extended_denom_options,omitempty"` } func (x *Params) Reset() { @@ -8899,6 +9995,48 @@ func (x *Params) GetHistoryServeWindow() uint64 { return 0 } +func (x *Params) GetExtendedDenomOptions() *ExtendedDenomOptions { + if x != nil { + return x.ExtendedDenomOptions + } + return nil +} + +type ExtendedDenomOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ExtendedDenom string `protobuf:"bytes,1,opt,name=extended_denom,json=extendedDenom,proto3" json:"extended_denom,omitempty"` +} + +func (x *ExtendedDenomOptions) Reset() { + *x = ExtendedDenomOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExtendedDenomOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExtendedDenomOptions) ProtoMessage() {} + +// Deprecated: Use ExtendedDenomOptions.ProtoReflect.Descriptor instead. +func (*ExtendedDenomOptions) Descriptor() ([]byte, []int) { + return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{1} +} + +func (x *ExtendedDenomOptions) GetExtendedDenom() string { + if x != nil { + return x.ExtendedDenom + } + return "" +} + // AccessControl defines the permission policy of the EVM // for creating and calling contracts type AccessControl struct { @@ -8915,7 +10053,7 @@ type AccessControl struct { func (x *AccessControl) Reset() { *x = AccessControl{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[1] + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8929,7 +10067,7 @@ func (*AccessControl) ProtoMessage() {} // Deprecated: Use AccessControl.ProtoReflect.Descriptor instead. func (*AccessControl) Descriptor() ([]byte, []int) { - return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{1} + return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{2} } func (x *AccessControl) GetCreate() *AccessControlType { @@ -8967,7 +10105,7 @@ type AccessControlType struct { func (x *AccessControlType) Reset() { *x = AccessControlType{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[2] + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8981,7 +10119,7 @@ func (*AccessControlType) ProtoMessage() {} // Deprecated: Use AccessControlType.ProtoReflect.Descriptor instead. func (*AccessControlType) Descriptor() ([]byte, []int) { - return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{2} + return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{3} } func (x *AccessControlType) GetAccessType() AccessType { @@ -9068,7 +10206,7 @@ type ChainConfig struct { func (x *ChainConfig) Reset() { *x = ChainConfig{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[3] + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9082,7 +10220,7 @@ func (*ChainConfig) ProtoMessage() {} // Deprecated: Use ChainConfig.ProtoReflect.Descriptor instead. func (*ChainConfig) Descriptor() ([]byte, []int) { - return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{3} + return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{4} } func (x *ChainConfig) GetHomesteadBlock() string { @@ -9268,7 +10406,7 @@ type State struct { func (x *State) Reset() { *x = State{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[4] + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9282,7 +10420,7 @@ func (*State) ProtoMessage() {} // Deprecated: Use State.ProtoReflect.Descriptor instead. func (*State) Descriptor() ([]byte, []int) { - return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{4} + return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{5} } func (x *State) GetKey() string { @@ -9316,7 +10454,7 @@ type TransactionLogs struct { func (x *TransactionLogs) Reset() { *x = TransactionLogs{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[5] + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9330,7 +10468,7 @@ func (*TransactionLogs) ProtoMessage() {} // Deprecated: Use TransactionLogs.ProtoReflect.Descriptor instead. func (*TransactionLogs) Descriptor() ([]byte, []int) { - return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{5} + return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{6} } func (x *TransactionLogs) GetHash() string { @@ -9385,7 +10523,7 @@ type Log struct { func (x *Log) Reset() { *x = Log{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[6] + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9399,7 +10537,7 @@ func (*Log) ProtoMessage() {} // Deprecated: Use Log.ProtoReflect.Descriptor instead. func (*Log) Descriptor() ([]byte, []int) { - return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{6} + return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{7} } func (x *Log) GetAddress() string { @@ -9498,7 +10636,7 @@ type TxResult struct { func (x *TxResult) Reset() { *x = TxResult{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[7] + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9512,7 +10650,7 @@ func (*TxResult) ProtoMessage() {} // Deprecated: Use TxResult.ProtoReflect.Descriptor instead. func (*TxResult) Descriptor() ([]byte, []int) { - return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{7} + return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{8} } func (x *TxResult) GetContractAddress() string { @@ -9572,7 +10710,7 @@ type AccessTuple struct { func (x *AccessTuple) Reset() { *x = AccessTuple{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[8] + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9586,7 +10724,7 @@ func (*AccessTuple) ProtoMessage() {} // Deprecated: Use AccessTuple.ProtoReflect.Descriptor instead. func (*AccessTuple) Descriptor() ([]byte, []int) { - return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{8} + return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{9} } func (x *AccessTuple) GetAddress() string { @@ -9637,7 +10775,7 @@ type TraceConfig struct { func (x *TraceConfig) Reset() { *x = TraceConfig{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[9] + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9651,7 +10789,7 @@ func (*TraceConfig) ProtoMessage() {} // Deprecated: Use TraceConfig.ProtoReflect.Descriptor instead. func (*TraceConfig) Descriptor() ([]byte, []int) { - return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{9} + return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{10} } func (x *TraceConfig) GetTracer() string { @@ -9749,7 +10887,7 @@ type Preinstall struct { func (x *Preinstall) Reset() { *x = Preinstall{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[10] + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9763,7 +10901,7 @@ func (*Preinstall) ProtoMessage() {} // Deprecated: Use Preinstall.ProtoReflect.Descriptor instead. func (*Preinstall) Descriptor() ([]byte, []int) { - return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{10} + return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{11} } func (x *Preinstall) GetName() string { @@ -9787,6 +10925,65 @@ func (x *Preinstall) GetCode() string { return "" } +type EvmCoinInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + ExtendedDenom string `protobuf:"bytes,2,opt,name=extended_denom,json=extendedDenom,proto3" json:"extended_denom,omitempty"` + DisplayDenom string `protobuf:"bytes,3,opt,name=display_denom,json=displayDenom,proto3" json:"display_denom,omitempty"` + Decimals uint32 `protobuf:"varint,4,opt,name=decimals,proto3" json:"decimals,omitempty"` +} + +func (x *EvmCoinInfo) Reset() { + *x = EvmCoinInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_evm_vm_v1_evm_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EvmCoinInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EvmCoinInfo) ProtoMessage() {} + +// Deprecated: Use EvmCoinInfo.ProtoReflect.Descriptor instead. +func (*EvmCoinInfo) Descriptor() ([]byte, []int) { + return file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP(), []int{12} +} + +func (x *EvmCoinInfo) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *EvmCoinInfo) GetExtendedDenom() string { + if x != nil { + return x.ExtendedDenom + } + return "" +} + +func (x *EvmCoinInfo) GetDisplayDenom() string { + if x != nil { + return x.DisplayDenom + } + return "" +} + +func (x *EvmCoinInfo) GetDecimals() uint32 { + if x != nil { + return x.Decimals + } + return 0 +} + var File_cosmos_evm_vm_v1_evm_proto protoreflect.FileDescriptor var file_cosmos_evm_vm_v1_evm_proto_rawDesc = []byte{ @@ -9795,7 +10992,7 @@ var file_cosmos_evm_vm_v1_evm_proto_rawDesc = []byte{ 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 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, 0x22, 0xb4, 0x03, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, + 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x92, 0x04, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x76, 0x6d, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x65, 0x76, 0x6d, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x52, 0x08, 0x65, 0x76, 0x6d, @@ -9819,283 +11016,302 @@ var file_cosmos_evm_vm_v1_evm_proto_rawDesc = []byte{ 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x3a, 0x1b, 0x8a, 0xe7, 0xb0, 0x2a, 0x16, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x65, 0x76, 0x6d, 0x2f, 0x78, 0x2f, 0x76, 0x6d, 0x2f, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, - 0x10, 0x04, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0x91, - 0x01, 0x0a, 0x0d, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x12, 0x41, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x06, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, - 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x04, 0x63, 0x61, - 0x6c, 0x6c, 0x22, 0xdd, 0x01, 0x0a, 0x11, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, + 0x72, 0x76, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x5c, 0x0a, 0x16, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x14, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x1b, 0x8a, 0xe7, 0xb0, 0x2a, 0x16, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x65, 0x76, 0x6d, 0x2f, 0x78, 0x2f, 0x76, 0x6d, 0x2f, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, + 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0x3d, 0x0a, 0x14, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x91, 0x01, 0x0a, 0x0d, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x41, 0x0a, + 0x06, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x42, 0x24, 0xe2, 0xde, 0x1f, - 0x0a, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0xf2, 0xde, 0x1f, 0x12, 0x79, - 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x22, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, - 0x13, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, - 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x33, 0xe2, 0xde, 0x1f, 0x11, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4c, 0x69, 0x73, - 0x74, 0xf2, 0xde, 0x1f, 0x1a, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x52, - 0x11, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0xa8, 0x10, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x5c, 0x0a, 0x0f, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x61, 0x64, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xda, 0xde, 0x1f, - 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, - 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x16, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, - 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, - 0x52, 0x0e, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x12, 0x68, 0x0a, 0x0e, 0x64, 0x61, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x42, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, + 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x06, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x12, 0x3d, 0x0a, 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x22, + 0xdd, 0x01, 0x0a, 0x11, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x42, 0x24, 0xe2, 0xde, 0x1f, 0x0a, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0xf2, 0xde, 0x1f, 0x12, 0x79, 0x61, 0x6d, 0x6c, + 0x3a, 0x22, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x52, 0x0a, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, 0x13, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6c, 0x69, 0x73, + 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x33, 0xe2, 0xde, 0x1f, 0x11, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0xf2, 0xde, + 0x1f, 0x1a, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x52, 0x11, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0xa8, 0x10, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x5c, 0x0a, 0x0f, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, - 0x49, 0x6e, 0x74, 0xe2, 0xde, 0x1f, 0x0c, 0x44, 0x41, 0x4f, 0x46, 0x6f, 0x72, 0x6b, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x64, 0x61, 0x6f, - 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0c, 0x64, 0x61, - 0x6f, 0x46, 0x6f, 0x72, 0x6b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x57, 0x0a, 0x10, 0x64, 0x61, - 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x42, 0x2d, 0xe2, 0xde, 0x1f, 0x0e, 0x44, 0x41, 0x4f, 0x46, 0x6f, 0x72, - 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0xf2, 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, - 0x3a, 0x22, 0x64, 0x61, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x22, 0x52, 0x0e, 0x64, 0x61, 0x6f, 0x46, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x12, 0x62, 0x0a, 0x0c, 0x65, 0x69, 0x70, 0x31, 0x35, 0x30, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3f, 0xda, 0xde, 0x1f, 0x15, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, - 0x2e, 0x49, 0x6e, 0x74, 0xe2, 0xde, 0x1f, 0x0b, 0x45, 0x49, 0x50, 0x31, 0x35, 0x30, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x65, 0x69, 0x70, - 0x31, 0x35, 0x30, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0b, 0x65, 0x69, 0x70, 0x31, - 0x35, 0x30, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x62, 0x0a, 0x0c, 0x65, 0x69, 0x70, 0x31, 0x35, - 0x35, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3f, 0xda, - 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, - 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xe2, 0xde, 0x1f, 0x0b, 0x45, 0x49, 0x50, 0x31, - 0x35, 0x35, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, - 0x22, 0x65, 0x69, 0x70, 0x31, 0x35, 0x35, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0b, - 0x65, 0x69, 0x70, 0x31, 0x35, 0x35, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x62, 0x0a, 0x0c, 0x65, - 0x69, 0x70, 0x31, 0x35, 0x38, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x3f, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, - 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xe2, 0xde, 0x1f, 0x0b, - 0x45, 0x49, 0x50, 0x31, 0x35, 0x38, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0xf2, 0xde, 0x1f, 0x13, 0x79, - 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x65, 0x69, 0x70, 0x31, 0x35, 0x38, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x22, 0x52, 0x0b, 0x65, 0x69, 0x70, 0x31, 0x35, 0x38, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, - 0x5c, 0x0a, 0x0f, 0x62, 0x79, 0x7a, 0x61, 0x6e, 0x74, 0x69, 0x75, 0x6d, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, + 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x16, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x68, 0x6f, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0e, 0x68, + 0x6f, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x68, 0x0a, + 0x0e, 0x64, 0x61, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x42, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, + 0xe2, 0xde, 0x1f, 0x0c, 0x44, 0x41, 0x4f, 0x46, 0x6f, 0x72, 0x6b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x64, 0x61, 0x6f, 0x5f, 0x66, 0x6f, + 0x72, 0x6b, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0c, 0x64, 0x61, 0x6f, 0x46, 0x6f, + 0x72, 0x6b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x57, 0x0a, 0x10, 0x64, 0x61, 0x6f, 0x5f, 0x66, + 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x2d, 0xe2, 0xde, 0x1f, 0x0e, 0x44, 0x41, 0x4f, 0x46, 0x6f, 0x72, 0x6b, 0x53, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0xf2, 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x64, + 0x61, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x22, + 0x52, 0x0e, 0x64, 0x61, 0x6f, 0x46, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x62, 0x0a, 0x0c, 0x65, 0x69, 0x70, 0x31, 0x35, 0x30, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3f, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, + 0x74, 0xe2, 0xde, 0x1f, 0x0b, 0x45, 0x49, 0x50, 0x31, 0x35, 0x30, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x65, 0x69, 0x70, 0x31, 0x35, 0x30, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0b, 0x65, 0x69, 0x70, 0x31, 0x35, 0x30, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x62, 0x0a, 0x0c, 0x65, 0x69, 0x70, 0x31, 0x35, 0x35, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3f, 0xda, 0xde, 0x1f, 0x15, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, + 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xe2, 0xde, 0x1f, 0x0b, 0x45, 0x49, 0x50, 0x31, 0x35, 0x35, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x65, 0x69, + 0x70, 0x31, 0x35, 0x35, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0b, 0x65, 0x69, 0x70, + 0x31, 0x35, 0x35, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x62, 0x0a, 0x0c, 0x65, 0x69, 0x70, 0x31, + 0x35, 0x38, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3f, + 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, + 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xe2, 0xde, 0x1f, 0x0b, 0x45, 0x49, 0x50, + 0x31, 0x35, 0x38, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, + 0x3a, 0x22, 0x65, 0x69, 0x70, 0x31, 0x35, 0x38, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, + 0x0b, 0x65, 0x69, 0x70, 0x31, 0x35, 0x38, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5c, 0x0a, 0x0f, + 0x62, 0x79, 0x7a, 0x61, 0x6e, 0x74, 0x69, 0x75, 0x6d, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, + 0xf2, 0xde, 0x1f, 0x16, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x79, 0x7a, 0x61, 0x6e, 0x74, + 0x69, 0x75, 0x6d, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0e, 0x62, 0x79, 0x7a, 0x61, + 0x6e, 0x74, 0x69, 0x75, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x6b, 0x0a, 0x14, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x6f, 0x70, 0x6c, 0x65, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x38, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, - 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x16, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x79, 0x7a, - 0x61, 0x6e, 0x74, 0x69, 0x75, 0x6d, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0e, 0x62, - 0x79, 0x7a, 0x61, 0x6e, 0x74, 0x69, 0x75, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x6b, 0x0a, - 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x6f, 0x70, 0x6c, 0x65, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x38, 0xda, 0xde, 0x1f, - 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, - 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x1b, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x6f, 0x70, 0x6c, 0x65, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, - 0x6e, 0x6f, 0x70, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5f, 0x0a, 0x10, 0x70, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x62, 0x75, 0x72, 0x67, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x1b, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x6f, 0x70, 0x6c, 0x65, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x22, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x6f, 0x70, + 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5f, 0x0a, 0x10, 0x70, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x62, 0x75, 0x72, 0x67, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x34, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, + 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x17, + 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x70, 0x65, 0x74, 0x65, 0x72, 0x73, 0x62, 0x75, 0x72, 0x67, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0f, 0x70, 0x65, 0x74, 0x65, 0x72, 0x73, 0x62, + 0x75, 0x72, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x59, 0x0a, 0x0e, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x62, 0x75, 0x6c, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x32, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, + 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x15, 0x79, + 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x6c, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0d, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x6c, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x64, 0x0a, 0x12, 0x6d, 0x75, 0x69, 0x72, 0x5f, 0x67, 0x6c, 0x61, 0x63, + 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x36, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, + 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x19, 0x79, 0x61, + 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x75, 0x69, 0x72, 0x5f, 0x67, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x10, 0x6d, 0x75, 0x69, 0x72, 0x47, 0x6c, 0x61, + 0x63, 0x69, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x53, 0x0a, 0x0c, 0x62, 0x65, 0x72, + 0x6c, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x30, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, + 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, + 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x22, 0x52, 0x0b, 0x62, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x53, + 0x0a, 0x0c, 0x6c, 0x6f, 0x6e, 0x64, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, - 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x70, 0x65, 0x74, 0x65, 0x72, 0x73, 0x62, - 0x75, 0x72, 0x67, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0f, 0x70, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x62, 0x75, 0x72, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x59, 0x0a, 0x0e, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x6c, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x32, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, - 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, - 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x6c, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0d, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x62, 0x75, - 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x64, 0x0a, 0x12, 0x6d, 0x75, 0x69, 0x72, 0x5f, 0x67, - 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x36, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, - 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, - 0x19, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x75, 0x69, 0x72, 0x5f, 0x67, 0x6c, 0x61, 0x63, - 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x10, 0x6d, 0x75, 0x69, 0x72, - 0x47, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x53, 0x0a, 0x0c, - 0x62, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x30, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, - 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, - 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0b, 0x62, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x12, 0x53, 0x0a, 0x0c, 0x6c, 0x6f, 0x6e, 0x64, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, - 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6c, 0x6f, 0x6e, 0x64, - 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0b, 0x6c, 0x6f, 0x6e, 0x64, 0x6f, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x67, 0x0a, 0x13, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, - 0x67, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x37, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, - 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, - 0x1f, 0x1a, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x67, 0x6c, - 0x61, 0x63, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x11, 0x61, 0x72, - 0x72, 0x6f, 0x77, 0x47, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, - 0x64, 0x0a, 0x12, 0x67, 0x72, 0x61, 0x79, 0x5f, 0x67, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xda, 0xde, 0x1f, - 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, - 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x19, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, + 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6c, 0x6f, 0x6e, 0x64, 0x6f, 0x6e, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0b, 0x6c, 0x6f, 0x6e, 0x64, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x67, 0x0a, 0x13, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x67, 0x6c, 0x61, + 0x63, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x37, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, + 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x1a, 0x79, + 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x67, 0x6c, 0x61, 0x63, 0x69, + 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x11, 0x61, 0x72, 0x72, 0x6f, 0x77, + 0x47, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x64, 0x0a, 0x12, 0x67, 0x72, 0x61, 0x79, 0x5f, 0x67, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x22, 0x52, 0x10, 0x67, 0x72, 0x61, 0x79, 0x47, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x6a, 0x0a, 0x14, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, 0x6e, - 0x65, 0x74, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x38, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, - 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, - 0x1f, 0x1b, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, 0x6e, 0x65, - 0x74, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x12, 0x6d, - 0x65, 0x72, 0x67, 0x65, 0x4e, 0x65, 0x74, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x18, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x1a, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x56, - 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x68, 0x61, 0x69, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x1b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, - 0xf2, 0xde, 0x1f, 0x14, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x68, - 0x61, 0x69, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x68, - 0x61, 0x69, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x75, 0x6e, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xda, 0xde, 0x1f, - 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, - 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x12, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, - 0x63, 0x61, 0x6e, 0x63, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x0a, 0x63, 0x61, - 0x6e, 0x63, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x70, 0x72, 0x61, 0x67, - 0x75, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xda, + 0x63, 0x6b, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, + 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x19, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x67, 0x72, 0x61, + 0x79, 0x5f, 0x67, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, + 0x52, 0x10, 0x67, 0x72, 0x61, 0x79, 0x47, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x12, 0x6a, 0x0a, 0x14, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, 0x6e, 0x65, 0x74, 0x73, + 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x38, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, + 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x1b, 0x79, + 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, 0x6e, 0x65, 0x74, 0x73, 0x70, + 0x6c, 0x69, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x12, 0x6d, 0x65, 0x72, 0x67, + 0x65, 0x4e, 0x65, 0x74, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x19, + 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, + 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x56, 0x0a, 0x0d, 0x73, + 0x68, 0x61, 0x6e, 0x67, 0x68, 0x61, 0x69, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1b, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x31, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, + 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, + 0x14, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x68, 0x61, 0x69, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x68, 0x61, 0x69, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x75, 0x6e, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, + 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x12, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x61, 0x6e, + 0x63, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x63, 0x75, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x70, 0x72, 0x61, 0x67, 0x75, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xda, 0xde, 0x1f, 0x15, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, + 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x12, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x70, + 0x72, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x0a, 0x70, 0x72, 0x61, + 0x67, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x76, 0x65, 0x72, 0x6b, 0x6c, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xda, 0xde, + 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, + 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x12, 0x79, 0x61, 0x6d, 0x6c, 0x3a, + 0x22, 0x76, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x0a, 0x76, + 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x6f, 0x73, 0x61, + 0x6b, 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, - 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x12, 0x79, 0x61, 0x6d, 0x6c, - 0x3a, 0x22, 0x70, 0x72, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x0a, - 0x70, 0x72, 0x61, 0x67, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x76, 0x65, - 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x2f, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, - 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x12, 0x79, 0x61, - 0x6d, 0x6c, 0x3a, 0x22, 0x76, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0x52, 0x0a, 0x76, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x0a, - 0x6f, 0x73, 0x61, 0x6b, 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x2e, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, - 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x11, 0x79, - 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6f, 0x73, 0x61, 0x6b, 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0x52, 0x09, 0x6f, 0x73, 0x61, 0x6b, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x4a, 0x04, 0x08, 0x05, 0x10, - 0x06, 0x4a, 0x04, 0x08, 0x16, 0x10, 0x17, 0x4a, 0x04, 0x08, 0x17, 0x10, 0x18, 0x22, 0x2f, 0x0a, - 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x50, - 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, - 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, - 0x22, 0x87, 0x03, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, - 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x42, 0x0f, 0xea, 0xde, 0x1f, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x13, 0xea, 0xde, 0x1f, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, - 0x12, 0x2f, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x07, 0x74, 0x78, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x2c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xea, 0xde, 0x1f, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x61, 0x73, 0x68, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x22, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0c, - 0xea, 0xde, 0x1f, 0x08, 0x6c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x3b, 0x0a, - 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x12, 0xea, 0xde, 0x1f, 0x0e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x90, 0x02, 0x0a, 0x08, 0x54, - 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x46, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x1b, 0xf2, 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x52, 0x0f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x57, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x6c, 0x6f, 0x67, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x42, 0x1b, 0xc8, 0xde, 0x1f, 0x00, 0xf2, - 0xde, 0x1f, 0x0e, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x74, 0x78, 0x5f, 0x6c, 0x6f, 0x67, 0x73, - 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x74, 0x78, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x10, - 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x72, 0x65, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x65, 0x72, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x76, 0x65, 0x72, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, - 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x3a, 0x04, 0x88, 0xa0, 0x1f, 0x00, 0x22, 0x61, 0x0a, - 0x0b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x0f, 0xea, 0xde, - 0x1f, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x0b, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x3a, 0x04, 0x88, 0xa0, 0x1f, 0x00, - 0x22, 0xa0, 0x04, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x16, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x65, 0x78, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x72, 0x65, 0x65, 0x78, 0x65, 0x63, 0x12, 0x35, 0x0a, 0x0d, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x42, 0x10, 0xea, 0xde, 0x1f, 0x0c, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, - 0x61, 0x63, 0x6b, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x63, - 0x6b, 0x12, 0x3b, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x12, 0xea, 0xde, 0x1f, 0x0e, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x0e, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x64, - 0x65, 0x62, 0x75, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3b, 0x0a, 0x09, 0x6f, 0x76, - 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x6f, 0x76, - 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x10, - 0xea, 0xde, 0x1f, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x52, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x42, - 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x10, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x5f, 0x6a, 0x73, 0x6f, - 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, - 0xea, 0xde, 0x1f, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x10, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x52, 0x0e, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x13, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x4e, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, - 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x2a, 0xc0, 0x01, 0x0a, 0x0a, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x1a, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x4c, 0x45, 0x53, 0x53, - 0x10, 0x00, 0x1a, 0x1c, 0x8a, 0x9d, 0x20, 0x18, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x6c, 0x65, 0x73, 0x73, - 0x12, 0x34, 0x0a, 0x16, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x52, 0x45, 0x53, 0x54, 0x52, 0x49, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x1a, 0x18, 0x8a, 0x9d, - 0x20, 0x14, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x74, - 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, - 0x45, 0x44, 0x10, 0x02, 0x1a, 0x1a, 0x8a, 0x9d, 0x20, 0x16, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, - 0x1a, 0x04, 0x88, 0xa3, 0x1e, 0x00, 0x42, 0xab, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, 0x42, - 0x08, 0x45, 0x76, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x26, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x65, 0x76, 0x6d, 0x2f, 0x76, 0x6d, 0x2f, 0x76, 0x31, 0x3b, 0x76, - 0x6d, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x45, 0x56, 0xaa, 0x02, 0x10, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x45, 0x76, 0x6d, 0x2e, 0x56, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x45, 0x76, 0x6d, 0x5c, 0x56, 0x6d, 0x5c, 0x56, 0x31, 0xe2, - 0x02, 0x1c, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x45, 0x76, 0x6d, 0x5c, 0x56, 0x6d, 0x5c, - 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x45, 0x76, 0x6d, 0x3a, 0x3a, 0x56, 0x6d, - 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x11, 0x79, 0x61, 0x6d, 0x6c, + 0x3a, 0x22, 0x6f, 0x73, 0x61, 0x6b, 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x09, 0x6f, + 0x73, 0x61, 0x6b, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, + 0x08, 0x16, 0x10, 0x17, 0x4a, 0x04, 0x08, 0x17, 0x10, 0x18, 0x22, 0x2f, 0x0a, 0x05, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x50, 0x0a, 0x0f, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, + 0x73, 0x68, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x22, 0x87, 0x03, + 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x0c, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x0f, 0xea, 0xde, 0x1f, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x2c, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x13, 0xea, 0xde, 0x1f, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x61, 0x73, 0x68, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2f, 0x0a, + 0x08, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x14, 0xea, 0xde, 0x1f, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x07, 0x74, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2c, + 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0d, 0xea, 0xde, 0x1f, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, + 0x68, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x05, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0c, 0xea, 0xde, 0x1f, + 0x08, 0x6c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x0f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x12, 0xea, 0xde, 0x1f, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x90, 0x02, 0x0a, 0x08, 0x54, 0x78, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x46, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, + 0xf2, 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x52, 0x0f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x6c, 0x6f, + 0x6f, 0x6d, 0x12, 0x57, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, + 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x42, 0x1b, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x0e, + 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x74, 0x78, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x22, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x74, 0x78, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x72, + 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x72, 0x65, 0x76, 0x65, 0x72, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x72, 0x65, 0x76, 0x65, 0x72, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x73, + 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x61, 0x73, + 0x55, 0x73, 0x65, 0x64, 0x3a, 0x04, 0x88, 0xa0, 0x1f, 0x00, 0x22, 0x61, 0x0a, 0x0b, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6b, + 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x0f, 0xea, 0xde, 0x1f, 0x0b, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x3a, 0x04, 0x88, 0xa0, 0x1f, 0x00, 0x22, 0xa0, 0x04, + 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, + 0x06, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x72, 0x65, 0x65, 0x78, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x72, 0x65, 0x65, 0x78, 0x65, 0x63, 0x12, 0x35, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x10, + 0xea, 0xde, 0x1f, 0x0c, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x63, 0x6b, + 0x52, 0x0c, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x3b, + 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x12, 0xea, 0xde, 0x1f, 0x0e, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, + 0x65, 0x62, 0x75, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x64, 0x65, 0x62, 0x75, + 0x67, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3b, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x72, + 0x69, 0x64, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x72, + 0x69, 0x64, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x10, 0xea, 0xde, 0x1f, + 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x0c, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x42, 0x0a, 0x12, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x10, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x3e, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xea, 0xde, 0x1f, + 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, + 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x52, 0x0e, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x13, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x4e, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x22, 0x8b, 0x01, 0x0a, 0x0b, 0x45, 0x76, 0x6d, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x23, 0x0a, + 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x65, 0x6e, + 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x2a, 0xc0, + 0x01, 0x0a, 0x0a, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, + 0x1a, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x45, 0x52, + 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x4c, 0x45, 0x53, 0x53, 0x10, 0x00, 0x1a, 0x1c, 0x8a, + 0x9d, 0x20, 0x18, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x6c, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x41, + 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x52, + 0x49, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x1a, 0x18, 0x8a, 0x9d, 0x20, 0x14, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, + 0x64, 0x12, 0x38, 0x0a, 0x18, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x45, 0x44, 0x10, 0x02, 0x1a, + 0x1a, 0x8a, 0x9d, 0x20, 0x16, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x50, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x1a, 0x04, 0x88, 0xa3, 0x1e, + 0x00, 0x42, 0xab, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x08, 0x45, 0x76, 0x6d, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x26, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, + 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x65, 0x76, 0x6d, 0x2f, 0x76, 0x6d, 0x2f, 0x76, 0x31, 0x3b, 0x76, 0x6d, 0x76, 0x31, 0xa2, 0x02, + 0x03, 0x43, 0x45, 0x56, 0xaa, 0x02, 0x10, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x45, 0x76, + 0x6d, 0x2e, 0x56, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x5c, 0x45, 0x76, 0x6d, 0x5c, 0x56, 0x6d, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x5c, 0x45, 0x76, 0x6d, 0x5c, 0x56, 0x6d, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x3a, 0x3a, 0x45, 0x76, 0x6d, 0x3a, 0x3a, 0x56, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -10111,34 +11327,37 @@ func file_cosmos_evm_vm_v1_evm_proto_rawDescGZIP() []byte { } var file_cosmos_evm_vm_v1_evm_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_cosmos_evm_vm_v1_evm_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_cosmos_evm_vm_v1_evm_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_cosmos_evm_vm_v1_evm_proto_goTypes = []interface{}{ - (AccessType)(0), // 0: cosmos.evm.vm.v1.AccessType - (*Params)(nil), // 1: cosmos.evm.vm.v1.Params - (*AccessControl)(nil), // 2: cosmos.evm.vm.v1.AccessControl - (*AccessControlType)(nil), // 3: cosmos.evm.vm.v1.AccessControlType - (*ChainConfig)(nil), // 4: cosmos.evm.vm.v1.ChainConfig - (*State)(nil), // 5: cosmos.evm.vm.v1.State - (*TransactionLogs)(nil), // 6: cosmos.evm.vm.v1.TransactionLogs - (*Log)(nil), // 7: cosmos.evm.vm.v1.Log - (*TxResult)(nil), // 8: cosmos.evm.vm.v1.TxResult - (*AccessTuple)(nil), // 9: cosmos.evm.vm.v1.AccessTuple - (*TraceConfig)(nil), // 10: cosmos.evm.vm.v1.TraceConfig - (*Preinstall)(nil), // 11: cosmos.evm.vm.v1.Preinstall + (AccessType)(0), // 0: cosmos.evm.vm.v1.AccessType + (*Params)(nil), // 1: cosmos.evm.vm.v1.Params + (*ExtendedDenomOptions)(nil), // 2: cosmos.evm.vm.v1.ExtendedDenomOptions + (*AccessControl)(nil), // 3: cosmos.evm.vm.v1.AccessControl + (*AccessControlType)(nil), // 4: cosmos.evm.vm.v1.AccessControlType + (*ChainConfig)(nil), // 5: cosmos.evm.vm.v1.ChainConfig + (*State)(nil), // 6: cosmos.evm.vm.v1.State + (*TransactionLogs)(nil), // 7: cosmos.evm.vm.v1.TransactionLogs + (*Log)(nil), // 8: cosmos.evm.vm.v1.Log + (*TxResult)(nil), // 9: cosmos.evm.vm.v1.TxResult + (*AccessTuple)(nil), // 10: cosmos.evm.vm.v1.AccessTuple + (*TraceConfig)(nil), // 11: cosmos.evm.vm.v1.TraceConfig + (*Preinstall)(nil), // 12: cosmos.evm.vm.v1.Preinstall + (*EvmCoinInfo)(nil), // 13: cosmos.evm.vm.v1.EvmCoinInfo } var file_cosmos_evm_vm_v1_evm_proto_depIdxs = []int32{ - 2, // 0: cosmos.evm.vm.v1.Params.access_control:type_name -> cosmos.evm.vm.v1.AccessControl - 3, // 1: cosmos.evm.vm.v1.AccessControl.create:type_name -> cosmos.evm.vm.v1.AccessControlType - 3, // 2: cosmos.evm.vm.v1.AccessControl.call:type_name -> cosmos.evm.vm.v1.AccessControlType - 0, // 3: cosmos.evm.vm.v1.AccessControlType.access_type:type_name -> cosmos.evm.vm.v1.AccessType - 7, // 4: cosmos.evm.vm.v1.TransactionLogs.logs:type_name -> cosmos.evm.vm.v1.Log - 6, // 5: cosmos.evm.vm.v1.TxResult.tx_logs:type_name -> cosmos.evm.vm.v1.TransactionLogs - 4, // 6: cosmos.evm.vm.v1.TraceConfig.overrides:type_name -> cosmos.evm.vm.v1.ChainConfig - 7, // [7:7] is the sub-list for method output_type - 7, // [7:7] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 3, // 0: cosmos.evm.vm.v1.Params.access_control:type_name -> cosmos.evm.vm.v1.AccessControl + 2, // 1: cosmos.evm.vm.v1.Params.extended_denom_options:type_name -> cosmos.evm.vm.v1.ExtendedDenomOptions + 4, // 2: cosmos.evm.vm.v1.AccessControl.create:type_name -> cosmos.evm.vm.v1.AccessControlType + 4, // 3: cosmos.evm.vm.v1.AccessControl.call:type_name -> cosmos.evm.vm.v1.AccessControlType + 0, // 4: cosmos.evm.vm.v1.AccessControlType.access_type:type_name -> cosmos.evm.vm.v1.AccessType + 8, // 5: cosmos.evm.vm.v1.TransactionLogs.logs:type_name -> cosmos.evm.vm.v1.Log + 7, // 6: cosmos.evm.vm.v1.TxResult.tx_logs:type_name -> cosmos.evm.vm.v1.TransactionLogs + 5, // 7: cosmos.evm.vm.v1.TraceConfig.overrides:type_name -> cosmos.evm.vm.v1.ChainConfig + 8, // [8:8] is the sub-list for method output_type + 8, // [8:8] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name } func init() { file_cosmos_evm_vm_v1_evm_proto_init() } @@ -10160,7 +11379,7 @@ func file_cosmos_evm_vm_v1_evm_proto_init() { } } file_cosmos_evm_vm_v1_evm_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccessControl); i { + switch v := v.(*ExtendedDenomOptions); i { case 0: return &v.state case 1: @@ -10172,7 +11391,7 @@ func file_cosmos_evm_vm_v1_evm_proto_init() { } } file_cosmos_evm_vm_v1_evm_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccessControlType); i { + switch v := v.(*AccessControl); i { case 0: return &v.state case 1: @@ -10184,7 +11403,7 @@ func file_cosmos_evm_vm_v1_evm_proto_init() { } } file_cosmos_evm_vm_v1_evm_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainConfig); i { + switch v := v.(*AccessControlType); i { case 0: return &v.state case 1: @@ -10196,7 +11415,7 @@ func file_cosmos_evm_vm_v1_evm_proto_init() { } } file_cosmos_evm_vm_v1_evm_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*State); i { + switch v := v.(*ChainConfig); i { case 0: return &v.state case 1: @@ -10208,7 +11427,7 @@ func file_cosmos_evm_vm_v1_evm_proto_init() { } } file_cosmos_evm_vm_v1_evm_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TransactionLogs); i { + switch v := v.(*State); i { case 0: return &v.state case 1: @@ -10220,7 +11439,7 @@ func file_cosmos_evm_vm_v1_evm_proto_init() { } } file_cosmos_evm_vm_v1_evm_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Log); i { + switch v := v.(*TransactionLogs); i { case 0: return &v.state case 1: @@ -10232,7 +11451,7 @@ func file_cosmos_evm_vm_v1_evm_proto_init() { } } file_cosmos_evm_vm_v1_evm_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TxResult); i { + switch v := v.(*Log); i { case 0: return &v.state case 1: @@ -10244,7 +11463,7 @@ func file_cosmos_evm_vm_v1_evm_proto_init() { } } file_cosmos_evm_vm_v1_evm_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccessTuple); i { + switch v := v.(*TxResult); i { case 0: return &v.state case 1: @@ -10256,7 +11475,7 @@ func file_cosmos_evm_vm_v1_evm_proto_init() { } } file_cosmos_evm_vm_v1_evm_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TraceConfig); i { + switch v := v.(*AccessTuple); i { case 0: return &v.state case 1: @@ -10268,6 +11487,18 @@ func file_cosmos_evm_vm_v1_evm_proto_init() { } } file_cosmos_evm_vm_v1_evm_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TraceConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cosmos_evm_vm_v1_evm_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Preinstall); i { case 0: return &v.state @@ -10279,6 +11510,18 @@ func file_cosmos_evm_vm_v1_evm_proto_init() { return nil } } + file_cosmos_evm_vm_v1_evm_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EvmCoinInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -10286,7 +11529,7 @@ func file_cosmos_evm_vm_v1_evm_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cosmos_evm_vm_v1_evm_proto_rawDesc, NumEnums: 1, - NumMessages: 11, + NumMessages: 13, NumExtensions: 0, NumServices: 0, }, diff --git a/config/config.go b/config/config.go index 5283d0df2..d7cfce0f6 100644 --- a/config/config.go +++ b/config/config.go @@ -15,45 +15,45 @@ var ChainsCoinInfo = map[uint64]evmtypes.EvmCoinInfo{ // TODO:VLAD - Remove this Denom: ExampleChainDenom, ExtendedDenom: ExampleChainDenom, DisplayDenom: ExampleDisplayDenom, - Decimals: evmtypes.EighteenDecimals, + Decimals: evmtypes.EighteenDecimals.Uint32(), }, // SixDecimalsChainID provides a chain ID which is being set up with 6 decimals SixDecimalsChainID: { Denom: "utest", ExtendedDenom: "atest", DisplayDenom: "test", - Decimals: evmtypes.SixDecimals, + Decimals: evmtypes.SixDecimals.Uint32(), }, // EVMChainID provides a chain ID used for internal testing EVMChainID: { Denom: "atest", ExtendedDenom: "atest", DisplayDenom: "test", - Decimals: evmtypes.EighteenDecimals, + Decimals: evmtypes.EighteenDecimals.Uint32(), }, TwelveDecimalsChainID: { Denom: "ptest2", ExtendedDenom: "atest2", DisplayDenom: "test2", - Decimals: evmtypes.TwelveDecimals, + Decimals: evmtypes.TwelveDecimals.Uint32(), }, TwoDecimalsChainID: { Denom: "ctest3", ExtendedDenom: "atest3", DisplayDenom: "test3", - Decimals: evmtypes.TwoDecimals, + Decimals: evmtypes.TwoDecimals.Uint32(), }, TestChainID1: { Denom: ExampleChainDenom, ExtendedDenom: ExampleChainDenom, DisplayDenom: ExampleChainDenom, - Decimals: evmtypes.EighteenDecimals, + Decimals: evmtypes.EighteenDecimals.Uint32(), }, TestChainID2: { Denom: ExampleChainDenom, ExtendedDenom: ExampleChainDenom, DisplayDenom: ExampleChainDenom, - Decimals: evmtypes.EighteenDecimals, + Decimals: evmtypes.EighteenDecimals.Uint32(), }, } @@ -72,10 +72,6 @@ const ( Bech32PrefixConsAddr = Bech32Prefix + sdk.PrefixValidator + sdk.PrefixConsensus // Bech32PrefixConsPub defines the Bech32 prefix of a consensus node public key. Bech32PrefixConsPub = Bech32Prefix + sdk.PrefixValidator + sdk.PrefixConsensus + sdk.PrefixPublic - // DisplayDenom defines the denomination displayed to users in client applications. - DisplayDenom = "atom" - // BaseDenom defines to the default denomination used in the Cosmos EVM example chain. - BaseDenom = "aatom" // BaseDenomUnit defines the precision of the base denomination. BaseDenomUnit = 18 // EVMChainID defines the EIP-155 replay-protection chain id for the current ethereum chain config. diff --git a/config/evm_app_options.go b/config/evm_app_options.go deleted file mode 100644 index 4de22faf5..000000000 --- a/config/evm_app_options.go +++ /dev/null @@ -1,91 +0,0 @@ -package config - -import ( - "fmt" - - "github.com/ethereum/go-ethereum/core/vm" - - evmtypes "github.com/cosmos/evm/x/vm/types" - - "cosmossdk.io/math" - - sdk "github.com/cosmos/cosmos-sdk/types" -) - -// EVMOptionsFn defines a function type for setting app options specifically for -// the Cosmos EVM app. The function should receive the chainID and return an error if -// any. -type EVMOptionsFn func(uint64) error - -var sealed = false - -func EvmAppOptionsWithConfig( // TODO:VLAD - This should all be set within the VM module - chainID uint64, - chainsCoinInfo map[uint64]evmtypes.EvmCoinInfo, - cosmosEVMActivators map[int]func(*vm.JumpTable), -) error { - if sealed { - return nil - } - - if err := EvmAppOptionsWithConfigWithReset(chainID, chainsCoinInfo, cosmosEVMActivators, false); err != nil { - return err - } - - sealed = true - return nil -} - -func EvmAppOptionsWithConfigWithReset( - chainID uint64, - chainsCoinInfo map[uint64]evmtypes.EvmCoinInfo, - cosmosEVMActivators map[int]func(*vm.JumpTable), - withReset bool, -) error { - coinInfo, found := chainsCoinInfo[chainID] - if !found { - return fmt.Errorf("unknown chain id: %d", chainID) - } - - // set the denom info for the chain - if err := setBaseDenom(coinInfo); err != nil { - return err - } - - ethCfg := evmtypes.DefaultChainConfig(chainID) - configurator := evmtypes.NewEVMConfigurator() - if withReset { - // reset configuration to set the new one - configurator.ResetTestConfig() - } - err := configurator. - WithExtendedEips(cosmosEVMActivators). - WithChainConfig(ethCfg). - // NOTE: we're using the 18 decimals default for the example chain - WithEVMCoinInfo(coinInfo). - Configure() - if err != nil { - return err - } - - return nil -} - -// setBaseDenom registers the display denom and base denom and sets the -// base denom for the chain. The function registered different values based on -// the EvmCoinInfo to allow different configurations in mainnet and testnet. -func setBaseDenom(ci evmtypes.EvmCoinInfo) (err error) { - // Defer setting the base denom, and capture any potential error from it. - // So when failing because the denom was already registered, we ignore it and set - // the corresponding denom to be base denom - defer func() { - err = sdk.SetBaseDenom(ci.Denom) - }() - if err := sdk.RegisterDenom(ci.DisplayDenom, math.LegacyOneDec()); err != nil { - return err - } - - // sdk.RegisterDenom will automatically overwrite the base denom when the - // new setBaseDenom() units are lower than the current base denom's units. - return sdk.RegisterDenom(ci.Denom, math.LegacyNewDecWithPrec(1, int64(ci.Decimals))) -} diff --git a/config/evm_app_options_prod.go b/config/evm_app_options_prod.go deleted file mode 100644 index 6b523ebdf..000000000 --- a/config/evm_app_options_prod.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build !test -// +build !test - -package config - -// EvmAppOptions allows to setup the global configuration -// for the Cosmos EVM chain. -func EvmAppOptions(chainID uint64) error { - return EvmAppOptionsWithConfig(chainID, ChainsCoinInfo, cosmosEVMActivators) -} diff --git a/config/evm_app_options_testing.go b/config/evm_app_options_testing.go deleted file mode 100644 index 0f30dcaa4..000000000 --- a/config/evm_app_options_testing.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build test -// +build test - -package config - -// EvmAppOptions allows to setup the global configuration -// for the Cosmos EVM chain. -func EvmAppOptions(chainID uint64) error { - return EvmAppOptionsWithConfigWithReset(chainID, ChainsCoinInfo, cosmosEVMActivators, true) -} diff --git a/docs/migrations/v0.4.0_to_v0.5.0_UNRELEASED.md b/docs/migrations/v0.4.0_to_v0.5.0_UNRELEASED.md index 9ada43446..2aaf9d202 100644 --- a/docs/migrations/v0.4.0_to_v0.5.0_UNRELEASED.md +++ b/docs/migrations/v0.4.0_to_v0.5.0_UNRELEASED.md @@ -113,6 +113,73 @@ function can now happen *alongside the keeper instantiation*, and not after. The ) ``` +### Denom Configs + +[#661](https://github.com/cosmos/evm/pull/661) removes the instantiation of chain configs via app.go +and moves them to state or genesis. +It is critical to remove any use of EvmAppOptions as calling the configurator will panic the chain +at runtime during startup. + +In `app.go`, remove evmChainID and evmAppOptions from the NewApp signature. + +```diff +// NewExampleApp returns a reference to an initialized EVMD. +func NewExampleApp( + logger log.Logger, + db dbm.DB, + traceStore io.Writer, + loadLatest bool, + appOpts servertypes.AppOptions, +- evmChainID uint64, +- evmAppOptions evmconfig.EVMOptionsFn, + baseAppOptions ...func(*baseapp.BaseApp), +) *EVMD { +``` + +Afterwards, fix any reference to the function by removing the inputs. + +Then, remove any reference of evmAppOptions being called: + +`app.go` +```diff +- if err := evmAppOptions(evmChainID); err != nil { +- panic(err) +- } +``` + +`root.go` +```diff +- noOpEvmAppOptions := func(_ uint64) error { +- return nil +- } +``` +```diff +- if initClientCtx.ChainID != "" { +- if err := config.EvmAppOptions(config.EVMChainID); err != nil { +- panic(err) +- } +- } +``` + +`evmd_config.go`, `chain_id.go`, `config.go`, `constants.go` have been moved to +`github.com/cosmos/evm/config` and may be removed to your repo. + +#### UpgradeHandler + +As the configs have been moved to state and genesis, you must include an UpgradeHandler if your chain does +not satisfy the following conditions. +1. Your EVM Denom set in the `x/vm` params must have `DenomMetadata` registered for it in `x/bank`. +2. Your EVM Denom must have a display denom associated with it in `DenomMetadata`. + 1. The display denom for the EVM Denom must have an accurate decimal value (i.e. for `uatom`, `atom` must have a decimal value of 6. +3. Your chain is an 18-decimal chain. + +In your UpgradeHandler: + +- **If your chain does not have DenomMetadata set for the EVM Denom, you must include it.** +- **If your chain's EVM denom is *not* 18 decimals, you must add ExtendedDenomOptions to your `x/vm` params.** + +Please refer to the [upgrade example](https://github.com/cosmos/evm/blob/0995962c2fd77a7a23e93001d5a531abbb1b61e5/evmd/upgrades.go) for more information. + --- ## 3) Build & quick tests diff --git a/encoding/config.go b/encoding/config.go index aa0c25629..549a932e1 100644 --- a/encoding/config.go +++ b/encoding/config.go @@ -52,11 +52,11 @@ func MakeConfig(evmChainID uint64) Config { codec := amino.NewProtoCodec(interfaceRegistry) enccodec.RegisterLegacyAminoCodec(cdc) enccodec.RegisterInterfaces(interfaceRegistry) + eip712.SetEncodingConfig(cdc, interfaceRegistry, evmChainID) // This is needed for the EIP712 txs because currently is using // the deprecated method legacytx.StdSignBytes legacytx.RegressionTestingAminoCodec = cdc - eip712.SetEncodingConfig(cdc, interfaceRegistry, evmChainID) return Config{ InterfaceRegistry: interfaceRegistry, diff --git a/evmd/app.go b/evmd/app.go index 2e0cdbce3..1dc54f4fc 100644 --- a/evmd/app.go +++ b/evmd/app.go @@ -210,11 +210,10 @@ func NewExampleApp( traceStore io.Writer, loadLatest bool, appOpts servertypes.AppOptions, - evmChainID uint64, // TODO:VLAD - Remove this - evmAppOptions evmconfig.EVMOptionsFn, // TODO:VLAD - Remove this baseAppOptions ...func(*baseapp.BaseApp), ) *EVMD { - encodingConfig := evmosencoding.MakeConfig(evmChainID) // TODO:VLAD - Remove chain id from this + evmChainID := cast.ToUint64(appOpts.Get(srvflags.EVMChainID)) + encodingConfig := evmosencoding.MakeConfig(evmChainID) appCodec := encodingConfig.Codec legacyAmino := encodingConfig.Amino @@ -234,12 +233,6 @@ func NewExampleApp( bApp.SetInterfaceRegistry(interfaceRegistry) bApp.SetTxEncoder(txConfig.TxEncoder()) - // initialize the Cosmos EVM application configuration - // TODO:VLAD - Remove this - if err := evmAppOptions(evmChainID); err != nil { - panic(err) - } - keys := storetypes.NewKVStoreKeys( authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey, minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey, @@ -458,6 +451,7 @@ func NewExampleApp( app.FeeMarketKeeper, &app.ConsensusParamsKeeper, &app.Erc20Keeper, + evmChainID, tracer, ).WithStaticPrecompiles( precompiletypes.DefaultStaticPrecompiles( @@ -573,7 +567,7 @@ func NewExampleApp( ibctm.NewAppModule(tmLightClientModule), transferModule, // Cosmos EVM modules - vm.NewAppModule(app.EVMKeeper, app.AccountKeeper, app.AccountKeeper.AddressCodec()), + vm.NewAppModule(app.EVMKeeper, app.AccountKeeper, app.BankKeeper, app.AccountKeeper.AddressCodec()), feemarket.NewAppModule(app.FeeMarketKeeper), erc20.NewAppModule(app.Erc20Keeper, app.AccountKeeper), precisebank.NewAppModule(app.PreciseBankKeeper, app.BankKeeper, app.AccountKeeper), @@ -599,6 +593,7 @@ func NewExampleApp( app.ModuleManager.SetOrderPreBlockers( upgradetypes.ModuleName, authtypes.ModuleName, + evmtypes.ModuleName, ) // During begin block slashing happens after distr.BeginBlocker so that diff --git a/evmd/cmd/evmd/cmd/creator.go b/evmd/cmd/evmd/cmd/creator.go index dd94a09c9..8ba418dcd 100644 --- a/evmd/cmd/evmd/cmd/creator.go +++ b/evmd/cmd/evmd/cmd/creator.go @@ -2,7 +2,6 @@ package cmd import ( "errors" - "github.com/cosmos/evm/config" "io" "path/filepath" @@ -94,8 +93,6 @@ func (a appCreator) newApp( traceStore, true, simtestutil.EmptyAppOptions{}, - config.EVMChainID, - config.EvmAppOptions, baseappOptions..., ) } @@ -137,8 +134,6 @@ func (a appCreator) appExport( traceStore, loadLatest, appOpts, - config.EVMChainID, - config.EvmAppOptions, ) if height != -1 { diff --git a/evmd/cmd/evmd/cmd/root.go b/evmd/cmd/evmd/cmd/root.go index e875a4550..f535093be 100644 --- a/evmd/cmd/evmd/cmd/root.go +++ b/evmd/cmd/evmd/cmd/root.go @@ -2,11 +2,10 @@ package cmd import ( "errors" + "github.com/cosmos/evm/x/vm/types" "io" "os" - "github.com/cosmos/evm/config" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" "github.com/spf13/cast" "github.com/spf13/cobra" @@ -18,6 +17,7 @@ import ( dbm "github.com/cosmos/cosmos-db" cosmosevmcmd "github.com/cosmos/evm/client" evmdebug "github.com/cosmos/evm/client/debug" + "github.com/cosmos/evm/config" cosmosevmkeyring "github.com/cosmos/evm/crypto/keyring" "github.com/cosmos/evm/evmd" cosmosevmserver "github.com/cosmos/evm/server" @@ -55,17 +55,12 @@ func NewRootCmd() *cobra.Command { // we "pre"-instantiate the application for getting the injected/configured encoding configuration // and the CLI options for the modules // add keyring to autocli opts - noOpEvmAppOptions := func(_ uint64) error { - return nil - } tempApp := evmd.NewExampleApp( log.NewNopLogger(), dbm.NewMemDB(), nil, true, simtestutil.EmptyAppOptions{}, - config.EVMChainID, - noOpEvmAppOptions, ) encodingConfig := sdktestutil.TestEncodingConfig{ @@ -131,7 +126,7 @@ func NewRootCmd() *cobra.Command { return err } - customAppTemplate, customAppConfig := config.InitAppConfig(config.BaseDenom, config.EVMChainID) // TODO:VLAD - Remove this + customAppTemplate, customAppConfig := config.InitAppConfig(types.DefaultEVMExtendedDenom, config.EVMChainID) // TODO:VLAD - Remove this customTMConfig := initCometConfig() return sdkserver.InterceptConfigsPreRunHandler(cmd, customAppTemplate, customAppConfig, customTMConfig) @@ -148,12 +143,6 @@ func NewRootCmd() *cobra.Command { panic(err) } - if initClientCtx.ChainID != "" { // TODO:VLAD - Remove this - if err := config.EvmAppOptions(config.EVMChainID); err != nil { - panic(err) - } - } - return rootCmd } @@ -321,8 +310,6 @@ func newApp( return evmd.NewExampleApp( logger, db, traceStore, true, appOpts, - config.EVMChainID, // TODO:VLAD - Remove this - config.EvmAppOptions, // TODO:VLAD - Remove this baseappOptions..., ) } @@ -363,13 +350,13 @@ func appExport( } if height != -1 { - exampleApp = evmd.NewExampleApp(logger, db, traceStore, false, appOpts, config.EVMChainID, config.EvmAppOptions, baseapp.SetChainID(chainID)) // TODO:VLAD - Remove appoptions and evmchainid + exampleApp = evmd.NewExampleApp(logger, db, traceStore, false, appOpts, baseapp.SetChainID(chainID)) if err := exampleApp.LoadHeight(height); err != nil { return servertypes.ExportedApp{}, err } } else { - exampleApp = evmd.NewExampleApp(logger, db, traceStore, true, appOpts, config.EVMChainID, config.EvmAppOptions, baseapp.SetChainID(chainID)) // TODO:VLAD - Remove // TODO:VLAD - Remove appoptions and evmchainid + exampleApp = evmd.NewExampleApp(logger, db, traceStore, true, appOpts, baseapp.SetChainID(chainID)) // TODO:VLAD - Remove // TODO:VLAD - Remove appoptions and evmchainid } return exampleApp.ExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs, modulesToExport) diff --git a/evmd/cmd/evmd/cmd/testnet.go b/evmd/cmd/evmd/cmd/testnet.go index 6a6d1361b..5c6d018d2 100644 --- a/evmd/cmd/evmd/cmd/testnet.go +++ b/evmd/cmd/evmd/cmd/testnet.go @@ -4,16 +4,12 @@ import ( "bufio" "encoding/json" "fmt" - "github.com/cosmos/evm/config" + "net" "os" "path/filepath" "time" - cosmosevmhd "github.com/cosmos/evm/crypto/hd" - cosmosevmkeyring "github.com/cosmos/evm/crypto/keyring" - "github.com/cosmos/evm/evmd" - cosmosevmserverconfig "github.com/cosmos/evm/server/config" "github.com/spf13/cobra" "github.com/spf13/pflag" @@ -46,6 +42,14 @@ import ( "github.com/cosmos/cosmos-sdk/x/genutil" genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + + "github.com/cosmos/evm/config" + cosmosevmhd "github.com/cosmos/evm/crypto/hd" + cosmosevmkeyring "github.com/cosmos/evm/crypto/keyring" + "github.com/cosmos/evm/evmd" + cosmosevmserverconfig "github.com/cosmos/evm/server/config" + evmnetwork "github.com/cosmos/evm/testutil/integration/evm/network" + evmtypes "github.com/cosmos/evm/x/vm/types" ) var ( @@ -511,12 +515,20 @@ func initGenFiles( var bankGenState banktypes.GenesisState clientCtx.Codec.MustUnmarshalJSON(appGenState[banktypes.ModuleName], &bankGenState) + bankGenState.DenomMetadata = append(bankGenState.DenomMetadata, evmnetwork.GenerateBankGenesisMetadata(config.EVMChainID)...) + bankGenState.Balances = banktypes.SanitizeGenesisBalances(genBalances) for _, bal := range bankGenState.Balances { bankGenState.Supply = bankGenState.Supply.Add(bal.Coins...) } appGenState[banktypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&bankGenState) + var evmGenState evmtypes.GenesisState + clientCtx.Codec.MustUnmarshalJSON(appGenState[evmtypes.ModuleName], &evmGenState) + + evmGenState.Params.EvmDenom = TEST_DENOM + appGenState[evmtypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&evmGenState) + appGenStateJSON, err := json.MarshalIndent(appGenState, "", " ") if err != nil { return err @@ -685,8 +697,6 @@ func NewTestNetworkFixture() network.TestFixture { nil, true, simtestutil.EmptyAppOptions{}, - config.EVMChainID, - config.EvmAppOptions, ) appCtr := func(val network.ValidatorI) servertypes.Application { @@ -696,8 +706,6 @@ func NewTestNetworkFixture() network.TestFixture { nil, true, simtestutil.EmptyAppOptions{}, - config.EVMChainID, - config.EvmAppOptions, ) } diff --git a/evmd/test_helpers.go b/evmd/test_helpers.go index 173818910..b8fb1386d 100644 --- a/evmd/test_helpers.go +++ b/evmd/test_helpers.go @@ -4,6 +4,8 @@ import ( "encoding/json" "fmt" "github.com/cosmos/evm/config" + "github.com/cosmos/evm/testutil/integration/evm/network" + "github.com/cosmos/evm/x/vm/types" "testing" "github.com/stretchr/testify/require" @@ -54,7 +56,7 @@ func setup(withGenesis bool, invCheckPeriod uint, chainID string, evmChainID uin appOptions[flags.FlagHome] = defaultNodeHome appOptions[server.FlagInvCheckPeriod] = invCheckPeriod - app := NewExampleApp(log.NewNopLogger(), db, nil, true, appOptions, evmChainID, config.EvmAppOptions, baseapp.SetChainID(chainID)) + app := NewExampleApp(log.NewNopLogger(), db, nil, true, appOptions, baseapp.SetChainID(chainID)) if withGenesis { return app, app.DefaultGenesis() } @@ -79,7 +81,7 @@ func Setup(t *testing.T, chainID string, evmChainID uint64) *EVMD { acc := authtypes.NewBaseAccount(senderPrivKey.PubKey().Address().Bytes(), senderPrivKey.PubKey(), 0, 0) balance := banktypes.Balance{ Address: acc.GetAddress().String(), - Coins: sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(100000000000000))), + Coins: sdk.NewCoins(sdk.NewCoin(types.DefaultEVMExtendedDenom, math.NewInt(100000000000000))), } app := SetupWithGenesisValSet(t, chainID, evmChainID, valSet, []authtypes.GenesisAccount{acc}, balance) @@ -96,6 +98,11 @@ func SetupWithGenesisValSet(t *testing.T, chainID string, evmChainID uint64, val app, genesisState := setup(true, 5, chainID, evmChainID) genesisState, err := simtestutil.GenesisStateWithValSet(app.AppCodec(), genesisState, valSet, genAccs, balances...) + var bankGenesis banktypes.GenesisState + app.AppCodec().MustUnmarshalJSON(genesisState[banktypes.ModuleName], &bankGenesis) + require.NoError(t, err) + bankGenesis.DenomMetadata = network.GenerateBankGenesisMetadata(evmChainID) + genesisState[banktypes.ModuleName] = app.AppCodec().MustMarshalJSON(&bankGenesis) require.NoError(t, err) stateBytes, err := json.MarshalIndent(genesisState, "", " ") @@ -123,15 +130,13 @@ func SetupWithGenesisValSet(t *testing.T, chainID string, evmChainID uint64, val // SetupTestingApp initializes the IBC-go testing application // need to keep this design to comply with the ibctesting SetupTestingApp func // and be able to set the chainID for the tests properly -func SetupTestingApp(chainID string, evmChainID uint64) func() (ibctesting.TestingApp, map[string]json.RawMessage) { +func SetupTestingApp(chainID string) func() (ibctesting.TestingApp, map[string]json.RawMessage) { return func() (ibctesting.TestingApp, map[string]json.RawMessage) { db := dbm.NewMemDB() app := NewExampleApp( log.NewNopLogger(), db, nil, true, simtestutil.NewAppOptionsWithFlagHome(defaultNodeHome), - evmChainID, - config.EvmAppOptions, baseapp.SetChainID(chainID), ) return app, app.DefaultGenesis() diff --git a/evmd/tests/integration/create_app.go b/evmd/tests/integration/create_app.go index fc1ac26ad..5582468f0 100644 --- a/evmd/tests/integration/create_app.go +++ b/evmd/tests/integration/create_app.go @@ -2,14 +2,17 @@ package integration import ( "encoding/json" + "github.com/cosmos/cosmos-sdk/client/flags" dbm "github.com/cosmos/cosmos-db" + ibctesting "github.com/cosmos/ibc-go/v10/testing" + "github.com/cosmos/evm" "github.com/cosmos/evm/config" "github.com/cosmos/evm/evmd" + srvflags "github.com/cosmos/evm/server/flags" "github.com/cosmos/evm/testutil/constants" feemarkettypes "github.com/cosmos/evm/x/feemarket/types" - ibctesting "github.com/cosmos/ibc-go/v10/testing" clienthelpers "cosmossdk.io/client/v2/helpers" "cosmossdk.io/log" @@ -31,7 +34,7 @@ func CreateEvmd(chainID string, evmChainID uint64, customBaseAppOptions ...func( db := dbm.NewMemDB() logger := log.NewNopLogger() loadLatest := true - appOptions := simutils.NewAppOptionsWithFlagHome(defaultNodeHome) + appOptions := NewAppOptionsWithFlagHomeAndChainID(defaultNodeHome, evmChainID) baseAppOptions := append(customBaseAppOptions, baseapp.SetChainID(chainID)) @@ -41,8 +44,6 @@ func CreateEvmd(chainID string, evmChainID uint64, customBaseAppOptions ...func( nil, loadLatest, appOptions, - evmChainID, - config.EvmAppOptions, baseAppOptions..., ) } @@ -55,9 +56,7 @@ func SetupEvmd() (ibctesting.TestingApp, map[string]json.RawMessage) { dbm.NewMemDB(), nil, true, - simutils.EmptyAppOptions{}, - constants.ExampleEIP155ChainID, - config.EvmAppOptions, + NewAppOptionsWithFlagHomeAndChainID("", constants.ExampleEIP155ChainID), ) // disable base fee for testing genesisState := app.DefaultGenesis() @@ -73,3 +72,10 @@ func SetupEvmd() (ibctesting.TestingApp, map[string]json.RawMessage) { return app, genesisState } + +func NewAppOptionsWithFlagHomeAndChainID(home string, evmChainID uint64) simutils.AppOptionsMap { + return simutils.AppOptionsMap{ + flags.FlagHome: home, + srvflags.EVMChainID: evmChainID, + } +} diff --git a/evmd/tests/integration/x_vm_test.go b/evmd/tests/integration/x_vm_test.go index c1aec6e9f..e0ce08f09 100644 --- a/evmd/tests/integration/x_vm_test.go +++ b/evmd/tests/integration/x_vm_test.go @@ -42,13 +42,14 @@ func BenchmarkGasEstimation(b *testing.B) { configurator := types.NewEVMConfigurator() configurator.ResetTestConfig() - err := configurator. - WithChainConfig(chainConfig). + err := types.SetChainConfig(chainConfig) + require.NoError(b, err) + err = configurator. WithEVMCoinInfo(types.EvmCoinInfo{ Denom: denom, ExtendedDenom: extendedDenom, DisplayDenom: displayDenom, - Decimals: decimals, + Decimals: decimals.Uint32(), }). Configure() require.NoError(b, err) diff --git a/evmd/tests/network/network.go b/evmd/tests/network/network.go index 54dcb3feb..ffe926440 100644 --- a/evmd/tests/network/network.go +++ b/evmd/tests/network/network.go @@ -23,7 +23,6 @@ import ( "golang.org/x/sync/errgroup" "google.golang.org/grpc" - cmtrand "github.com/cometbft/cometbft/libs/rand" "github.com/cometbft/cometbft/node" cmtclient "github.com/cometbft/cometbft/rpc/client" @@ -103,13 +102,12 @@ type Config struct { // testing requirements. func DefaultConfig() Config { chainID := "evmos-1" - evmChainID := uint64(cmtrand.Int63n(9999999999999) + 1) //nolint:gosec // G115 // won't exceed uint64 dir, err := os.MkdirTemp("", "simapp") if err != nil { panic(fmt.Sprintf("failed creating temporary directory: %v", err)) } defer os.RemoveAll(dir) - tempApp := evmd.NewExampleApp(log.NewNopLogger(), dbm.NewMemDB(), nil, true, simutils.NewAppOptionsWithFlagHome(dir), evmChainID, evmconfig.EvmAppOptions, baseapp.SetChainID(chainID)) + tempApp := evmd.NewExampleApp(log.NewNopLogger(), dbm.NewMemDB(), nil, true, simutils.NewAppOptionsWithFlagHome(dir), baseapp.SetChainID(chainID)) cfg := Config{ Codec: tempApp.AppCodec(), @@ -117,7 +115,7 @@ func DefaultConfig() Config { LegacyAmino: tempApp.LegacyAmino(), InterfaceRegistry: tempApp.InterfaceRegistry(), AccountRetriever: authtypes.AccountRetriever{}, - AppConstructor: NewAppConstructor(chainID, evmChainID), + AppConstructor: NewAppConstructor(chainID), GenesisState: tempApp.DefaultGenesis(), TimeoutCommit: 3 * time.Second, ChainID: chainID, @@ -137,13 +135,11 @@ func DefaultConfig() Config { } // NewAppConstructor returns a new Cosmos EVM AppConstructor -func NewAppConstructor(chainID string, evmChainID uint64) AppConstructor { +func NewAppConstructor(chainID string) AppConstructor { return func(val Validator) servertypes.Application { return evmd.NewExampleApp( val.Ctx.Logger, dbm.NewMemDB(), nil, true, simutils.NewAppOptionsWithFlagHome(val.Ctx.Config.RootDir), - evmChainID, - evmconfig.EvmAppOptions, baseapp.SetPruning(pruningtypes.NewPruningOptionsFromString(val.AppConfig.Pruning)), baseapp.SetMinGasPrices(val.AppConfig.MinGasPrices), baseapp.SetChainID(chainID), diff --git a/evmd/upgrades.go b/evmd/upgrades.go index 2413912c1..31c422788 100644 --- a/evmd/upgrades.go +++ b/evmd/upgrades.go @@ -2,6 +2,8 @@ package evmd import ( "context" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + "github.com/cosmos/evm/x/vm/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" @@ -22,7 +24,42 @@ func (app EVMD) RegisterUpgradeHandlers() { app.UpgradeKeeper.SetUpgradeHandler( UpgradeName, func(ctx context.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { - sdk.UnwrapSDKContext(ctx).Logger().Debug("this is a debug level message to test that verbose logging mode has properly been enabled during a chain upgrade") + sdkCtx := sdk.UnwrapSDKContext(ctx) + sdkCtx.Logger().Debug("this is a debug level message to test that verbose logging mode has properly been enabled during a chain upgrade") + + app.BankKeeper.SetDenomMetaData(ctx, banktypes.Metadata{ + Description: "Example description", + DenomUnits: []*banktypes.DenomUnit{ + { + Denom: "atest", + Exponent: 0, + Aliases: nil, + }, + { + Denom: "test", + Exponent: 18, + Aliases: nil, + }, + }, + Base: "atest", + Display: "test", + Name: "Test Token", + Symbol: "TEST", + URI: "example_uri", + URIHash: "example_uri_hash", + }) + + // (Required for NON-18 denom chains *only) + // Update EVM params to add Extended denom options + // Ensure that this corresponds to the EVM denom + // (tyically the bond denom) + evmParams := app.EVMKeeper.GetParams(sdkCtx) + evmParams.ExtendedDenomOptions = &types.ExtendedDenomOptions{ExtendedDenom: "atest"} + err := app.EVMKeeper.SetParams(sdkCtx, evmParams) + if err != nil { + return nil, err + } + return app.ModuleManager.RunMigrations(ctx, app.Configurator(), fromVM) }, ) diff --git a/mempool/blockchain_test.go b/mempool/blockchain_test.go index d4f854802..6e076867c 100644 --- a/mempool/blockchain_test.go +++ b/mempool/blockchain_test.go @@ -38,9 +38,14 @@ func TestBlockchainRaceCondition(t *testing.T) { logger := log.NewNopLogger() // Create mock keepers using generated mocks - mockVMKeeper := mocks.NewVmKeeper(t) + mockVMKeeper := mocks.NewVMKeeper(t) mockFeeMarketKeeper := mocks.NewFeeMarketKeeper(t) + ethCfg := vmtypes.DefaultChainConfig(config.EighteenDecimalsChainID) + if err := vmtypes.SetChainConfig(ethCfg); err != nil { + panic(err) + } + // Set up mock expectations for methods that will be called mockVMKeeper.On("GetBaseFee", mock.Anything).Return(big.NewInt(1000000000)).Maybe() // 1 gwei mockFeeMarketKeeper.On("GetBlockGasWanted", mock.Anything).Return(uint64(10000000)).Maybe() // 10M gas diff --git a/mempool/interface.go b/mempool/interface.go index bfbf291ce..b09841989 100644 --- a/mempool/interface.go +++ b/mempool/interface.go @@ -16,6 +16,7 @@ import ( type VMKeeperI interface { GetBaseFee(ctx sdk.Context) *big.Int GetParams(ctx sdk.Context) (params vmtypes.Params) + GetEvmCoinInfo(ctx sdk.Context) (coinInfo vmtypes.EvmCoinInfo) GetAccount(ctx sdk.Context, addr common.Address) *statedb.Account GetState(ctx sdk.Context, addr common.Address, key common.Hash) common.Hash GetCode(ctx sdk.Context, codeHash common.Hash) []byte diff --git a/mempool/mempool.go b/mempool/mempool.go index 732c0bea4..016d31f7e 100644 --- a/mempool/mempool.go +++ b/mempool/mempool.go @@ -15,7 +15,6 @@ import ( "github.com/cosmos/evm/mempool/txpool" "github.com/cosmos/evm/mempool/txpool/legacypool" "github.com/cosmos/evm/rpc/stream" - "github.com/cosmos/evm/x/precisebank/types" evmtypes "github.com/cosmos/evm/x/vm/types" "cosmossdk.io/log" @@ -54,8 +53,6 @@ type ( logger log.Logger txConfig client.TxConfig blockchain *Blockchain - bondDenom string - evmDenom string blockGasLimit uint64 // Block gas limit from consensus parameters minTip *uint256.Int @@ -91,9 +88,6 @@ func NewExperimentalEVMMempool(getCtxCallback func(height int64, prove bool) (sd blockchain *Blockchain ) - bondDenom := evmtypes.GetEVMCoinDenom() - evmDenom := types.ExtendedCoinDenom() - // add the mempool name to the logger logger = logger.With(log.ModuleKey, "ExperimentalEVMMempool") @@ -150,11 +144,12 @@ func NewExperimentalEVMMempool(getCtxCallback func(height int64, prove bool) (sd defaultConfig := sdkmempool.PriorityNonceMempoolConfig[math.Int]{} defaultConfig.TxPriority = sdkmempool.TxPriority[math.Int]{ GetTxPriority: func(goCtx context.Context, tx sdk.Tx) math.Int { + ctx := sdk.UnwrapSDKContext(goCtx) cosmosTxFee, ok := tx.(sdk.FeeTx) if !ok { return math.ZeroInt() } - found, coin := cosmosTxFee.GetFee().Find(bondDenom) + found, coin := cosmosTxFee.GetFee().Find(vmKeeper.GetEvmCoinInfo(ctx).Denom) if !found { return math.ZeroInt() } @@ -181,8 +176,6 @@ func NewExperimentalEVMMempool(getCtxCallback func(height int64, prove bool) (sd logger: logger, txConfig: txConfig, blockchain: blockchain, - bondDenom: bondDenom, - evmDenom: evmDenom, blockGasLimit: config.BlockGasLimit, minTip: config.MinTip, anteHandler: config.AnteHandler, @@ -281,10 +274,11 @@ func (m *ExperimentalEVMMempool) InsertInvalidNonce(txBytes []byte) error { func (m *ExperimentalEVMMempool) Select(goCtx context.Context, i [][]byte) sdkmempool.Iterator { m.mtx.Lock() defer m.mtx.Unlock() + ctx := sdk.UnwrapSDKContext(goCtx) evmIterator, cosmosIterator := m.getIterators(goCtx, i) - combinedIterator := NewEVMMempoolIterator(evmIterator, cosmosIterator, m.logger, m.txConfig, m.bondDenom, m.blockchain.Config().ChainID, m.blockchain) + combinedIterator := NewEVMMempoolIterator(evmIterator, cosmosIterator, m.logger, m.txConfig, m.vmKeeper.GetEvmCoinInfo(ctx).Denom, m.blockchain.Config().ChainID, m.blockchain) return combinedIterator } @@ -378,10 +372,11 @@ func (m *ExperimentalEVMMempool) shouldRemoveFromEVMPool(tx sdk.Tx) bool { func (m *ExperimentalEVMMempool) SelectBy(goCtx context.Context, i [][]byte, f func(sdk.Tx) bool) { m.mtx.Lock() defer m.mtx.Unlock() + ctx := sdk.UnwrapSDKContext(goCtx) evmIterator, cosmosIterator := m.getIterators(goCtx, i) - combinedIterator := NewEVMMempoolIterator(evmIterator, cosmosIterator, m.logger, m.txConfig, m.bondDenom, m.blockchain.Config().ChainID, m.blockchain) + combinedIterator := NewEVMMempoolIterator(evmIterator, cosmosIterator, m.logger, m.txConfig, m.vmKeeper.GetEvmCoinInfo(ctx).Denom, m.blockchain.Config().ChainID, m.blockchain) for combinedIterator != nil && f(combinedIterator.Tx()) { combinedIterator = combinedIterator.Next() diff --git a/mempool/mocks/VMKeeper.go b/mempool/mocks/VMKeeper.go index 0644b8293..585af69d6 100644 --- a/mempool/mocks/VMKeeper.go +++ b/mempool/mocks/VMKeeper.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.53.5. DO NOT EDIT. +// Code generated by mockery v2.53.4. DO NOT EDIT. package mocks @@ -19,13 +19,13 @@ import ( vmtypes "github.com/cosmos/evm/x/vm/types" ) -// VmKeeper is an autogenerated mock type for the VMKeeperI type -type VmKeeper struct { +// VMKeeper is an autogenerated mock type for the VMKeeper type +type VMKeeper struct { mock.Mock } // DeleteAccount provides a mock function with given fields: ctx, addr -func (_m *VmKeeper) DeleteAccount(ctx types.Context, addr common.Address) error { +func (_m *VMKeeper) DeleteAccount(ctx types.Context, addr common.Address) error { ret := _m.Called(ctx, addr) if len(ret) == 0 { @@ -43,22 +43,22 @@ func (_m *VmKeeper) DeleteAccount(ctx types.Context, addr common.Address) error } // DeleteCode provides a mock function with given fields: ctx, codeHash -func (_m *VmKeeper) DeleteCode(ctx types.Context, codeHash []byte) { +func (_m *VMKeeper) DeleteCode(ctx types.Context, codeHash []byte) { _m.Called(ctx, codeHash) } // DeleteState provides a mock function with given fields: ctx, addr, key -func (_m *VmKeeper) DeleteState(ctx types.Context, addr common.Address, key common.Hash) { +func (_m *VMKeeper) DeleteState(ctx types.Context, addr common.Address, key common.Hash) { _m.Called(ctx, addr, key) } // ForEachStorage provides a mock function with given fields: ctx, addr, cb -func (_m *VmKeeper) ForEachStorage(ctx types.Context, addr common.Address, cb func(common.Hash, common.Hash) bool) { +func (_m *VMKeeper) ForEachStorage(ctx types.Context, addr common.Address, cb func(common.Hash, common.Hash) bool) { _m.Called(ctx, addr, cb) } // GetAccount provides a mock function with given fields: ctx, addr -func (_m *VmKeeper) GetAccount(ctx types.Context, addr common.Address) *statedb.Account { +func (_m *VMKeeper) GetAccount(ctx types.Context, addr common.Address) *statedb.Account { ret := _m.Called(ctx, addr) if len(ret) == 0 { @@ -78,7 +78,7 @@ func (_m *VmKeeper) GetAccount(ctx types.Context, addr common.Address) *statedb. } // GetBaseFee provides a mock function with given fields: ctx -func (_m *VmKeeper) GetBaseFee(ctx types.Context) *big.Int { +func (_m *VMKeeper) GetBaseFee(ctx types.Context) *big.Int { ret := _m.Called(ctx) if len(ret) == 0 { @@ -98,7 +98,7 @@ func (_m *VmKeeper) GetBaseFee(ctx types.Context) *big.Int { } // GetCode provides a mock function with given fields: ctx, codeHash -func (_m *VmKeeper) GetCode(ctx types.Context, codeHash common.Hash) []byte { +func (_m *VMKeeper) GetCode(ctx types.Context, codeHash common.Hash) []byte { ret := _m.Called(ctx, codeHash) if len(ret) == 0 { @@ -118,7 +118,7 @@ func (_m *VmKeeper) GetCode(ctx types.Context, codeHash common.Hash) []byte { } // GetCodeHash provides a mock function with given fields: ctx, addr -func (_m *VmKeeper) GetCodeHash(ctx types.Context, addr common.Address) common.Hash { +func (_m *VMKeeper) GetCodeHash(ctx types.Context, addr common.Address) common.Hash { ret := _m.Called(ctx, addr) if len(ret) == 0 { @@ -137,8 +137,26 @@ func (_m *VmKeeper) GetCodeHash(ctx types.Context, addr common.Address) common.H return r0 } +// GetEvmCoinInfo provides a mock function with given fields: ctx +func (_m *VMKeeper) GetEvmCoinInfo(ctx types.Context) vmtypes.EvmCoinInfo { + ret := _m.Called(ctx) + + if len(ret) == 0 { + panic("no return value specified for GetEvmCoinInfo") + } + + var r0 vmtypes.EvmCoinInfo + if rf, ok := ret.Get(0).(func(types.Context) vmtypes.EvmCoinInfo); ok { + r0 = rf(ctx) + } else { + r0 = ret.Get(0).(vmtypes.EvmCoinInfo) + } + + return r0 +} + // GetParams provides a mock function with given fields: ctx -func (_m *VmKeeper) GetParams(ctx types.Context) vmtypes.Params { +func (_m *VMKeeper) GetParams(ctx types.Context) vmtypes.Params { ret := _m.Called(ctx) if len(ret) == 0 { @@ -156,7 +174,7 @@ func (_m *VmKeeper) GetParams(ctx types.Context) vmtypes.Params { } // GetState provides a mock function with given fields: ctx, addr, key -func (_m *VmKeeper) GetState(ctx types.Context, addr common.Address, key common.Hash) common.Hash { +func (_m *VMKeeper) GetState(ctx types.Context, addr common.Address, key common.Hash) common.Hash { ret := _m.Called(ctx, addr, key) if len(ret) == 0 { @@ -176,7 +194,7 @@ func (_m *VmKeeper) GetState(ctx types.Context, addr common.Address, key common. } // KVStoreKeys provides a mock function with no fields -func (_m *VmKeeper) KVStoreKeys() map[string]*storetypes.KVStoreKey { +func (_m *VMKeeper) KVStoreKeys() map[string]*storetypes.KVStoreKey { ret := _m.Called() if len(ret) == 0 { @@ -196,7 +214,7 @@ func (_m *VmKeeper) KVStoreKeys() map[string]*storetypes.KVStoreKey { } // SetAccount provides a mock function with given fields: ctx, addr, account -func (_m *VmKeeper) SetAccount(ctx types.Context, addr common.Address, account statedb.Account) error { +func (_m *VMKeeper) SetAccount(ctx types.Context, addr common.Address, account statedb.Account) error { ret := _m.Called(ctx, addr, account) if len(ret) == 0 { @@ -214,27 +232,27 @@ func (_m *VmKeeper) SetAccount(ctx types.Context, addr common.Address, account s } // SetCode provides a mock function with given fields: ctx, codeHash, code -func (_m *VmKeeper) SetCode(ctx types.Context, codeHash []byte, code []byte) { +func (_m *VMKeeper) SetCode(ctx types.Context, codeHash []byte, code []byte) { _m.Called(ctx, codeHash, code) } // SetEvmMempool provides a mock function with given fields: evmMempool -func (_m *VmKeeper) SetEvmMempool(evmMempool *mempool.ExperimentalEVMMempool) { +func (_m *VMKeeper) SetEvmMempool(evmMempool *mempool.ExperimentalEVMMempool) { _m.Called(evmMempool) } // SetState provides a mock function with given fields: ctx, addr, key, value -func (_m *VmKeeper) SetState(ctx types.Context, addr common.Address, key common.Hash, value []byte) { +func (_m *VMKeeper) SetState(ctx types.Context, addr common.Address, key common.Hash, value []byte) { _m.Called(ctx, addr, key, value) } -// NewVmKeeper creates a new instance of VmKeeper. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// NewVMKeeper creates a new instance of VMKeeper. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. // The first argument is typically a *testing.T value. -func NewVmKeeper(t interface { +func NewVMKeeper(t interface { mock.TestingT Cleanup(func()) -}) *VmKeeper { - mock := &VmKeeper{} +}) *VMKeeper { + mock := &VMKeeper{} mock.Mock.Test(t) t.Cleanup(func() { mock.AssertExpectations(t) }) diff --git a/proto/cosmos/evm/vm/v1/evm.proto b/proto/cosmos/evm/vm/v1/evm.proto index dda6eade0..ea22da1f0 100644 --- a/proto/cosmos/evm/vm/v1/evm.proto +++ b/proto/cosmos/evm/vm/v1/evm.proto @@ -36,6 +36,11 @@ message Params { // precompiled contracts that are active repeated string active_static_precompiles = 9; uint64 history_serve_window = 10; + ExtendedDenomOptions extended_denom_options = 11; +} + +message ExtendedDenomOptions { + string extended_denom = 1; } // AccessControl defines the permission policy of the EVM @@ -348,3 +353,10 @@ message Preinstall { // code in hex format for the preinstall contract string code = 3; } + +message EvmCoinInfo { + string denom = 1; + string extended_denom = 2; + string display_denom = 3; + uint32 decimals = 4; +} \ No newline at end of file diff --git a/tests/integration/ante/ante_test_suite.go b/tests/integration/ante/ante_test_suite.go index d6a72cfa3..320d4a3be 100644 --- a/tests/integration/ante/ante_test_suite.go +++ b/tests/integration/ante/ante_test_suite.go @@ -122,12 +122,11 @@ func (s *AnteTestSuite) SetupTest() { configurator := evmtypes.NewEVMConfigurator() configurator.ResetTestConfig() err := configurator. - WithChainConfig(chainConfig). WithEVMCoinInfo(evmtypes.EvmCoinInfo{ Denom: denom, ExtendedDenom: extendedDenom, DisplayDenom: displayDenom, - Decimals: decimals, + Decimals: decimals.Uint32(), }). Configure() s.Require().NoError(err) diff --git a/tests/integration/precompiles/ics20/test_integration.go b/tests/integration/precompiles/ics20/test_integration.go index 0a7630ff8..ca5f18cb8 100644 --- a/tests/integration/precompiles/ics20/test_integration.go +++ b/tests/integration/precompiles/ics20/test_integration.go @@ -309,8 +309,9 @@ func TestPrecompileIntegrationTestSuite(t *testing.T, evmAppCreator ibctesting.A ) Expect(escrowBalance.Amount).To(Equal(math.ZeroInt()), "Escrow balance should be 0 before transfer") - // send some tokens to the conoract address + // send some tokens to the contract address fundAmt := math.NewInt(100) + fundAmtConverted := fundAmt.Mul(math.NewInt(1e12)) err = evmAppA.GetBankKeeper().SendCoins( s.chainA.GetContext(), s.chainA.SenderAccount.GetAddress(), @@ -319,14 +320,14 @@ func TestPrecompileIntegrationTestSuite(t *testing.T, evmAppCreator ibctesting.A ) Expect(err).To(BeNil(), "Failed to send tokens to contract address") // check contract balance - contractBalance := evmAppA.GetBankKeeper().GetBalance( + contractBalance := evmAppA.GetEVMKeeper().GetBalance( s.chainA.GetContext(), - ics20CallerAddr.Bytes(), - sourceBondDenom, + ics20CallerAddr, ) - Expect(contractBalance.Amount).To(Equal(fundAmt), "Contract balance should be equal to the fund amount") + Expect(contractBalance.ToBig()).To(Equal(fundAmtConverted.BigInt()), "Contract balance should be equal to the fund amount") sendAmt := math.NewInt(1) + sendAmtConverted := sendAmt.Mul(math.NewInt(1e12)) callArgs := testutiltypes.CallArgs{ ContractABI: ics20CallerContract.ABI, MethodName: "testIbcTransferWithTransfer", @@ -355,7 +356,7 @@ func TestPrecompileIntegrationTestSuite(t *testing.T, evmAppCreator ibctesting.A 0, ) Expect(err).To(BeNil(), "Failed to testTransfer") - expectedContractBalance := fundAmt.Sub(sendAmt) + expectedContractBalance := fundAmtConverted.Sub(sendAmtConverted) if tc.before { expectedContractBalance = expectedContractBalance.Sub(math.NewInt(15)) } @@ -363,12 +364,11 @@ func TestPrecompileIntegrationTestSuite(t *testing.T, evmAppCreator ibctesting.A expectedContractBalance = expectedContractBalance.Sub(math.NewInt(15)) } // balance after transfer should be 0 - contractBalance = evmAppA.GetBankKeeper().GetBalance( + contractBalance = evmAppA.GetEVMKeeper().GetBalance( s.chainA.GetContext(), - ics20CallerAddr.Bytes(), - sourceBondDenom, + ics20CallerAddr, ) - Expect(contractBalance.Amount).To(Equal(expectedContractBalance), "Contract balance should be equal to the expected amount after transfer") + Expect(contractBalance.ToBig()).To(Equal(expectedContractBalance.BigInt()), "Contract balance should be equal to the expected amount after transfer") escrowBalance = evmAppA.GetBankKeeper().GetBalance( s.chainA.GetContext(), escrowAddr, @@ -399,15 +399,15 @@ func TestPrecompileIntegrationTestSuite(t *testing.T, evmAppCreator ibctesting.A sourceChannelID := path.EndpointA.ChannelID sourceBondDenom := s.chainABondDenom escrowAddr := types.GetEscrowAddress(sourcePortID, sourceChannelID) - escrowBalance := evmAppA.GetBankKeeper().GetBalance( + escrowBalance := evmAppA.GetEVMKeeper().GetBalance( s.chainA.GetContext(), - escrowAddr, - sourceBondDenom, + common.BytesToAddress(escrowAddr.Bytes()), ) - Expect(escrowBalance.Amount).To(Equal(math.ZeroInt()), "Escrow balance should be 0 before transfer") + Expect(escrowBalance.ToBig().Uint64()).To(Equal(math.ZeroInt().Uint64()), "Escrow balance should be 0 before transfer") // send some tokens to the contract address fundAmt := math.NewInt(100) + fundAmtConverted := fundAmt.Mul(math.NewInt(1e12)) err = evmAppA.GetBankKeeper().SendCoins( s.chainA.GetContext(), s.chainA.SenderAccount.GetAddress(), @@ -415,13 +415,12 @@ func TestPrecompileIntegrationTestSuite(t *testing.T, evmAppCreator ibctesting.A sdk.NewCoins(sdk.NewCoin(sourceBondDenom, fundAmt)), ) Expect(err).To(BeNil(), "Failed to send tokens to contract address") - contractBalance := evmAppA.GetBankKeeper().GetBalance( + contractBalance := evmAppA.GetEVMKeeper().GetBalance( s.chainA.GetContext(), - ics20CallerAddr.Bytes(), - sourceBondDenom, + common.BytesToAddress(ics20CallerAddr.Bytes()), ) // check contract balance - Expect(contractBalance.Amount).To(Equal(fundAmt), "Contract balance should be equal to the fund amount") + Expect(contractBalance.ToBig()).To(Equal(fundAmtConverted.BigInt()), "Contract balance should be equal to the fund amount") sendAmt := math.NewInt(1) callArgs := testutiltypes.CallArgs{ @@ -452,24 +451,21 @@ func TestPrecompileIntegrationTestSuite(t *testing.T, evmAppCreator ibctesting.A 0, ) Expect(err).To(BeNil(), "Failed to testTransfer") - contractBalanceAfter := evmAppA.GetBankKeeper().GetBalance( + contractBalanceAfter := evmAppA.GetEVMKeeper().GetBalance( s.chainA.GetContext(), - ics20CallerAddr.Bytes(), - sourceBondDenom, + common.BytesToAddress(ics20CallerAddr.Bytes()), ) - Expect(contractBalanceAfter.Amount).To(Equal(contractBalance.Amount.Sub(math.NewInt(15)))) - escrowBalance = evmAppA.GetBankKeeper().GetBalance( + Expect(contractBalanceAfter.ToBig()).To(Equal(math.NewIntFromBigInt(contractBalance.ToBig()).Sub(math.NewInt(15)).BigInt()), "Contract balance should be equal to the expected amount after transfer") + escrowBalance = evmAppA.GetEVMKeeper().GetBalance( s.chainA.GetContext(), - escrowAddr, - sourceBondDenom, + common.BytesToAddress(escrowAddr.Bytes()), ) - Expect(escrowBalance.Amount).To(Equal(math.ZeroInt())) - randomAccBalance := evmAppA.GetBankKeeper().GetBalance( + Expect(escrowBalance.ToBig().Uint64()).To(Equal(math.ZeroInt().BigInt().Uint64())) + randomAccBalance := evmAppA.GetEVMKeeper().GetBalance( s.chainA.GetContext(), - randomAccAddr, - sourceBondDenom, + common.BytesToAddress(randomAccAddr.Bytes()), ) - Expect(randomAccBalance.Amount).To(Equal(math.NewInt(15))) + Expect(randomAccBalance.ToBig()).To(Equal(math.NewInt(15).BigInt())) }) }) diff --git a/tests/integration/precompiles/staking/test_staking.go b/tests/integration/precompiles/staking/test_staking.go index f66a2ba1a..9bc4c7155 100644 --- a/tests/integration/precompiles/staking/test_staking.go +++ b/tests/integration/precompiles/staking/test_staking.go @@ -381,7 +381,7 @@ func (s *PrecompileTestSuite) TestRun() { s.Require().NoError(err, "failed to pack input") return input }, - 19103, // use enough gas to avoid out of gas error + 21295, // use enough gas to avoid out of gas error true, false, "write protection", @@ -391,7 +391,7 @@ func (s *PrecompileTestSuite) TestRun() { func(_ keyring.Key) []byte { return []byte("invalid") }, - 19103, // use enough gas to avoid out of gas error + 21295, // use enough gas to avoid out of gas error false, false, "no method with id", diff --git a/tests/integration/precompiles/werc20/test_integration.go b/tests/integration/precompiles/werc20/test_integration.go index 9dfbf865c..ea5e1a0e5 100644 --- a/tests/integration/precompiles/werc20/test_integration.go +++ b/tests/integration/precompiles/werc20/test_integration.go @@ -556,7 +556,7 @@ func TestPrecompileIntegrationTestSuite(t *testing.T, create network.CreateEvmAp ChainID: is.network.GetChainID(), EVMChainID: is.network.GetEIP155ChainID().Uint64(), }] - Expect(decimals).To(Equal(uint8(coinInfo.Decimals)), "expected different decimals") + Expect(decimals).To(Equal(uint8(coinInfo.Decimals)), "expected different decimals") //nolint:gosec // G115 }, ) }) diff --git a/tests/integration/x/vm/genesis_test_suite.go b/tests/integration/x/vm/genesis_test_suite.go index 74b8f4fce..f6f639a35 100644 --- a/tests/integration/x/vm/genesis_test_suite.go +++ b/tests/integration/x/vm/genesis_test_suite.go @@ -35,8 +35,12 @@ func (s *GenesisTestSuite) SetupTest() { if s.options == nil { s.options = []network.ConfigOption{} } + + customGenesis := network.CustomGenesisState{} + opts := []network.ConfigOption{ network.WithPreFundedAccounts(s.keyring.GetAllAccAddrs()...), + network.WithCustomGenesis(customGenesis), } opts = append(opts, s.options...) s.network = network.NewUnitTestNetwork(s.create, opts...) diff --git a/tests/integration/x/vm/keeper_test_suite.go b/tests/integration/x/vm/keeper_test_suite.go index 8f3f3b39a..5f4aa1c52 100644 --- a/tests/integration/x/vm/keeper_test_suite.go +++ b/tests/integration/x/vm/keeper_test_suite.go @@ -108,13 +108,14 @@ func (s *KeeperTestSuite) SetupTest() { configurator := evmtypes.NewEVMConfigurator() configurator.ResetTestConfig() - err := configurator. - WithChainConfig(chainConfig). + err := evmtypes.SetChainConfig(chainConfig) + s.Require().NoError(err) + err = configurator. WithEVMCoinInfo(evmtypes.EvmCoinInfo{ Denom: denom, ExtendedDenom: extendedDenom, DisplayDenom: displayDenom, - Decimals: decimals, + Decimals: decimals.Uint32(), }). Configure() s.Require().NoError(err) diff --git a/tests/integration/x/vm/test_genesis.go b/tests/integration/x/vm/test_genesis.go index 10e5f407c..06b266f54 100644 --- a/tests/integration/x/vm/test_genesis.go +++ b/tests/integration/x/vm/test_genesis.go @@ -1,6 +1,7 @@ package vm import ( + "sync" "testing" "github.com/ethereum/go-ethereum/common" @@ -26,6 +27,16 @@ func (s *GenesisTestSuite) TestInitGenesis() { s.Require().NoError(err) address := common.HexToAddress(privkey.PubKey().Address().String()) + params := types.Params{ + EvmDenom: "aatom", + ExtraEIPs: types.DefaultExtraEIPs, + EVMChannels: types.DefaultEVMChannels, + AccessControl: types.DefaultAccessControl, + ActiveStaticPrecompiles: types.DefaultStaticPrecompiles, + HistoryServeWindow: types.DefaultHistoryServeWindow, + ExtendedDenomOptions: nil, + } + var ( vmdb *statedb.StateDB ctx sdk.Context @@ -42,7 +53,10 @@ func (s *GenesisTestSuite) TestInitGenesis() { { name: "pass - default", malleate: func(_ *network.UnitTestNetwork) {}, - genState: types.DefaultGenesisState(), + genState: &types.GenesisState{ + Params: params, + Accounts: []types.GenesisAccount{}, + }, expPanic: false, }, { @@ -51,7 +65,7 @@ func (s *GenesisTestSuite) TestInitGenesis() { vmdb.AddBalance(address, uint256.NewInt(1), tracing.BalanceChangeUnspecified) }, genState: &types.GenesisState{ - Params: types.DefaultParams(), + Params: params, Accounts: []types.GenesisAccount{ { Address: address.String(), @@ -67,7 +81,7 @@ func (s *GenesisTestSuite) TestInitGenesis() { name: "account not found", malleate: func(_ *network.UnitTestNetwork) {}, genState: &types.GenesisState{ - Params: types.DefaultParams(), + Params: params, Accounts: []types.GenesisAccount{ { Address: address.String(), @@ -83,7 +97,7 @@ func (s *GenesisTestSuite) TestInitGenesis() { network.App.GetAccountKeeper().SetAccount(ctx, acc) }, genState: &types.GenesisState{ - Params: types.DefaultParams(), + Params: params, Accounts: []types.GenesisAccount{ { Address: address.String(), @@ -100,7 +114,7 @@ func (s *GenesisTestSuite) TestInitGenesis() { network.App.GetAccountKeeper().SetAccount(ctx, acc) }, genState: &types.GenesisState{ - Params: types.DefaultParams(), + Params: params, Accounts: []types.GenesisAccount{ { Address: address.String(), @@ -125,13 +139,18 @@ func (s *GenesisTestSuite) TestInitGenesis() { err := vmdb.Commit() s.Require().NoError(err) + configurator := types.NewEVMConfigurator() + configurator.ResetTestConfig() + if tc.expPanic { s.Require().Panics(func() { _ = vm.InitGenesis( s.network.GetContext(), s.network.App.GetEVMKeeper(), s.network.App.GetAccountKeeper(), + s.network.App.GetBankKeeper(), *tc.genState, + &sync.Once{}, ) }) } else { @@ -140,7 +159,9 @@ func (s *GenesisTestSuite) TestInitGenesis() { ctx, s.network.App.GetEVMKeeper(), s.network.App.GetAccountKeeper(), + s.network.App.GetBankKeeper(), *tc.genState, + &sync.Once{}, ) }) // verify state for each account diff --git a/tests/integration/x/vm/test_grpc_query.go b/tests/integration/x/vm/test_grpc_query.go index f9b55fac3..6cd06d8d8 100644 --- a/tests/integration/x/vm/test_grpc_query.go +++ b/tests/integration/x/vm/test_grpc_query.go @@ -1604,8 +1604,9 @@ func (s *KeeperTestSuite) TestQueryBaseFee() { configurator := types.NewEVMConfigurator() configurator.ResetTestConfig() - err := configurator. - WithChainConfig(chainConfig). + err := types.SetChainConfig(chainConfig) + s.Require().NoError(err) + err = configurator. WithEVMCoinInfo(testconstants.ExampleChainCoinInfo[testconstants.ExampleChainID]). Configure() s.Require().NoError(err) @@ -1635,7 +1636,7 @@ func (s *KeeperTestSuite) TestQueryBaseFee() { Denom: types.GetEVMCoinDenom(), ExtendedDenom: types.GetEVMCoinExtendedDenom(), DisplayDenom: types.GetEVMCoinDisplayDenom(), - Decimals: types.GetEVMCoinDecimals(), + Decimals: types.GetEVMCoinDecimals().Uint32(), } chainConfig := types.DefaultChainConfig(s.Network.GetEIP155ChainID().Uint64()) @@ -1660,8 +1661,9 @@ func (s *KeeperTestSuite) TestQueryBaseFee() { s.Require().NoError(s.Network.NextBlock()) configurator := types.NewEVMConfigurator() configurator.ResetTestConfig() + err = types.SetChainConfig(chainConfig) + s.Require().NoError(err) err = configurator. - WithChainConfig(chainConfig). WithEVMCoinInfo(coinInfo). Configure() s.Require().NoError(err) diff --git a/tests/integration/x/vm/test_statedb.go b/tests/integration/x/vm/test_statedb.go index 5ac2ac861..0aedd5b8c 100644 --- a/tests/integration/x/vm/test_statedb.go +++ b/tests/integration/x/vm/test_statedb.go @@ -636,7 +636,7 @@ func (s *KeeperTestSuite) CreateTestTx(msg *types.MsgEthereumTx, priv cryptotype s.Require().NoError(err) clientCtx := client.Context{}.WithTxConfig(s.Network.App.GetTxConfig()) - ethSigner := ethtypes.LatestSignerForChainID(types.GetEthChainConfig().ChainID) + ethSigner := ethtypes.LatestSignerForChainID(s.Network.GetEIP155ChainID()) txBuilder := clientCtx.TxConfig.NewTxBuilder() builder, ok := txBuilder.(authtx.ExtensionOptionsTxBuilder) diff --git a/tests/jsonrpc/scripts/evmd/container-start-evmd.sh b/tests/jsonrpc/scripts/evmd/container-start-evmd.sh index 7d27b8921..83c201ebd 100755 --- a/tests/jsonrpc/scripts/evmd/container-start-evmd.sh +++ b/tests/jsonrpc/scripts/evmd/container-start-evmd.sh @@ -54,6 +54,7 @@ jq '.app_state["staking"]["params"]["bond_denom"]="atest"' "$GENESIS" > "$TMP_GE jq '.app_state["gov"]["deposit_params"]["min_deposit"][0]["denom"]="atest"' "$GENESIS" > "$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS" jq '.app_state["gov"]["params"]["min_deposit"][0]["denom"]="atest"' "$GENESIS" > "$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS" jq '.app_state["gov"]["params"]["expedited_min_deposit"][0]["denom"]="atest"' "$GENESIS" > "$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS" +jq '.app_state["bank"]["denom_metadata"]=[{"description":"The native staking token for evmd.","denom_units":[{"denom":"atest","exponent":0,"aliases":["attotest"]},{"denom":"test","exponent":18,"aliases":[]}],"base":"atest","display":"test","name":"Test Token","symbol":"TEST","uri":"","uri_hash":""}]' "$GENESIS" >"$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS" jq '.app_state["evm"]["params"]["evm_denom"]="atest"' "$GENESIS" > "$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS" jq '.app_state["mint"]["params"]["mint_denom"]="atest"' "$GENESIS" > "$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS" diff --git a/testutil/constants/constants.go b/testutil/constants/constants.go index 1b2cf732a..317171f31 100644 --- a/testutil/constants/constants.go +++ b/testutil/constants/constants.go @@ -79,25 +79,25 @@ var ( Denom: ExampleAttoDenom, ExtendedDenom: ExampleAttoDenom, DisplayDenom: ExampleDisplayDenom, - Decimals: evmtypes.EighteenDecimals, + Decimals: evmtypes.EighteenDecimals.Uint32(), }, SixDecimalsChainID: { Denom: "utest", ExtendedDenom: "atest", DisplayDenom: "test", - Decimals: evmtypes.SixDecimals, + Decimals: evmtypes.SixDecimals.Uint32(), }, TwelveDecimalsChainID: { Denom: "ptest2", ExtendedDenom: "atest2", DisplayDenom: "test2", - Decimals: evmtypes.TwelveDecimals, + Decimals: evmtypes.TwelveDecimals.Uint32(), }, TwoDecimalsChainID: { Denom: "ctest3", ExtendedDenom: "atest3", DisplayDenom: "test3", - Decimals: evmtypes.TwoDecimals, + Decimals: evmtypes.TwoDecimals.Uint32(), }, } diff --git a/testutil/ibc/chain.go b/testutil/ibc/chain.go index 67987e40f..1f8d29163 100644 --- a/testutil/ibc/chain.go +++ b/testutil/ibc/chain.go @@ -2,6 +2,7 @@ package ibctesting import ( + "encoding/json" "fmt" "math/big" "testing" @@ -18,7 +19,6 @@ import ( cmtversion "github.com/cometbft/cometbft/version" "github.com/cosmos/evm" - "github.com/cosmos/evm/config" "github.com/cosmos/evm/crypto/ethsecp256k1" "github.com/cosmos/evm/testutil/tx" "github.com/cosmos/evm/x/vm/types" @@ -45,6 +45,8 @@ import ( var MaxAccounts = 10 +type AppCreator func() (TestingApp, map[string]json.RawMessage) + type SenderAccount struct { SenderPrivKey cryptotypes.PrivKey SenderAccount sdk.AccountI @@ -135,7 +137,7 @@ func NewTestChainWithValSet(tb testing.TB, isEVM bool, coord *Coordinator, chain Address: acc.GetAddress().String(), Coins: sdk.NewCoins( sdk.NewCoin(sdk.DefaultBondDenom, amount), - sdk.NewCoin(config.ExampleChainDenom, amount), + sdk.NewCoin(types.DefaultEVMExtendedDenom, amount), ), } @@ -150,7 +152,29 @@ func NewTestChainWithValSet(tb testing.TB, isEVM bool, coord *Coordinator, chain senderAccs = append(senderAccs, senderAcc) } - app := ibctesting.SetupWithGenesisValSet(tb, valSet, genAccs, chainID, sdk.DefaultPowerReduction, genBals...) + metadata := []banktypes.Metadata{{ + Description: "", + DenomUnits: []*banktypes.DenomUnit{ + { + Denom: types.DefaultEVMExtendedDenom, + Exponent: 0, + Aliases: nil, + }, + { + Denom: types.DefaultEVMDisplayDenom, + Exponent: 6, + Aliases: nil, + }, + }, + Base: types.DefaultEVMExtendedDenom, + Display: types.DefaultEVMDisplayDenom, + Name: types.DefaultEVMDenom, + Symbol: types.DefaultEVMDenom, + URI: types.DefaultEVMDenom, + URIHash: types.DefaultEVMDenom, + }} + + app := SetupWithGenesisValSet(tb, valSet, genAccs, chainID, sdk.DefaultPowerReduction, metadata, genBals...) // create current header and call begin block header := cmtproto.Header{ ChainID: chainID, diff --git a/testutil/ibc/coordinator.go b/testutil/ibc/coordinator.go index 8f6e03dac..0d235d324 100644 --- a/testutil/ibc/coordinator.go +++ b/testutil/ibc/coordinator.go @@ -8,7 +8,7 @@ import ( "github.com/stretchr/testify/require" - evmconfig "github.com/cosmos/evm/config" + "github.com/cosmos/evm/x/vm/types" ibctesting "github.com/cosmos/ibc-go/v10/testing" ) @@ -38,11 +38,12 @@ func NewCoordinator(t *testing.T, nEVMChains, mCosmosChains int, evmAppCreator i } ibctesting.DefaultTestingAppInit = evmAppCreator - for i := 1; i <= nEVMChains; i++ { + for i := 1; i <= nEVMChains; i++ { //nolint: staticcheck // this variable does change when the number of evmchains is 2 + configurator := types.NewEVMConfigurator() + configurator.ResetTestConfig() chainID := GetChainID(i) evmChainID, err := strconv.ParseUint(GetEvmChainID(i), 10, 64) require.NoError(t, err) - require.NoError(t, evmconfig.EvmAppOptions(evmChainID)) // setup EVM chains chains[strconv.FormatUint(evmChainID, 10)] = NewTestChain(t, true, coord, chainID) } diff --git a/testutil/ibc/helpers.go b/testutil/ibc/helpers.go index 1dae0d467..658c6f9af 100644 --- a/testutil/ibc/helpers.go +++ b/testutil/ibc/helpers.go @@ -10,7 +10,7 @@ import ( abci "github.com/cometbft/cometbft/abci/types" - "github.com/cosmos/evm/config" + "github.com/cosmos/evm/x/vm/types" bam "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" @@ -23,9 +23,9 @@ const FeeAmt = 10000000000 func FeeCoins() sdk.Coins { // Note: evmChain requires for gas price higher than base fee (see fee_checker.go). - // Other Cosmos chains using simapp don’t rely on gas prices, so this works even if simapp isn’t aware of evmChain’s BaseDenom. + // Other Cosmos chains using simapp don’t rely on gas prices, so this works even if simapp isn’t aware of evmChain’s TestExtendedDenom. sdkExp := new(big.Int).Exp(big.NewInt(10), big.NewInt(6), nil) - return sdk.Coins{sdk.NewInt64Coin(config.BaseDenom, new(big.Int).Mul(big.NewInt(FeeAmt), sdkExp).Int64())} + return sdk.Coins{sdk.NewInt64Coin(types.DefaultEVMExtendedDenom, new(big.Int).Mul(big.NewInt(FeeAmt), sdkExp).Int64())} } // SignAndDeliver signs and delivers a transaction. No simulation occurs as the @@ -42,7 +42,7 @@ func SignAndDeliver( txCfg, msgs, // Note: evmChain requires for gas price higher than base fee (see fee_checker.go). - // Other Cosmos chains using simapp don’t rely on gas prices, so this works even if simapp isn’t aware of evmChain’s BaseDenom. + // Other Cosmos chains using simapp don’t rely on gas prices, so this works even if simapp isn’t aware of evmChain’s TestExtendedDenom. FeeCoins(), simtestutil.DefaultGenTxGas, chainID, diff --git a/testutil/ibc/testing_app.go b/testutil/ibc/testing_app.go new file mode 100644 index 000000000..5988c7b35 --- /dev/null +++ b/testutil/ibc/testing_app.go @@ -0,0 +1,146 @@ +package ibctesting + +import ( + "encoding/json" + "testing" + "time" + + "github.com/stretchr/testify/require" + + abci "github.com/cometbft/cometbft/abci/types" + cmttypes "github.com/cometbft/cometbft/types" + + dbm "github.com/cosmos/cosmos-db" + evmtypes "github.com/cosmos/evm/x/vm/types" + "github.com/cosmos/ibc-go/v10/modules/core/keeper" + ibctesting "github.com/cosmos/ibc-go/v10/testing" + "github.com/cosmos/ibc-go/v10/testing/simapp" + + "cosmossdk.io/log" + sdkmath "cosmossdk.io/math" + storetypes "cosmossdk.io/store/types" + + "github.com/cosmos/cosmos-sdk/baseapp" + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/codec" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" + cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" + servertypes "github.com/cosmos/cosmos-sdk/server/types" + simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" + sdk "github.com/cosmos/cosmos-sdk/types" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" +) + +type TestingApp interface { + servertypes.ABCI + + // ibc-go additions + GetBaseApp() *baseapp.BaseApp + GetIBCKeeper() *keeper.Keeper + GetTxConfig() client.TxConfig + + // Implemented by SimApp + AppCodec() codec.Codec + + // Implemented by BaseApp + LastCommitID() storetypes.CommitID + LastBlockHeight() int64 +} + +func SetupTestingApp() (TestingApp, map[string]json.RawMessage) { + db := dbm.NewMemDB() + app := simapp.NewSimApp(log.NewNopLogger(), db, nil, true, simtestutil.EmptyAppOptions{}) + return app, app.DefaultGenesis() +} + +// SetupWithGenesisValSet initializes a new SimApp with a validator set and genesis accounts +// that also act as delegators. For simplicity, each validator is bonded with a delegation +// of one consensus engine unit (10^6) in the default token of the simapp from first genesis +// account. A Nop logger is set in SimApp. +func SetupWithGenesisValSet(tb testing.TB, valSet *cmttypes.ValidatorSet, genAccs []authtypes.GenesisAccount, chainID string, powerReduction sdkmath.Int, metadata []banktypes.Metadata, balances ...banktypes.Balance) TestingApp { + tb.Helper() + return setupWithGenesisValSet(tb, valSet, genAccs, chainID, powerReduction, ibctesting.DefaultTestingAppInit, metadata, balances...) +} + +func setupWithGenesisValSet(tb testing.TB, valSet *cmttypes.ValidatorSet, genAccs []authtypes.GenesisAccount, chainID string, powerReduction sdkmath.Int, appCreator ibctesting.AppCreator, metadata []banktypes.Metadata, balances ...banktypes.Balance) TestingApp { + tb.Helper() + app, genesisState := appCreator() + + // ensure baseapp has a chain-id set before running InitChain + baseapp.SetChainID(chainID)(app.GetBaseApp()) + + // set genesis accounts + authGenesis := authtypes.NewGenesisState(authtypes.DefaultParams(), genAccs) + genesisState[authtypes.ModuleName] = app.AppCodec().MustMarshalJSON(authGenesis) + + validators := make([]stakingtypes.Validator, 0, len(valSet.Validators)) + delegations := make([]stakingtypes.Delegation, 0, len(valSet.Validators)) + + bondAmt := sdk.TokensFromConsensusPower(1, powerReduction) + + for _, val := range valSet.Validators { + pk, err := cryptocodec.FromCmtPubKeyInterface(val.PubKey) + require.NoError(tb, err) + pkAny, err := codectypes.NewAnyWithValue(pk) + require.NoError(tb, err) + validator := stakingtypes.Validator{ + OperatorAddress: sdk.ValAddress(val.Address).String(), + ConsensusPubkey: pkAny, + Jailed: false, + Status: stakingtypes.Bonded, + Tokens: bondAmt, + DelegatorShares: sdkmath.LegacyOneDec(), + Description: stakingtypes.Description{}, + UnbondingHeight: int64(0), + UnbondingTime: time.Unix(0, 0).UTC(), + Commission: stakingtypes.NewCommission(sdkmath.LegacyZeroDec(), sdkmath.LegacyZeroDec(), sdkmath.LegacyZeroDec()), + MinSelfDelegation: sdkmath.ZeroInt(), + } + + validators = append(validators, validator) + delegations = append(delegations, stakingtypes.NewDelegation(genAccs[0].GetAddress().String(), sdk.ValAddress(val.Address).String(), sdkmath.LegacyOneDec())) + } + + // set validators and delegations + var stakingGenesis stakingtypes.GenesisState + app.AppCodec().MustUnmarshalJSON(genesisState[stakingtypes.ModuleName], &stakingGenesis) + + bondDenom := stakingGenesis.Params.BondDenom + + // add bonded amount to bonded pool module account + balances = append(balances, banktypes.Balance{ + Address: authtypes.NewModuleAddress(stakingtypes.BondedPoolName).String(), + Coins: sdk.Coins{sdk.NewCoin(bondDenom, bondAmt.Mul(sdkmath.NewInt(int64(len(valSet.Validators)))))}, + }) + + // set validators and delegations + stakingGenesis = *stakingtypes.NewGenesisState(stakingGenesis.Params, validators, delegations) + genesisState[stakingtypes.ModuleName] = app.AppCodec().MustMarshalJSON(&stakingGenesis) + + // update total supply + bankGenesis := banktypes.NewGenesisState(banktypes.DefaultGenesisState().Params, balances, sdk.NewCoins(), metadata, []banktypes.SendEnabled{}) + genesisState[banktypes.ModuleName] = app.AppCodec().MustMarshalJSON(bankGenesis) + + evmGenesis := evmtypes.DefaultGenesisState() + evmGenesis.Params.EvmDenom = evmtypes.DefaultEVMExtendedDenom + evmGenesis.Params.ActiveStaticPrecompiles = evmtypes.AvailableStaticPrecompiles + genesisState[evmtypes.ModuleName] = app.AppCodec().MustMarshalJSON(evmGenesis) + + stateBytes, err := json.MarshalIndent(genesisState, "", " ") + require.NoError(tb, err) + + // init chain will set the validator set and initialize the genesis accounts + _, err = app.InitChain( + &abci.RequestInitChain{ + ChainId: chainID, + Validators: []abci.ValidatorUpdate{}, + AppStateBytes: stateBytes, + ConsensusParams: simtestutil.DefaultConsensusParams, + }, + ) + require.NoError(tb, err) + + return app +} diff --git a/testutil/integration/evm/network/amounts.go b/testutil/integration/evm/network/amounts.go index a70b6d239..919465091 100644 --- a/testutil/integration/evm/network/amounts.go +++ b/testutil/integration/evm/network/amounts.go @@ -21,15 +21,15 @@ func DefaultInitialAmounts() InitialAmounts { baseCoinInfo := testconstants.ExampleChainCoinInfo[defaultChain] return InitialAmounts{ - Base: GetInitialAmount(baseCoinInfo.Decimals), - Evm: GetInitialAmount(baseCoinInfo.Decimals), + Base: GetInitialAmount(evmtypes.Decimals(baseCoinInfo.Decimals)), + Evm: GetInitialAmount(evmtypes.Decimals(baseCoinInfo.Decimals)), } } func DefaultInitialBondedAmount() math.Int { baseCoinInfo := testconstants.ExampleChainCoinInfo[defaultChain] - return GetInitialBondedAmount(baseCoinInfo.Decimals) + return GetInitialBondedAmount(evmtypes.Decimals(baseCoinInfo.Decimals)) } func GetInitialAmount(decimals evmtypes.Decimals) math.Int { diff --git a/testutil/integration/evm/network/chain_id_modifiers.go b/testutil/integration/evm/network/chain_id_modifiers.go index 736c14e5c..4bf9f67de 100644 --- a/testutil/integration/evm/network/chain_id_modifiers.go +++ b/testutil/integration/evm/network/chain_id_modifiers.go @@ -5,9 +5,9 @@ package network import ( + "github.com/cosmos/evm/config" testconstants "github.com/cosmos/evm/testutil/constants" erc20types "github.com/cosmos/evm/x/erc20/types" - "github.com/cosmos/evm/x/precisebank/types" evmtypes "github.com/cosmos/evm/x/vm/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" @@ -15,20 +15,22 @@ import ( // updateErc20GenesisStateForChainID modify the default genesis state for the // bank module of the testing suite depending on the chainID. -func updateBankGenesisStateForChainID(bankGenesisState banktypes.GenesisState) banktypes.GenesisState { - bankGenesisState.DenomMetadata = generateBankGenesisMetadata() +func updateBankGenesisStateForChainID(bankGenesisState banktypes.GenesisState, evmChainID uint64) banktypes.GenesisState { + bankGenesisState.DenomMetadata = GenerateBankGenesisMetadata(evmChainID) return bankGenesisState } -// generateBankGenesisMetadata generates the metadata entries +// GenerateBankGenesisMetadata generates the metadata entries // for both extended and native EVM denominations depending on the chain. -func generateBankGenesisMetadata() []banktypes.Metadata { +func GenerateBankGenesisMetadata(evmChainID uint64) []banktypes.Metadata { + denomConfig := config.ChainsCoinInfo[evmChainID] + // Basic denom settings - displayDenom := evmtypes.GetEVMCoinDisplayDenom() // e.g., "atom" - evmDenom := evmtypes.GetEVMCoinDenom() // e.g., "uatom" - extDenom := types.ExtendedCoinDenom() // always 18-decimals base denom - evmDecimals := evmtypes.GetEVMCoinDecimals() // native decimal precision, e.g., 6, 12, ..., or 18 + displayDenom := denomConfig.DisplayDenom // e.g., "atom" + evmDenom := denomConfig.Denom // e.g., "uatom" + extDenom := denomConfig.ExtendedDenom // always 18-decimals base denom + evmDecimals := denomConfig.Decimals // native decimal precision, e.g., 6, 12, ..., or 18 // Standard metadata fields name := "Cosmos EVM" @@ -46,7 +48,7 @@ func generateBankGenesisMetadata() []banktypes.Metadata { Base: evmDenom, DenomUnits: []*banktypes.DenomUnit{ {Denom: evmDenom, Exponent: 0}, - {Denom: displayDenom, Exponent: uint32(evmDecimals)}, + {Denom: displayDenom, Exponent: evmDecimals}, }, Name: name, Symbol: symbol, @@ -78,6 +80,15 @@ func updateErc20GenesisStateForChainID(chainID testconstants.ChainID, erc20Genes return erc20GenesisState } +// updateErc20GenesisStateForChainID modify the default genesis state for the +// erc20 module on the testing suite depending on the chainID. +func updateVMGenesisStateForChainID(chainID testconstants.ChainID, vmGenesisState evmtypes.GenesisState) evmtypes.GenesisState { + vmGenesisState.Params.EvmDenom = config.ChainsCoinInfo[chainID.EVMChainID].Denom + vmGenesisState.Params.ExtendedDenomOptions = &evmtypes.ExtendedDenomOptions{ExtendedDenom: config.ChainsCoinInfo[chainID.EVMChainID].ExtendedDenom} + + return vmGenesisState +} + // updateErc20TokenPairs modifies the erc20 token pairs to use the correct // WEVMOS depending on ChainID func updateErc20TokenPairs(chainID testconstants.ChainID, tokenPairs []erc20types.TokenPair) []erc20types.TokenPair { diff --git a/testutil/integration/evm/network/coins.go b/testutil/integration/evm/network/coins.go index 022a5d55f..6b722329d 100644 --- a/testutil/integration/evm/network/coins.go +++ b/testutil/integration/evm/network/coins.go @@ -40,7 +40,7 @@ func DefaultChainCoins() ChainCoins { func getCoinInfo(coinInfo evmtypes.EvmCoinInfo) CoinInfo { return CoinInfo{ Denom: coinInfo.Denom, - Decimals: coinInfo.Decimals, + Decimals: evmtypes.Decimals(coinInfo.Decimals), } } diff --git a/testutil/integration/evm/network/config.go b/testutil/integration/evm/network/config.go index ed612f75f..e83758ebc 100644 --- a/testutil/integration/evm/network/config.go +++ b/testutil/integration/evm/network/config.go @@ -133,10 +133,10 @@ func WithChainID(chainID testconstants.ChainID) ConfigOption { if cfg.chainCoins.IsBaseEqualToEVM() { cfg.chainCoins.baseCoin.Denom = evmCoinInfo.Denom - cfg.chainCoins.baseCoin.Decimals = evmCoinInfo.Decimals + cfg.chainCoins.baseCoin.Decimals = evmtypes.Decimals(evmCoinInfo.Decimals) } cfg.chainCoins.evmCoin.Denom = evmCoinInfo.Denom - cfg.chainCoins.evmCoin.Decimals = evmCoinInfo.Decimals + cfg.chainCoins.evmCoin.Decimals = evmtypes.Decimals(evmCoinInfo.Decimals) } } diff --git a/testutil/integration/evm/network/network.go b/testutil/integration/evm/network/network.go index b1db05400..0721426bc 100644 --- a/testutil/integration/evm/network/network.go +++ b/testutil/integration/evm/network/network.go @@ -77,6 +77,8 @@ type IntegrationNetwork struct { // // It panics if an error occurs. func New(createEvmApp CreateEvmApp, opts ...ConfigOption) *IntegrationNetwork { + configurator := evmtypes.NewEVMConfigurator() + configurator.ResetTestConfig() cfg := DefaultConfig() // Modify the default config with the given options for _, opt := range opts { diff --git a/testutil/integration/evm/network/setup.go b/testutil/integration/evm/network/setup.go index f352bd4af..b30349102 100644 --- a/testutil/integration/evm/network/setup.go +++ b/testutil/integration/evm/network/setup.go @@ -9,6 +9,7 @@ import ( cmttypes "github.com/cometbft/cometbft/types" "github.com/cosmos/evm" + "github.com/cosmos/evm/config" testconstants "github.com/cosmos/evm/testutil/constants" cosmosevmtypes "github.com/cosmos/evm/types" erc20types "github.com/cosmos/evm/x/erc20/types" @@ -299,7 +300,7 @@ type BankCustomGenesisState struct { } // setDefaultBankGenesisState sets the default bank genesis state -func setDefaultBankGenesisState(cosmosEVMApp evm.EvmApp, genesisState cosmosevmtypes.GenesisState, overwriteParams BankCustomGenesisState) cosmosevmtypes.GenesisState { +func setDefaultBankGenesisState(cosmosEVMApp evm.EvmApp, genesisState cosmosevmtypes.GenesisState, overwriteParams BankCustomGenesisState, evmChainID uint64) cosmosevmtypes.GenesisState { bankGenesis := banktypes.NewGenesisState( banktypes.DefaultGenesisState().Params, overwriteParams.balances, @@ -307,7 +308,7 @@ func setDefaultBankGenesisState(cosmosEVMApp evm.EvmApp, genesisState cosmosevmt []banktypes.Metadata{}, []banktypes.SendEnabled{}, ) - updatedBankGen := updateBankGenesisStateForChainID(*bankGenesis) + updatedBankGen := updateBankGenesisStateForChainID(*bankGenesis, evmChainID) genesisState[banktypes.ModuleName] = cosmosEVMApp.AppCodec().MustMarshalJSON(&updatedBankGen) return genesisState } @@ -414,10 +415,13 @@ type GovCustomGenesisState struct { } // setDefaultGovGenesisState sets the default gov genesis state -func setDefaultGovGenesisState(cosmosEVMApp evm.EvmApp, genesisState cosmosevmtypes.GenesisState, overwriteParams GovCustomGenesisState) cosmosevmtypes.GenesisState { +func setDefaultGovGenesisState(cosmosEVMApp evm.EvmApp, genesisState cosmosevmtypes.GenesisState, overwriteParams GovCustomGenesisState, evmChainID uint64) cosmosevmtypes.GenesisState { govGen := govtypesv1.DefaultGenesisState() + + denomConfig := config.ChainsCoinInfo[evmChainID] + updatedParams := govGen.Params - minDepositAmt := sdkmath.NewInt(1e18).Quo(evmtypes.GetEVMCoinDecimals().ConversionFactor()) + minDepositAmt := sdkmath.NewInt(1e18).Quo(evmtypes.Decimals(denomConfig.Decimals).ConversionFactor()) updatedParams.MinDeposit = sdktypes.NewCoins(sdktypes.NewCoin(overwriteParams.denom, minDepositAmt)) updatedParams.ExpeditedMinDeposit = sdktypes.NewCoins(sdktypes.NewCoin(overwriteParams.denom, minDepositAmt)) govGen.Params = updatedParams @@ -485,6 +489,19 @@ func newErc20GenesisState() *erc20types.GenesisState { return erc20GenState } +func setDefaultVMGenesisState(cosmosEVMApp evm.EvmApp, evmChainID uint64, genesisState cosmosevmtypes.GenesisState) cosmosevmtypes.GenesisState { + // NOTE: here we are using the setup from the example chain + var vmGen evmtypes.GenesisState + cosmosEVMApp.AppCodec().MustUnmarshalJSON(genesisState[evmtypes.ModuleName], &vmGen) + updatedVMGen := updateVMGenesisStateForChainID(testconstants.ChainID{ + ChainID: cosmosEVMApp.ChainID(), + EVMChainID: evmChainID, + }, vmGen) + + genesisState[evmtypes.ModuleName] = cosmosEVMApp.AppCodec().MustMarshalJSON(&updatedVMGen) + return genesisState +} + // defaultAuthGenesisState sets the default genesis state // for the testing setup func newDefaultGenesisState(cosmosEVMApp evm.EvmApp, evmChainID uint64, params defaultGenesisParams) cosmosevmtypes.GenesisState { @@ -492,12 +509,13 @@ func newDefaultGenesisState(cosmosEVMApp evm.EvmApp, evmChainID uint64, params d genesisState = setDefaultAuthGenesisState(cosmosEVMApp, genesisState, params.genAccounts) genesisState = setDefaultStakingGenesisState(cosmosEVMApp, genesisState, params.staking) - genesisState = setDefaultBankGenesisState(cosmosEVMApp, genesisState, params.bank) - genesisState = setDefaultGovGenesisState(cosmosEVMApp, genesisState, params.gov) + genesisState = setDefaultBankGenesisState(cosmosEVMApp, genesisState, params.bank, evmChainID) + genesisState = setDefaultGovGenesisState(cosmosEVMApp, genesisState, params.gov, evmChainID) genesisState = setDefaultFeeMarketGenesisState(cosmosEVMApp, genesisState, params.feemarket) genesisState = setDefaultSlashingGenesisState(cosmosEVMApp, genesisState, params.slashing) genesisState = setDefaultMintGenesisState(cosmosEVMApp, genesisState, params.mint) genesisState = setDefaultErc20GenesisState(cosmosEVMApp, evmChainID, genesisState) + genesisState = setDefaultVMGenesisState(cosmosEVMApp, evmChainID, genesisState) return genesisState } diff --git a/x/precisebank/keeper/keeper_test.go b/x/precisebank/keeper/keeper_test.go index 8caef5c93..b96ce57e7 100644 --- a/x/precisebank/keeper/keeper_test.go +++ b/x/precisebank/keeper/keeper_test.go @@ -3,12 +3,14 @@ package keeper_test import ( "testing" - evmconfig "github.com/cosmos/evm/config" + "github.com/stretchr/testify/require" + evmosencoding "github.com/cosmos/evm/encoding" testconstants "github.com/cosmos/evm/testutil/constants" "github.com/cosmos/evm/x/precisebank/keeper" "github.com/cosmos/evm/x/precisebank/types" "github.com/cosmos/evm/x/precisebank/types/mocks" + vmtypes "github.com/cosmos/evm/x/vm/types" sdkmath "cosmossdk.io/math" storetypes "cosmossdk.io/store/types" @@ -35,7 +37,7 @@ func newMockedTestData(t *testing.T) testData { storeKey := storetypes.NewKVStoreKey(types.ModuleName) // Not required by module, but needs to be non-nil for context tKey := storetypes.NewTransientStoreKey("transient_test") - ctx := testutil.DefaultContext(storeKey, tKey) + ctx := testutil.DefaultContext(storeKey, tKey) //nolint: staticcheck // this variable is used bk := mocks.NewBankKeeper(t) ak := mocks.NewAccountKeeper(t) @@ -43,11 +45,12 @@ func newMockedTestData(t *testing.T) testData { chainID := testconstants.SixDecimalsChainID.EVMChainID cfg := evmosencoding.MakeConfig(chainID) cdc := cfg.Codec - k := keeper.NewKeeper(cdc, storeKey, bk, ak) - err := evmconfig.EvmAppOptions(chainID) - if err != nil { - return testData{} - } + k := keeper.NewKeeper(cdc, storeKey, bk, ak) //nolint: staticcheck // this variable is used + evmConfigurator := vmtypes.NewEVMConfigurator(). + WithEVMCoinInfo(testconstants.ExampleChainCoinInfo[testconstants.SixDecimalsChainID]) + evmConfigurator.ResetTestConfig() + err := evmConfigurator.Configure() + require.NoError(t, err) return testData{ ctx: ctx, diff --git a/x/precisebank/module.go b/x/precisebank/module.go index 3008920e3..5da71ceb7 100644 --- a/x/precisebank/module.go +++ b/x/precisebank/module.go @@ -78,7 +78,7 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, config client.TxEncod if err != nil { return err } - return gs.Validate() + return nil } // RegisterGRPCGatewayRoutes registers the gRPC Gateway routes for precisebank module. diff --git a/x/vm/genesis.go b/x/vm/genesis.go index 987214423..f6c411607 100644 --- a/x/vm/genesis.go +++ b/x/vm/genesis.go @@ -2,6 +2,7 @@ package vm import ( "fmt" + "sync" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/crypto" @@ -19,7 +20,9 @@ func InitGenesis( ctx sdk.Context, k *keeper.Keeper, accountKeeper types.AccountKeeper, + bankKeeper types.BankKeeper, data types.GenesisState, + initializer *sync.Once, ) []abci.ValidatorUpdate { err := k.SetParams(ctx, data.Params) if err != nil { @@ -57,6 +60,10 @@ func InitGenesis( } } + initializer.Do(func() { + SetGlobalConfigVariables(ctx, k, bankKeeper, data.Params) + }) + if err := k.AddPreinstalls(ctx, data.Preinstalls); err != nil { panic(fmt.Errorf("error adding preinstalls: %s", err)) } diff --git a/x/vm/keeper/coin_info.go b/x/vm/keeper/coin_info.go new file mode 100644 index 000000000..b30d6bb1c --- /dev/null +++ b/x/vm/keeper/coin_info.go @@ -0,0 +1,30 @@ +package keeper + +import ( + "github.com/cosmos/evm/x/vm/types" + + sdk "github.com/cosmos/cosmos-sdk/types" +) + +// GetEvmCoinInfo returns the EVM Coin Info stored in the module +func (k Keeper) GetEvmCoinInfo(ctx sdk.Context) (coinInfo types.EvmCoinInfo) { + store := ctx.KVStore(k.storeKey) + bz := store.Get(types.KeyPrefixEvmCoinInfo) + if bz == nil { + return coinInfo + } + k.cdc.MustUnmarshal(bz, &coinInfo) + return +} + +// SetEvmCoinInfo sets the EVM Coin Info stored in the module +func (k Keeper) SetEvmCoinInfo(ctx sdk.Context, coinInfo types.EvmCoinInfo) error { + store := ctx.KVStore(k.storeKey) + bz, err := k.cdc.Marshal(&coinInfo) + if err != nil { + return err + } + + store.Set(types.KeyPrefixEvmCoinInfo, bz) + return nil +} diff --git a/x/vm/keeper/keeper.go b/x/vm/keeper/keeper.go index 98facb0f8..0b468463b 100644 --- a/x/vm/keeper/keeper.go +++ b/x/vm/keeper/keeper.go @@ -95,6 +95,7 @@ func NewKeeper( fmk types.FeeMarketKeeper, consensusKeeper types.ConsensusParamsKeeper, erc20Keeper types.Erc20Keeper, + evmChainID uint64, tracer string, ) *Keeper { // ensure evm module account is set @@ -110,6 +111,12 @@ func NewKeeper( bankWrapper := wrappers.NewBankWrapper(bankKeeper) feeMarketWrapper := wrappers.NewFeeMarketWrapper(fmk) + // set global chain config + ethCfg := types.DefaultChainConfig(evmChainID) + if err := types.SetChainConfig(ethCfg); err != nil { + panic(err) + } + // NOTE: we pass in the parameter space to the CommitStateDB in order to use custom denominations for the EVM operations return &Keeper{ cdc: cdc, @@ -345,7 +352,8 @@ func (k Keeper) GetBaseFee(ctx sdk.Context) *big.Int { if !types.IsLondon(ethCfg, ctx.BlockHeight()) { return nil } - baseFee := k.feeMarketWrapper.GetBaseFee(ctx) + coinInfo := k.GetEvmCoinInfo(ctx) + baseFee := k.feeMarketWrapper.GetBaseFee(ctx, types.Decimals(coinInfo.Decimals)) if baseFee == nil { // return 0 if feemarket not enabled. baseFee = big.NewInt(0) diff --git a/x/vm/keeper/keeper_test.go b/x/vm/keeper/keeper_test.go index 7e2a2f42f..a2117754b 100644 --- a/x/vm/keeper/keeper_test.go +++ b/x/vm/keeper/keeper_test.go @@ -9,6 +9,7 @@ import ( cmtproto "github.com/cometbft/cometbft/proto/tendermint/types" cmttime "github.com/cometbft/cometbft/types/time" + "github.com/cosmos/evm/config" erc20types "github.com/cosmos/evm/x/erc20/types" feemarkettypes "github.com/cosmos/evm/x/feemarket/types" precisebanktypes "github.com/cosmos/evm/x/precisebank/types" @@ -95,6 +96,7 @@ func (suite *KeeperTestSuite) SetupTest() { suite.fmKeeper, suite.consensusKeeper, suite.erc20Keeper, + config.EighteenDecimalsChainID, "", ) } diff --git a/x/vm/module.go b/x/vm/module.go index 9c51ae43a..d4c205168 100644 --- a/x/vm/module.go +++ b/x/vm/module.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "sync" "github.com/gorilla/mux" "github.com/grpc-ecosystem/grpc-gateway/runtime" @@ -17,6 +18,7 @@ import ( "cosmossdk.io/core/address" "cosmossdk.io/core/appmodule" + "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" @@ -35,6 +37,7 @@ var ( _ appmodule.HasBeginBlocker = AppModule{} _ appmodule.HasEndBlocker = AppModule{} + _ appmodule.HasPreBlocker = AppModule{} ) // AppModuleBasic defines the basic application module used by the evm module. @@ -104,16 +107,20 @@ func (AppModuleBasic) GetQueryCmd() *cobra.Command { // AppModule implements an application module for the evm module. type AppModule struct { AppModuleBasic - keeper *keeper.Keeper - ak types.AccountKeeper + keeper *keeper.Keeper + ak types.AccountKeeper + bankKeeper types.BankKeeper + initializer *sync.Once } // NewAppModule creates a new AppModule object -func NewAppModule(k *keeper.Keeper, ak types.AccountKeeper, ac address.Codec) AppModule { +func NewAppModule(k *keeper.Keeper, ak types.AccountKeeper, bankKeeper types.BankKeeper, ac address.Codec) AppModule { return AppModule{ AppModuleBasic: AppModuleBasic{ac: ac}, keeper: k, ak: ak, + bankKeeper: bankKeeper, + initializer: &sync.Once{}, } } @@ -129,6 +136,15 @@ func (am AppModule) RegisterServices(cfg module.Configurator) { types.RegisterQueryServer(cfg.QueryServer(), am.keeper) } +func (am AppModule) PreBlock(goCtx context.Context) (appmodule.ResponsePreBlock, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + params := am.keeper.GetParams(ctx) + am.initializer.Do(func() { + SetGlobalConfigVariables(ctx, am.keeper, am.bankKeeper, params) + }) + return &sdk.ResponsePreBlock{ConsensusParamsChanged: false}, nil +} + // BeginBlock returns the begin blocker for the evm module. func (am AppModule) BeginBlock(ctx context.Context) error { c := sdk.UnwrapSDKContext(ctx) @@ -147,7 +163,7 @@ func (am AppModule) EndBlock(ctx context.Context) error { func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, data json.RawMessage) []abci.ValidatorUpdate { var genesisState types.GenesisState cdc.MustUnmarshalJSON(data, &genesisState) - InitGenesis(ctx, am.keeper, am.ak, genesisState) + InitGenesis(ctx, am.keeper, am.ak, am.bankKeeper, genesisState, am.initializer) return []abci.ValidatorUpdate{} } @@ -176,3 +192,73 @@ func (am AppModule) IsAppModule() {} // IsOnePerModuleType implements the depinject.OnePerModuleType interface. func (am AppModule) IsOnePerModuleType() {} + +// setBaseDenom registers the display denom and base denom and sets the +// base denom for the chain. The function registered different values based on +// the EvmCoinInfo to allow different configurations in mainnet and testnet. +func setBaseDenom(ci types.EvmCoinInfo) (err error) { + // Defer setting the base denom, and capture any potential error from it. + // So when failing because the denom was already registered, we ignore it and set + // the corresponding denom to be base denom + defer func() { + err = sdk.SetBaseDenom(ci.Denom) + }() + if err := sdk.RegisterDenom(ci.DisplayDenom, math.LegacyOneDec()); err != nil { + return err + } + + // sdk.RegisterDenom will automatically overwrite the base denom when the + // new setBaseDenom() units are lower than the current base denom's units. + return sdk.RegisterDenom(ci.Denom, math.LegacyNewDecWithPrec(1, int64(ci.Decimals))) +} + +func SetGlobalConfigVariables(ctx sdk.Context, vmKeeper *keeper.Keeper, bankKeeper types.BankKeeper, params types.Params) { + var decimals types.Decimals + + evmDenomMetadata, found := bankKeeper.GetDenomMetaData(ctx, params.EvmDenom) + if !found { + panic(fmt.Sprintf("denom metadata %s could not be found", params.EvmDenom)) + } + + for _, denomUnit := range evmDenomMetadata.DenomUnits { + if denomUnit.Denom == evmDenomMetadata.Display { + decimals = types.Decimals(denomUnit.Exponent) + } + } + + var extendedDenom string + if decimals == 18 { + extendedDenom = params.EvmDenom + } else { + if params.ExtendedDenomOptions == nil { + panic(fmt.Errorf("extended denom options cannot be nil for non-18-decimal chains")) + } + extendedDenom = params.ExtendedDenomOptions.ExtendedDenom + } + + coinInfo := types.EvmCoinInfo{ + Denom: params.EvmDenom, + ExtendedDenom: extendedDenom, + DisplayDenom: evmDenomMetadata.Display, + Decimals: decimals.Uint32(), + } + + // set the denom info for the chain + if err := setBaseDenom(coinInfo); err != nil { + panic(err) + } + + if err := vmKeeper.SetEvmCoinInfo(ctx, coinInfo); err != nil { + panic(err) + } + + configurator := types.NewEVMConfigurator() + err := configurator. + WithExtendedEips(types.DefaultCosmosEVMActivators). + // NOTE: we're using the 18 decimals default for the example chain + WithEVMCoinInfo(coinInfo). + Configure() + if err != nil { + panic(err) + } +} diff --git a/config/activators.go b/x/vm/types/activators.go similarity index 58% rename from config/activators.go rename to x/vm/types/activators.go index 197526d7c..734712429 100644 --- a/config/activators.go +++ b/x/vm/types/activators.go @@ -1,4 +1,4 @@ -package config +package types import ( "github.com/ethereum/go-ethereum/core/vm" @@ -6,9 +6,9 @@ import ( "github.com/cosmos/evm/eips" ) -// cosmosEVMActivators defines a map of opcode modifiers associated +// DefaultCosmosEVMActivators defines a map of opcode modifiers associated // with a key defining the corresponding EIP. -var cosmosEVMActivators = map[int]func(*vm.JumpTable){ +var DefaultCosmosEVMActivators = map[int]func(*vm.JumpTable){ 0o000: eips.Enable0000, 0o001: eips.Enable0001, 0o002: eips.Enable0002, diff --git a/x/vm/types/chain_config.go b/x/vm/types/chain_config.go index d22fd6547..930ffdcf8 100644 --- a/x/vm/types/chain_config.go +++ b/x/vm/types/chain_config.go @@ -1,7 +1,6 @@ package types import ( - "errors" "math/big" gethparams "github.com/ethereum/go-ethereum/params" @@ -10,9 +9,6 @@ import ( sdkmath "cosmossdk.io/math" ) -// testChainID represents the ChainID used for the purpose of testing. -const testChainID uint64 = 262144 // TODO:VLAD - Consolidate into a single object across the entire repo - // chainConfig is the chain configuration used in the EVM to defined which // opcodes are active based on Ethereum upgrades. var chainConfig *ChainConfig @@ -60,7 +56,7 @@ func (cc ChainConfig) EthereumConfig(chainID *big.Int) *gethparams.ChainConfig { func DefaultChainConfig(evmChainID uint64) *ChainConfig { if evmChainID == 0 { - evmChainID = testChainID + evmChainID = DefaultEVMChainID } homesteadBlock := sdkmath.ZeroInt() @@ -111,25 +107,6 @@ func DefaultChainConfig(evmChainID uint64) *ChainConfig { return cfg } -// setChainConfig allows to set the `chainConfig` variable modifying the -// default values. The method is private because it should only be called once -// in the EVMConfigurator. -func setChainConfig(cc *ChainConfig) error { - if chainConfig != nil { - return errors.New("chainConfig already set. Cannot set again the chainConfig") - } - config := DefaultChainConfig(0) - if cc != nil { - config = cc - } - if err := config.Validate(); err != nil { - return err - } - chainConfig = config - - return nil -} - func getBlockValue(block *sdkmath.Int) *big.Int { if block == nil || block.IsNegative() { return nil diff --git a/x/vm/types/config.go b/x/vm/types/config.go index 34f87ffef..4fc952a76 100644 --- a/x/vm/types/config.go +++ b/x/vm/types/config.go @@ -8,6 +8,7 @@ package types import ( + "errors" "fmt" "github.com/ethereum/go-ethereum/core/vm" @@ -22,10 +23,6 @@ func (ec *EVMConfigurator) Configure() error { return fmt.Errorf("error configuring EVMConfigurator: already sealed and cannot be modified") } - if err := setChainConfig(ec.chainConfig); err != nil { - return err - } - if err := setEVMCoinInfo(ec.evmCoinInfo); err != nil { return err } @@ -58,3 +55,22 @@ func GetEthChainConfig() *geth.ChainConfig { func GetChainConfig() *ChainConfig { return chainConfig } + +// SetChainConfig allows to set the `chainConfig` variable modifying the +// default values. The method is private because it should only be called once +// in the EVMConfigurator. +func SetChainConfig(cc *ChainConfig) error { + if chainConfig != nil && chainConfig.ChainId != DefaultEVMChainID { + return errors.New("chainConfig already set. Cannot set again the chainConfig") + } + config := DefaultChainConfig(0) + if cc != nil { + config = cc + } + if err := config.Validate(); err != nil { + return err + } + chainConfig = config + + return nil +} diff --git a/x/vm/types/config_testing.go b/x/vm/types/config_testing.go index 1440ccb86..fe16fab17 100644 --- a/x/vm/types/config_testing.go +++ b/x/vm/types/config_testing.go @@ -10,7 +10,6 @@ package types import ( "errors" "fmt" - "github.com/ethereum/go-ethereum/core/vm" geth "github.com/ethereum/go-ethereum/params" ) @@ -27,10 +26,6 @@ func (ec *EVMConfigurator) Configure() error { return fmt.Errorf("error configuring EVMConfigurator: already sealed and cannot be modified") } - if err := setTestChainConfig(ec.chainConfig); err != nil { - return err - } - if err := setTestingEVMCoinInfo(ec.evmCoinInfo); err != nil { return err } @@ -71,6 +66,25 @@ func setTestChainConfig(cc *ChainConfig) error { return nil } +// SetChainConfig allows to set the `chainConfig` variable modifying the +// default values. The method is private because it should only be called once +// in the EVMConfigurator. +func SetChainConfig(cc *ChainConfig) error { + if chainConfig != nil && chainConfig.ChainId != DefaultEVMChainID { + return errors.New("chainConfig already set. Cannot set again the chainConfig") + } + config := DefaultChainConfig(0) + if cc != nil { + config = cc + } + if err := config.Validate(); err != nil { + return err + } + testChainConfig = config + + return nil +} + // GetEthChainConfig returns the `chainConfig` used in the EVM (geth type). func GetEthChainConfig() *geth.ChainConfig { return testChainConfig.EthereumConfig(nil) diff --git a/x/vm/types/configurator.go b/x/vm/types/configurator.go index 44c1fd8ed..b661edf71 100644 --- a/x/vm/types/configurator.go +++ b/x/vm/types/configurator.go @@ -18,7 +18,6 @@ type EVMConfigurator struct { sealed bool extendedEIPs map[int]func(*vm.JumpTable) extendedDefaultExtraEIPs []int64 - chainConfig *ChainConfig evmCoinInfo EvmCoinInfo } @@ -41,13 +40,6 @@ func (ec *EVMConfigurator) WithExtendedDefaultExtraEIPs(eips ...int64) *EVMConfi return ec } -// WithChainConfig allows to define a custom `chainConfig` to be used in the -// EVM. -func (ec *EVMConfigurator) WithChainConfig(cc *ChainConfig) *EVMConfigurator { - ec.chainConfig = cc - return ec -} - // WithEVMCoinInfo allows to define the denom and decimals of the token used as the // EVM token. func (ec *EVMConfigurator) WithEVMCoinInfo(coinInfo EvmCoinInfo) *EVMConfigurator { diff --git a/x/vm/types/configurator_test.go b/x/vm/types/configurator_test.go index 8ba74f536..a278fa62d 100644 --- a/x/vm/types/configurator_test.go +++ b/x/vm/types/configurator_test.go @@ -18,7 +18,7 @@ func TestEVMConfigurator(t *testing.T) { err = evmConfigurator.Configure() require.Error(t, err) - require.Contains(t, err.Error(), "sealed", "expected different error") + require.Contains(t, err.Error(), "already sealed", "expected different error") } func TestExtendedEips(t *testing.T) { diff --git a/x/vm/types/denom.go b/x/vm/types/denom.go index b4d5d68dc..aacfa2f89 100644 --- a/x/vm/types/denom.go +++ b/x/vm/types/denom.go @@ -54,7 +54,7 @@ var ConversionFactor = map[Decimals]math.Int{ } // Decimals represents the decimal representation of a Cosmos coin. -type Decimals uint8 +type Decimals uint32 // Validate checks if the Decimals instance represent a supported decimals value // or not. @@ -77,13 +77,4 @@ func (d Decimals) ConversionFactor() math.Int { return ConversionFactor[d] } -// EvmCoinInfo struct holds the name and decimals of the EVM denom. The EVM denom -// is the token used to pay fees in the EVM. -// -// TODO: move to own file? at least rename file because it's unclear to use "denom" -type EvmCoinInfo struct { - Denom string - ExtendedDenom string - DisplayDenom string - Decimals Decimals -} +func (d Decimals) Uint32() uint32 { return uint32(d) } diff --git a/x/vm/types/denom_config.go b/x/vm/types/denom_config.go index 04ff3fe8b..ca731fc3a 100644 --- a/x/vm/types/denom_config.go +++ b/x/vm/types/denom_config.go @@ -25,7 +25,7 @@ func setEVMCoinDecimals(d Decimals) error { return fmt.Errorf("setting EVM coin decimals: %w", err) } - evmCoinInfo.Decimals = d + evmCoinInfo.Decimals = d.Uint32() return nil } @@ -58,7 +58,7 @@ func setDisplayDenom(displayDenom string) error { // GetEVMCoinDecimals returns the decimals used in the representation of the EVM // coin. func GetEVMCoinDecimals() Decimals { - return evmCoinInfo.Decimals + return Decimals(evmCoinInfo.Decimals) } // GetEVMCoinDenom returns the denom used for the EVM coin. @@ -82,7 +82,7 @@ func setEVMCoinInfo(eci EvmCoinInfo) error { return errors.New("EVM coin info already set") } - if eci.Decimals == EighteenDecimals { + if Decimals(eci.Decimals) == EighteenDecimals { if eci.Denom != eci.ExtendedDenom { return errors.New("EVM coin denom and extended denom must be the same for 18 decimals") } @@ -99,5 +99,5 @@ func setEVMCoinInfo(eci EvmCoinInfo) error { if err := setDisplayDenom(eci.DisplayDenom); err != nil { return err } - return setEVMCoinDecimals(eci.Decimals) + return setEVMCoinDecimals(Decimals(eci.Decimals)) } diff --git a/x/vm/types/denom_config_testing.go b/x/vm/types/denom_config_testing.go index 66b849c0c..fede6ffdb 100644 --- a/x/vm/types/denom_config_testing.go +++ b/x/vm/types/denom_config_testing.go @@ -25,7 +25,7 @@ func setEVMCoinDecimals(d Decimals) error { return fmt.Errorf("setting EVM coin decimals: %w", err) } - testingEvmCoinInfo.Decimals = d + testingEvmCoinInfo.Decimals = d.Uint32() return nil } @@ -58,7 +58,7 @@ func setDisplayDenom(displayDenom string) error { // GetEVMCoinDecimals returns the decimals used in the representation of the EVM // coin. func GetEVMCoinDecimals() Decimals { - return testingEvmCoinInfo.Decimals + return Decimals(testingEvmCoinInfo.Decimals) } // GetEVMCoinDenom returns the denom used for the EVM coin. @@ -82,7 +82,7 @@ func setTestingEVMCoinInfo(eci EvmCoinInfo) error { return errors.New("testing EVM coin info already set. Make sure you run the configurator's ResetTestConfig before trying to set a new evm coin info") } - if eci.Decimals == EighteenDecimals { + if eci.Decimals == EighteenDecimals.Uint32() { if eci.Denom != eci.ExtendedDenom { return errors.New("EVM coin denom and extended denom must be the same for 18 decimals") } @@ -99,7 +99,7 @@ func setTestingEVMCoinInfo(eci EvmCoinInfo) error { if err := setDisplayDenom(eci.DisplayDenom); err != nil { return err } - return setEVMCoinDecimals(eci.Decimals) + return setEVMCoinDecimals(Decimals(eci.Decimals)) } // resetEVMCoinInfo resets to nil the testingEVMCoinInfo diff --git a/x/vm/types/evm.pb.go b/x/vm/types/evm.pb.go index e472085c9..28450b4f2 100644 --- a/x/vm/types/evm.pb.go +++ b/x/vm/types/evm.pb.go @@ -70,8 +70,9 @@ type Params struct { AccessControl AccessControl `protobuf:"bytes,8,opt,name=access_control,json=accessControl,proto3" json:"access_control"` // active_static_precompiles defines the slice of hex addresses of the // precompiled contracts that are active - ActiveStaticPrecompiles []string `protobuf:"bytes,9,rep,name=active_static_precompiles,json=activeStaticPrecompiles,proto3" json:"active_static_precompiles,omitempty"` - HistoryServeWindow uint64 `protobuf:"varint,10,opt,name=history_serve_window,json=historyServeWindow,proto3" json:"history_serve_window,omitempty"` + ActiveStaticPrecompiles []string `protobuf:"bytes,9,rep,name=active_static_precompiles,json=activeStaticPrecompiles,proto3" json:"active_static_precompiles,omitempty"` + HistoryServeWindow uint64 `protobuf:"varint,10,opt,name=history_serve_window,json=historyServeWindow,proto3" json:"history_serve_window,omitempty"` + ExtendedDenomOptions *ExtendedDenomOptions `protobuf:"bytes,11,opt,name=extended_denom_options,json=extendedDenomOptions,proto3" json:"extended_denom_options,omitempty"` } func (m *Params) Reset() { *m = Params{} } @@ -149,6 +150,57 @@ func (m *Params) GetHistoryServeWindow() uint64 { return 0 } +func (m *Params) GetExtendedDenomOptions() *ExtendedDenomOptions { + if m != nil { + return m.ExtendedDenomOptions + } + return nil +} + +type ExtendedDenomOptions struct { + ExtendedDenom string `protobuf:"bytes,1,opt,name=extended_denom,json=extendedDenom,proto3" json:"extended_denom,omitempty"` +} + +func (m *ExtendedDenomOptions) Reset() { *m = ExtendedDenomOptions{} } +func (m *ExtendedDenomOptions) String() string { return proto.CompactTextString(m) } +func (*ExtendedDenomOptions) ProtoMessage() {} +func (*ExtendedDenomOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_d1129b8db63d55c7, []int{1} +} +func (m *ExtendedDenomOptions) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ExtendedDenomOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ExtendedDenomOptions.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ExtendedDenomOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExtendedDenomOptions.Merge(m, src) +} +func (m *ExtendedDenomOptions) XXX_Size() int { + return m.Size() +} +func (m *ExtendedDenomOptions) XXX_DiscardUnknown() { + xxx_messageInfo_ExtendedDenomOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_ExtendedDenomOptions proto.InternalMessageInfo + +func (m *ExtendedDenomOptions) GetExtendedDenom() string { + if m != nil { + return m.ExtendedDenom + } + return "" +} + // AccessControl defines the permission policy of the EVM // for creating and calling contracts type AccessControl struct { @@ -162,7 +214,7 @@ func (m *AccessControl) Reset() { *m = AccessControl{} } func (m *AccessControl) String() string { return proto.CompactTextString(m) } func (*AccessControl) ProtoMessage() {} func (*AccessControl) Descriptor() ([]byte, []int) { - return fileDescriptor_d1129b8db63d55c7, []int{1} + return fileDescriptor_d1129b8db63d55c7, []int{2} } func (m *AccessControl) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -223,7 +275,7 @@ func (m *AccessControlType) Reset() { *m = AccessControlType{} } func (m *AccessControlType) String() string { return proto.CompactTextString(m) } func (*AccessControlType) ProtoMessage() {} func (*AccessControlType) Descriptor() ([]byte, []int) { - return fileDescriptor_d1129b8db63d55c7, []int{2} + return fileDescriptor_d1129b8db63d55c7, []int{3} } func (m *AccessControlType) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -333,7 +385,7 @@ func (m *ChainConfig) Reset() { *m = ChainConfig{} } func (m *ChainConfig) String() string { return proto.CompactTextString(m) } func (*ChainConfig) ProtoMessage() {} func (*ChainConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_d1129b8db63d55c7, []int{3} + return fileDescriptor_d1129b8db63d55c7, []int{4} } func (m *ChainConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -402,7 +454,7 @@ func (m *State) Reset() { *m = State{} } func (m *State) String() string { return proto.CompactTextString(m) } func (*State) ProtoMessage() {} func (*State) Descriptor() ([]byte, []int) { - return fileDescriptor_d1129b8db63d55c7, []int{4} + return fileDescriptor_d1129b8db63d55c7, []int{5} } func (m *State) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -459,7 +511,7 @@ func (m *TransactionLogs) Reset() { *m = TransactionLogs{} } func (m *TransactionLogs) String() string { return proto.CompactTextString(m) } func (*TransactionLogs) ProtoMessage() {} func (*TransactionLogs) Descriptor() ([]byte, []int) { - return fileDescriptor_d1129b8db63d55c7, []int{5} + return fileDescriptor_d1129b8db63d55c7, []int{6} } func (m *TransactionLogs) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -537,7 +589,7 @@ func (m *Log) Reset() { *m = Log{} } func (m *Log) String() string { return proto.CompactTextString(m) } func (*Log) ProtoMessage() {} func (*Log) Descriptor() ([]byte, []int) { - return fileDescriptor_d1129b8db63d55c7, []int{6} + return fileDescriptor_d1129b8db63d55c7, []int{7} } func (m *Log) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -659,7 +711,7 @@ func (m *TxResult) Reset() { *m = TxResult{} } func (m *TxResult) String() string { return proto.CompactTextString(m) } func (*TxResult) ProtoMessage() {} func (*TxResult) Descriptor() ([]byte, []int) { - return fileDescriptor_d1129b8db63d55c7, []int{7} + return fileDescriptor_d1129b8db63d55c7, []int{8} } func (m *TxResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -700,7 +752,7 @@ func (m *AccessTuple) Reset() { *m = AccessTuple{} } func (m *AccessTuple) String() string { return proto.CompactTextString(m) } func (*AccessTuple) ProtoMessage() {} func (*AccessTuple) Descriptor() ([]byte, []int) { - return fileDescriptor_d1129b8db63d55c7, []int{8} + return fileDescriptor_d1129b8db63d55c7, []int{9} } func (m *AccessTuple) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -760,7 +812,7 @@ func (m *TraceConfig) Reset() { *m = TraceConfig{} } func (m *TraceConfig) String() string { return proto.CompactTextString(m) } func (*TraceConfig) ProtoMessage() {} func (*TraceConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_d1129b8db63d55c7, []int{9} + return fileDescriptor_d1129b8db63d55c7, []int{10} } func (m *TraceConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -881,7 +933,7 @@ func (m *Preinstall) Reset() { *m = Preinstall{} } func (m *Preinstall) String() string { return proto.CompactTextString(m) } func (*Preinstall) ProtoMessage() {} func (*Preinstall) Descriptor() ([]byte, []int) { - return fileDescriptor_d1129b8db63d55c7, []int{10} + return fileDescriptor_d1129b8db63d55c7, []int{11} } func (m *Preinstall) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -931,9 +983,78 @@ func (m *Preinstall) GetCode() string { return "" } +type EvmCoinInfo struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + ExtendedDenom string `protobuf:"bytes,2,opt,name=extended_denom,json=extendedDenom,proto3" json:"extended_denom,omitempty"` + DisplayDenom string `protobuf:"bytes,3,opt,name=display_denom,json=displayDenom,proto3" json:"display_denom,omitempty"` + Decimals uint32 `protobuf:"varint,4,opt,name=decimals,proto3" json:"decimals,omitempty"` +} + +func (m *EvmCoinInfo) Reset() { *m = EvmCoinInfo{} } +func (m *EvmCoinInfo) String() string { return proto.CompactTextString(m) } +func (*EvmCoinInfo) ProtoMessage() {} +func (*EvmCoinInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_d1129b8db63d55c7, []int{12} +} +func (m *EvmCoinInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EvmCoinInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EvmCoinInfo.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EvmCoinInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_EvmCoinInfo.Merge(m, src) +} +func (m *EvmCoinInfo) XXX_Size() int { + return m.Size() +} +func (m *EvmCoinInfo) XXX_DiscardUnknown() { + xxx_messageInfo_EvmCoinInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_EvmCoinInfo proto.InternalMessageInfo + +func (m *EvmCoinInfo) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +func (m *EvmCoinInfo) GetExtendedDenom() string { + if m != nil { + return m.ExtendedDenom + } + return "" +} + +func (m *EvmCoinInfo) GetDisplayDenom() string { + if m != nil { + return m.DisplayDenom + } + return "" +} + +func (m *EvmCoinInfo) GetDecimals() uint32 { + if m != nil { + return m.Decimals + } + return 0 +} + func init() { proto.RegisterEnum("cosmos.evm.vm.v1.AccessType", AccessType_name, AccessType_value) proto.RegisterType((*Params)(nil), "cosmos.evm.vm.v1.Params") + proto.RegisterType((*ExtendedDenomOptions)(nil), "cosmos.evm.vm.v1.ExtendedDenomOptions") proto.RegisterType((*AccessControl)(nil), "cosmos.evm.vm.v1.AccessControl") proto.RegisterType((*AccessControlType)(nil), "cosmos.evm.vm.v1.AccessControlType") proto.RegisterType((*ChainConfig)(nil), "cosmos.evm.vm.v1.ChainConfig") @@ -944,138 +1065,145 @@ func init() { proto.RegisterType((*AccessTuple)(nil), "cosmos.evm.vm.v1.AccessTuple") proto.RegisterType((*TraceConfig)(nil), "cosmos.evm.vm.v1.TraceConfig") proto.RegisterType((*Preinstall)(nil), "cosmos.evm.vm.v1.Preinstall") + proto.RegisterType((*EvmCoinInfo)(nil), "cosmos.evm.vm.v1.EvmCoinInfo") } func init() { proto.RegisterFile("cosmos/evm/vm/v1/evm.proto", fileDescriptor_d1129b8db63d55c7) } var fileDescriptor_d1129b8db63d55c7 = []byte{ - // 2007 bytes of a gzipped FileDescriptorProto + // 2111 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x58, 0x4d, 0x6f, 0x1b, 0xc7, - 0x19, 0x16, 0xc5, 0x95, 0xb4, 0x1c, 0x52, 0xd2, 0x7a, 0x44, 0xcb, 0x34, 0xed, 0x68, 0xd5, 0x6d, - 0x0f, 0xaa, 0x91, 0x4a, 0x96, 0x1c, 0xb5, 0x86, 0xd3, 0x0f, 0x88, 0x32, 0xd3, 0x4a, 0xb5, 0x1d, - 0x61, 0xa8, 0xc6, 0x48, 0xd1, 0x62, 0x31, 0xdc, 0x1d, 0x2f, 0x37, 0xda, 0xdd, 0x21, 0x66, 0x96, - 0xb4, 0xd8, 0x3f, 0xd0, 0xc0, 0xa7, 0xf4, 0x07, 0x18, 0x08, 0xd0, 0x4b, 0x8e, 0x39, 0xf4, 0x07, - 0xf4, 0x98, 0x63, 0x8e, 0x45, 0x81, 0x2e, 0x0a, 0xfa, 0x10, 0x40, 0x47, 0xfd, 0x82, 0x62, 0x3e, - 0xf8, 0x29, 0x85, 0x55, 0x00, 0xc1, 0x9e, 0xe7, 0xfd, 0x78, 0x9e, 0xf9, 0x78, 0x77, 0xe7, 0x5d, - 0x82, 0xaa, 0x47, 0x79, 0x4c, 0xf9, 0x0e, 0xe9, 0xc6, 0x3b, 0xe2, 0x6f, 0x57, 0x8c, 0xb6, 0xdb, - 0x8c, 0xa6, 0x14, 0x5a, 0xca, 0xb7, 0x2d, 0x2c, 0xe2, 0x6f, 0xb7, 0x7a, 0x0b, 0xc7, 0x61, 0x42, - 0x77, 0xe4, 0xbf, 0x2a, 0xa8, 0x5a, 0x0e, 0x68, 0x40, 0xe5, 0x70, 0x47, 0x8c, 0x94, 0xd5, 0xf9, - 0x47, 0x1e, 0x2c, 0x9e, 0x60, 0x86, 0x63, 0x0e, 0x77, 0x41, 0x81, 0x74, 0x63, 0xd7, 0x27, 0x09, - 0x8d, 0x2b, 0xb9, 0xcd, 0xdc, 0x56, 0xa1, 0x56, 0xbe, 0xcc, 0x6c, 0xab, 0x87, 0xe3, 0xe8, 0x89, - 0x33, 0x74, 0x39, 0xc8, 0x24, 0xdd, 0xf8, 0xa9, 0x18, 0xc2, 0x03, 0x00, 0xc8, 0x79, 0xca, 0xb0, - 0x4b, 0xc2, 0x36, 0xaf, 0x18, 0x9b, 0xf9, 0xad, 0x7c, 0xcd, 0xe9, 0x67, 0x76, 0xa1, 0x2e, 0xac, - 0xf5, 0xa3, 0x13, 0x7e, 0x99, 0xd9, 0xb7, 0x34, 0xc1, 0x30, 0xd0, 0x41, 0x05, 0x09, 0xea, 0x61, - 0x9b, 0xc3, 0x3d, 0x50, 0x12, 0xd4, 0x5e, 0x0b, 0x27, 0x09, 0x89, 0x78, 0x65, 0x69, 0x33, 0xbf, - 0x55, 0xa8, 0xad, 0xf6, 0x33, 0xbb, 0x58, 0xff, 0xe4, 0xf9, 0xa1, 0x36, 0xa3, 0x22, 0xe9, 0xc6, - 0x03, 0x00, 0xff, 0x0c, 0x56, 0xb0, 0xe7, 0x11, 0xce, 0x5d, 0x8f, 0x26, 0x29, 0xa3, 0x51, 0xc5, - 0xdc, 0xcc, 0x6d, 0x15, 0xf7, 0xec, 0xed, 0xe9, 0x8d, 0xd8, 0x3e, 0x90, 0x71, 0x87, 0x2a, 0xac, - 0x76, 0xfb, 0x9b, 0xcc, 0x9e, 0xeb, 0x67, 0xf6, 0xf2, 0x84, 0x19, 0x2d, 0xe3, 0x71, 0x08, 0x9f, - 0x80, 0xbb, 0xd8, 0x4b, 0xc3, 0x2e, 0x71, 0x79, 0x8a, 0xd3, 0xd0, 0x73, 0xdb, 0x8c, 0x78, 0x34, - 0x6e, 0x87, 0x11, 0xe1, 0x95, 0x82, 0x98, 0x1f, 0xba, 0xa3, 0x02, 0x1a, 0xd2, 0x7f, 0x32, 0x72, - 0xc3, 0x87, 0xa0, 0xdc, 0x0a, 0x79, 0x4a, 0x59, 0xcf, 0xe5, 0x84, 0x75, 0x89, 0xfb, 0x3a, 0x4c, - 0x7c, 0xfa, 0xba, 0x02, 0x36, 0x73, 0x5b, 0x06, 0x82, 0xda, 0xd7, 0x10, 0xae, 0x97, 0xd2, 0xf3, - 0xe4, 0xde, 0x9b, 0xef, 0xbe, 0x7e, 0xb0, 0x3e, 0x76, 0xba, 0xe7, 0xe2, 0x7c, 0xd5, 0x99, 0x1c, - 0x1b, 0xe6, 0xbc, 0x95, 0x3f, 0x36, 0xcc, 0xbc, 0x65, 0x1c, 0x1b, 0xe6, 0x82, 0xb5, 0x78, 0x6c, - 0x98, 0x8b, 0xd6, 0x92, 0xf3, 0xb7, 0x1c, 0x98, 0x5c, 0x03, 0x3c, 0x00, 0x8b, 0x1e, 0x23, 0x38, - 0x25, 0xf2, 0xe8, 0x8a, 0x7b, 0x3f, 0xfe, 0x3f, 0x7b, 0x71, 0xda, 0x6b, 0x93, 0x9a, 0x21, 0xf6, - 0x03, 0xe9, 0x44, 0xf8, 0x2b, 0x60, 0x78, 0x38, 0x8a, 0x2a, 0xf3, 0x3f, 0x94, 0x40, 0xa6, 0x39, - 0xff, 0xc9, 0x81, 0x5b, 0x57, 0x22, 0xa0, 0x07, 0x8a, 0xfa, 0xac, 0xd2, 0x5e, 0x5b, 0x4d, 0x6e, - 0x65, 0xef, 0xfe, 0xf7, 0x71, 0x4b, 0xd2, 0x9f, 0xf4, 0x33, 0x1b, 0x8c, 0xf0, 0x65, 0x66, 0x43, - 0x55, 0x42, 0x63, 0x44, 0x0e, 0x02, 0x78, 0x18, 0x01, 0x3d, 0xb0, 0x36, 0x59, 0x10, 0x6e, 0x14, - 0xf2, 0xb4, 0x32, 0x2f, 0x6b, 0xe9, 0x51, 0x3f, 0xb3, 0x27, 0x27, 0xf6, 0x2c, 0xe4, 0xe9, 0x65, - 0x66, 0x57, 0x27, 0x58, 0xc7, 0x33, 0x1d, 0x74, 0x0b, 0x4f, 0x27, 0x38, 0x5f, 0x59, 0xa0, 0x78, - 0xd8, 0xc2, 0x61, 0x72, 0x48, 0x93, 0x57, 0x61, 0x00, 0xff, 0x04, 0x56, 0x5b, 0x34, 0x26, 0x3c, - 0x25, 0xd8, 0x77, 0x9b, 0x11, 0xf5, 0xce, 0xf4, 0x53, 0xf3, 0xe8, 0xdf, 0x99, 0x7d, 0x5b, 0x2d, - 0x90, 0xfb, 0x67, 0xdb, 0x21, 0xdd, 0x89, 0x71, 0xda, 0xda, 0x3e, 0x4a, 0x84, 0xe8, 0xba, 0x12, - 0x9d, 0xca, 0x74, 0xd0, 0xca, 0xd0, 0x52, 0x13, 0x06, 0xd8, 0x02, 0x2b, 0x3e, 0xa6, 0xee, 0x2b, - 0xca, 0xce, 0x34, 0xf9, 0xbc, 0x24, 0xaf, 0x7d, 0x2f, 0x79, 0x3f, 0xb3, 0x4b, 0x4f, 0x0f, 0x3e, - 0xfe, 0x88, 0xb2, 0x33, 0x49, 0x71, 0x99, 0xd9, 0xb7, 0x95, 0xd8, 0x24, 0x91, 0x83, 0x4a, 0x3e, - 0xa6, 0xc3, 0x30, 0xf8, 0x12, 0x58, 0xc3, 0x00, 0xde, 0x69, 0xb7, 0x29, 0x4b, 0x2b, 0xf9, 0xcd, - 0xdc, 0x96, 0x59, 0xfb, 0x59, 0x3f, 0xb3, 0x57, 0x34, 0x65, 0x43, 0x79, 0x2e, 0x33, 0xfb, 0xce, - 0x14, 0xa9, 0xce, 0x71, 0xd0, 0x8a, 0xa6, 0xd5, 0xa1, 0xb0, 0x09, 0x4a, 0x24, 0x6c, 0xef, 0xee, - 0x3f, 0xd4, 0x0b, 0x30, 0xe4, 0x02, 0x7e, 0x33, 0x6b, 0x01, 0xc5, 0xfa, 0xd1, 0xc9, 0xee, 0xfe, - 0xc3, 0xc1, 0xfc, 0xd7, 0xf4, 0xab, 0x63, 0x8c, 0xc5, 0x41, 0x45, 0x05, 0xd5, 0xe4, 0x07, 0x1a, - 0xfb, 0x5a, 0x63, 0xf1, 0xa6, 0x1a, 0xfb, 0xd7, 0x69, 0xec, 0x4f, 0x6a, 0xec, 0x4f, 0x6a, 0x3c, - 0xd6, 0x1a, 0x4b, 0x37, 0xd5, 0x78, 0x7c, 0x9d, 0xc6, 0xe3, 0x49, 0x0d, 0x15, 0x23, 0x8a, 0xa9, - 0xd9, 0xfb, 0x0b, 0x4e, 0xd2, 0xb0, 0x13, 0x6b, 0x19, 0xf3, 0xc6, 0xc5, 0x34, 0x95, 0xe9, 0xa0, - 0x95, 0xa1, 0x45, 0xb1, 0x9f, 0x81, 0xb2, 0x47, 0x13, 0x9e, 0x0a, 0x5b, 0x42, 0xdb, 0x11, 0xd1, - 0x12, 0x05, 0x29, 0xf1, 0x78, 0x96, 0xc4, 0x3d, 0x25, 0x71, 0x5d, 0xba, 0x83, 0xd6, 0x26, 0xcd, - 0x4a, 0xcc, 0x05, 0x56, 0x9b, 0xa4, 0x84, 0xf1, 0x66, 0x87, 0x05, 0x5a, 0x08, 0x48, 0xa1, 0x0f, - 0x66, 0x09, 0xe9, 0xb2, 0x9a, 0x4e, 0x75, 0xd0, 0xea, 0xc8, 0xa4, 0x04, 0x3e, 0x05, 0x2b, 0xa1, - 0x50, 0x6d, 0x76, 0x22, 0x4d, 0x5f, 0x94, 0xf4, 0x7b, 0xb3, 0xe8, 0xf5, 0xa3, 0x30, 0x99, 0xe8, - 0xa0, 0xe5, 0x81, 0x41, 0x51, 0xfb, 0x00, 0xc6, 0x9d, 0x90, 0xb9, 0x41, 0x84, 0xbd, 0x90, 0x30, - 0x4d, 0x5f, 0x92, 0xf4, 0x3f, 0x9f, 0x45, 0x7f, 0x57, 0xd1, 0x5f, 0x4d, 0x76, 0x90, 0x25, 0x8c, - 0xbf, 0x55, 0x36, 0xa5, 0xd2, 0x00, 0xa5, 0x26, 0x61, 0x51, 0x98, 0x68, 0xfe, 0x65, 0xc9, 0xff, - 0x70, 0x16, 0xbf, 0xae, 0xa0, 0xf1, 0x34, 0x07, 0x15, 0x15, 0x1c, 0x92, 0x46, 0x34, 0xf1, 0xe9, - 0x80, 0xf4, 0xd6, 0x8d, 0x49, 0xc7, 0xd3, 0x1c, 0x54, 0x54, 0x50, 0x91, 0x06, 0x60, 0x0d, 0x33, - 0x46, 0x5f, 0x4f, 0x6d, 0x08, 0x94, 0xdc, 0xbf, 0x98, 0xc5, 0x3d, 0x78, 0xb9, 0x5e, 0xcd, 0x16, - 0x2f, 0x57, 0x61, 0x9d, 0xd8, 0x12, 0x1f, 0xc0, 0x80, 0xe1, 0xde, 0x94, 0x4e, 0xf9, 0xc6, 0x1b, - 0x7f, 0x35, 0xd9, 0x41, 0x96, 0x30, 0x4e, 0xa8, 0x7c, 0x06, 0xca, 0x31, 0x61, 0x01, 0x71, 0x13, - 0x92, 0xf2, 0x76, 0x14, 0xa6, 0x5a, 0xe7, 0xf6, 0x8d, 0x9f, 0x83, 0xeb, 0xd2, 0x1d, 0x04, 0xa5, - 0xf9, 0x85, 0xb6, 0x2a, 0xad, 0xbb, 0xc0, 0xf4, 0xc4, 0x6d, 0xe1, 0x86, 0x7e, 0xa5, 0x22, 0x6f, - 0xff, 0x25, 0x89, 0x8f, 0x7c, 0x58, 0x06, 0x0b, 0xaa, 0xcb, 0xba, 0x2b, 0x74, 0x91, 0x02, 0xb0, - 0x0a, 0x4c, 0x9f, 0x78, 0x61, 0x8c, 0x23, 0x5e, 0xa9, 0xca, 0x84, 0x21, 0x86, 0x9f, 0x80, 0x65, - 0xde, 0xc2, 0x49, 0xd0, 0xc2, 0xa1, 0x9b, 0x86, 0x31, 0xa9, 0xdc, 0x93, 0x33, 0xde, 0x9d, 0x35, - 0xe3, 0xb2, 0x9a, 0xf1, 0x44, 0x9e, 0x83, 0x4a, 0x03, 0x7c, 0x1a, 0xc6, 0x04, 0x9e, 0x80, 0xa2, - 0x87, 0x13, 0xaf, 0x93, 0x28, 0xd6, 0xfb, 0x92, 0x75, 0x67, 0x16, 0xab, 0xbe, 0x8a, 0xc7, 0xb2, - 0x1c, 0x04, 0x14, 0x1a, 0x30, 0xb6, 0x19, 0x0e, 0x3a, 0x44, 0x31, 0xbe, 0x77, 0x63, 0xc6, 0xb1, - 0x2c, 0x07, 0x01, 0x85, 0x06, 0x8c, 0x5d, 0xc2, 0xce, 0x22, 0xcd, 0xb8, 0x71, 0x63, 0xc6, 0xb1, - 0x2c, 0x07, 0x01, 0x85, 0x24, 0xe3, 0x73, 0x00, 0x28, 0xc7, 0x67, 0x58, 0x11, 0xda, 0x92, 0x70, - 0x7b, 0x16, 0xa1, 0x6e, 0x61, 0x47, 0x49, 0x0e, 0x2a, 0x48, 0x20, 0xe8, 0x86, 0x8d, 0xd9, 0xba, - 0x75, 0xe7, 0xd8, 0x30, 0xef, 0x58, 0x15, 0x67, 0x07, 0x2c, 0x88, 0xd6, 0x90, 0x40, 0x0b, 0xe4, - 0xcf, 0x48, 0x4f, 0xf5, 0x05, 0x48, 0x0c, 0xc5, 0xd9, 0x77, 0x71, 0xd4, 0x21, 0xea, 0x3a, 0x47, - 0x0a, 0x38, 0x27, 0x60, 0xf5, 0x94, 0xe1, 0x84, 0x8b, 0xb6, 0x92, 0x26, 0xcf, 0x68, 0xc0, 0x21, - 0x04, 0x46, 0x0b, 0xf3, 0x96, 0xce, 0x95, 0x63, 0xf8, 0x53, 0x60, 0x44, 0x34, 0xe0, 0xb2, 0xb1, - 0x29, 0xee, 0xdd, 0xbe, 0xda, 0x45, 0x3d, 0xa3, 0x01, 0x92, 0x21, 0xce, 0x5f, 0xf3, 0x20, 0xff, - 0x8c, 0x06, 0xb0, 0x02, 0x96, 0xb0, 0xef, 0x33, 0xc2, 0xb9, 0x66, 0x1a, 0x40, 0xb8, 0x0e, 0x16, - 0x53, 0xda, 0x0e, 0x3d, 0x45, 0x57, 0x40, 0x1a, 0x09, 0x61, 0x1f, 0xa7, 0x58, 0xf6, 0x00, 0x25, - 0x24, 0xc7, 0xa2, 0x4b, 0x97, 0xa5, 0xee, 0x26, 0x9d, 0xb8, 0x49, 0x98, 0xbc, 0xca, 0x8d, 0xda, - 0xea, 0x45, 0x66, 0x17, 0xa5, 0xfd, 0x85, 0x34, 0xa3, 0x71, 0x00, 0xdf, 0x07, 0x4b, 0xe9, 0xb9, - 0x2b, 0xd7, 0xb0, 0x20, 0xb7, 0x78, 0xed, 0x22, 0xb3, 0x57, 0xd3, 0xd1, 0x32, 0x7f, 0x87, 0x79, - 0x0b, 0x2d, 0xa6, 0xe7, 0xe2, 0x7f, 0xb8, 0x03, 0xcc, 0xf4, 0xdc, 0x0d, 0x13, 0x9f, 0x9c, 0xcb, - 0x4b, 0xdc, 0xa8, 0x95, 0x2f, 0x32, 0xdb, 0x1a, 0x0b, 0x3f, 0x12, 0x3e, 0xb4, 0x94, 0x9e, 0xcb, - 0x01, 0x7c, 0x1f, 0x00, 0x35, 0x25, 0xa9, 0xa0, 0xee, 0xe4, 0xe5, 0x8b, 0xcc, 0x2e, 0x48, 0xab, - 0xe4, 0x1e, 0x0d, 0xa1, 0x03, 0x16, 0x14, 0xb7, 0x29, 0xb9, 0x4b, 0x17, 0x99, 0x6d, 0x46, 0x34, - 0x50, 0x9c, 0xca, 0x25, 0xb6, 0x8a, 0x91, 0x98, 0x76, 0x89, 0x2f, 0x2f, 0x46, 0x13, 0x0d, 0x20, - 0xfc, 0x10, 0xac, 0x2a, 0x2d, 0x71, 0xf6, 0x3c, 0xc5, 0x71, 0x5b, 0x35, 0xf4, 0x35, 0x78, 0x91, - 0xd9, 0x2b, 0xd2, 0x75, 0x3a, 0xf0, 0xa0, 0x29, 0xec, 0x7c, 0x31, 0x0f, 0xcc, 0xd3, 0x73, 0x44, - 0x78, 0x27, 0x4a, 0xe1, 0x47, 0xc0, 0x92, 0x8d, 0x26, 0xf6, 0x52, 0x77, 0xe2, 0x5c, 0x6a, 0xf7, - 0x46, 0x77, 0xe0, 0x74, 0x84, 0x83, 0x56, 0x07, 0xa6, 0x03, 0x7d, 0x78, 0x65, 0xb0, 0xd0, 0x8c, - 0x28, 0x8d, 0x65, 0x19, 0x95, 0x90, 0x02, 0xf0, 0xa5, 0xdc, 0x72, 0x59, 0x22, 0x79, 0xd9, 0xc4, - 0xff, 0xe8, 0x6a, 0x89, 0x4c, 0xd5, 0x59, 0xed, 0x9e, 0x68, 0xe1, 0x2f, 0x33, 0x7b, 0x45, 0x69, - 0xeb, 0x7c, 0xe7, 0xab, 0xef, 0xbe, 0x7e, 0x90, 0x13, 0xa7, 0x23, 0x8b, 0xd1, 0x02, 0x79, 0x46, - 0x52, 0x79, 0xec, 0x25, 0x24, 0x86, 0xe2, 0x6d, 0xc5, 0x48, 0x97, 0xb0, 0x94, 0xf8, 0xf2, 0x78, - 0x4d, 0x34, 0xc4, 0xe2, 0xd5, 0x17, 0x60, 0xee, 0x76, 0x38, 0xf1, 0xd5, 0x59, 0xa2, 0xa5, 0x00, - 0xf3, 0x3f, 0x70, 0xe2, 0x3f, 0x31, 0x3e, 0xff, 0xd2, 0x9e, 0x73, 0x30, 0x28, 0xea, 0xfe, 0xbe, - 0xd3, 0x8e, 0xc8, 0x8c, 0x1a, 0xdd, 0x03, 0x25, 0xf1, 0xc1, 0x84, 0x03, 0xe2, 0x9e, 0x91, 0x9e, - 0xae, 0x54, 0x55, 0x77, 0xda, 0xfe, 0x7b, 0xd2, 0xe3, 0x68, 0x1c, 0x68, 0x89, 0x2f, 0x0d, 0x50, - 0x3c, 0x65, 0xd8, 0x23, 0xba, 0x5b, 0x17, 0xd5, 0x2e, 0x20, 0xd3, 0x12, 0x1a, 0x09, 0x6d, 0x71, - 0xa8, 0xb4, 0x93, 0xea, 0x27, 0x72, 0x00, 0x45, 0x06, 0x23, 0xe4, 0x9c, 0x78, 0x72, 0x2f, 0x0d, - 0xa4, 0x11, 0xdc, 0x07, 0xcb, 0x7e, 0xc8, 0x71, 0x33, 0x92, 0xdf, 0x87, 0xde, 0x99, 0x5a, 0x7e, - 0xcd, 0xba, 0xc8, 0xec, 0x92, 0x76, 0x34, 0x84, 0x1d, 0x4d, 0x20, 0x51, 0x43, 0xa3, 0x34, 0x39, - 0x5b, 0xb9, 0x37, 0xa6, 0xaa, 0xa1, 0x61, 0xa8, 0xf4, 0xa0, 0x29, 0xac, 0x6e, 0x8c, 0x66, 0x27, - 0x90, 0xe5, 0x6b, 0x22, 0x05, 0x84, 0x35, 0x0a, 0xe3, 0x30, 0x95, 0xe5, 0xba, 0x80, 0x14, 0x80, - 0x1f, 0x82, 0x02, 0xed, 0x12, 0xc6, 0x42, 0x9f, 0x70, 0x59, 0xa6, 0xc5, 0xbd, 0xf7, 0xae, 0x96, - 0xc1, 0xd8, 0x97, 0x0c, 0x1a, 0xc5, 0x8b, 0xc5, 0x91, 0x44, 0x4e, 0x32, 0x26, 0x31, 0x65, 0x3d, - 0xd9, 0x5a, 0xe9, 0xc5, 0x29, 0xc7, 0x73, 0x69, 0x47, 0x13, 0x08, 0xd6, 0x00, 0xd4, 0x69, 0x8c, - 0xa4, 0x1d, 0x96, 0xb8, 0xf2, 0x0d, 0x52, 0x92, 0xb9, 0xf2, 0x39, 0x56, 0x5e, 0x24, 0x9d, 0x4f, - 0x71, 0x8a, 0xd1, 0x15, 0x0b, 0xfc, 0x35, 0x80, 0xea, 0x4c, 0xdc, 0xcf, 0x38, 0x4d, 0xc4, 0xf7, - 0xd8, 0xab, 0x30, 0xd0, 0xbd, 0x91, 0xd4, 0x57, 0x5e, 0x3d, 0x67, 0x4b, 0xa1, 0x63, 0x4e, 0xf5, - 0x2a, 0x8e, 0x0d, 0xd3, 0xb0, 0x16, 0x8e, 0x0d, 0x73, 0xc9, 0x32, 0x87, 0xfb, 0xa7, 0x57, 0x81, - 0xd6, 0x06, 0x78, 0x6c, 0x7a, 0xce, 0x0b, 0x00, 0x4e, 0x18, 0x09, 0x45, 0x07, 0x1b, 0x45, 0xe2, - 0xb5, 0x97, 0xe0, 0x98, 0x0c, 0xde, 0xb7, 0x62, 0x3c, 0x5e, 0x98, 0xf3, 0x93, 0x85, 0x09, 0x81, - 0xe1, 0x51, 0x9f, 0xc8, 0xd2, 0x28, 0x20, 0x39, 0x7e, 0xf0, 0xcf, 0x1c, 0x18, 0xfb, 0x6c, 0x85, - 0xbf, 0x04, 0xd5, 0x83, 0xc3, 0xc3, 0x7a, 0xa3, 0xe1, 0x9e, 0x7e, 0x7a, 0x52, 0x77, 0x4f, 0xea, - 0xe8, 0xf9, 0x51, 0xa3, 0x71, 0xf4, 0xf1, 0x8b, 0x67, 0xf5, 0x46, 0xc3, 0x9a, 0xab, 0xde, 0x7f, - 0xf3, 0x76, 0xb3, 0x32, 0x8a, 0x3f, 0x21, 0x2c, 0x0e, 0x39, 0x0f, 0x69, 0x12, 0x09, 0x81, 0x0f, - 0xc0, 0xfa, 0x78, 0x36, 0xaa, 0x37, 0x4e, 0xd1, 0xd1, 0xe1, 0x69, 0xfd, 0xa9, 0x95, 0xab, 0x56, - 0xde, 0xbc, 0xdd, 0x2c, 0x8f, 0x32, 0x11, 0xe1, 0x29, 0x0b, 0x3d, 0xf1, 0xe4, 0x3d, 0x06, 0x95, - 0xeb, 0x35, 0xeb, 0x4f, 0xad, 0xf9, 0x6a, 0xf5, 0xcd, 0xdb, 0xcd, 0xf5, 0xeb, 0x14, 0x89, 0x5f, - 0x35, 0x3e, 0xff, 0xfb, 0xc6, 0x5c, 0xed, 0xc9, 0x37, 0xfd, 0x8d, 0xdc, 0xb7, 0xfd, 0x8d, 0xdc, - 0x7f, 0xfb, 0x1b, 0xb9, 0x2f, 0xde, 0x6d, 0xcc, 0x7d, 0xfb, 0x6e, 0x63, 0xee, 0x5f, 0xef, 0x36, - 0xe6, 0xfe, 0xb8, 0x19, 0x84, 0x69, 0xab, 0xd3, 0xdc, 0xf6, 0x68, 0xbc, 0x33, 0xfd, 0x63, 0x85, - 0xf8, 0x20, 0xe7, 0xcd, 0x45, 0xf9, 0x8b, 0xd2, 0xa3, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0xc6, - 0x17, 0xe6, 0x54, 0xaa, 0x12, 0x00, 0x00, + 0x19, 0x16, 0xc5, 0x95, 0xb4, 0x1c, 0x52, 0xd4, 0x7a, 0x44, 0xcb, 0x34, 0xed, 0x68, 0xd5, 0x4d, + 0x5b, 0xa8, 0x46, 0x2a, 0x59, 0x72, 0xd4, 0x1a, 0x4e, 0xd3, 0x42, 0x94, 0x98, 0x56, 0xaa, 0x6c, + 0x0b, 0x43, 0x35, 0x46, 0x8a, 0x14, 0x8b, 0xe1, 0xee, 0x78, 0xb9, 0xd1, 0xee, 0x0e, 0xb1, 0xb3, + 0xa4, 0xc5, 0xfe, 0x81, 0x06, 0xee, 0x25, 0xed, 0xdd, 0x40, 0x80, 0x5e, 0x72, 0xcc, 0x4f, 0xe8, + 0x31, 0xc7, 0x1c, 0x8b, 0x02, 0x5d, 0x14, 0xf4, 0x21, 0x80, 0x8e, 0xfa, 0x05, 0xc5, 0x7c, 0xf0, + 0x5b, 0x61, 0x15, 0x40, 0xb0, 0xe7, 0x79, 0x3f, 0x9e, 0x67, 0x3e, 0xde, 0xdd, 0x79, 0x97, 0xa0, + 0xe2, 0x50, 0x16, 0x52, 0xb6, 0x4d, 0x3a, 0xe1, 0x36, 0xff, 0xdb, 0xe1, 0xa3, 0xad, 0x56, 0x4c, + 0x13, 0x0a, 0x0d, 0xe9, 0xdb, 0xe2, 0x16, 0xfe, 0xb7, 0x53, 0xb9, 0x85, 0x43, 0x3f, 0xa2, 0xdb, + 0xe2, 0x5f, 0x19, 0x54, 0x29, 0x79, 0xd4, 0xa3, 0x62, 0xb8, 0xcd, 0x47, 0xd2, 0x6a, 0xfd, 0x5d, + 0x03, 0x8b, 0xa7, 0x38, 0xc6, 0x21, 0x83, 0x3b, 0x20, 0x47, 0x3a, 0xa1, 0xed, 0x92, 0x88, 0x86, + 0xe5, 0xcc, 0x46, 0x66, 0x33, 0x57, 0x2d, 0x5d, 0xa5, 0xa6, 0xd1, 0xc5, 0x61, 0xf0, 0xc4, 0x1a, + 0xb8, 0x2c, 0xa4, 0x93, 0x4e, 0x78, 0xc8, 0x87, 0x70, 0x1f, 0x00, 0x72, 0x91, 0xc4, 0xd8, 0x26, + 0x7e, 0x8b, 0x95, 0xb5, 0x8d, 0xec, 0x66, 0xb6, 0x6a, 0xf5, 0x52, 0x33, 0x57, 0xe3, 0xd6, 0xda, + 0xd1, 0x29, 0xbb, 0x4a, 0xcd, 0x5b, 0x8a, 0x60, 0x10, 0x68, 0xa1, 0x9c, 0x00, 0x35, 0xbf, 0xc5, + 0xe0, 0x2e, 0x28, 0x70, 0x6a, 0xa7, 0x89, 0xa3, 0x88, 0x04, 0xac, 0xbc, 0xb4, 0x91, 0xdd, 0xcc, + 0x55, 0x57, 0x7a, 0xa9, 0x99, 0xaf, 0x7d, 0xfc, 0xf4, 0x40, 0x99, 0x51, 0x9e, 0x74, 0xc2, 0x3e, + 0x80, 0x7f, 0x02, 0x45, 0xec, 0x38, 0x84, 0x31, 0xdb, 0xa1, 0x51, 0x12, 0xd3, 0xa0, 0xac, 0x6f, + 0x64, 0x36, 0xf3, 0xbb, 0xe6, 0xd6, 0xe4, 0x46, 0x6c, 0xed, 0x8b, 0xb8, 0x03, 0x19, 0x56, 0xbd, + 0xfd, 0x4d, 0x6a, 0xce, 0xf5, 0x52, 0x73, 0x79, 0xcc, 0x8c, 0x96, 0xf1, 0x28, 0x84, 0x4f, 0xc0, + 0x5d, 0xec, 0x24, 0x7e, 0x87, 0xd8, 0x2c, 0xc1, 0x89, 0xef, 0xd8, 0xad, 0x98, 0x38, 0x34, 0x6c, + 0xf9, 0x01, 0x61, 0xe5, 0x1c, 0x9f, 0x1f, 0xba, 0x23, 0x03, 0xea, 0xc2, 0x7f, 0x3a, 0x74, 0xc3, + 0x87, 0xa0, 0xd4, 0xf4, 0x59, 0x42, 0xe3, 0xae, 0xcd, 0x48, 0xdc, 0x21, 0xf6, 0x2b, 0x3f, 0x72, + 0xe9, 0xab, 0x32, 0xd8, 0xc8, 0x6c, 0x6a, 0x08, 0x2a, 0x5f, 0x9d, 0xbb, 0x5e, 0x08, 0x0f, 0xfc, + 0x14, 0xac, 0x91, 0x8b, 0x84, 0x44, 0x2e, 0x71, 0xe5, 0x06, 0xdb, 0xb4, 0x95, 0xf8, 0x34, 0x62, + 0xe5, 0xbc, 0x58, 0xd4, 0x4f, 0xa7, 0x17, 0x55, 0x53, 0xf1, 0xe2, 0x10, 0x9e, 0xcb, 0x68, 0x54, + 0x22, 0xd7, 0x58, 0x9f, 0xdc, 0x7b, 0xfd, 0xdd, 0xd7, 0x0f, 0xd6, 0x46, 0x6a, 0xe7, 0x82, 0x57, + 0x8f, 0x3c, 0xf1, 0x63, 0x4d, 0x9f, 0x37, 0xb2, 0xc7, 0x9a, 0x9e, 0x35, 0xb4, 0x63, 0x4d, 0x5f, + 0x30, 0x16, 0x8f, 0x35, 0x7d, 0xd1, 0x58, 0xb2, 0x3e, 0x04, 0xa5, 0xeb, 0x24, 0xe0, 0x4f, 0x40, + 0x71, 0x7c, 0xaa, 0xb2, 0x4c, 0xd0, 0xf2, 0x98, 0xb4, 0xf5, 0xb7, 0x0c, 0x18, 0xdf, 0x60, 0xb8, + 0x0f, 0x16, 0x9d, 0x98, 0xe0, 0x84, 0x88, 0x84, 0xfc, 0xee, 0xbb, 0xff, 0xe7, 0xa0, 0xce, 0xba, + 0x2d, 0x52, 0xd5, 0xf8, 0x61, 0x21, 0x95, 0x08, 0x3f, 0x04, 0x9a, 0x83, 0x83, 0xa0, 0x3c, 0xff, + 0x43, 0x09, 0x44, 0x9a, 0xf5, 0x9f, 0x0c, 0xb8, 0x35, 0x15, 0x01, 0x1d, 0x90, 0x57, 0x85, 0x94, + 0x74, 0x5b, 0x72, 0x72, 0xc5, 0xdd, 0xfb, 0xdf, 0xc7, 0x2d, 0x48, 0x7f, 0xdc, 0x4b, 0x4d, 0x30, + 0xc4, 0x57, 0xa9, 0x09, 0x65, 0x7d, 0x8f, 0x10, 0x59, 0x08, 0xe0, 0x41, 0x04, 0x74, 0xc0, 0xea, + 0x78, 0xb5, 0xda, 0x81, 0xcf, 0x92, 0xf2, 0xbc, 0x28, 0xf4, 0x47, 0xbd, 0xd4, 0x1c, 0x9f, 0xd8, + 0x89, 0xcf, 0x92, 0xab, 0xd4, 0xac, 0x8c, 0xb1, 0x8e, 0x66, 0x5a, 0xe8, 0x16, 0x9e, 0x4c, 0xb0, + 0xbe, 0x32, 0x40, 0xfe, 0xa0, 0x89, 0xfd, 0xe8, 0x80, 0x46, 0x2f, 0x7d, 0x0f, 0x7e, 0x0a, 0x56, + 0x9a, 0x34, 0x24, 0x2c, 0x21, 0xd8, 0xb5, 0x1b, 0x01, 0x75, 0xce, 0xd5, 0x23, 0xfd, 0xe8, 0xdf, + 0xa9, 0x79, 0x5b, 0x2e, 0x90, 0xb9, 0xe7, 0x5b, 0x3e, 0xdd, 0x0e, 0x71, 0xd2, 0xdc, 0x3a, 0x8a, + 0xb8, 0xe8, 0x9a, 0x14, 0x9d, 0xc8, 0xb4, 0x50, 0x71, 0x60, 0xa9, 0x72, 0x03, 0x6c, 0x82, 0xa2, + 0x8b, 0xa9, 0xfd, 0x92, 0xc6, 0xe7, 0x8a, 0x7c, 0x5e, 0x90, 0x57, 0xbf, 0x97, 0xbc, 0x97, 0x9a, + 0x85, 0xc3, 0xfd, 0xe7, 0x1f, 0xd1, 0xf8, 0x5c, 0x50, 0x5c, 0xa5, 0xe6, 0x6d, 0x29, 0x36, 0x4e, + 0x64, 0xa1, 0x82, 0x8b, 0xe9, 0x20, 0x0c, 0xbe, 0x00, 0xc6, 0x20, 0x80, 0xb5, 0x5b, 0x2d, 0x1a, + 0x27, 0xe5, 0xec, 0x46, 0x66, 0x53, 0xaf, 0xfe, 0xbc, 0x97, 0x9a, 0x45, 0x45, 0x59, 0x97, 0x9e, + 0xab, 0xd4, 0xbc, 0x33, 0x41, 0xaa, 0x72, 0x2c, 0x54, 0x54, 0xb4, 0x2a, 0x14, 0x36, 0x40, 0x81, + 0xf8, 0xad, 0x9d, 0xbd, 0x87, 0x6a, 0x01, 0x9a, 0x58, 0xc0, 0x6f, 0x66, 0x2d, 0x20, 0x5f, 0x3b, + 0x3a, 0xdd, 0xd9, 0x7b, 0xd8, 0x9f, 0xff, 0xaa, 0x7a, 0xaf, 0x8d, 0xb0, 0x58, 0x28, 0x2f, 0xa1, + 0x9c, 0x7c, 0x5f, 0x63, 0x4f, 0x69, 0x2c, 0xde, 0x54, 0x63, 0xef, 0x3a, 0x8d, 0xbd, 0x71, 0x8d, + 0xbd, 0x71, 0x8d, 0xc7, 0x4a, 0x63, 0xe9, 0xa6, 0x1a, 0x8f, 0xaf, 0xd3, 0x78, 0x3c, 0xae, 0x21, + 0x63, 0x78, 0x31, 0x35, 0xba, 0x7f, 0xc6, 0x51, 0xe2, 0xb7, 0x43, 0x25, 0xa3, 0xdf, 0xb8, 0x98, + 0x26, 0x32, 0x2d, 0x54, 0x1c, 0x58, 0x24, 0xfb, 0x39, 0x28, 0x39, 0x34, 0x62, 0x09, 0xb7, 0x45, + 0xb4, 0x15, 0x10, 0x25, 0x91, 0x13, 0x12, 0x8f, 0x67, 0x49, 0xdc, 0x93, 0x12, 0xd7, 0xa5, 0x5b, + 0x68, 0x75, 0xdc, 0x2c, 0xc5, 0x6c, 0x60, 0xb4, 0x48, 0x42, 0x62, 0xd6, 0x68, 0xc7, 0x9e, 0x12, + 0x02, 0x42, 0xe8, 0xfd, 0x59, 0x42, 0xaa, 0xac, 0x26, 0x53, 0x2d, 0xb4, 0x32, 0x34, 0x49, 0x81, + 0x4f, 0x40, 0xd1, 0xe7, 0xaa, 0x8d, 0x76, 0xa0, 0xe8, 0xf3, 0x82, 0x7e, 0x77, 0x16, 0xbd, 0x7a, + 0x14, 0xc6, 0x13, 0x2d, 0xb4, 0xdc, 0x37, 0x48, 0x6a, 0x17, 0xc0, 0xb0, 0xed, 0xc7, 0xb6, 0x17, + 0x60, 0xc7, 0x27, 0xb1, 0xa2, 0x2f, 0x08, 0xfa, 0x5f, 0xcc, 0xa2, 0xbf, 0x2b, 0xe9, 0xa7, 0x93, + 0x2d, 0x64, 0x70, 0xe3, 0x6f, 0xa5, 0x4d, 0xaa, 0xd4, 0x41, 0xa1, 0x41, 0xe2, 0xc0, 0x8f, 0x14, + 0xff, 0xb2, 0xe0, 0x7f, 0x38, 0x8b, 0x5f, 0x55, 0xd0, 0x68, 0x9a, 0x85, 0xf2, 0x12, 0x0e, 0x48, + 0x03, 0x1a, 0xb9, 0xb4, 0x4f, 0x7a, 0xeb, 0xc6, 0xa4, 0xa3, 0x69, 0x16, 0xca, 0x4b, 0x28, 0x49, + 0x3d, 0xb0, 0x8a, 0xe3, 0x98, 0xbe, 0x9a, 0xd8, 0x10, 0x28, 0xb8, 0x7f, 0x39, 0x8b, 0xbb, 0xff, + 0x72, 0x9d, 0xce, 0xe6, 0x2f, 0x57, 0x6e, 0x1d, 0xdb, 0x12, 0x17, 0x40, 0x2f, 0xc6, 0xdd, 0x09, + 0x9d, 0xd2, 0x8d, 0x37, 0x7e, 0x3a, 0xd9, 0x42, 0x06, 0x37, 0x8e, 0xa9, 0x7c, 0x06, 0x4a, 0x21, + 0x89, 0x3d, 0x62, 0x47, 0x24, 0x61, 0xad, 0xc0, 0x4f, 0x94, 0xce, 0xed, 0x1b, 0x3f, 0x07, 0xd7, + 0xa5, 0x5b, 0x08, 0x0a, 0xf3, 0x33, 0x65, 0x95, 0x5a, 0x77, 0x81, 0xee, 0xf0, 0xdb, 0xc2, 0xf6, + 0xdd, 0x72, 0x59, 0xb4, 0x26, 0x4b, 0x02, 0x1f, 0xb9, 0xb0, 0x04, 0x16, 0xe4, 0xdd, 0x7e, 0x57, + 0xdc, 0xed, 0x12, 0xc0, 0x0a, 0xd0, 0x5d, 0xe2, 0xf8, 0x21, 0x0e, 0x58, 0xb9, 0x22, 0x12, 0x06, + 0x18, 0x7e, 0x0c, 0x96, 0x59, 0x13, 0x47, 0x5e, 0x13, 0xfb, 0x76, 0xe2, 0x87, 0xa4, 0x7c, 0x4f, + 0xcc, 0x78, 0x67, 0xd6, 0x8c, 0x4b, 0x72, 0xc6, 0x63, 0x79, 0x16, 0x2a, 0xf4, 0xf1, 0x99, 0x1f, + 0x12, 0x78, 0x0a, 0xf2, 0x0e, 0x8e, 0x9c, 0x76, 0x24, 0x59, 0xef, 0x0b, 0xd6, 0xed, 0x59, 0xac, + 0xea, 0x2a, 0x1e, 0xc9, 0xb2, 0x10, 0x90, 0xa8, 0xcf, 0xd8, 0x8a, 0xb1, 0xd7, 0x26, 0x92, 0xf1, + 0x9d, 0x1b, 0x33, 0x8e, 0x64, 0x59, 0x08, 0x48, 0xd4, 0x67, 0xec, 0x90, 0xf8, 0x3c, 0x50, 0x8c, + 0xeb, 0x37, 0x66, 0x1c, 0xc9, 0xb2, 0x10, 0x90, 0x48, 0x30, 0x3e, 0x05, 0x80, 0x32, 0x7c, 0x8e, + 0x25, 0xa1, 0x29, 0x08, 0xb7, 0x66, 0x11, 0xaa, 0xfe, 0x7a, 0x98, 0x64, 0xa1, 0x9c, 0x00, 0x9c, + 0x6e, 0xd0, 0xd7, 0xad, 0x19, 0x77, 0x8e, 0x35, 0xfd, 0x8e, 0x51, 0xb6, 0xb6, 0xc1, 0x02, 0xef, + 0x5b, 0x09, 0x34, 0x40, 0xf6, 0x9c, 0x74, 0x55, 0x0f, 0xc7, 0x87, 0xfc, 0xec, 0x3b, 0x38, 0x68, + 0x13, 0x79, 0x9d, 0x23, 0x09, 0xac, 0x53, 0xb0, 0x72, 0x16, 0xe3, 0x88, 0xf1, 0x9e, 0x97, 0x46, + 0x27, 0xd4, 0x63, 0x10, 0x02, 0xad, 0x89, 0x59, 0x53, 0xe5, 0x8a, 0x31, 0xfc, 0x19, 0xd0, 0x02, + 0xea, 0x31, 0xd1, 0xd8, 0xe4, 0x77, 0x6f, 0x4f, 0x77, 0x51, 0x27, 0xd4, 0x43, 0x22, 0xc4, 0xfa, + 0x4b, 0x16, 0x64, 0x4f, 0xa8, 0x07, 0xcb, 0x60, 0x09, 0xbb, 0x6e, 0x4c, 0x18, 0x53, 0x4c, 0x7d, + 0x08, 0xd7, 0xc0, 0x62, 0x42, 0x5b, 0xbe, 0x23, 0xe9, 0x72, 0x48, 0x21, 0x2e, 0xec, 0xe2, 0x04, + 0x8b, 0x1e, 0xa0, 0x80, 0xc4, 0x98, 0x7f, 0x42, 0x88, 0x52, 0xb7, 0xa3, 0x76, 0xd8, 0x20, 0xb1, + 0xb8, 0xca, 0xb5, 0xea, 0xca, 0x65, 0x6a, 0xe6, 0x85, 0xfd, 0x99, 0x30, 0xa3, 0x51, 0x00, 0xdf, + 0x03, 0x4b, 0xc9, 0x85, 0x2d, 0xd6, 0xb0, 0x20, 0xb6, 0x78, 0xf5, 0x32, 0x35, 0x57, 0x92, 0xe1, + 0x32, 0x7f, 0x87, 0x59, 0x13, 0x2d, 0x26, 0x17, 0xfc, 0x7f, 0xb8, 0x0d, 0xf4, 0xe4, 0xc2, 0xf6, + 0x23, 0x97, 0x5c, 0x88, 0x4b, 0x5c, 0xab, 0x96, 0x2e, 0x53, 0xd3, 0x18, 0x09, 0x3f, 0xe2, 0x3e, + 0xb4, 0x94, 0x5c, 0x88, 0x01, 0x7c, 0x0f, 0x00, 0x39, 0x25, 0xa1, 0x20, 0xef, 0xe4, 0xe5, 0xcb, + 0xd4, 0xcc, 0x09, 0xab, 0xe0, 0x1e, 0x0e, 0xa1, 0x05, 0x16, 0x24, 0xb7, 0x2e, 0xb8, 0x0b, 0x97, + 0xa9, 0xa9, 0x07, 0xd4, 0x93, 0x9c, 0xd2, 0xc5, 0xb7, 0x2a, 0x26, 0x21, 0xed, 0x10, 0x57, 0x5c, + 0x8c, 0x3a, 0xea, 0x43, 0xf8, 0x01, 0x58, 0x91, 0x5a, 0xfc, 0xec, 0x59, 0x82, 0xc3, 0x96, 0xfc, + 0xda, 0xa8, 0xc2, 0xcb, 0xd4, 0x2c, 0x0a, 0xd7, 0x59, 0xdf, 0x83, 0x26, 0xb0, 0xf5, 0xc5, 0x3c, + 0xd0, 0xcf, 0x2e, 0x10, 0x61, 0xed, 0x20, 0x81, 0x1f, 0x01, 0x43, 0x34, 0x9a, 0xd8, 0x49, 0xec, + 0xb1, 0x73, 0xa9, 0xde, 0x1b, 0xde, 0x81, 0x93, 0x11, 0x16, 0x5a, 0xe9, 0x9b, 0xf6, 0xd5, 0xe1, + 0x95, 0xc0, 0x42, 0x23, 0xa0, 0x34, 0x14, 0x65, 0x54, 0x40, 0x12, 0xc0, 0x17, 0x62, 0xcb, 0x45, + 0x89, 0x64, 0x45, 0x13, 0xff, 0xa3, 0xe9, 0x12, 0x99, 0xa8, 0xb3, 0xea, 0x3d, 0xde, 0xc2, 0x5f, + 0xa5, 0x66, 0x51, 0x6a, 0xab, 0x7c, 0xeb, 0xab, 0xef, 0xbe, 0x7e, 0x90, 0xe1, 0xa7, 0x23, 0x8a, + 0xd1, 0x00, 0xd9, 0x98, 0x24, 0xe2, 0xd8, 0x0b, 0x88, 0x0f, 0xf9, 0xdb, 0x2a, 0x26, 0x1d, 0x12, + 0x27, 0xc4, 0x15, 0xc7, 0xab, 0xa3, 0x01, 0xe6, 0xaf, 0x3e, 0x0f, 0x33, 0xbb, 0xcd, 0x88, 0x2b, + 0xcf, 0x12, 0x2d, 0x79, 0x98, 0xfd, 0x81, 0x11, 0xf7, 0x89, 0xf6, 0xf9, 0x97, 0xe6, 0x9c, 0x85, + 0x41, 0x5e, 0xf5, 0xf7, 0xed, 0x56, 0x40, 0x66, 0xd4, 0xe8, 0x2e, 0x28, 0xf0, 0xaf, 0x39, 0xec, + 0x11, 0xfb, 0x9c, 0x74, 0x55, 0xa5, 0xca, 0xba, 0x53, 0xf6, 0xdf, 0x93, 0x2e, 0x43, 0xa3, 0x40, + 0x49, 0x7c, 0xa9, 0x81, 0xfc, 0x59, 0x8c, 0x1d, 0xa2, 0xba, 0x75, 0x5e, 0xed, 0x1c, 0xc6, 0x4a, + 0x42, 0x21, 0xae, 0xcd, 0x0f, 0x95, 0xb6, 0x13, 0xf5, 0x44, 0xf6, 0x21, 0xcf, 0x88, 0x09, 0xb9, + 0x20, 0x8e, 0xd8, 0x4b, 0x0d, 0x29, 0x04, 0xf7, 0xc0, 0xb2, 0xeb, 0x33, 0xdc, 0x08, 0xc4, 0xc7, + 0xab, 0x73, 0x2e, 0x97, 0x5f, 0x35, 0x2e, 0x53, 0xb3, 0xa0, 0x1c, 0x75, 0x6e, 0x47, 0x63, 0x88, + 0xd7, 0xd0, 0x30, 0x4d, 0xcc, 0x56, 0xec, 0x8d, 0x2e, 0x6b, 0x68, 0x10, 0x2a, 0x3c, 0x68, 0x02, + 0xcb, 0x1b, 0xa3, 0xd1, 0xf6, 0x44, 0xf9, 0xea, 0x48, 0x02, 0x6e, 0x0d, 0xfc, 0xd0, 0x4f, 0x44, + 0xb9, 0x2e, 0x20, 0x09, 0xe0, 0x07, 0x20, 0x47, 0x3b, 0x24, 0x8e, 0x7d, 0x97, 0x30, 0x51, 0xa6, + 0xf9, 0xdd, 0x77, 0xa6, 0xcb, 0x60, 0xe4, 0x4b, 0x06, 0x0d, 0xe3, 0xf9, 0xe2, 0x48, 0x24, 0x26, + 0x19, 0x92, 0x90, 0xc6, 0x5d, 0xd1, 0x5a, 0xa9, 0xc5, 0x49, 0xc7, 0x53, 0x61, 0x47, 0x63, 0x08, + 0x56, 0x01, 0x54, 0x69, 0x31, 0x49, 0xda, 0x71, 0x64, 0x8b, 0x37, 0x48, 0x41, 0xe4, 0x8a, 0xe7, + 0x58, 0x7a, 0x91, 0x70, 0x1e, 0xe2, 0x04, 0xa3, 0x29, 0x0b, 0xfc, 0x35, 0x80, 0xf2, 0x4c, 0xec, + 0xcf, 0x18, 0x8d, 0xf8, 0xf7, 0xd8, 0x4b, 0xdf, 0x53, 0xbd, 0x91, 0xd0, 0x97, 0x5e, 0x35, 0x67, + 0x43, 0xa2, 0x63, 0x46, 0xd5, 0x2a, 0x8e, 0x35, 0x5d, 0x33, 0x16, 0x8e, 0x35, 0x7d, 0xc9, 0xd0, + 0x07, 0xfb, 0xa7, 0x56, 0x81, 0x56, 0xfb, 0x78, 0x64, 0x7a, 0xd6, 0x33, 0x00, 0x4e, 0x63, 0xe2, + 0xf3, 0x0e, 0x36, 0x08, 0xf8, 0x6b, 0x2f, 0xc2, 0x21, 0xe9, 0xbf, 0x6f, 0xf9, 0x78, 0xb4, 0x30, + 0xe7, 0xc7, 0x0b, 0x13, 0x02, 0xcd, 0xa1, 0x2e, 0x11, 0xa5, 0x91, 0x43, 0x62, 0x6c, 0xfd, 0x35, + 0x03, 0xf2, 0xb5, 0x4e, 0x78, 0x40, 0xfd, 0xe8, 0x28, 0x7a, 0x49, 0x87, 0xd7, 0x7c, 0x66, 0xf4, + 0x9a, 0x9f, 0xfe, 0xc2, 0x9f, 0xbf, 0xe6, 0x0b, 0x1f, 0xbe, 0x2b, 0xaa, 0xac, 0x15, 0xe0, 0xae, + 0x8a, 0x92, 0x4a, 0x05, 0x65, 0x3c, 0x9c, 0x6a, 0x19, 0xf8, 0xb3, 0xb9, 0x3c, 0x6c, 0x19, 0x1e, + 0xfc, 0x33, 0x03, 0x46, 0x3e, 0xa2, 0xe1, 0xaf, 0x40, 0x65, 0xff, 0xe0, 0xa0, 0x56, 0xaf, 0xdb, + 0x67, 0x9f, 0x9c, 0xd6, 0xec, 0xd3, 0x1a, 0x7a, 0x7a, 0x54, 0xaf, 0x1f, 0x3d, 0x7f, 0x76, 0x52, + 0xab, 0xd7, 0x8d, 0xb9, 0xca, 0xfd, 0xd7, 0x6f, 0x36, 0xca, 0xc3, 0xf8, 0x53, 0x12, 0x87, 0x3e, + 0x63, 0x3e, 0x8d, 0x02, 0xbe, 0xdc, 0xf7, 0xc1, 0xda, 0x68, 0x36, 0xaa, 0xd5, 0xcf, 0xd0, 0xd1, + 0xc1, 0x59, 0xed, 0xd0, 0xc8, 0x54, 0xca, 0xaf, 0xdf, 0x6c, 0x94, 0x86, 0x99, 0x88, 0xb0, 0x24, + 0xf6, 0x1d, 0xfe, 0x1e, 0x78, 0x0c, 0xca, 0xd7, 0x6b, 0xd6, 0x0e, 0x8d, 0xf9, 0x4a, 0xe5, 0xf5, + 0x9b, 0x8d, 0xb5, 0xeb, 0x14, 0x89, 0x5b, 0xd1, 0x3e, 0xff, 0xc7, 0xfa, 0x5c, 0xf5, 0xc9, 0x37, + 0xbd, 0xf5, 0xcc, 0xb7, 0xbd, 0xf5, 0xcc, 0x7f, 0x7b, 0xeb, 0x99, 0x2f, 0xde, 0xae, 0xcf, 0x7d, + 0xfb, 0x76, 0x7d, 0xee, 0x5f, 0x6f, 0xd7, 0xe7, 0xfe, 0xb8, 0xe1, 0xf9, 0x49, 0xb3, 0xdd, 0xd8, + 0x72, 0x68, 0xb8, 0x3d, 0xf9, 0xcb, 0x4b, 0xd2, 0x6d, 0x11, 0xd6, 0x58, 0x14, 0x3f, 0xbe, 0x3d, + 0xfa, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x48, 0x59, 0x0f, 0x70, 0xd5, 0x13, 0x00, 0x00, } func (m *Params) Marshal() (dAtA []byte, err error) { @@ -1098,6 +1226,18 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.ExtendedDenomOptions != nil { + { + size, err := m.ExtendedDenomOptions.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvm(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5a + } if m.HistoryServeWindow != 0 { i = encodeVarintEvm(dAtA, i, uint64(m.HistoryServeWindow)) i-- @@ -1132,21 +1272,21 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { } } if len(m.ExtraEIPs) > 0 { - dAtA3 := make([]byte, len(m.ExtraEIPs)*10) - var j2 int + dAtA4 := make([]byte, len(m.ExtraEIPs)*10) + var j3 int for _, num1 := range m.ExtraEIPs { num := uint64(num1) for num >= 1<<7 { - dAtA3[j2] = uint8(uint64(num)&0x7f | 0x80) + dAtA4[j3] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j2++ + j3++ } - dAtA3[j2] = uint8(num) - j2++ + dAtA4[j3] = uint8(num) + j3++ } - i -= j2 - copy(dAtA[i:], dAtA3[:j2]) - i = encodeVarintEvm(dAtA, i, uint64(j2)) + i -= j3 + copy(dAtA[i:], dAtA4[:j3]) + i = encodeVarintEvm(dAtA, i, uint64(j3)) i-- dAtA[i] = 0x22 } @@ -1160,6 +1300,36 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ExtendedDenomOptions) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExtendedDenomOptions) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ExtendedDenomOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ExtendedDenom) > 0 { + i -= len(m.ExtendedDenom) + copy(dAtA[i:], m.ExtendedDenom) + i = encodeVarintEvm(dAtA, i, uint64(len(m.ExtendedDenom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *AccessControl) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1993,6 +2163,55 @@ func (m *Preinstall) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *EvmCoinInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EvmCoinInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EvmCoinInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Decimals != 0 { + i = encodeVarintEvm(dAtA, i, uint64(m.Decimals)) + i-- + dAtA[i] = 0x20 + } + if len(m.DisplayDenom) > 0 { + i -= len(m.DisplayDenom) + copy(dAtA[i:], m.DisplayDenom) + i = encodeVarintEvm(dAtA, i, uint64(len(m.DisplayDenom))) + i-- + dAtA[i] = 0x1a + } + if len(m.ExtendedDenom) > 0 { + i -= len(m.ExtendedDenom) + copy(dAtA[i:], m.ExtendedDenom) + i = encodeVarintEvm(dAtA, i, uint64(len(m.ExtendedDenom))) + i-- + dAtA[i] = 0x12 + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintEvm(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintEvm(dAtA []byte, offset int, v uint64) int { offset -= sovEvm(v) base := offset @@ -2038,6 +2257,23 @@ func (m *Params) Size() (n int) { if m.HistoryServeWindow != 0 { n += 1 + sovEvm(uint64(m.HistoryServeWindow)) } + if m.ExtendedDenomOptions != nil { + l = m.ExtendedDenomOptions.Size() + n += 1 + l + sovEvm(uint64(l)) + } + return n +} + +func (m *ExtendedDenomOptions) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ExtendedDenom) + if l > 0 { + n += 1 + l + sovEvm(uint64(l)) + } return n } @@ -2371,6 +2607,30 @@ func (m *Preinstall) Size() (n int) { return n } +func (m *EvmCoinInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovEvm(uint64(l)) + } + l = len(m.ExtendedDenom) + if l > 0 { + n += 1 + l + sovEvm(uint64(l)) + } + l = len(m.DisplayDenom) + if l > 0 { + n += 1 + l + sovEvm(uint64(l)) + } + if m.Decimals != 0 { + n += 1 + sovEvm(uint64(m.Decimals)) + } + return n +} + func sovEvm(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -2630,6 +2890,124 @@ func (m *Params) Unmarshal(dAtA []byte) error { break } } + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExtendedDenomOptions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvm + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvm + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvm + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ExtendedDenomOptions == nil { + m.ExtendedDenomOptions = &ExtendedDenomOptions{} + } + if err := m.ExtendedDenomOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvm(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvm + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExtendedDenomOptions) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvm + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExtendedDenomOptions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExtendedDenomOptions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExtendedDenom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvm + } + 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 ErrInvalidLengthEvm + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvm + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ExtendedDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvm(dAtA[iNdEx:]) @@ -5068,6 +5446,171 @@ func (m *Preinstall) Unmarshal(dAtA []byte) error { } return nil } +func (m *EvmCoinInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvm + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EvmCoinInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EvmCoinInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvm + } + 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 ErrInvalidLengthEvm + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvm + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExtendedDenom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvm + } + 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 ErrInvalidLengthEvm + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvm + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ExtendedDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DisplayDenom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvm + } + 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 ErrInvalidLengthEvm + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvm + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DisplayDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Decimals", wireType) + } + m.Decimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvm + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Decimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipEvm(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvm + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipEvm(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/vm/types/interfaces.go b/x/vm/types/interfaces.go index 3823f9de8..75d358673 100644 --- a/x/vm/types/interfaces.go +++ b/x/vm/types/interfaces.go @@ -58,6 +58,7 @@ type StakingKeeper interface { GetHistoricalInfo(ctx context.Context, height int64) (stakingtypes.HistoricalInfo, error) GetValidatorByConsAddr(ctx context.Context, consAddr sdk.ConsAddress) (stakingtypes.Validator, error) ValidatorAddressCodec() address.Codec + BondDenom(ctx context.Context) (string, error) } // FeeMarketKeeper defines the expected interfaces needed for the feemarket diff --git a/x/vm/types/key.go b/x/vm/types/key.go index 0b7eaa6b5..45226c8d5 100644 --- a/x/vm/types/key.go +++ b/x/vm/types/key.go @@ -27,6 +27,7 @@ const ( prefixStorage prefixParams prefixCodeHash + prefixEvmCoinInfo ) // prefix bytes for the EVM transient store @@ -39,10 +40,11 @@ const ( // KVStore key prefixes var ( - KeyPrefixCode = []byte{prefixCode} - KeyPrefixStorage = []byte{prefixStorage} - KeyPrefixParams = []byte{prefixParams} - KeyPrefixCodeHash = []byte{prefixCodeHash} + KeyPrefixCode = []byte{prefixCode} + KeyPrefixStorage = []byte{prefixStorage} + KeyPrefixParams = []byte{prefixParams} + KeyPrefixCodeHash = []byte{prefixCodeHash} + KeyPrefixEvmCoinInfo = []byte{prefixEvmCoinInfo} ) // Transient Store key prefixes diff --git a/x/vm/types/mocks/StakingKeeper.go b/x/vm/types/mocks/StakingKeeper.go index f78205f7a..9081b7d5d 100644 --- a/x/vm/types/mocks/StakingKeeper.go +++ b/x/vm/types/mocks/StakingKeeper.go @@ -19,6 +19,10 @@ type StakingKeeper struct { mock.Mock } +func (_m *StakingKeeper) BondDenom(ctx context.Context) (string, error) { + return "aatom", nil +} + // GetHistoricalInfo provides a mock function with given fields: ctx, height func (_m *StakingKeeper) GetHistoricalInfo(ctx context.Context, height int64) (types.HistoricalInfo, error) { ret := _m.Called(ctx, height) diff --git a/x/vm/types/msg_test.go b/x/vm/types/msg_test.go index 00c70f3a9..0e2ca6498 100644 --- a/x/vm/types/msg_test.go +++ b/x/vm/types/msg_test.go @@ -13,7 +13,6 @@ import ( "github.com/ethereum/go-ethereum/crypto" "github.com/stretchr/testify/suite" - evmconfig "github.com/cosmos/evm/config" "github.com/cosmos/evm/encoding" testconstants "github.com/cosmos/evm/testutil/constants" utiltx "github.com/cosmos/evm/testutil/tx" @@ -56,8 +55,6 @@ func (suite *MsgsTestSuite) SetupTest() { configurator := types.NewEVMConfigurator() configurator.ResetTestConfig() - err := evmconfig.EvmAppOptions(9001) - suite.Require().NoError(err) } func (suite *MsgsTestSuite) TestMsgEthereumTx_Constructor() { diff --git a/x/vm/types/params.go b/x/vm/types/params.go index 5b3e8d400..d6991ae92 100644 --- a/x/vm/types/params.go +++ b/x/vm/types/params.go @@ -18,9 +18,13 @@ import ( var ( // DefaultEVMDenom is the default value for the evm denom - DefaultEVMDenom = "atest" + DefaultEVMDenom = "uatom" + // DefaultEVMExtendedDenom is the default value for the evm extended denom + DefaultEVMExtendedDenom = "aatom" + // DefaultEVMDisplayDenom is the default value for the display denom in the bank metadata + DefaultEVMDisplayDenom = "atom" // DefaultEVMChainID is the default value for the evm chain ID - DefaultEVMChainID = "cosmos_262144-1" + DefaultEVMChainID uint64 = 262144 // DefaultEVMDecimals is the default value for the evm denom decimal precision DefaultEVMDecimals uint64 = 18 // DefaultStaticPrecompiles defines the default active precompiles. @@ -63,12 +67,13 @@ func NewParams( // DefaultParams returns default evm parameters func DefaultParams() Params { return Params{ - EvmDenom: DefaultEVMDenom, + EvmDenom: DefaultEVMExtendedDenom, ExtraEIPs: DefaultExtraEIPs, ActiveStaticPrecompiles: DefaultStaticPrecompiles, EVMChannels: DefaultEVMChannels, AccessControl: DefaultAccessControl, HistoryServeWindow: DefaultHistoryServeWindow, + ExtendedDenomOptions: &ExtendedDenomOptions{ExtendedDenom: DefaultEVMExtendedDenom}, } } diff --git a/x/vm/types/scaling.go b/x/vm/types/scaling.go index ee7dde6c6..ec59ae288 100644 --- a/x/vm/types/scaling.go +++ b/x/vm/types/scaling.go @@ -11,7 +11,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" ) -// ConvertAmountToLegacy18Decimals convert the given amount into a 18 decimals +// ConvertAmountTo18DecimalsLegacy convert the given amount into a 18 decimals // representation. func ConvertAmountTo18DecimalsLegacy(amt sdkmath.LegacyDec) sdkmath.LegacyDec { evmCoinDecimal := GetEVMCoinDecimals() diff --git a/x/vm/types/scaling_test.go b/x/vm/types/scaling_test.go index 421914fe1..0fcade100 100644 --- a/x/vm/types/scaling_test.go +++ b/x/vm/types/scaling_test.go @@ -193,7 +193,7 @@ func TestConvertAmountTo18DecimalsLegacy(t *testing.T) { require.NoError(t, configurator.WithEVMCoinInfo(coinInfo).Configure()) res := evmtypes.ConvertBigIntFrom18DecimalsToLegacyDec(tc.amt.ToBig()) exp := math.LegacyNewDecFromBigInt(tc.amt.ToBig()) - if coinInfo.Decimals == evmtypes.SixDecimals { + if coinInfo.Decimals == evmtypes.SixDecimals.Uint32() { exp = tc.exp6dec } require.Equal(t, exp, res) @@ -231,7 +231,7 @@ func TestConvertAmountTo18DecimalsBigInt(t *testing.T) { require.NoError(t, configurator.WithEVMCoinInfo(coinInfo).Configure()) res := evmtypes.ConvertAmountTo18DecimalsBigInt(tc.amt) exp := tc.amt - if coinInfo.Decimals == evmtypes.SixDecimals { + if coinInfo.Decimals == evmtypes.SixDecimals.Uint32() { exp = tc.exp6dec } require.Equal(t, exp, res) diff --git a/x/vm/wrappers/feemarket.go b/x/vm/wrappers/feemarket.go index ad0cb2f6c..f864ec3e2 100644 --- a/x/vm/wrappers/feemarket.go +++ b/x/vm/wrappers/feemarket.go @@ -30,12 +30,13 @@ func NewFeeMarketWrapper( } // GetBaseFee returns the base fee converted to 18 decimals. -func (w FeeMarketWrapper) GetBaseFee(ctx sdk.Context) *big.Int { +func (w FeeMarketWrapper) GetBaseFee(ctx sdk.Context, decimals types.Decimals) *big.Int { baseFee := w.FeeMarketKeeper.GetBaseFee(ctx) if baseFee.IsNil() { return nil } - return types.ConvertAmountTo18DecimalsLegacy(baseFee).TruncateInt().BigInt() + + return baseFee.MulInt(decimals.ConversionFactor()).TruncateInt().BigInt() } // CalculateBaseFee returns the calculated base fee converted to 18 decimals. diff --git a/x/vm/wrappers/feemarket_test.go b/x/vm/wrappers/feemarket_test.go index 710f905ff..e23bfb713 100644 --- a/x/vm/wrappers/feemarket_test.go +++ b/x/vm/wrappers/feemarket_test.go @@ -100,7 +100,7 @@ func TestGetBaseFee(t *testing.T) { tc.mockSetup(mockFeeMarketKeeper) feeMarketWrapper := wrappers.NewFeeMarketWrapper(mockFeeMarketKeeper) - result := feeMarketWrapper.GetBaseFee(sdk.Context{}) + result := feeMarketWrapper.GetBaseFee(sdk.Context{}, evmtypes.Decimals(tc.coinInfo.Decimals)) require.Equal(t, tc.expResult, result) })