Conversation
Contributor
|
Something didn't work with the stacked PR, probably the squash of the prior PR caused some problems. |
… maximal 2^28 MiB (#105)
* CIP-64: GASPRICE opcode must return effective gas price * Add fixtures including CIP-64 tx with GASPRICE opcode * Remove redundant fixture
The previous fix was not correct and only accidentally made the tests pass. The GASPRICE opcodes fetches the effective gas price and passes in the base fee in native tokens. We work around this by calculating the correct effective gas price in advance and ignoring the passed in base fee.
* Better CIP-64 GASPRICE opcode test The previous test case often passed even with wrong implementations because it only noticed if a single `if` condition on the gas price triggers. Instead, the actual gas price return value should be part of the tested result to notice any deviations from the expected value. This is achieved by emitting the result in an event/log so that it becomes part of the receipt. Full bytecode explanation: | Offset | Bytecode | Opcode | Stack (after) | Description | |--------|----------|--------------|-----------------|------------------------------------------| | 0x00 | `3a` | `GASPRICE` | `[gasPrice]` | Pushes the tx's gas price onto the stack | | 0x01 | `60 00` | `PUSH1 0x00` | `[0, gasPrice]` | Pushes memory offset 0 | | 0x03 | `52` | `MSTORE` | `[]` | Stores gasPrice at memory[0:32] | | 0x04 | `60 20` | `PUSH1 0x20` | `[32]` | Pushes 32 (0x20) - the size in bytes | | 0x06 | `60 00` | `PUSH1 0x00` | `[0, 32]` | Pushes memory offset 0 | | 0x08 | `a0` | `LOG0` | `[]` | Emits anonymous log from memory[0:32] | As intended, the test behaves like this: ``` fail cd86616 Fix CIP-64 gas price opcode (#106) fail 9d02406 CIP-64: actual GASPRICE opcode fix (#107) pass (the missing revert has no effect on the returned gas price) 7be19b3 Revert bad fix for GASPRICE opcode (#109) pass ``` So if we had the test before doing the changes, we would have correctly rejected the wrong fix. * Fix typos Co-authored-by: Paul Lange <palango@users.noreply.github.com> --------- Co-authored-by: Paul Lange <palango@users.noreply.github.com>
4c69265 to
7beb54f
Compare
palango
approved these changes
Dec 8, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Continuation of #103
4c69265 is already reviewed (I accidentally merged the stacked PR)