mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-04 14:08:39 +00:00
add newpayloadwithwitnessv5
This commit is contained in:
parent
1bdc4a60d9
commit
8c0cf8da29
1 changed files with 30 additions and 0 deletions
|
|
@ -162,6 +162,36 @@ func (api *ConsensusAPI) NewPayloadWithWitnessV4(ctx context.Context, params eng
|
||||||
return api.newPayload(ctx, params, versionedHashes, beaconRoot, requests, true)
|
return api.newPayload(ctx, params, versionedHashes, beaconRoot, requests, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewPayloadWithWitnessV5 is analogous to NewPayloadV5, only it also generates
|
||||||
|
// and returns a stateless witness after running the payload.
|
||||||
|
func (api *ConsensusAPI) NewPayloadWithWitnessV5(ctx context.Context, params engine.ExecutableData, versionedHashes []common.Hash, beaconRoot *common.Hash, executionRequests []hexutil.Bytes) (engine.PayloadStatusV1, error) {
|
||||||
|
switch {
|
||||||
|
case params.Withdrawals == nil:
|
||||||
|
return invalidStatus, paramsErr("nil withdrawals post-shanghai")
|
||||||
|
case params.ExcessBlobGas == nil:
|
||||||
|
return invalidStatus, paramsErr("nil excessBlobGas post-cancun")
|
||||||
|
case params.BlobGasUsed == nil:
|
||||||
|
return invalidStatus, paramsErr("nil blobGasUsed post-cancun")
|
||||||
|
case versionedHashes == nil:
|
||||||
|
return invalidStatus, paramsErr("nil versionedHashes post-cancun")
|
||||||
|
case beaconRoot == nil:
|
||||||
|
return invalidStatus, paramsErr("nil beaconRoot post-cancun")
|
||||||
|
case executionRequests == nil:
|
||||||
|
return invalidStatus, paramsErr("nil executionRequests post-prague")
|
||||||
|
case params.BlockAccessList == nil:
|
||||||
|
return invalidStatus, paramsErr("nil block access list post-amsterdam")
|
||||||
|
case params.SlotNumber == nil:
|
||||||
|
return invalidStatus, paramsErr("nil slotnumber post-amsterdam")
|
||||||
|
case !api.checkFork(params.Timestamp, forks.Amsterdam):
|
||||||
|
return invalidStatus, unsupportedForkErr("newPayloadV5 must only be called for amsterdam payloads")
|
||||||
|
}
|
||||||
|
requests := convertRequests(executionRequests)
|
||||||
|
if err := validateRequests(requests); err != nil {
|
||||||
|
return engine.PayloadStatusV1{Status: engine.INVALID}, engine.InvalidParams.With(err)
|
||||||
|
}
|
||||||
|
return api.newPayload(ctx, params, versionedHashes, beaconRoot, requests, true)
|
||||||
|
}
|
||||||
|
|
||||||
// ExecuteStatelessPayloadV1 is analogous to NewPayloadV1, only it operates in
|
// ExecuteStatelessPayloadV1 is analogous to NewPayloadV1, only it operates in
|
||||||
// a stateless mode on top of a provided witness instead of the local database.
|
// a stateless mode on top of a provided witness instead of the local database.
|
||||||
func (api *ConsensusAPI) ExecuteStatelessPayloadV1(params engine.ExecutableData, opaqueWitness hexutil.Bytes) (engine.StatelessPayloadStatusV1, error) {
|
func (api *ConsensusAPI) ExecuteStatelessPayloadV1(params engine.ExecutableData, opaqueWitness hexutil.Bytes) (engine.StatelessPayloadStatusV1, error) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue