mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-10-31 14:47:29 +00:00 
			
		
		
		
	 58d7c89f8e
			
		
	
	
		58d7c89f8e
		
			
		
	
	
	
	
		
			
			* Upgrade ethermint * Remove opendb package from kava and add custom dbOpener function * Open metadata.db with custom opendb function
		
			
				
	
	
		
			283 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
			
		
		
	
	
			283 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
| syntax = "proto3";
 | |
| package ethermint.evm.v1;
 | |
| 
 | |
| import "gogoproto/gogo.proto";
 | |
| 
 | |
| option go_package = "github.com/evmos/ethermint/x/evm/types";
 | |
| 
 | |
| // Params defines the EVM module parameters
 | |
| message Params {
 | |
|   // evm_denom represents the token denomination used to run the EVM state
 | |
|   // transitions.
 | |
|   string evm_denom = 1 [(gogoproto.moretags) = "yaml:\"evm_denom\""];
 | |
|   // enable_create toggles state transitions that use the vm.Create function
 | |
|   bool enable_create = 2 [(gogoproto.moretags) = "yaml:\"enable_create\""];
 | |
|   // enable_call toggles state transitions that use the vm.Call function
 | |
|   bool enable_call = 3 [(gogoproto.moretags) = "yaml:\"enable_call\""];
 | |
|   // extra_eips defines the additional EIPs for the vm.Config
 | |
|   repeated int64 extra_eips = 4 [(gogoproto.customname) = "ExtraEIPs", (gogoproto.moretags) = "yaml:\"extra_eips\""];
 | |
|   // chain_config defines the EVM chain configuration parameters
 | |
|   ChainConfig chain_config = 5 [(gogoproto.moretags) = "yaml:\"chain_config\"", (gogoproto.nullable) = false];
 | |
|   // eip712_allowed_msgs contains list of allowed eip712 msgs and their types
 | |
|   repeated EIP712AllowedMsg eip712_allowed_msgs = 6
 | |
|       [(gogoproto.customname) = "EIP712AllowedMsgs", (gogoproto.nullable) = false];
 | |
|   // allow_unprotected_txs defines if replay-protected (i.e non EIP155
 | |
|   // signed) transactions can be executed on the state machine.
 | |
|   bool allow_unprotected_txs = 7;
 | |
|   // enabled_precompiles contains list of hex-encoded evm addresses of enabled precompiled contracts.
 | |
|   // Precompile must be registered before it can be enabled.
 | |
|   // enabled_precompiles should be sorted in ascending order and unique.
 | |
|   // sorting and uniqueness are checked against bytes representation of addresses
 | |
|   repeated string enabled_precompiles = 8;
 | |
| }
 | |
| 
 | |
| // ChainConfig defines the Ethereum ChainConfig parameters using *sdk.Int values
 | |
| // instead of *big.Int.
 | |
| message ChainConfig {
 | |
|   // homestead_block switch (nil no fork, 0 = already homestead)
 | |
|   string homestead_block = 1 [
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"homestead_block\""
 | |
|   ];
 | |
|   // dao_fork_block corresponds to TheDAO hard-fork switch block (nil no fork)
 | |
|   string dao_fork_block = 2 [
 | |
|     (gogoproto.customname) = "DAOForkBlock",
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"dao_fork_block\""
 | |
|   ];
 | |
|   // dao_fork_support defines whether the nodes supports or opposes the DAO hard-fork
 | |
|   bool dao_fork_support = 3
 | |
|       [(gogoproto.customname) = "DAOForkSupport", (gogoproto.moretags) = "yaml:\"dao_fork_support\""];
 | |
|   // eip150_block: EIP150 implements the Gas price changes
 | |
|   // (https://github.com/ethereum/EIPs/issues/150) EIP150 HF block (nil no fork)
 | |
|   string eip150_block = 4 [
 | |
|     (gogoproto.customname) = "EIP150Block",
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"eip150_block\""
 | |
|   ];
 | |
|   // eip150_hash: EIP150 HF hash (needed for header only clients as only gas pricing changed)
 | |
|   string eip150_hash = 5 [(gogoproto.customname) = "EIP150Hash", (gogoproto.moretags) = "yaml:\"byzantium_block\""];
 | |
|   // eip155_block: EIP155Block HF block
 | |
|   string eip155_block = 6 [
 | |
|     (gogoproto.customname) = "EIP155Block",
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"eip155_block\""
 | |
|   ];
 | |
|   // eip158_block: EIP158 HF block
 | |
|   string eip158_block = 7 [
 | |
|     (gogoproto.customname) = "EIP158Block",
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"eip158_block\""
 | |
|   ];
 | |
|   // byzantium_block: Byzantium switch block (nil no fork, 0 = already on byzantium)
 | |
|   string byzantium_block = 8 [
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"byzantium_block\""
 | |
|   ];
 | |
|   // constantinople_block: Constantinople switch block (nil no fork, 0 = already activated)
 | |
|   string constantinople_block = 9 [
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"constantinople_block\""
 | |
|   ];
 | |
|   // petersburg_block: Petersburg switch block (nil same as Constantinople)
 | |
|   string petersburg_block = 10 [
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"petersburg_block\""
 | |
|   ];
 | |
|   // istanbul_block: Istanbul switch block (nil no fork, 0 = already on istanbul)
 | |
|   string istanbul_block = 11 [
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"istanbul_block\""
 | |
|   ];
 | |
|   // muir_glacier_block: Eip-2384 (bomb delay) switch block (nil no fork, 0 = already activated)
 | |
|   string muir_glacier_block = 12 [
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"muir_glacier_block\""
 | |
|   ];
 | |
|   // berlin_block: Berlin switch block (nil = no fork, 0 = already on berlin)
 | |
|   string berlin_block = 13 [
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"berlin_block\""
 | |
|   ];
 | |
|   // DEPRECATED: EWASM, YOLOV3 and Catalyst block have been deprecated
 | |
|   reserved 14, 15, 16;
 | |
|   reserved "yolo_v3_block", "ewasm_block", "catalyst_block";
 | |
|   // london_block: London switch block (nil = no fork, 0 = already on london)
 | |
|   string london_block = 17 [
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"london_block\""
 | |
|   ];
 | |
|   // arrow_glacier_block: Eip-4345 (bomb delay) switch block (nil = no fork, 0 = already activated)
 | |
|   string arrow_glacier_block = 18 [
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"arrow_glacier_block\""
 | |
|   ];
 | |
|   // DEPRECATED: merge fork block was deprecated: https://github.com/ethereum/go-ethereum/pull/24904
 | |
|   reserved 19;
 | |
|   reserved "merge_fork_block";
 | |
|   // gray_glacier_block: EIP-5133 (bomb delay) switch block (nil = no fork, 0 = already activated)
 | |
|   string gray_glacier_block = 20 [
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"gray_glacier_block\""
 | |
|   ];
 | |
|   // merge_netsplit_block: Virtual fork after The Merge to use as a network splitter
 | |
|   string merge_netsplit_block = 21 [
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"merge_netsplit_block\""
 | |
|   ];
 | |
|   // shanghai_block switch block (nil = no fork, 0 = already on shanghai)
 | |
|   string shanghai_block = 22 [
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"shanghai_block\""
 | |
|   ];
 | |
|   // cancun_block switch block (nil = no fork, 0 = already on cancun)
 | |
|   string cancun_block = 23 [
 | |
|     (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | |
|     (gogoproto.moretags) = "yaml:\"cancun_block\""
 | |
|   ];
 | |
| }
 | |
| 
 | |
| // State represents a single Storage key value pair item.
 | |
| message State {
 | |
|   // key is the stored key
 | |
|   string key = 1;
 | |
|   // value is the stored value for the given key
 | |
|   string value = 2;
 | |
| }
 | |
| 
 | |
| // TransactionLogs define the logs generated from a transaction execution
 | |
| // with a given hash. It it used for import/export data as transactions are not
 | |
| // persisted on blockchain state after an upgrade.
 | |
| message TransactionLogs {
 | |
|   // hash of the transaction
 | |
|   string hash = 1;
 | |
|   // logs is an array of Logs for the given transaction hash
 | |
|   repeated Log logs = 2;
 | |
| }
 | |
| 
 | |
| // Log represents an protobuf compatible Ethereum Log that defines a contract
 | |
| // log event. These events are generated by the LOG opcode and stored/indexed by
 | |
| // the node.
 | |
| //
 | |
| // NOTE: address, topics and data are consensus fields. The rest of the fields
 | |
| // are derived, i.e. filled in by the nodes, but not secured by consensus.
 | |
| message Log {
 | |
|   // address of the contract that generated the event
 | |
|   string address = 1;
 | |
|   // topics is a list of topics provided by the contract.
 | |
|   repeated string topics = 2;
 | |
|   // data which is supplied by the contract, usually ABI-encoded
 | |
|   bytes data = 3;
 | |
| 
 | |
|   // block_number of the block in which the transaction was included
 | |
|   uint64 block_number = 4 [(gogoproto.jsontag) = "blockNumber"];
 | |
|   // tx_hash is the transaction hash
 | |
|   string tx_hash = 5 [(gogoproto.jsontag) = "transactionHash"];
 | |
|   // tx_index of the transaction in the block
 | |
|   uint64 tx_index = 6 [(gogoproto.jsontag) = "transactionIndex"];
 | |
|   // block_hash of the block in which the transaction was included
 | |
|   string block_hash = 7 [(gogoproto.jsontag) = "blockHash"];
 | |
|   // index of the log in the block
 | |
|   uint64 index = 8 [(gogoproto.jsontag) = "logIndex"];
 | |
| 
 | |
|   // removed is true if this log was reverted due to a chain
 | |
|   // reorganisation. You must pay attention to this field if you receive logs
 | |
|   // through a filter query.
 | |
|   bool removed = 9;
 | |
| }
 | |
| 
 | |
| // TxResult stores results of Tx execution.
 | |
| message TxResult {
 | |
|   option (gogoproto.goproto_getters) = false;
 | |
| 
 | |
|   // contract_address contains the ethereum address of the created contract (if
 | |
|   // any). If the state transition is an evm.Call, the contract address will be
 | |
|   // empty.
 | |
|   string contract_address = 1 [(gogoproto.moretags) = "yaml:\"contract_address\""];
 | |
|   // bloom represents the bloom filter bytes
 | |
|   bytes bloom = 2;
 | |
|   // tx_logs contains the transaction hash and the proto-compatible ethereum
 | |
|   // logs.
 | |
|   TransactionLogs tx_logs = 3 [(gogoproto.moretags) = "yaml:\"tx_logs\"", (gogoproto.nullable) = false];
 | |
|   // ret defines the bytes from the execution.
 | |
|   bytes ret = 4;
 | |
|   // reverted flag is set to true when the call has been reverted
 | |
|   bool reverted = 5;
 | |
|   // gas_used notes the amount of gas consumed while execution
 | |
|   uint64 gas_used = 6;
 | |
| }
 | |
| 
 | |
| // AccessTuple is the element type of an access list.
 | |
| message AccessTuple {
 | |
|   option (gogoproto.goproto_getters) = false;
 | |
| 
 | |
|   // address is a hex formatted ethereum address
 | |
|   string address = 1;
 | |
|   // storage_keys are hex formatted hashes of the storage keys
 | |
|   repeated string storage_keys = 2 [(gogoproto.jsontag) = "storageKeys"];
 | |
| }
 | |
| 
 | |
| // TraceConfig holds extra parameters to trace functions.
 | |
| message TraceConfig {
 | |
|   // DEPRECATED: DisableMemory and DisableReturnData have been renamed to
 | |
|   // Enable*.
 | |
|   reserved 4, 7;
 | |
|   reserved "disable_memory", "disable_return_data";
 | |
| 
 | |
|   // tracer is a custom javascript tracer
 | |
|   string tracer = 1;
 | |
|   // timeout overrides the default timeout of 5 seconds for JavaScript-based tracing
 | |
|   // calls
 | |
|   string timeout = 2;
 | |
|   // reexec defines the number of blocks the tracer is willing to go back
 | |
|   uint64 reexec = 3;
 | |
|   // disable_stack switches stack capture
 | |
|   bool disable_stack = 5 [(gogoproto.jsontag) = "disableStack"];
 | |
|   // disable_storage switches storage capture
 | |
|   bool disable_storage = 6 [(gogoproto.jsontag) = "disableStorage"];
 | |
|   // debug can be used to print output during capture end
 | |
|   bool debug = 8;
 | |
|   // limit defines the maximum length of output, but zero means unlimited
 | |
|   int32 limit = 9;
 | |
|   // overrides can be used to execute a trace using future fork rules
 | |
|   ChainConfig overrides = 10;
 | |
|   // enable_memory switches memory capture
 | |
|   bool enable_memory = 11 [(gogoproto.jsontag) = "enableMemory"];
 | |
|   // enable_return_data switches the capture of return data
 | |
|   bool enable_return_data = 12 [(gogoproto.jsontag) = "enableReturnData"];
 | |
|   // tracer_json_config configures the tracer using a JSON string
 | |
|   string tracer_json_config = 13 [(gogoproto.jsontag) = "tracerConfig"];
 | |
| }
 | |
| 
 | |
| // EIP712AllowedMsg stores an allowed legacy msg and its eip712 type.
 | |
| message EIP712AllowedMsg {
 | |
|   // msg_type_url is a msg's proto type name. ie "/cosmos.bank.v1beta1.MsgSend"
 | |
|   string msg_type_url = 1;
 | |
| 
 | |
|   // msg_value_type_name is a name of the eip712 value type. ie "MsgValueSend"
 | |
|   string msg_value_type_name = 2;
 | |
| 
 | |
|   // value_types is a list of msg value types
 | |
|   repeated EIP712MsgAttrType value_types = 3 [(gogoproto.nullable) = false];
 | |
| 
 | |
|   // nested_types is a list of msg value nested types
 | |
|   repeated EIP712NestedMsgType nested_types = 4 [(gogoproto.nullable) = false];
 | |
| }
 | |
| 
 | |
| // EIP712NestedMsgType is the eip712 type of a single message.
 | |
| message EIP712NestedMsgType {
 | |
|   // name of the nested type. ie "Fee", "Coin"
 | |
|   string name = 1;
 | |
| 
 | |
|   // attrs of the nested type
 | |
|   repeated EIP712MsgAttrType attrs = 2 [(gogoproto.nullable) = false];
 | |
| }
 | |
| 
 | |
| // EIP712MsgAttrType is the eip712 type of a single message attribute.
 | |
| message EIP712MsgAttrType {
 | |
|   // name
 | |
|   string name = 1;
 | |
|   // type
 | |
|   string type = 2;
 | |
| }
 |