-
Notifications
You must be signed in to change notification settings - Fork 14
Add emerald upgrade #216
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add emerald upgrade #216
Conversation
WalkthroughAdded EmeraldTime fork timestamp support to ChainConfig and ChainOverrides structs. Introduced NewEmeraldSigner constructor and Emerald instruction set in the EVM. Added Emerald fork constants and updated fork validation, initialization logic, and chain rules throughout the codebase. Changes
Sequence DiagramsequenceDiagram
participant Client
participant ChainConfig as ChainConfig
participant SignerSelection as Signer Selection
participant EVMInterpreter as EVM Interpreter
Client->>ChainConfig: Check IsEmerald(num, time)
ChainConfig->>ChainConfig: Compare time vs EmeraldTime
alt Emerald fork active
ChainConfig-->>SignerSelection: IsEmerald = true
ChainConfig-->>EVMInterpreter: IsEmerald = true
SignerSelection->>SignerSelection: Create NewEmeraldSigner
EVMInterpreter->>EVMInterpreter: Select emeraldInstructionSet
else Emerald fork inactive
ChainConfig-->>SignerSelection: IsEmerald = false
ChainConfig-->>EVMInterpreter: IsEmerald = false
SignerSelection->>SignerSelection: Create legacy signer
EVMInterpreter->>EVMInterpreter: Select legacy instruction set
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (10)
🧰 Additional context used🧬 Code graph analysis (1)core/types/transaction_signing.go (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (24)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 golangci-lint (2.5.0)Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
1. Purpose or design rationale of this PR
Add emerald upgrade
2. PR title
Your PR title must follow conventional commits (as we are doing squash merge for each PR), so it must start with one of the following types:
3. Deployment tag versioning
Has the version in
params/version.gobeen updated?4. Breaking change label
Does this PR have the
breaking-changelabel?Summary by CodeRabbit