nibiru_std/proto/buf/
eth.evm.v1.rs

1// @generated
2/// FunToken is a fungible token mapping between a Bank Coin and a corresponding
3/// ERC-20 smart contract. Bank Coins here refer to tokens like NIBI, IBC
4/// coins (ICS-20), and token factory coins, which are each represented by the
5/// "Coin" type in Golang.
6#[allow(clippy::derive_partial_eq_without_eq)]
7#[derive(Clone, PartialEq, ::prost::Message)]
8pub struct FunToken {
9    /// Hexadecimal address of the ERC20 token to which the `FunToken` maps
10    #[prost(string, tag = "1")]
11    pub erc20_addr: ::prost::alloc::string::String,
12    /// bank_denom: Coin denomination in the Bank Module.
13    #[prost(string, tag = "2")]
14    pub bank_denom: ::prost::alloc::string::String,
15    /// True if the `FunToken` mapping was created from an existing Bank Coin and
16    /// the ERC-20 contract gets deployed by the module account. False if the
17    /// mapping was created from an externally owned ERC-20 contract.
18    #[prost(bool, tag = "3")]
19    pub is_made_from_coin: bool,
20}
21/// Params defines the EVM module parameters
22#[allow(clippy::derive_partial_eq_without_eq)]
23#[derive(Clone, PartialEq, ::prost::Message)]
24pub struct Params {
25    /// extra_eips defines the additional EIPs for the vm.Config
26    #[prost(int64, repeated, packed = "false", tag = "4")]
27    pub extra_eips: ::prost::alloc::vec::Vec<i64>,
28    /// evm_channels is the list of channel identifiers from EVM compatible chains
29    #[prost(string, repeated, tag = "8")]
30    pub evm_channels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
31    /// Fee deducted and burned when calling "CreateFunToken" in units of
32    /// "evm_denom".
33    #[prost(string, tag = "9")]
34    pub create_funtoken_fee: ::prost::alloc::string::String,
35}
36/// State represents a single Storage key value pair item.
37#[allow(clippy::derive_partial_eq_without_eq)]
38#[derive(Clone, PartialEq, ::prost::Message)]
39pub struct State {
40    /// key is the stored key
41    #[prost(string, tag = "1")]
42    pub key: ::prost::alloc::string::String,
43    /// value is the stored value for the given key
44    #[prost(string, tag = "2")]
45    pub value: ::prost::alloc::string::String,
46}
47/// Log represents an protobuf compatible Ethereum Log that defines a contract
48/// log event. These events are generated by the LOG opcode and stored/indexed by
49/// the node.
50///
51/// NOTE: address, topics and data are consensus fields. The rest of the fields
52/// are derived, i.e. filled in by the nodes, but not secured by consensus.
53#[allow(clippy::derive_partial_eq_without_eq)]
54#[derive(Clone, PartialEq, ::prost::Message)]
55pub struct Log {
56    /// address of the contract that generated the event
57    #[prost(string, tag = "1")]
58    pub address: ::prost::alloc::string::String,
59    /// topics is a list of topics provided by the contract.
60    #[prost(string, repeated, tag = "2")]
61    pub topics: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
62    /// data which is supplied by the contract, usually ABI-encoded
63    #[prost(bytes = "bytes", tag = "3")]
64    pub data: ::prost::bytes::Bytes,
65    /// block_number of the block in which the transaction was included
66    #[prost(uint64, tag = "4")]
67    pub block_number: u64,
68    /// tx_hash is the transaction hash
69    #[prost(string, tag = "5")]
70    pub tx_hash: ::prost::alloc::string::String,
71    /// tx_index of the transaction in the block
72    #[prost(uint64, tag = "6")]
73    pub tx_index: u64,
74    /// block_hash of the block in which the transaction was included
75    #[prost(string, tag = "7")]
76    pub block_hash: ::prost::alloc::string::String,
77    /// index of the log in the block
78    #[prost(uint64, tag = "8")]
79    pub index: u64,
80    /// removed is true if this log was reverted due to a chain
81    /// reorganisation. You must pay attention to this field if you receive logs
82    /// through a filter query.
83    #[prost(bool, tag = "9")]
84    pub removed: bool,
85}
86/// AccessTuple is the element type of an access list.
87#[allow(clippy::derive_partial_eq_without_eq)]
88#[derive(Clone, PartialEq, ::prost::Message)]
89pub struct AccessTuple {
90    /// address is a hex formatted ethereum address
91    #[prost(string, tag = "1")]
92    pub address: ::prost::alloc::string::String,
93    /// storage_keys are hex formatted hashes of the storage keys
94    #[prost(string, repeated, tag = "2")]
95    pub storage_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
96}
97/// TracerConfig stores additional tracer args. For geth it's only one attr:
98/// onlyTopCall
99#[allow(clippy::derive_partial_eq_without_eq)]
100#[derive(Clone, PartialEq, ::prost::Message)]
101pub struct TracerConfig {
102    #[prost(bool, tag = "1")]
103    pub only_top_call: bool,
104}
105/// TraceConfig holds extra parameters to trace functions.
106#[allow(clippy::derive_partial_eq_without_eq)]
107#[derive(Clone, PartialEq, ::prost::Message)]
108pub struct TraceConfig {
109    /// tracer is a custom javascript tracer
110    #[prost(string, tag = "1")]
111    pub tracer: ::prost::alloc::string::String,
112    /// timeout overrides the default timeout of 5 seconds for JavaScript-based
113    /// tracing calls
114    #[prost(string, tag = "2")]
115    pub timeout: ::prost::alloc::string::String,
116    /// reexec defines the number of blocks the tracer is willing to go back
117    #[prost(uint64, tag = "3")]
118    pub reexec: u64,
119    /// disable_stack switches stack capture
120    #[prost(bool, tag = "5")]
121    pub disable_stack: bool,
122    /// disable_storage switches storage capture
123    #[prost(bool, tag = "6")]
124    pub disable_storage: bool,
125    /// debug can be used to print output during capture end
126    #[prost(bool, tag = "8")]
127    pub debug: bool,
128    /// limit defines the maximum length of output, but zero means unlimited
129    #[prost(int32, tag = "9")]
130    pub limit: i32,
131    /// enable_memory switches memory capture
132    #[prost(bool, tag = "11")]
133    pub enable_memory: bool,
134    /// enable_return_data switches the capture of return data
135    #[prost(bool, tag = "12")]
136    pub enable_return_data: bool,
137    /// tracer_config configures the tracer options
138    #[prost(message, optional, tag = "13")]
139    pub tracer_config: ::core::option::Option<TracerConfig>,
140}
141/// EventEthereumTx defines the event for an Ethereum transaction
142#[allow(clippy::derive_partial_eq_without_eq)]
143#[derive(Clone, PartialEq, ::prost::Message)]
144pub struct EventEthereumTx {
145    /// amount
146    #[prost(string, tag = "1")]
147    pub amount: ::prost::alloc::string::String,
148    /// eth_hash is the Ethereum hash of the transaction
149    #[prost(string, tag = "2")]
150    pub eth_hash: ::prost::alloc::string::String,
151    /// index of the transaction in the block
152    #[prost(string, tag = "3")]
153    pub index: ::prost::alloc::string::String,
154    /// gas_used is the amount of gas used by the transaction
155    #[prost(string, tag = "4")]
156    pub gas_used: ::prost::alloc::string::String,
157    /// hash is the Tendermint hash of the transaction
158    #[prost(string, tag = "5")]
159    pub hash: ::prost::alloc::string::String,
160    /// recipient of the transaction
161    #[prost(string, tag = "6")]
162    pub recipient: ::prost::alloc::string::String,
163    /// vm_error contains a VM error should it occur
164    #[prost(string, tag = "7")]
165    pub vm_error: ::prost::alloc::string::String,
166}
167/// EventTxLog defines the event for an Ethereum transaction log
168#[allow(clippy::derive_partial_eq_without_eq)]
169#[derive(Clone, PartialEq, ::prost::Message)]
170pub struct EventTxLog {
171    /// tx_logs is an array of transaction logs
172    #[prost(message, repeated, tag = "1")]
173    pub logs: ::prost::alloc::vec::Vec<Log>,
174}
175/// EventBlockBloom defines an Ethereum block bloom filter event
176#[allow(clippy::derive_partial_eq_without_eq)]
177#[derive(Clone, PartialEq, ::prost::Message)]
178pub struct EventBlockBloom {
179    /// bloom is the bloom filter of the block
180    #[prost(string, tag = "1")]
181    pub bloom: ::prost::alloc::string::String,
182}
183/// EventFunTokenCreated defines a fun token creation event.
184#[allow(clippy::derive_partial_eq_without_eq)]
185#[derive(Clone, PartialEq, ::prost::Message)]
186pub struct EventFunTokenCreated {
187    #[prost(string, tag = "1")]
188    pub bank_denom: ::prost::alloc::string::String,
189    #[prost(string, tag = "2")]
190    pub erc20_contract_address: ::prost::alloc::string::String,
191    #[prost(string, tag = "3")]
192    pub creator: ::prost::alloc::string::String,
193    #[prost(bool, tag = "4")]
194    pub is_made_from_coin: bool,
195}
196/// ConvertCoinToEvm defines sending fun token to erc20 event.
197#[allow(clippy::derive_partial_eq_without_eq)]
198#[derive(Clone, PartialEq, ::prost::Message)]
199pub struct EventConvertCoinToEvm {
200    #[prost(string, tag = "1")]
201    pub sender: ::prost::alloc::string::String,
202    #[prost(string, tag = "2")]
203    pub erc20_contract_address: ::prost::alloc::string::String,
204    #[prost(string, tag = "3")]
205    pub to_eth_addr: ::prost::alloc::string::String,
206    #[prost(message, optional, tag = "4")]
207    pub bank_coin:
208        ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
209}
210/// EventTransfer defines event for EVM transfer
211#[allow(clippy::derive_partial_eq_without_eq)]
212#[derive(Clone, PartialEq, ::prost::Message)]
213pub struct EventTransfer {
214    #[prost(string, tag = "1")]
215    pub sender: ::prost::alloc::string::String,
216    #[prost(string, tag = "2")]
217    pub recipient: ::prost::alloc::string::String,
218    #[prost(string, tag = "3")]
219    pub amount: ::prost::alloc::string::String,
220}
221/// EventContractDeployed defines event for EVM contract deployment
222#[allow(clippy::derive_partial_eq_without_eq)]
223#[derive(Clone, PartialEq, ::prost::Message)]
224pub struct EventContractDeployed {
225    #[prost(string, tag = "1")]
226    pub sender: ::prost::alloc::string::String,
227    #[prost(string, tag = "2")]
228    pub contract_addr: ::prost::alloc::string::String,
229}
230/// EventContractExecuted defines event for EVM contract execution
231#[allow(clippy::derive_partial_eq_without_eq)]
232#[derive(Clone, PartialEq, ::prost::Message)]
233pub struct EventContractExecuted {
234    #[prost(string, tag = "1")]
235    pub sender: ::prost::alloc::string::String,
236    #[prost(string, tag = "2")]
237    pub contract_addr: ::prost::alloc::string::String,
238}
239/// GenesisState defines the evm module's genesis state.
240#[allow(clippy::derive_partial_eq_without_eq)]
241#[derive(Clone, PartialEq, ::prost::Message)]
242pub struct GenesisState {
243    /// accounts is an array containing the ethereum genesis accounts.
244    #[prost(message, repeated, tag = "1")]
245    pub accounts: ::prost::alloc::vec::Vec<GenesisAccount>,
246    /// params defines all the parameters of the module.
247    #[prost(message, optional, tag = "2")]
248    pub params: ::core::option::Option<Params>,
249    /// Fungible token mappings corresponding to ERC-20 smart contract tokens.
250    #[prost(message, repeated, tag = "3")]
251    pub funtoken_mappings: ::prost::alloc::vec::Vec<FunToken>,
252}
253/// GenesisAccount defines an account to be initialized in the genesis state.
254/// Its main difference between with Geth's GenesisAccount is that it uses a
255/// custom storage type and that it doesn't contain the private key field.
256#[allow(clippy::derive_partial_eq_without_eq)]
257#[derive(Clone, PartialEq, ::prost::Message)]
258pub struct GenesisAccount {
259    /// address defines an ethereum hex formated address of an account
260    #[prost(string, tag = "1")]
261    pub address: ::prost::alloc::string::String,
262    /// code defines the hex bytes of the account code.
263    #[prost(string, tag = "2")]
264    pub code: ::prost::alloc::string::String,
265    /// storage defines the set of state key values for the account.
266    #[prost(message, repeated, tag = "3")]
267    pub storage: ::prost::alloc::vec::Vec<State>,
268}
269/// MsgEthereumTx encapsulates an Ethereum transaction as an SDK message.
270#[allow(clippy::derive_partial_eq_without_eq)]
271#[derive(Clone, PartialEq, ::prost::Message)]
272pub struct MsgEthereumTx {
273    /// data is inner transaction data of the Ethereum transaction
274    #[prost(message, optional, tag = "1")]
275    pub data: ::core::option::Option<::prost_types::Any>,
276    /// size is the encoded storage size of the transaction (DEPRECATED)
277    #[prost(double, tag = "2")]
278    pub size: f64,
279    /// hash of the transaction in hex format
280    #[prost(string, tag = "3")]
281    pub hash: ::prost::alloc::string::String,
282    /// from is the ethereum signer address in hex format. This address value is
283    /// checked against the address derived from the signature (V, R, S) using the
284    /// secp256k1 elliptic curve
285    #[prost(string, tag = "4")]
286    pub from: ::prost::alloc::string::String,
287}
288/// LegacyTx is the transaction data of regular Ethereum transactions.
289///
290/// Note that setting "evm.Params.AllowUnprotectedTxs" to false will cause all
291/// non-EIP155 signed transactions to fail, as they'll lack replay protection.
292///
293/// LegacyTx is a custom implementation of "LegacyTx" from
294/// "github.com/ethereum/go-ethereum/core/types".
295#[allow(clippy::derive_partial_eq_without_eq)]
296#[derive(Clone, PartialEq, ::prost::Message)]
297pub struct LegacyTx {
298    /// nonce corresponds to the account nonce (transaction sequence).
299    #[prost(uint64, tag = "1")]
300    pub nonce: u64,
301    /// gas_price defines the value for each gas unit
302    #[prost(string, tag = "2")]
303    pub gas_price: ::prost::alloc::string::String,
304    /// gas defines the gas limit defined for the transaction.
305    #[prost(uint64, tag = "3")]
306    pub gas: u64,
307    /// to is the hex formatted address of the recipient
308    #[prost(string, tag = "4")]
309    pub to: ::prost::alloc::string::String,
310    /// value defines the unsigned integer value of the transaction amount.
311    #[prost(string, tag = "5")]
312    pub value: ::prost::alloc::string::String,
313    /// data is the data payload bytes of the transaction.
314    #[prost(bytes = "bytes", tag = "6")]
315    pub data: ::prost::bytes::Bytes,
316    /// v defines the recovery id as the "v" signature value from the elliptic
317    /// curve digital signatute algorithm (ECDSA). It indicates which of two
318    /// possible solutions should be used to reconstruct the public key from the
319    /// signature. In Ethereum, "v" takes the value 27 or 28 for transactions that
320    /// are not relay-protected.
321    #[prost(bytes = "bytes", tag = "7")]
322    pub v: ::prost::bytes::Bytes,
323    /// r defines the x-coordinate of a point on the elliptic curve in the elliptic
324    /// curve digital signatute algorithm (ECDSA). It's crucial in ensuring
325    /// uniqueness of the signature.
326    #[prost(bytes = "bytes", tag = "8")]
327    pub r: ::prost::bytes::Bytes,
328    /// s define the signature value derived from the private key, message hash,
329    /// and the value of "r". It ensures that the signature is tied to both the
330    /// message and the private key of the sender.
331    #[prost(bytes = "bytes", tag = "9")]
332    pub s: ::prost::bytes::Bytes,
333}
334/// AccessListTx is the data of EIP-2930 access list transactions.
335/// It is a custom implementation of "AccessListTx" from
336/// "github.com/ethereum/go-ethereum/core/types".
337#[allow(clippy::derive_partial_eq_without_eq)]
338#[derive(Clone, PartialEq, ::prost::Message)]
339pub struct AccessListTx {
340    /// chain_id of the destination EVM chain
341    #[prost(string, tag = "1")]
342    pub chain_id: ::prost::alloc::string::String,
343    /// nonce corresponds to the account nonce (transaction sequence).
344    #[prost(uint64, tag = "2")]
345    pub nonce: u64,
346    /// gas_price defines the value for each gas unit
347    #[prost(string, tag = "3")]
348    pub gas_price: ::prost::alloc::string::String,
349    /// gas defines the gas limit defined for the transaction.
350    #[prost(uint64, tag = "4")]
351    pub gas: u64,
352    /// to is the recipient address in hex format
353    #[prost(string, tag = "5")]
354    pub to: ::prost::alloc::string::String,
355    /// value defines the unsigned integer value of the transaction amount.
356    #[prost(string, tag = "6")]
357    pub value: ::prost::alloc::string::String,
358    /// data is the data payload bytes of the transaction.
359    #[prost(bytes = "bytes", tag = "7")]
360    pub data: ::prost::bytes::Bytes,
361    /// accesses is an array of access tuples
362    #[prost(message, repeated, tag = "8")]
363    pub accesses: ::prost::alloc::vec::Vec<AccessTuple>,
364    /// v defines the recovery id and "v" signature value from the elliptic curve
365    /// digital signatute algorithm (ECDSA). It indicates which of two possible
366    /// solutions should be used to reconstruct the public key from the signature.
367    /// In Ethereum, "v" takes the value 27 or 28 for transactions that are not
368    /// relay-protected.
369    #[prost(bytes = "bytes", tag = "9")]
370    pub v: ::prost::bytes::Bytes,
371    /// r defines the x-coordinate of a point on the elliptic curve in the elliptic
372    /// curve digital signatute algorithm (ECDSA). It's crucial in ensuring
373    /// uniqueness of the signature.
374    #[prost(bytes = "bytes", tag = "10")]
375    pub r: ::prost::bytes::Bytes,
376    /// s define the signature value derived from the private key, message hash,
377    /// and the value of "r". It ensures that the signature is tied to both the
378    /// message and the private key of the sender.
379    #[prost(bytes = "bytes", tag = "11")]
380    pub s: ::prost::bytes::Bytes,
381}
382/// DynamicFeeTx is the data of EIP-1559 dynamic fee transactions. It is a custom
383/// implementation of "DynamicFeeTx" from
384/// "github.com/ethereum/go-ethereum/core/types".
385#[allow(clippy::derive_partial_eq_without_eq)]
386#[derive(Clone, PartialEq, ::prost::Message)]
387pub struct DynamicFeeTx {
388    /// chain_id of the destination EVM chain
389    #[prost(string, tag = "1")]
390    pub chain_id: ::prost::alloc::string::String,
391    /// nonce corresponds to the account nonce (transaction sequence).
392    #[prost(uint64, tag = "2")]
393    pub nonce: u64,
394    /// gas_tip_cap defines the max value for the gas tip
395    #[prost(string, tag = "3")]
396    pub gas_tip_cap: ::prost::alloc::string::String,
397    /// gas_fee_cap defines the max value for the gas fee
398    #[prost(string, tag = "4")]
399    pub gas_fee_cap: ::prost::alloc::string::String,
400    /// gas defines the gas limit defined for the transaction.
401    #[prost(uint64, tag = "5")]
402    pub gas: u64,
403    /// to is the hex formatted address of the recipient
404    #[prost(string, tag = "6")]
405    pub to: ::prost::alloc::string::String,
406    /// value defines the the transaction amount.
407    #[prost(string, tag = "7")]
408    pub value: ::prost::alloc::string::String,
409    /// data is the data payload bytes of the transaction.
410    #[prost(bytes = "bytes", tag = "8")]
411    pub data: ::prost::bytes::Bytes,
412    /// accesses is an array of access tuples
413    #[prost(message, repeated, tag = "9")]
414    pub accesses: ::prost::alloc::vec::Vec<AccessTuple>,
415    /// v defines the recovery id and "v" signature value from the elliptic curve
416    /// digital signatute algorithm (ECDSA). It indicates which of two possible
417    /// solutions should be used to reconstruct the public key from the signature.
418    /// In Ethereum, "v" takes the value 27 or 28 for transactions that are not
419    /// relay-protected.
420    #[prost(bytes = "bytes", tag = "10")]
421    pub v: ::prost::bytes::Bytes,
422    /// r defines the x-coordinate of a point on the elliptic curve in the elliptic
423    /// curve digital signatute algorithm (ECDSA). It's crucial in ensuring
424    /// uniqueness of the signature.
425    #[prost(bytes = "bytes", tag = "11")]
426    pub r: ::prost::bytes::Bytes,
427    /// s define the signature value derived from the private key, message hash,
428    /// and the value of "r". It ensures that the signature is tied to both the
429    /// message and the private key of the sender.
430    #[prost(bytes = "bytes", tag = "12")]
431    pub s: ::prost::bytes::Bytes,
432}
433/// ExtensionOptionsEthereumTx is an extension option for ethereum transactions
434#[allow(clippy::derive_partial_eq_without_eq)]
435#[derive(Clone, PartialEq, ::prost::Message)]
436pub struct ExtensionOptionsEthereumTx {}
437/// MsgEthereumTxResponse defines the Msg/EthereumTx response type.
438#[allow(clippy::derive_partial_eq_without_eq)]
439#[derive(Clone, PartialEq, ::prost::Message)]
440pub struct MsgEthereumTxResponse {
441    /// hash of the ethereum transaction in hex format. This hash differs from the
442    /// Tendermint sha256 hash of the transaction bytes. See
443    /// <https://github.com/tendermint/tendermint/issues/6539> for reference
444    #[prost(string, tag = "1")]
445    pub hash: ::prost::alloc::string::String,
446    /// logs contains the transaction hash and the proto-compatible ethereum
447    /// logs.
448    #[prost(message, repeated, tag = "2")]
449    pub logs: ::prost::alloc::vec::Vec<Log>,
450    /// ret is the returned data from evm function (result or data supplied with
451    /// revert opcode)
452    #[prost(bytes = "bytes", tag = "3")]
453    pub ret: ::prost::bytes::Bytes,
454    /// vm_error is the error returned by vm execution
455    #[prost(string, tag = "4")]
456    pub vm_error: ::prost::alloc::string::String,
457    /// gas_used specifies how much gas was consumed by the transaction
458    #[prost(uint64, tag = "5")]
459    pub gas_used: u64,
460}
461/// MsgUpdateParams defines a Msg for updating the x/evm module parameters.
462#[allow(clippy::derive_partial_eq_without_eq)]
463#[derive(Clone, PartialEq, ::prost::Message)]
464pub struct MsgUpdateParams {
465    /// authority is the address of the governance account.
466    #[prost(string, tag = "1")]
467    pub authority: ::prost::alloc::string::String,
468    /// params defines the x/evm parameters to update.
469    /// NOTE: All parameters must be supplied.
470    #[prost(message, optional, tag = "2")]
471    pub params: ::core::option::Option<Params>,
472}
473/// MsgUpdateParamsResponse defines the response structure for executing a
474/// MsgUpdateParams message.
475#[allow(clippy::derive_partial_eq_without_eq)]
476#[derive(Clone, PartialEq, ::prost::Message)]
477pub struct MsgUpdateParamsResponse {}
478/// MsgCreateFunToken: Arguments to create a "FunToken" mapping. Either the ERC20
479/// contract address can be given to create the mapping to a Bank Coin, or the
480/// denomination for a Bank Coin can be given to create the mapping to an ERC20.
481#[allow(clippy::derive_partial_eq_without_eq)]
482#[derive(Clone, PartialEq, ::prost::Message)]
483pub struct MsgCreateFunToken {
484    /// Hexadecimal address of the ERC20 token to which the `FunToken` maps
485    #[prost(string, tag = "1")]
486    pub from_erc20: ::prost::alloc::string::String,
487    /// Coin denomination in the Bank Module.
488    #[prost(string, tag = "2")]
489    pub from_bank_denom: ::prost::alloc::string::String,
490    /// Sender: Address for the signer of the transaction.
491    #[prost(string, tag = "3")]
492    pub sender: ::prost::alloc::string::String,
493}
494#[allow(clippy::derive_partial_eq_without_eq)]
495#[derive(Clone, PartialEq, ::prost::Message)]
496pub struct MsgCreateFunTokenResponse {
497    /// Fungible token mapping corresponding to ERC20 tokens.
498    #[prost(message, optional, tag = "1")]
499    pub funtoken_mapping: ::core::option::Option<FunToken>,
500}
501/// MsgConvertCoinToEvm: Arguments to send a Bank Coin to ERC-20 representation
502#[allow(clippy::derive_partial_eq_without_eq)]
503#[derive(Clone, PartialEq, ::prost::Message)]
504pub struct MsgConvertCoinToEvm {
505    /// Hexadecimal address of the ERC20 token to which the `FunToken` maps
506    #[prost(string, tag = "1")]
507    pub to_eth_addr: ::prost::alloc::string::String,
508    /// Sender: Address for the signer of the transaction.
509    #[prost(string, tag = "2")]
510    pub sender: ::prost::alloc::string::String,
511    /// Bank Coin to get converted to ERC20
512    #[prost(message, optional, tag = "3")]
513    pub bank_coin:
514        ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
515}
516#[allow(clippy::derive_partial_eq_without_eq)]
517#[derive(Clone, PartialEq, ::prost::Message)]
518pub struct MsgConvertCoinToEvmResponse {}
519/// QueryEthAccountRequest is the request type for the Query/Account RPC method.
520#[allow(clippy::derive_partial_eq_without_eq)]
521#[derive(Clone, PartialEq, ::prost::Message)]
522pub struct QueryEthAccountRequest {
523    /// address is the Ethereum hex address or nibi Bech32 address to query the account for.
524    #[prost(string, tag = "1")]
525    pub address: ::prost::alloc::string::String,
526}
527/// QueryEthAccountResponse is the response type for the Query/EthAccount RPC method.
528#[allow(clippy::derive_partial_eq_without_eq)]
529#[derive(Clone, PartialEq, ::prost::Message)]
530pub struct QueryEthAccountResponse {
531    /// balance is the balance of unibi (micronibi).
532    #[prost(string, tag = "1")]
533    pub balance: ::prost::alloc::string::String,
534    /// balance_wei is the balance of wei (attoether, where NIBI is ether).
535    #[prost(string, tag = "2")]
536    pub balance_wei: ::prost::alloc::string::String,
537    /// code_hash is the hex-formatted code bytes from the EOA.
538    #[prost(string, tag = "3")]
539    pub code_hash: ::prost::alloc::string::String,
540    /// nonce is the account's sequence number.
541    #[prost(uint64, tag = "4")]
542    pub nonce: u64,
543    /// eth_address: The hexadecimal-encoded string representing the 20 byte address
544    /// of a Nibiru EVM account.
545    #[prost(string, tag = "5")]
546    pub eth_address: ::prost::alloc::string::String,
547    /// bech32_address is the nibi-prefixed address of the account that can receive
548    /// bank transfers ("cosmos.bank.v1beta1.MsgSend").
549    #[prost(string, tag = "6")]
550    pub bech32_address: ::prost::alloc::string::String,
551}
552/// QueryValidatorAccountRequest is the request type for the
553/// Query/ValidatorAccount RPC method.
554#[allow(clippy::derive_partial_eq_without_eq)]
555#[derive(Clone, PartialEq, ::prost::Message)]
556pub struct QueryValidatorAccountRequest {
557    /// cons_address is the validator cons address to query the account for.
558    #[prost(string, tag = "1")]
559    pub cons_address: ::prost::alloc::string::String,
560}
561/// QueryValidatorAccountResponse is the response type for the
562/// Query/ValidatorAccount RPC method.
563#[allow(clippy::derive_partial_eq_without_eq)]
564#[derive(Clone, PartialEq, ::prost::Message)]
565pub struct QueryValidatorAccountResponse {
566    /// account_address is the Nibiru address of the account in bech32 format.
567    #[prost(string, tag = "1")]
568    pub account_address: ::prost::alloc::string::String,
569    /// sequence is the account's sequence number.
570    #[prost(uint64, tag = "2")]
571    pub sequence: u64,
572    /// account_number is the account number
573    #[prost(uint64, tag = "3")]
574    pub account_number: u64,
575}
576/// QueryBalanceRequest is the request type for the Query/Balance RPC method.
577#[allow(clippy::derive_partial_eq_without_eq)]
578#[derive(Clone, PartialEq, ::prost::Message)]
579pub struct QueryBalanceRequest {
580    /// address is the ethereum hex address to query the balance for.
581    #[prost(string, tag = "1")]
582    pub address: ::prost::alloc::string::String,
583}
584/// QueryBalanceResponse is the response type for the Query/Balance RPC method.
585#[allow(clippy::derive_partial_eq_without_eq)]
586#[derive(Clone, PartialEq, ::prost::Message)]
587pub struct QueryBalanceResponse {
588    /// balance is the balance of the EVM denomination
589    #[prost(string, tag = "1")]
590    pub balance: ::prost::alloc::string::String,
591    /// balance is the balance of the EVM denomination in units of wei.
592    #[prost(string, tag = "2")]
593    pub balance_wei: ::prost::alloc::string::String,
594}
595/// QueryStorageRequest is the request type for the Query/Storage RPC method.
596#[allow(clippy::derive_partial_eq_without_eq)]
597#[derive(Clone, PartialEq, ::prost::Message)]
598pub struct QueryStorageRequest {
599    /// address is the ethereum hex address to query the storage state for.
600    #[prost(string, tag = "1")]
601    pub address: ::prost::alloc::string::String,
602    /// key defines the key of the storage state
603    #[prost(string, tag = "2")]
604    pub key: ::prost::alloc::string::String,
605}
606/// QueryStorageResponse is the response type for the Query/Storage RPC
607/// method.
608#[allow(clippy::derive_partial_eq_without_eq)]
609#[derive(Clone, PartialEq, ::prost::Message)]
610pub struct QueryStorageResponse {
611    /// value defines the storage state value hash associated with the given key.
612    #[prost(string, tag = "1")]
613    pub value: ::prost::alloc::string::String,
614}
615/// QueryCodeRequest is the request type for the Query/Code RPC method.
616#[allow(clippy::derive_partial_eq_without_eq)]
617#[derive(Clone, PartialEq, ::prost::Message)]
618pub struct QueryCodeRequest {
619    /// address is the ethereum hex address to query the code for.
620    #[prost(string, tag = "1")]
621    pub address: ::prost::alloc::string::String,
622}
623/// QueryCodeResponse is the response type for the Query/Code RPC
624/// method.
625#[allow(clippy::derive_partial_eq_without_eq)]
626#[derive(Clone, PartialEq, ::prost::Message)]
627pub struct QueryCodeResponse {
628    /// code represents the code bytes from an ethereum address.
629    #[prost(bytes = "bytes", tag = "1")]
630    pub code: ::prost::bytes::Bytes,
631}
632/// QueryTxLogsRequest is the request type for the Query/TxLogs RPC method.
633#[allow(clippy::derive_partial_eq_without_eq)]
634#[derive(Clone, PartialEq, ::prost::Message)]
635pub struct QueryTxLogsRequest {
636    /// hash is the ethereum transaction hex hash to query the logs for.
637    #[prost(string, tag = "1")]
638    pub hash: ::prost::alloc::string::String,
639    /// pagination defines an optional pagination for the request.
640    #[prost(message, optional, tag = "2")]
641    pub pagination: ::core::option::Option<
642        crate::proto::cosmos::base::query::v1beta1::PageRequest,
643    >,
644}
645/// QueryTxLogsResponse is the response type for the Query/TxLogs RPC method.
646#[allow(clippy::derive_partial_eq_without_eq)]
647#[derive(Clone, PartialEq, ::prost::Message)]
648pub struct QueryTxLogsResponse {
649    /// logs represents the ethereum logs generated from the given transaction.
650    #[prost(message, repeated, tag = "1")]
651    pub logs: ::prost::alloc::vec::Vec<Log>,
652    /// pagination defines the pagination in the response.
653    #[prost(message, optional, tag = "2")]
654    pub pagination: ::core::option::Option<
655        crate::proto::cosmos::base::query::v1beta1::PageResponse,
656    >,
657}
658/// QueryParamsRequest defines the request type for querying x/evm parameters.
659#[allow(clippy::derive_partial_eq_without_eq)]
660#[derive(Clone, PartialEq, ::prost::Message)]
661pub struct QueryParamsRequest {}
662/// QueryParamsResponse defines the response type for querying x/evm parameters.
663#[allow(clippy::derive_partial_eq_without_eq)]
664#[derive(Clone, PartialEq, ::prost::Message)]
665pub struct QueryParamsResponse {
666    /// params define the evm module parameters.
667    #[prost(message, optional, tag = "1")]
668    pub params: ::core::option::Option<Params>,
669}
670/// EthCallRequest defines EthCall request
671#[allow(clippy::derive_partial_eq_without_eq)]
672#[derive(Clone, PartialEq, ::prost::Message)]
673pub struct EthCallRequest {
674    /// args uses the same json format as the json rpc api.
675    #[prost(bytes = "bytes", tag = "1")]
676    pub args: ::prost::bytes::Bytes,
677    /// gas_cap defines the default gas cap to be used
678    #[prost(uint64, tag = "2")]
679    pub gas_cap: u64,
680    /// proposer_address of the requested block in hex format
681    #[prost(bytes = "bytes", tag = "3")]
682    pub proposer_address: ::prost::bytes::Bytes,
683    /// chain_id is the eip155 chain id parsed from the requested block header
684    #[prost(int64, tag = "4")]
685    pub chain_id: i64,
686}
687/// EstimateGasResponse defines EstimateGas response
688#[allow(clippy::derive_partial_eq_without_eq)]
689#[derive(Clone, PartialEq, ::prost::Message)]
690pub struct EstimateGasResponse {
691    /// gas returns the estimated gas
692    #[prost(uint64, tag = "1")]
693    pub gas: u64,
694}
695/// QueryTraceTxRequest defines TraceTx request
696#[allow(clippy::derive_partial_eq_without_eq)]
697#[derive(Clone, PartialEq, ::prost::Message)]
698pub struct QueryTraceTxRequest {
699    /// msg is the MsgEthereumTx for the requested transaction
700    #[prost(message, optional, tag = "1")]
701    pub msg: ::core::option::Option<MsgEthereumTx>,
702    /// trace_config holds extra parameters to trace functions.
703    #[prost(message, optional, tag = "3")]
704    pub trace_config: ::core::option::Option<TraceConfig>,
705    /// predecessors is an array of transactions included in the same block
706    /// need to be replayed first to get correct context for tracing.
707    #[prost(message, repeated, tag = "4")]
708    pub predecessors: ::prost::alloc::vec::Vec<MsgEthereumTx>,
709    /// block_number of requested transaction
710    #[prost(int64, tag = "5")]
711    pub block_number: i64,
712    /// block_hash of requested transaction
713    #[prost(string, tag = "6")]
714    pub block_hash: ::prost::alloc::string::String,
715    /// block_time of requested transaction
716    #[prost(message, optional, tag = "7")]
717    pub block_time: ::core::option::Option<::prost_types::Timestamp>,
718    /// proposer_address is the proposer of the requested block
719    #[prost(bytes = "bytes", tag = "8")]
720    pub proposer_address: ::prost::bytes::Bytes,
721    /// chain_id is the the eip155 chain id parsed from the requested block header
722    #[prost(int64, tag = "9")]
723    pub chain_id: i64,
724    /// block_max_gas of the block of the requested transaction
725    #[prost(int64, tag = "10")]
726    pub block_max_gas: i64,
727}
728/// QueryTraceTxResponse defines TraceTx response
729#[allow(clippy::derive_partial_eq_without_eq)]
730#[derive(Clone, PartialEq, ::prost::Message)]
731pub struct QueryTraceTxResponse {
732    /// data is the response serialized in bytes
733    #[prost(bytes = "bytes", tag = "1")]
734    pub data: ::prost::bytes::Bytes,
735}
736/// QueryTraceBlockRequest defines TraceTx request
737#[allow(clippy::derive_partial_eq_without_eq)]
738#[derive(Clone, PartialEq, ::prost::Message)]
739pub struct QueryTraceBlockRequest {
740    /// txs is an array of messages in the block
741    #[prost(message, repeated, tag = "1")]
742    pub txs: ::prost::alloc::vec::Vec<MsgEthereumTx>,
743    /// trace_config holds extra parameters to trace functions.
744    #[prost(message, optional, tag = "3")]
745    pub trace_config: ::core::option::Option<TraceConfig>,
746    /// block_number of the traced block
747    #[prost(int64, tag = "5")]
748    pub block_number: i64,
749    /// block_hash (hex) of the traced block
750    #[prost(string, tag = "6")]
751    pub block_hash: ::prost::alloc::string::String,
752    /// block_time of the traced block
753    #[prost(message, optional, tag = "7")]
754    pub block_time: ::core::option::Option<::prost_types::Timestamp>,
755    /// proposer_address is the address of the requested block
756    #[prost(bytes = "bytes", tag = "8")]
757    pub proposer_address: ::prost::bytes::Bytes,
758    /// chain_id is the eip155 chain id parsed from the requested block header
759    #[prost(int64, tag = "9")]
760    pub chain_id: i64,
761    /// block_max_gas of the traced block
762    #[prost(int64, tag = "10")]
763    pub block_max_gas: i64,
764}
765/// QueryTraceBlockResponse defines TraceBlock response
766#[allow(clippy::derive_partial_eq_without_eq)]
767#[derive(Clone, PartialEq, ::prost::Message)]
768pub struct QueryTraceBlockResponse {
769    /// data is the response serialized in bytes
770    #[prost(bytes = "bytes", tag = "1")]
771    pub data: ::prost::bytes::Bytes,
772}
773/// QueryBaseFeeRequest defines the request type for querying the EIP1559 base
774/// fee.
775#[allow(clippy::derive_partial_eq_without_eq)]
776#[derive(Clone, PartialEq, ::prost::Message)]
777pub struct QueryBaseFeeRequest {}
778/// QueryBaseFeeResponse returns the EIP1559 base fee.
779/// See <https://github.com/ethereum/EIPs/blob/ba6c342c23164072adb500c3136e3ae6eabff306/EIPS/eip-1559.md.>
780#[allow(clippy::derive_partial_eq_without_eq)]
781#[derive(Clone, PartialEq, ::prost::Message)]
782pub struct QueryBaseFeeResponse {
783    /// base_fee is the EIP1559 base fee in units of wei.
784    #[prost(string, tag = "1")]
785    pub base_fee: ::prost::alloc::string::String,
786    /// base_fee is the EIP1559 base fee in units of micronibi ("unibi").
787    #[prost(string, tag = "2")]
788    pub base_fee_unibi: ::prost::alloc::string::String,
789}
790#[allow(clippy::derive_partial_eq_without_eq)]
791#[derive(Clone, PartialEq, ::prost::Message)]
792pub struct QueryFunTokenMappingRequest {
793    /// Either the hexadecimal-encoded ERC20 contract address or denomination of the
794    /// Bank Coin.
795    #[prost(string, tag = "1")]
796    pub token: ::prost::alloc::string::String,
797}
798#[allow(clippy::derive_partial_eq_without_eq)]
799#[derive(Clone, PartialEq, ::prost::Message)]
800pub struct QueryFunTokenMappingResponse {
801    /// fun_token is a mapping between the Bank Coin and the ERC20 contract address
802    #[prost(message, optional, tag = "1")]
803    pub fun_token: ::core::option::Option<FunToken>,
804}
805// @@protoc_insertion_point(module)