- 
                Notifications
    You must be signed in to change notification settings 
- Fork 6.2k
EIP 4844 - blobhash opcode (part 1) #14757
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
Conversation
01f3c80    to
    367ca5f      
    Compare
  
    498252a    to
    9160451      
    Compare
  
    35e367d    to
    873e62e      
    Compare
  
    e65d8bc    to
    69122e0      
    Compare
  
    69122e0    to
    66e145f      
    Compare
  
    93b8bfa    to
    d5119f7      
    Compare
  
    66e145f    to
    9eb631b      
    Compare
  
    There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is missing a changelog entry (we usually add a separate one for the opcode and for high-level support in Solidity). Also, the bits of docs from #14759 describing the opcode should really be in this PR.
Other than that I did not find any serious problems. Mostly small things, easy to tweak. I added a fixup to deal with some of it, the rest is in comments.
Since the evmone update is now merged, I rebased the PR on develop.
        
          
                test/libsolidity/semanticTests/inlineAssembly/blobhash_empty.sol
              
                Outdated
          
            Show resolved
            Hide resolved
        
      c65588e    to
    08bbb84      
    Compare
  
    1d6a91f    to
    9a7639e      
    Compare
  
    There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I looked through all the uses of the already existing blockhash() to make sure we're not forgetting anything we should have for blobhash() here and found only one minor test that might need it.
Other than that, we actually should change #14757 (comment) back (I'll post details in a moment). EDIT: Actually it's fine. I wanted to note that the variable assigned to the pointer will go out of scope, but it's static so it's fine.
I'm going to look through #14759 before approving this in case something from there should still end up in this PR, but if not, we'll be done here.
d762c6d    to
    1af000d      
    Compare
  
    1f5e3b7    to
    eabe457      
    Compare
  
    There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aside from the one question I left (which is important, at least for me), looks good.
b00b2cd    to
    2150f74      
    Compare
  
    3cb794d    to
    9243997      
    Compare
  
    Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
9243997    to
    269951e      
    Compare
  
    | * Introduce global ``block.blobbasefee`` for retrieving the blob base fee of the current block. | ||
| * Yul: Introduce builtin ``blobbasefee()`` for retrieving the blob base fee of the current block. | ||
|  | ||
| * Yul: Introduce builtin ``blobhash()`` for retrieving versioned hashes of blobs associated with the transaction. | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, one more thing, let's finally stop messing with the spacing in the changelog :)
| * Yul: Introduce builtin ``blobhash()`` for retrieving versioned hashes of blobs associated with the transaction. | |
| * Yul: Introduce builtin ``blobhash()`` for retrieving versioned hashes of blobs associated with the transaction. | |
I fixed it earlier in all those PRs but it keeps reappearing again and again for some reason. Don't worry about the wrong spacing of the Compiler Features: section. We'll fix it when we sort the changelog. In PRs just add an entry for your PR and don't touch other lines.
Depends on #14743(merged)First part of #14740
This PR implements the blobhash opcode as specified in the EIP-4844 and add tests for assembler mode. The opcode is not exposed to Solidity in this part; that will be addressed in part 2. While it's intended to be non-breaking, additional tests may be required.