mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-05-21 07:19:28 +00:00
eth/catalyst: return methods by reflect (#32300)
Return the exposed methods in `ConsensusAPI` by reflection.
This commit is contained in:
parent
62ac0e05b6
commit
7d4852b9eb
1 changed files with 11 additions and 35 deletions
|
|
@ -20,10 +20,12 @@ package catalyst
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"reflect"
|
||||||
"strconv"
|
"strconv"
|
||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
|
"unicode"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/beacon/engine"
|
"github.com/ethereum/go-ethereum/beacon/engine"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/ethereum/go-ethereum/common"
|
||||||
|
|
@ -80,41 +82,6 @@ const (
|
||||||
beaconUpdateWarnFrequency = 5 * time.Minute
|
beaconUpdateWarnFrequency = 5 * time.Minute
|
||||||
)
|
)
|
||||||
|
|
||||||
// All methods provided over the engine endpoint.
|
|
||||||
var caps = []string{
|
|
||||||
"engine_forkchoiceUpdatedV1",
|
|
||||||
"engine_forkchoiceUpdatedV2",
|
|
||||||
"engine_forkchoiceUpdatedV3",
|
|
||||||
"engine_forkchoiceUpdatedWithWitnessV1",
|
|
||||||
"engine_forkchoiceUpdatedWithWitnessV2",
|
|
||||||
"engine_forkchoiceUpdatedWithWitnessV3",
|
|
||||||
"engine_exchangeTransitionConfigurationV1",
|
|
||||||
"engine_getPayloadV1",
|
|
||||||
"engine_getPayloadV2",
|
|
||||||
"engine_getPayloadV3",
|
|
||||||
"engine_getPayloadV4",
|
|
||||||
"engine_getPayloadV5",
|
|
||||||
"engine_getBlobsV1",
|
|
||||||
"engine_getBlobsV2",
|
|
||||||
"engine_newPayloadV1",
|
|
||||||
"engine_newPayloadV2",
|
|
||||||
"engine_newPayloadV3",
|
|
||||||
"engine_newPayloadV4",
|
|
||||||
"engine_newPayloadWithWitnessV1",
|
|
||||||
"engine_newPayloadWithWitnessV2",
|
|
||||||
"engine_newPayloadWithWitnessV3",
|
|
||||||
"engine_newPayloadWithWitnessV4",
|
|
||||||
"engine_executeStatelessPayloadV1",
|
|
||||||
"engine_executeStatelessPayloadV2",
|
|
||||||
"engine_executeStatelessPayloadV3",
|
|
||||||
"engine_executeStatelessPayloadV4",
|
|
||||||
"engine_getPayloadBodiesByHashV1",
|
|
||||||
"engine_getPayloadBodiesByHashV2",
|
|
||||||
"engine_getPayloadBodiesByRangeV1",
|
|
||||||
"engine_getPayloadBodiesByRangeV2",
|
|
||||||
"engine_getClientVersionV1",
|
|
||||||
}
|
|
||||||
|
|
||||||
var (
|
var (
|
||||||
// Number of blobs requested via getBlobsV2
|
// Number of blobs requested via getBlobsV2
|
||||||
getBlobsRequestedCounter = metrics.NewRegisteredCounter("engine/getblobs/requested", nil)
|
getBlobsRequestedCounter = metrics.NewRegisteredCounter("engine/getblobs/requested", nil)
|
||||||
|
|
@ -916,6 +883,15 @@ func (api *ConsensusAPI) checkFork(timestamp uint64, forks ...forks.Fork) bool {
|
||||||
|
|
||||||
// ExchangeCapabilities returns the current methods provided by this node.
|
// ExchangeCapabilities returns the current methods provided by this node.
|
||||||
func (api *ConsensusAPI) ExchangeCapabilities([]string) []string {
|
func (api *ConsensusAPI) ExchangeCapabilities([]string) []string {
|
||||||
|
valueT := reflect.TypeOf(api)
|
||||||
|
caps := make([]string, 0, valueT.NumMethod())
|
||||||
|
for i := 0; i < valueT.NumMethod(); i++ {
|
||||||
|
name := []rune(valueT.Method(i).Name)
|
||||||
|
if string(name) == "ExchangeCapabilities" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
caps = append(caps, "engine_"+string(unicode.ToLower(name[0]))+string(name[1:]))
|
||||||
|
}
|
||||||
return caps
|
return caps
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue