duneanalytics / duneanalytics/evm.codes
Playground editor does not rename opcode 0x44 from DIFFICULTY to PREVRANDAO post-merge
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 827
- Forks
- 199
- Avg merge
- 15m
- Merged PRs (30d)
- 1
Description
Steps to reproduce the issue:
- Go to https://www.evm.codes/playground?fork=merge
- Set the editor language to "Bytecode"
- Enter "44" into the editor
- Change the editor language to "Mnemonic"
- Change the editor language back to "Bytecode"
Expected result: the "44" opcode is recognized as "PREVRANDAO" in the "Mnemonic" setting, and the value "PREVRANDAO" is converted to "44" when switched back to bytecode.
Actual result: the "44" opcode is recognized as "DIFFICULTY" in the "Mnemonic" setting, and the value "DIFFICULTY" is converted to "undefined" when switched back to bytecode.
I see there was the prior issue #172 and PR #180 to address this, additionally in ethereumContext.tsx there's already this logic in extractDocFromOpcode to account for this change:
// TODO: need to implement proper selection of doc according to selected fork (maybe similar to dynamic gas fee)
// Hack for "difficulty" -> "prevrandao" replacement for "merge" HF
if (selectedFork?.name === mergeHardforkName && toHex(op.code) == '44') {
return {
...meta[prevrandaoDocName],
...{
opcodeOrAddress: toHex(op.code),
staticFee: op.fee,
minimumFee: 0,
name: 'PREVRANDAO',
},
}
}
So I think this issue was a small oversight in the larger PR. I believe the specific issue I described can be fixed by adding a check in the loadInstructions function in ethereumContext.tsx, similar to the check in extractDocFromOpcode.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the behavior at the Merge playground URL, then read ethereumContext.tsx, especially loadInstructions and the existing extractDocFromOpcode check. Verify how opcode 0x44 is loaded when switching between Bytecode and Mnemonic modes. Done means the Merge fork displays PREVRANDAO and converts it back to 44 without producing undefined.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- blockchain, frontend
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 48/100