Files
prysm/proto/engine/v1/electra.proto
Bastin 92bd211e4d upgrade v6 to v7 (#15989)
* upgrade v6 to v7

* changelog

* update-go-ssz
2025-11-06 16:16:23 +00:00

84 lines
3.2 KiB
Protocol Buffer

// Copyright 2024 Prysmatic Labs.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package ethereum.engine.v1;
import "proto/eth/ext/options.proto";
import "proto/engine/v1/execution_engine.proto";
option csharp_namespace = "Ethereum.Engine.V1";
option go_package = "github.com/OffchainLabs/prysm/v7/proto/engine/v1;enginev1";
option java_multiple_files = true;
option java_outer_classname = "ElectraProto";
option java_package = "org.ethereum.engine.v1";
option php_namespace = "Ethereum\\Engine\\v1";
// WithdrawalRequest is the message from the execution layer to trigger the
// withdrawal of a validator's balance to its withdrawal address new in Electra
message WithdrawalRequest {
// The execution address receiving the funds
bytes source_address = 1 [ (ethereum.eth.ext.ssz_size) = "20" ];
// 48 byte BLS public key of the validator.
bytes validator_pubkey = 2 [ (ethereum.eth.ext.ssz_size) = "48" ];
// Deposit amount in gwei.
uint64 amount = 3;
}
// DepositRequest is the message from the execution layer to trigger the deposit
// of a validator's balance to its balance new in Electra
message DepositRequest {
bytes pubkey = 1 [ (ethereum.eth.ext.ssz_size) = "48" ];
bytes withdrawal_credentials = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 amount = 3;
bytes signature = 4 [ (ethereum.eth.ext.ssz_size) = "96" ];
uint64 index = 5;
}
// ConsolidationRequest is the message from the execution layer to trigger the
// consolidation of one validator to another validator.
message ConsolidationRequest {
// Source address of account which originated the request.
bytes source_address = 1 [ (ethereum.eth.ext.ssz_size) = "20" ];
// Funds will be moved from this public key.
bytes source_pubkey = 2 [ (ethereum.eth.ext.ssz_size) = "48" ];
// Funds will be moved to this public key.
bytes target_pubkey = 3 [ (ethereum.eth.ext.ssz_size) = "48" ];
}
// ExecutionRequests is a container that contains all the requests from the
// execution layer to be included in a block
message ExecutionRequests {
repeated DepositRequest deposits = 1
[ (ethereum.eth.ext.ssz_max) = "max_deposit_requests_per_payload.size" ];
repeated WithdrawalRequest withdrawals = 2
[ (ethereum.eth.ext.ssz_max) =
"max_withdrawal_requests_per_payload.size" ];
repeated ConsolidationRequest consolidations = 3
[ (ethereum.eth.ext.ssz_max) =
"max_consolidation_requests_per_payload.size" ];
}
// ExecutionBundleElectra is a container that builds on Payload V4 and includes
// execution requests sidecar needed post Electra
message ExecutionBundleElectra {
ExecutionPayloadDeneb payload = 1;
bytes value = 2;
BlobsBundle blobs_bundle = 3;
bool should_override_builder = 4;
repeated bytes execution_requests = 5;
}