Gloas modify process_withdrawals #8281
                
     Open
            
            
          
      
        
          +253
        
        
          −81
        
        
          
        
      
    
  
  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.
  
    
  
    
Changes per spec:
process_withdrawalsmodifiedget_expected_withdrawalsmodifiedis_builder_payment_withdrawableaddedHow this works
gloas introduces the new
BeaconState.builder_pending_withdrawals, which are pending payments from the in-protocol builder to the proposer that have a withdrawable epoch scheduledprocess_withdrawalsruns during block processing, the same as today. However, in the nestedget_expected_withdrawals, we now sweep through the list ofbuilder_pending_withdrawalsand convert the ones that have hit their withdrawable epoch toWithdrawalsThen, back in
process_withdrawals, we will sweep these withdrawals and decrement the balance of the builder on the CL. The payment to the fee recipient in the EL is made later via inclusion ofWithdrawalsin the envelope'sExecutionPayload.@ethDreamer