radiance/pkg/genesis/genesis.go

39 lines
769 B
Go

package genesis
import (
"time"
"go.firedancer.io/radiance/pkg/runtime"
)
// Genesis contains the genesis state of a Solana ledger.
type Genesis struct {
CreationTime time.Time
Accounts []AccountEntry
Builtins []BuiltinProgram
RewardPools []AccountEntry
TicksPerSlot uint64
PohParams runtime.PohParams
Fees runtime.FeeParams
Rent runtime.RentParams
Inflation runtime.InflationParams
EpochSchedule runtime.EpochSchedule
ClusterID uint32
}
type AccountEntry struct {
Pubkey [32]byte
runtime.Account
}
type BuiltinProgram struct {
Key string
Pubkey [32]byte
}
func (g *Genesis) FillAccounts(state runtime.Accounts) {
for _, acc := range g.Accounts {
state.SetAccount(&acc.Pubkey, &acc.Account)
}
}