prysm-pulse/proto/prysm/v1alpha1/powchain.proto
terence 5a66807989
Update to V5 (#13622)
* First take at updating everything to v5

* Patch gRPC gateway to use prysm v5

Fix patch

* Update go ssz

---------

Co-authored-by: Preston Van Loon <pvanloon@offchainlabs.com>
2024-02-15 05:46:47 +00:00

75 lines
2.4 KiB
Protocol Buffer

syntax = "proto3";
package ethereum.eth.v1alpha1;
import "google/protobuf/descriptor.proto";
import "proto/prysm/v1alpha1/beacon_block.proto";
import "proto/prysm/v1alpha1/beacon_state.proto";
import "proto/eth/ext/options.proto";
option csharp_namespace = "Ethereum.Eth.V1alpha1";
option go_package = "github.com/prysmaticlabs/prysm/v5/proto/prysm/v1alpha1;eth";
option java_multiple_files = true;
option java_outer_classname = "PowchainProto";
option java_package = "org.ethereum.eth.v1alpha1";
option php_namespace = "Ethereum\\Eth\\v1alpha1";
// ETH1ChainData is a container which holds all the relevant eth1
// information
message ETH1ChainData {
LatestETH1Data current_eth1_data = 1 ;
ChainStartData chainstart_data = 2;
BeaconState beacon_state = 3;
SparseMerkleTrie trie = 4;
repeated DepositContainer deposit_containers = 5;
DepositSnapshot deposit_snapshot = 6;
}
// DepositSnapshot represents an EIP-4881 deposit snapshot
message DepositSnapshot {
repeated bytes finalized = 1 [(ethereum.eth.ext.ssz_size) = "?,32", (ethereum.eth.ext.ssz_max) = "32"];
bytes deposit_root = 2 [(ethereum.eth.ext.ssz_size) = "32"];
uint64 deposit_count = 3;
bytes execution_hash = 4 [(ethereum.eth.ext.ssz_size) = "32"];
uint64 execution_depth = 5;
}
// LatestETH1Data contains the current state of the eth1 chain.
message LatestETH1Data {
uint64 block_height = 2;
uint64 block_time = 3;
bytes block_hash = 4;
uint64 last_requested_block = 5;
}
// ChainStartData contains all the information related to chainstart.
message ChainStartData {
bool chainstarted = 1;
uint64 genesis_time = 2;
uint64 genesis_block = 3;
Eth1Data eth1_data = 4;
repeated Deposit chainstart_deposits = 5;
}
// SparseMerkleTrie is used to describe the model of our deposit trie.
message SparseMerkleTrie {
uint64 depth = 1;
repeated TrieLayer layers = 2;
repeated bytes original_items = 3;
}
// TrieLayer is used to represent each layer in the deposit tree due to
// the lack of protobuf support for multi-dimensional arrays.(Ex: 3d,4d,...)
message TrieLayer {
repeated bytes layer = 1;
}
// DepositContainer defines a container that can be used to store
// deposit related information for a particular deposit.
message DepositContainer {
int64 index = 1;
uint64 eth1_block_height = 2;
Deposit deposit = 3;
bytes deposit_root = 4;
}