syntax = "proto3";
package org.solana.sealevel.v1;
import "context.proto";
import "txn.proto";
import "metadata.proto";
message CostTracker {
uint64 block_cost = 1;
uint64 vote_cost = 2;
}
message BlockContext {
// All transactions in this microblock (can be 0)
repeated SanitizedTransaction txns = 1;
// Input account states
repeated AcctState acct_states = 2;
// The blockhash queue
repeated bytes blockhash_queue = 3;
// Slot context (contains slot number)
SlotContext slot_ctx = 4;
// Epoch context (contains feature info)
EpochContext epoch_ctx = 5;
}
message LeaderScheduleEffects {
// Epoch number for which this leader schedule applies
uint64 leaders_epoch = 1;
// First slot number covered by this leader schedule
uint64 leaders_slot0 = 2;
// Total number of slots covered by this leader schedule
uint64 leaders_slot_cnt = 3;
// Number of unique validator public keys in the leader schedule
uint64 leader_pub_cnt = 4;
// Number of entries in the leader schedule (slots with assigned leaders)
uint64 leaders_sched_cnt = 5;
// Hash of the leader schedule
bytes leader_schedule_hash = 6;
}
message BlockEffects {
// If block execution failed
bool has_error = 1;
// Slot capitalization
uint64 slot_capitalization = 2;
// Bank hash
bytes bank_hash = 3;
// The cost tracker
CostTracker cost_tracker = 4;
// Leader schedule
LeaderScheduleEffects leader_schedule = 5;
}
message BlockFixture {
FixtureMetadata metadata = 1;
// The block input
BlockContext input = 2;
// The output
BlockEffects output = 3;
}