Skip to content

Commit

Permalink
removes all traces of capella
Browse files Browse the repository at this point in the history
  • Loading branch information
claravanstaden committed Jan 22, 2025
1 parent 23eb81d commit ac52035
Show file tree
Hide file tree
Showing 14 changed files with 127 additions and 3,107 deletions.
2 changes: 1 addition & 1 deletion relayer/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ To generate the SSZ encodings:

```
go install github.com/ferranbt/fastssz/sszgen
sszgen --path relays/beacon/state/beacon.go --objs BeaconStateCapellaMainnet,BlockRootsContainerMainnet,TransactionsRootContainer,BeaconBlockCapellaMainnet,WithdrawalsRootContainerMainnet
sszgen --path relays/beacon/state/beacon.go --objs BlockRootsContainerMainnet,TransactionsRootContainer,WithdrawalsRootContainerMainnet,BeaconStateDenebMainnet,BeaconBlockDenebMainnet,SignedBeaconBlockDeneb,SignedBeaconBlockElectra,BeaconStateElectra,BeaconBlockElectra
```

## Configuration
Expand Down
2 changes: 1 addition & 1 deletion relayer/magefile.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ func Build() {
}

func BuildMain() error {
err := sh.Run("sszgen", "--path", "relays/beacon/state", "--objs", "BeaconStateCapellaMainnet,BlockRootsContainerMainnet,TransactionsRootContainer,BeaconBlockCapellaMainnet,WithdrawalsRootContainerMainnet,BeaconStateDenebMainnet,BeaconBlockDenebMainnet,SignedBeaconBlockDeneb,SignedBeaconBlockElectra,BeaconStateElectra,BeaconBlockElectra")
err := sh.Run("sszgen", "--path", "relays/beacon/state", "--objs", "BlockRootsContainerMainnet,TransactionsRootContainer,WithdrawalsRootContainerMainnet,BeaconStateDenebMainnet,BeaconBlockDenebMainnet,SignedBeaconBlockDeneb,SignedBeaconBlockElectra,BeaconStateElectra,BeaconBlockElectra")
if err != nil {
return err
}
Expand Down
44 changes: 0 additions & 44 deletions relayer/relays/beacon/header/syncer/api/api_response.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,12 @@ package api

import (
"fmt"
"math/big"
"strconv"

"github.com/ethereum/go-ethereum/common"
"github.com/snowfork/go-substrate-rpc-client/v4/types"
beaconjson "github.com/snowfork/snowbridge/relayer/relays/beacon/header/syncer/json"
"github.com/snowfork/snowbridge/relayer/relays/beacon/header/syncer/scale"
"github.com/snowfork/snowbridge/relayer/relays/beacon/state"
"github.com/snowfork/snowbridge/relayer/relays/util"
)

Expand Down Expand Up @@ -389,45 +387,3 @@ func (c CheckpointResponse) ToScale() (scale.Checkpoint, error) {
Root: types.NewH256(common.HexToHash(c.Root).Bytes()),
}, nil
}

func CapellaExecutionPayloadToScale(e *state.ExecutionPayloadCapella) (scale.ExecutionPayloadHeaderCapella, error) {
transactionsContainer := state.TransactionsRootContainer{}
transactionsContainer.Transactions = e.Transactions

transactionsRoot, err := transactionsContainer.HashTreeRoot()
if err != nil {
return scale.ExecutionPayloadHeaderCapella{}, err
}

var withdrawalRoot types.H256

withdrawalContainer := state.WithdrawalsRootContainerMainnet{}
withdrawalContainer.Withdrawals = e.Withdrawals
withdrawalRoot, err = withdrawalContainer.HashTreeRoot()

if err != nil {
return scale.ExecutionPayloadHeaderCapella{}, err
}

baseFeePerGas := big.Int{}
// Change BaseFeePerGas back from little-endian to big-endian
baseFeePerGas.SetBytes(util.ChangeByteOrder(e.BaseFeePerGas[:]))

return scale.ExecutionPayloadHeaderCapella{
ParentHash: types.NewH256(e.ParentHash[:]),
FeeRecipient: e.FeeRecipient,
StateRoot: types.NewH256(e.StateRoot[:]),
ReceiptsRoot: types.NewH256(e.ReceiptsRoot[:]),
LogsBloom: e.LogsBloom[:],
PrevRandao: types.NewH256(e.PrevRandao[:]),
BlockNumber: types.NewU64(e.BlockNumber),
GasLimit: types.NewU64(e.GasLimit),
GasUsed: types.NewU64(e.GasUsed),
Timestamp: types.NewU64(e.Timestamp),
ExtraData: e.ExtraData,
BaseFeePerGas: types.NewU256(baseFeePerGas),
BlockHash: types.NewH256(e.BlockHash[:]),
TransactionsRoot: transactionsRoot,
WithdrawalsRoot: withdrawalRoot,
}, nil
}
53 changes: 2 additions & 51 deletions relayer/relays/beacon/header/syncer/json/beacon_json.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,24 +83,6 @@ type SignedHeader struct {
Signature string `json:"signature"`
}

type ExecutionPayloadHeaderCapella struct {
ParentHash string `json:"parent_hash"`
FeeRecipient string `json:"fee_recipient"`
StateRoot string `json:"state_root"`
ReceiptsRoot string `json:"receipts_root"`
LogsBloom string `json:"logs_bloom"`
PrevRandao string `json:"prev_randao"`
BlockNumber uint64 `json:"block_number"`
GasLimit uint64 `json:"gas_limit"`
GasUsed uint64 `json:"gas_used"`
Timestamp uint64 `json:"timestamp"`
ExtraData string `json:"extra_data"`
BaseFeePerGas uint64 `json:"base_fee_per_gas"`
BlockHash string `json:"block_hash"`
TransactionsRoot string `json:"transactions_root"`
WithdrawalsRoot string `json:"withdrawals_root"`
}

type CompactExecutionHeader struct {
ParentHash string `json:"parent_hash"`
StateRoot string `json:"state_root"`
Expand All @@ -114,19 +96,6 @@ type Eth1Data struct {
BlockHash string `json:"block_hash"`
}

type BlockBody struct {
RandaoReveal string `json:"randao_reveal"`
Eth1Data Eth1Data `json:"eth1_data"`
Graffiti string `json:"graffiti"`
ProposerSlashings []ProposerSlashing `json:"proposer_slashings"`
AttesterSlashings []AttesterSlashing `json:"attester_slashings"`
Attestations []Attestation `json:"attestations"`
Deposits []Deposit `json:"deposits"`
VoluntaryExits []VoluntaryExit `json:"voluntary_exits"`
SyncAggregate SyncAggregate `json:"sync_aggregate"`
ExecutionPayload ExecutionPayloadHeaderCapella `json:"execution_payload"`
}

type HeaderUpdate struct {
Header BeaconHeader `json:"header"`
AncestryProof *AncestryProof `json:"ancestry_proof"`
Expand Down Expand Up @@ -229,19 +198,6 @@ func (d *Deposit) RemoveLeadingZeroHashes() {
d.Data.WithdrawalCredentials = removeLeadingZeroHash(d.Data.WithdrawalCredentials)
}

func (e *ExecutionPayloadHeaderCapella) RemoveLeadingZeroHashes() {
e.ParentHash = removeLeadingZeroHash(e.ParentHash)
e.FeeRecipient = removeLeadingZeroHash(e.FeeRecipient)
e.StateRoot = removeLeadingZeroHash(e.StateRoot)
e.ReceiptsRoot = removeLeadingZeroHash(e.ReceiptsRoot)
e.LogsBloom = removeLeadingZeroHash(e.LogsBloom)
e.PrevRandao = removeLeadingZeroHash(e.PrevRandao)
e.ExtraData = removeLeadingZeroHash(e.ExtraData)
e.BlockHash = removeLeadingZeroHash(e.BlockHash)
e.TransactionsRoot = removeLeadingZeroHash(e.TransactionsRoot)
e.WithdrawalsRoot = removeLeadingZeroHash(e.WithdrawalsRoot)
}

func (i *CheckPoint) RemoveLeadingZeroHashes() {
i.Header.RemoveLeadingZeroHashes()
i.CurrentSyncCommittee.RemoveLeadingZeroHashes()
Expand Down Expand Up @@ -293,14 +249,9 @@ func removeLeadingZeroHash(s string) string {
}

type VersionedExecutionPayloadHeader struct {
Capella *ExecutionPayloadHeaderCapella `json:"Capella,omitempty"`
Deneb *ExecutionPayloadHeaderDeneb `json:"Deneb,omitempty"`
Deneb *ExecutionPayloadHeaderDeneb `json:"Deneb,omitempty"`
}

func (v *VersionedExecutionPayloadHeader) RemoveLeadingZeroHashes() {
if v.Capella != nil {
v.Capella.RemoveLeadingZeroHashes()
} else if v.Deneb != nil {
v.Deneb.RemoveLeadingZeroHashes()
}
v.Deneb.RemoveLeadingZeroHashes()
}
61 changes: 2 additions & 59 deletions relayer/relays/beacon/header/syncer/scale/beacon_scale.go
Original file line number Diff line number Diff line change
Expand Up @@ -177,59 +177,6 @@ type SignedBLSToExecutionChange struct {
Signature []byte
}

type ExecutionPayloadHeaderCapella struct {
ParentHash types.H256
FeeRecipient types.H160
StateRoot types.H256
ReceiptsRoot types.H256
LogsBloom []byte
PrevRandao types.H256
BlockNumber types.U64
GasLimit types.U64
GasUsed types.U64
Timestamp types.U64
ExtraData []byte
BaseFeePerGas types.U256
BlockHash types.H256
TransactionsRoot types.H256
WithdrawalsRoot types.H256
}

type Body struct {
RandaoReveal []byte
Eth1Data Eth1Data
Graffiti types.H256
ProposerSlashings []ProposerSlashing
AttesterSlashings []AttesterSlashing
Attestations []Attestation
Deposits []Deposit
VoluntaryExits []SignedVoluntaryExit
SyncAggregate SyncAggregate
ExecutionPayload ExecutionPayloadHeaderCapella
}

type BodyCapella struct {
RandaoReveal []byte
Eth1Data Eth1Data
Graffiti types.H256
ProposerSlashings []ProposerSlashing
AttesterSlashings []AttesterSlashing
Attestations []Attestation
Deposits []Deposit
VoluntaryExits []SignedVoluntaryExit
SyncAggregate SyncAggregate
ExecutionPayload ExecutionPayloadHeaderCapella
BlsToExecutionChanges []*SignedBLSToExecutionChange
}

type BeaconBlock struct {
Slot types.U64
ProposerIndex types.U64
ParentRoot types.H256
StateRoot types.H256
Body Body
}

type SyncCommittee struct {
Pubkeys [][48]byte
AggregatePubkey [48]byte
Expand Down Expand Up @@ -301,8 +248,7 @@ type BeaconState struct {
}

type VersionedExecutionPayloadHeader struct {
Capella *ExecutionPayloadHeaderCapella
Deneb *ExecutionPayloadHeaderDeneb
Deneb *ExecutionPayloadHeaderDeneb
}

var (
Expand All @@ -311,10 +257,7 @@ var (

func (v VersionedExecutionPayloadHeader) Encode(encoder scale.Encoder) error {
var err error
if v.Capella != nil {
encoder.PushByte(0)
err = encoder.Encode(v.Capella)
} else if v.Deneb != nil {
if v.Deneb != nil {
encoder.PushByte(1)
err = encoder.Encode(v.Deneb)
} else {
Expand Down
29 changes: 2 additions & 27 deletions relayer/relays/beacon/header/syncer/scale/json_conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,26 +63,6 @@ func (b *BeaconHeader) ToJSON() json.BeaconHeader {
}
}

func (e *ExecutionPayloadHeaderCapella) ToJSON() json.ExecutionPayloadHeaderCapella {
return json.ExecutionPayloadHeaderCapella{
ParentHash: e.ParentHash.Hex(),
FeeRecipient: util.BytesToHexString(e.FeeRecipient[:]),
StateRoot: e.StateRoot.Hex(),
ReceiptsRoot: e.ReceiptsRoot.Hex(),
LogsBloom: util.BytesToHexString(e.LogsBloom),
PrevRandao: e.PrevRandao.Hex(),
BlockNumber: uint64(e.BlockNumber),
GasLimit: uint64(e.GasLimit),
GasUsed: uint64(e.GasUsed),
Timestamp: uint64(e.Timestamp),
ExtraData: util.BytesToHexString(e.ExtraData),
BaseFeePerGas: e.BaseFeePerGas.Uint64(),
BlockHash: e.BlockHash.Hex(),
TransactionsRoot: e.TransactionsRoot.Hex(),
WithdrawalsRoot: e.WithdrawalsRoot.Hex(),
}
}

func (s *SyncCommittee) ToJSON() json.SyncCommittee {
pubkeys := []string{}
for _, pubkeyScale := range s.Pubkeys {
Expand All @@ -103,11 +83,6 @@ func (s *SyncAggregate) ToJSON() json.SyncAggregate {
}

func (v *VersionedExecutionPayloadHeader) ToJSON() json.VersionedExecutionPayloadHeader {
if v.Deneb != nil {
data := v.Deneb.ToJSON()
return json.VersionedExecutionPayloadHeader{Deneb: &data}
} else {
data := v.Capella.ToJSON()
return json.VersionedExecutionPayloadHeader{Capella: &data}
}
data := v.Deneb.ToJSON()
return json.VersionedExecutionPayloadHeader{Deneb: &data}
}
25 changes: 6 additions & 19 deletions relayer/relays/beacon/header/syncer/syncer.go
Original file line number Diff line number Diff line change
Expand Up @@ -316,10 +316,8 @@ func (s *Syncer) GetBlockRoots(slot uint64) (scale.BlockRootProof, error) {
blockRootsContainer = &state.BlockRootsContainerMainnet{}
if forkVersion == protocol.Electra {
beaconState = &state.BeaconStateElectra{}
} else if forkVersion == protocol.Deneb {
beaconState = &state.BeaconStateDenebMainnet{}
} else {
beaconState = &state.BeaconStateCapellaMainnet{}
beaconState = &state.BeaconStateDenebMainnet{}
}

err = beaconState.UnmarshalSSZ(data)
Expand Down Expand Up @@ -580,20 +578,11 @@ func (s *Syncer) GetHeaderUpdate(blockRoot common.Hash, checkpoint *cache.Proof)
}

var versionedExecutionPayloadHeader scale.VersionedExecutionPayloadHeader
// The execution payload did not change in Electra, so we reuse Deneb's version.
if forkVersion == protocol.Electra || forkVersion == protocol.Deneb {
executionPayloadScale, err := api.DenebExecutionPayloadToScale(beaconBlock.ExecutionPayloadDeneb())
if err != nil {
return scale.HeaderUpdatePayload{}, err
}
versionedExecutionPayloadHeader = scale.VersionedExecutionPayloadHeader{Deneb: &executionPayloadScale}
} else {
executionPayloadScale, err := api.CapellaExecutionPayloadToScale(beaconBlock.ExecutionPayloadCapella())
if err != nil {
return scale.HeaderUpdatePayload{}, err
}
versionedExecutionPayloadHeader = scale.VersionedExecutionPayloadHeader{Capella: &executionPayloadScale}
executionPayloadScale, err := api.DenebExecutionPayloadToScale(beaconBlock.ExecutionPayloadDeneb())
if err != nil {
return scale.HeaderUpdatePayload{}, err
}
versionedExecutionPayloadHeader = scale.VersionedExecutionPayloadHeader{Deneb: &executionPayloadScale}

// If checkpoint not provided or slot == finalizedSlot there won't be an ancestry proof because the header state in question is also the finalized header
if checkpoint == nil || beaconBlock.GetBeaconSlot() == checkpoint.Slot {
Expand Down Expand Up @@ -646,10 +635,8 @@ func (s *Syncer) UnmarshalBeaconState(slot uint64, data []byte) (state.BeaconSta
forkVersion := s.protocol.ForkVersion(slot)
if forkVersion == protocol.Electra {
beaconState = &state.BeaconStateElectra{}
} else if forkVersion == protocol.Deneb {
beaconState = &state.BeaconStateDenebMainnet{}
} else {
beaconState = &state.BeaconStateCapellaMainnet{}
beaconState = &state.BeaconStateDenebMainnet{}
}

err := beaconState.UnmarshalSSZ(data)
Expand Down
6 changes: 1 addition & 5 deletions relayer/relays/beacon/protocol/protocol.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@ type ForkVersion string

const (
Deneb ForkVersion = "Deneb"
Capella ForkVersion = "Capella"
Electra ForkVersion = "Electra"
)

Expand All @@ -89,10 +88,7 @@ func (p *Protocol) ForkVersion(slot uint64) ForkVersion {
if epoch >= p.Settings.ForkVersions.Electra {
return Electra
}
if epoch >= p.Settings.ForkVersions.Deneb {
return Deneb
}
return Capella
return Deneb
}

func (p *Protocol) BlockRootGeneralizedIndex(slot uint64) int {
Expand Down
Loading

0 comments on commit ac52035

Please sign in to comment.