Skip to content

Commit 478940e

Browse files
authored
feat: Euclid release on Scroll Sepolia (#1122)
* feat: Euclid release on Scroll Sepolia (wip) * update system contract consensus params * update timestamp * improve logs * fix * adjust logs * undo some changes
1 parent e62c6f0 commit 478940e

File tree

3 files changed

+33
-15
lines changed

3 files changed

+33
-15
lines changed

consensus/system_contract/system_contract.go

+15-6
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,9 @@ func New(ctx context.Context, config *params.SystemContractConfig, client sync_s
4848
}
4949

5050
if err := s.fetchAddressFromL1(); err != nil {
51-
log.Error("failed to fetch signer address from L1", "err", err)
51+
log.Error("Failed to fetch signer address from L1", "err", err)
5252
}
53+
5354
return s
5455
}
5556

@@ -80,7 +81,7 @@ func (s *SystemContract) Start() {
8081
return
8182
case <-syncTicker.C:
8283
if err := s.fetchAddressFromL1(); err != nil {
83-
log.Error("failed to fetch signer address from L1", "err", err)
84+
log.Error("Failed to fetch signer address from L1", "err", err)
8485
}
8586
}
8687
}
@@ -94,16 +95,24 @@ func (s *SystemContract) fetchAddressFromL1() error {
9495
}
9596
bAddress := common.BytesToAddress(address)
9697

98+
s.lock.Lock()
99+
defer s.lock.Unlock()
100+
97101
// Validate the address is not empty
98102
if bAddress == (common.Address{}) {
99-
return fmt.Errorf("retrieved empty signer address from L1 System Contract: contract=%s, slot=%s", s.config.SystemContractAddress.Hex(), s.config.SystemContractSlot.Hex())
103+
log.Debug("Retrieved empty signer address from L1 System Contract", "contract", s.config.SystemContractAddress.Hex(), "slot", s.config.SystemContractSlot.Hex())
104+
105+
// Not initialized yet -- we don't consider this an error
106+
if s.signerAddressL1 == (common.Address{}) {
107+
log.Warn("System Contract signer address not initialized")
108+
return nil
109+
}
110+
111+
return fmt.Errorf("retrieved empty signer address from L1 System Contract")
100112
}
101113

102114
log.Debug("Read address from system contract", "address", bAddress.Hex())
103115

104-
s.lock.Lock()
105-
defer s.lock.Unlock()
106-
107116
if s.signerAddressL1 != bAddress {
108117
s.signerAddressL1 = bAddress
109118
log.Info("Updated new signer from L1 system contract", "signer", bAddress.Hex())

params/config.go

+17-8
Original file line numberDiff line numberDiff line change
@@ -328,20 +328,29 @@ var (
328328
CurieBlock: big.NewInt(4740239),
329329
DarwinTime: newUint64(1723622400),
330330
DarwinV2Time: newUint64(1724832000),
331+
EuclidTime: newUint64(1741680000),
332+
EuclidV2Time: newUint64(1741852800),
331333
Clique: &CliqueConfig{
332334
Period: 3,
333335
Epoch: 30000,
334336
},
337+
SystemContract: &SystemContractConfig{
338+
Period: 3,
339+
SystemContractAddress: common.HexToAddress("0xC706Ba9fa4fedF4507CB7A898b4766c1bbf9be57"),
340+
SystemContractSlot: common.HexToHash("0x0000000000000000000000000000000000000000000000000000000000000067"),
341+
},
335342
Scroll: ScrollConfig{
336343
UseZktrie: true,
337344
MaxTxPerBlock: &ScrollMaxTxPerBlock,
338345
MaxTxPayloadBytesPerBlock: &ScrollMaxTxPayloadBytesPerBlock,
339346
FeeVaultAddress: &rcfg.ScrollFeeVaultAddress,
340347
L1Config: &L1Config{
341-
L1ChainId: 11155111,
342-
L1MessageQueueAddress: common.HexToAddress("0xF0B2293F5D834eAe920c6974D50957A1732de763"),
343-
NumL1MessagesPerBlock: 10,
344-
ScrollChainAddress: common.HexToAddress("0x2D567EcE699Eabe5afCd141eDB7A4f2D0D6ce8a0"),
348+
L1ChainId: 11155111,
349+
L1MessageQueueAddress: common.HexToAddress("0xF0B2293F5D834eAe920c6974D50957A1732de763"),
350+
L1MessageQueueV2Address: common.HexToAddress("0xA0673eC0A48aa924f067F1274EcD281A10c5f19F"),
351+
L1MessageQueueV2DeploymentBlock: 7773746,
352+
NumL1MessagesPerBlock: 10,
353+
ScrollChainAddress: common.HexToAddress("0x2D567EcE699Eabe5afCd141eDB7A4f2D0D6ce8a0"),
345354
},
346355
GenesisStateRoot: &ScrollSepoliaGenesisState,
347356
},
@@ -692,8 +701,8 @@ type ScrollConfig struct {
692701
type L1Config struct {
693702
L1ChainId uint64 `json:"l1ChainId,string,omitempty"`
694703
L1MessageQueueAddress common.Address `json:"l1MessageQueueAddress,omitempty"`
695-
L1MessageQueueV2Address common.Address `json:"l1MessageQueueV2Address,omitempty"` // TODO: set address once known
696-
L1MessageQueueV2DeploymentBlock uint64 `json:"l1MessageQueueV2DeploymentBlock,omitempty"` // TODO: set block number once known
704+
L1MessageQueueV2Address common.Address `json:"l1MessageQueueV2Address,omitempty"`
705+
L1MessageQueueV2DeploymentBlock uint64 `json:"l1MessageQueueV2DeploymentBlock,omitempty"`
697706
NumL1MessagesPerBlock uint64 `json:"numL1MessagesPerBlock,string,omitempty"`
698707
ScrollChainAddress common.Address `json:"scrollChainAddress,omitempty"`
699708
}
@@ -703,8 +712,8 @@ func (c *L1Config) String() string {
703712
return "<nil>"
704713
}
705714

706-
return fmt.Sprintf("{l1ChainId: %v, l1MessageQueueAddress: %v, numL1MessagesPerBlock: %v, ScrollChainAddress: %v}",
707-
c.L1ChainId, c.L1MessageQueueAddress.Hex(), c.NumL1MessagesPerBlock, c.ScrollChainAddress.Hex())
715+
return fmt.Sprintf("{l1ChainId: %v, l1MessageQueueAddress: %v, l1MessageQueueV2Address: %v, l1MessageQueueV2DeploymentBlock: %v, numL1MessagesPerBlock: %v, ScrollChainAddress: %v}",
716+
c.L1ChainId, c.L1MessageQueueAddress.Hex(), c.L1MessageQueueV2Address.Hex(), c.L1MessageQueueV2DeploymentBlock, c.NumL1MessagesPerBlock, c.ScrollChainAddress.Hex())
708717
}
709718

710719
func (s ScrollConfig) FeeVaultEnabled() bool {

params/version.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424
const (
2525
VersionMajor = 5 // Major version component of the current release
2626
VersionMinor = 8 // Minor version component of the current release
27-
VersionPatch = 22 // Patch version component of the current release
27+
VersionPatch = 23 // Patch version component of the current release
2828
VersionMeta = "mainnet" // Version metadata to append to the version string
2929
)
3030

0 commit comments

Comments
 (0)