mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-08 04:54:05 -05:00
* remove usages of params from proto packages * make it harder to mess up the order of request limit args * remove errant edit (Terence review) * fix missed updates after sig change --------- Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
44 lines
1.3 KiB
Go
44 lines
1.3 KiB
Go
package enginev1
|
|
|
|
import (
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
func (ebe *ExecutionBundleFulu) GetDecodedExecutionRequests(limits ExecutionRequestLimits) (*ExecutionRequests, error) {
|
|
requests := &ExecutionRequests{}
|
|
var prevTypeNum *uint8
|
|
for i := range ebe.ExecutionRequests {
|
|
requestType, requestListInSSZBytes, err := decodeExecutionRequest(ebe.ExecutionRequests[i])
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if prevTypeNum != nil && *prevTypeNum >= requestType {
|
|
return nil, errors.New("invalid execution request type order or duplicate requests, requests should be in sorted order and unique")
|
|
}
|
|
prevTypeNum = &requestType
|
|
switch requestType {
|
|
case DepositRequestType:
|
|
drs, err := unmarshalDeposits(requestListInSSZBytes, limits.Deposits)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
requests.Deposits = drs
|
|
case WithdrawalRequestType:
|
|
wrs, err := unmarshalWithdrawals(requestListInSSZBytes, limits.Withdrawals)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
requests.Withdrawals = wrs
|
|
case ConsolidationRequestType:
|
|
crs, err := unmarshalConsolidations(requestListInSSZBytes, limits.Consolidations)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
requests.Consolidations = crs
|
|
default:
|
|
return nil, errors.Errorf("unsupported request type %d", requestType)
|
|
}
|
|
}
|
|
return requests, nil
|
|
}
|