39 lines
769 B
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)
|
|
}
|
|
}
|