syntax = "proto3";
package org.solana.sealevel.v1;
// A set of feature flags.
message FeatureSet {
// Every item in this list marks an enabled feature. The value of
// each item is the first 8 bytes of the feature ID as a little-
// endian integer.
repeated fixed64 features = 1;
}
// The complete state of an account excluding its public key.
message AcctState {
// The account address. (32 bytes)
bytes address = 1;
uint64 lamports = 2;
// Account data is limited to 10 MiB on Solana mainnet as of 2024-Feb.
bytes data = 3;
bool executable = 4;
reserved 5;
// Address of the program that owns this account. (32 bytes)
bytes owner = 6;
reserved 7;
}
// Fee rate governor parameters
message FeeRateGovernor {
uint64 target_lamports_per_signature = 1;
uint64 target_signatures_per_slot = 2;
uint64 min_lamports_per_signature = 3;
uint64 max_lamports_per_signature = 4;
uint32 burn_percent = 5;
}
message EpochSchedule {
// The maximum number of slots in each epoch.
uint64 slots_per_epoch = 1;
// A number of slots before beginning of an epoch to calculate
// a leader schedule for that epoch.
uint64 leader_schedule_slot_offset = 2;
// Whether epochs start short and grow.
bool warmup = 3;
// The first epoch after the warmup period.
uint64 first_normal_epoch = 4;
// The first slot after the warmup period.
uint64 first_normal_slot = 5;
}
// A single entry in the blockhash queue.
message BlockhashQueueEntry {
bytes blockhash = 1;
uint64 lamports_per_signature = 2;
}