From 74756c768fc6c181964d26d5b23d9cad54df76ee Mon Sep 17 00:00:00 2001 From: Stephen Buttolph Date: Thu, 2 Oct 2025 14:25:43 -0400 Subject: [PATCH 1/2] Remove secondary validator override --- warp/service.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/warp/service.go b/warp/service.go index 19885b9632..3c973bc861 100644 --- a/warp/service.go +++ b/warp/service.go @@ -17,7 +17,6 @@ import ( "github.com/ava-labs/libevm/log" warpprecompile "github.com/ava-labs/coreth/precompile/contracts/warp" - warpValidators "github.com/ava-labs/coreth/warp/validators" ) var errNoValidators = errors.New("cannot aggregate signatures from subnet with no validators") @@ -108,8 +107,7 @@ func (a *API) aggregateSignatures(ctx context.Context, unsignedMessage *warp.Uns return nil, err } - state := warpValidators.NewState(validatorState, a.chainContext.SubnetID, a.chainContext.ChainID, a.requirePrimaryNetworkSigners()) - validatorSet, err := warp.GetCanonicalValidatorSetFromSubnetID(ctx, state, pChainHeight, subnetID) + validatorSet, err := warp.GetCanonicalValidatorSetFromSubnetID(ctx, validatorState, pChainHeight, subnetID) if err != nil { return nil, fmt.Errorf("failed to get validator set: %w", err) } From 138598f6e2f0eac2110a43c9ee3b50ba011c36d2 Mon Sep 17 00:00:00 2001 From: Stephen Buttolph Date: Thu, 2 Oct 2025 14:44:52 -0400 Subject: [PATCH 2/2] Dead code --- plugin/evm/vm.go | 20 +------------------- warp/service.go | 16 +++++++--------- 2 files changed, 8 insertions(+), 28 deletions(-) diff --git a/plugin/evm/vm.go b/plugin/evm/vm.go index 8d290b80b9..3f1cbdc15d 100644 --- a/plugin/evm/vm.go +++ b/plugin/evm/vm.go @@ -1077,7 +1077,7 @@ func (vm *VM) CreateHandlers(context.Context) (map[string]http.Handler, error) { warpSDKClient := vm.Network.NewClient(p2p.SignatureRequestHandlerID) signatureAggregator := acp118.NewSignatureAggregator(vm.ctx.Log, warpSDKClient) - if err := handler.RegisterName("warp", warp.NewAPI(vm.ctx, vm.warpBackend, signatureAggregator, vm.requirePrimaryNetworkSigners)); err != nil { + if err := handler.RegisterName("warp", warp.NewAPI(vm.ctx, vm.warpBackend, signatureAggregator)); err != nil { return nil, err } enabledAPIs = append(enabledAPIs, "warp") @@ -1111,24 +1111,6 @@ func (vm *VM) rules(number *big.Int, time uint64) extras.Rules { return *params.GetRulesExtra(ethrules) } -// currentRules returns the chain rules for the current block. -func (vm *VM) currentRules() extras.Rules { - header := vm.eth.APIBackend.CurrentHeader() - return vm.rules(header.Number, header.Time) -} - -// requirePrimaryNetworkSigners returns true if warp messages from the primary -// network must be signed by the primary network validators. -// This is necessary when the subnet is not validating the primary network. -func (vm *VM) requirePrimaryNetworkSigners() bool { - switch c := vm.currentRules().Precompiles[warpcontract.ContractAddress].(type) { - case *warpcontract.Config: - return c.RequirePrimaryNetworkSigners - default: // includes nil due to non-presence - return false - } -} - func (vm *VM) startContinuousProfiler() { // If the profiler directory is empty, return immediately // without creating or starting a continuous profiler. diff --git a/warp/service.go b/warp/service.go index 3c973bc861..ed2f438c94 100644 --- a/warp/service.go +++ b/warp/service.go @@ -23,18 +23,16 @@ var errNoValidators = errors.New("cannot aggregate signatures from subnet with n // API introduces snowman specific functionality to the evm type API struct { - chainContext *snow.Context - backend Backend - signatureAggregator *acp118.SignatureAggregator - requirePrimaryNetworkSigners func() bool + chainContext *snow.Context + backend Backend + signatureAggregator *acp118.SignatureAggregator } -func NewAPI(chainCtx *snow.Context, backend Backend, signatureAggregator *acp118.SignatureAggregator, requirePrimaryNetworkSigners func() bool) *API { +func NewAPI(chainCtx *snow.Context, backend Backend, signatureAggregator *acp118.SignatureAggregator) *API { return &API{ - backend: backend, - chainContext: chainCtx, - signatureAggregator: signatureAggregator, - requirePrimaryNetworkSigners: requirePrimaryNetworkSigners, + backend: backend, + chainContext: chainCtx, + signatureAggregator: signatureAggregator, } }