itests: Fix TestEthFilterAPIDisabledViaConfig

This commit is contained in:
Łukasz Magiera 2023-02-02 14:52:01 +01:00
parent fe1e0974cb
commit 8ce0b984b7
4 changed files with 66 additions and 21 deletions

View File

@ -7,9 +7,9 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/filecoin-project/lotus/api"
"github.com/filecoin-project/lotus/chain/types/ethtypes" "github.com/filecoin-project/lotus/chain/types/ethtypes"
"github.com/filecoin-project/lotus/itests/kit" "github.com/filecoin-project/lotus/itests/kit"
"github.com/filecoin-project/lotus/node/impl/full"
) )
func TestEthFilterAPIDisabledViaConfig(t *testing.T) { func TestEthFilterAPIDisabledViaConfig(t *testing.T) {
@ -22,41 +22,41 @@ func TestEthFilterAPIDisabledViaConfig(t *testing.T) {
_, err := client.EthNewPendingTransactionFilter(ctx) _, err := client.EthNewPendingTransactionFilter(ctx)
require.NotNil(t, err) require.NotNil(t, err)
require.Equal(t, err.Error(), api.ErrNotSupported.Error()) require.Equal(t, err.Error(), full.ErrModuleDisabled.Error())
_, err = client.EthGetLogs(ctx, &ethtypes.EthFilterSpec{}) _, err = client.EthGetLogs(ctx, &ethtypes.EthFilterSpec{})
require.NotNil(t, err) require.NotNil(t, err)
require.Equal(t, err.Error(), api.ErrNotSupported.Error()) require.Equal(t, err.Error(), full.ErrModuleDisabled.Error())
_, err = client.EthGetFilterChanges(ctx, ethtypes.EthFilterID{}) _, err = client.EthGetFilterChanges(ctx, ethtypes.EthFilterID{})
require.NotNil(t, err) require.NotNil(t, err)
require.Equal(t, err.Error(), api.ErrNotSupported.Error()) require.Equal(t, err.Error(), full.ErrModuleDisabled.Error())
_, err = client.EthGetFilterLogs(ctx, ethtypes.EthFilterID{}) _, err = client.EthGetFilterLogs(ctx, ethtypes.EthFilterID{})
require.NotNil(t, err) require.NotNil(t, err)
require.Equal(t, err.Error(), api.ErrNotSupported.Error()) require.Equal(t, err.Error(), full.ErrModuleDisabled.Error())
_, err = client.EthNewFilter(ctx, &ethtypes.EthFilterSpec{}) _, err = client.EthNewFilter(ctx, &ethtypes.EthFilterSpec{})
require.NotNil(t, err) require.NotNil(t, err)
require.Equal(t, err.Error(), api.ErrNotSupported.Error()) require.Equal(t, err.Error(), full.ErrModuleDisabled.Error())
_, err = client.EthNewBlockFilter(ctx) _, err = client.EthNewBlockFilter(ctx)
require.NotNil(t, err) require.NotNil(t, err)
require.Equal(t, err.Error(), api.ErrNotSupported.Error()) require.Equal(t, err.Error(), full.ErrModuleDisabled.Error())
_, err = client.EthNewPendingTransactionFilter(ctx) _, err = client.EthNewPendingTransactionFilter(ctx)
require.NotNil(t, err) require.NotNil(t, err)
require.Equal(t, err.Error(), api.ErrNotSupported.Error()) require.Equal(t, err.Error(), full.ErrModuleDisabled.Error())
_, err = client.EthUninstallFilter(ctx, ethtypes.EthFilterID{}) _, err = client.EthUninstallFilter(ctx, ethtypes.EthFilterID{})
require.NotNil(t, err) require.NotNil(t, err)
require.Equal(t, err.Error(), api.ErrNotSupported.Error()) require.Equal(t, err.Error(), full.ErrModuleDisabled.Error())
_, err = client.EthSubscribe(ctx, []byte{}) _, err = client.EthSubscribe(ctx, []byte("{}"))
require.NotNil(t, err) require.NotNil(t, err)
require.Equal(t, err.Error(), api.ErrNotSupported.Error()) require.Equal(t, err.Error(), full.ErrModuleDisabled.Error())
_, err = client.EthUnsubscribe(ctx, ethtypes.EthSubscriptionID{}) _, err = client.EthUnsubscribe(ctx, ethtypes.EthSubscriptionID{})
require.NotNil(t, err) require.NotNil(t, err)
require.Equal(t, err.Error(), api.ErrNotSupported.Error()) require.Equal(t, err.Error(), full.ErrModuleDisabled.Error())
} }

View File

@ -261,10 +261,14 @@ func ConfigFullNode(c interface{}) Option {
// in lite-mode Eth api is provided by gateway // in lite-mode Eth api is provided by gateway
ApplyIf(isFullNode, ApplyIf(isFullNode,
Override(new(full.EthEventAPI), modules.EthEventAPI(cfg.Fevm)), If(cfg.Fevm.EnableEthRPC,
Override(new(full.EthModuleAPI), modules.EthModuleAPI(cfg.Fevm)),
If(cfg.Fevm.EnableEthRPC, Override(new(full.EthModuleAPI), modules.EthModuleAPI(cfg.Fevm))), Override(new(full.EthEventAPI), modules.EthEventAPI(cfg.Fevm)),
If(!cfg.Fevm.EnableEthRPC, Override(new(full.EthModuleAPI), &full.EthModuleDummy{})), ),
If(!cfg.Fevm.EnableEthRPC,
Override(new(full.EthModuleAPI), &full.EthModuleDummy{}),
Override(new(full.EthEventAPI), &full.EthModuleDummy{}),
),
), ),
) )
} }

View File

@ -6,6 +6,8 @@ import (
"github.com/ipfs/go-cid" "github.com/ipfs/go-cid"
"github.com/filecoin-project/go-jsonrpc"
"github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/api"
"github.com/filecoin-project/lotus/chain/types/ethtypes" "github.com/filecoin-project/lotus/chain/types/ethtypes"
) )
@ -122,4 +124,41 @@ func (e *EthModuleDummy) Web3ClientVersion(ctx context.Context) (string, error)
return "", ErrModuleDisabled return "", ErrModuleDisabled
} }
func (e *EthModuleDummy) EthGetLogs(ctx context.Context, filter *ethtypes.EthFilterSpec) (*ethtypes.EthFilterResult, error) {
return &ethtypes.EthFilterResult{}, ErrModuleDisabled
}
func (e *EthModuleDummy) EthGetFilterChanges(ctx context.Context, id ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error) {
return &ethtypes.EthFilterResult{}, ErrModuleDisabled
}
func (e *EthModuleDummy) EthGetFilterLogs(ctx context.Context, id ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error) {
return &ethtypes.EthFilterResult{}, ErrModuleDisabled
}
func (e *EthModuleDummy) EthNewFilter(ctx context.Context, filter *ethtypes.EthFilterSpec) (ethtypes.EthFilterID, error) {
return ethtypes.EthFilterID{}, ErrModuleDisabled
}
func (e *EthModuleDummy) EthNewBlockFilter(ctx context.Context) (ethtypes.EthFilterID, error) {
return ethtypes.EthFilterID{}, ErrModuleDisabled
}
func (e *EthModuleDummy) EthNewPendingTransactionFilter(ctx context.Context) (ethtypes.EthFilterID, error) {
return ethtypes.EthFilterID{}, ErrModuleDisabled
}
func (e *EthModuleDummy) EthUninstallFilter(ctx context.Context, id ethtypes.EthFilterID) (bool, error) {
return false, ErrModuleDisabled
}
func (e *EthModuleDummy) EthSubscribe(ctx context.Context, params jsonrpc.RawParams) (ethtypes.EthSubscriptionID, error) {
return ethtypes.EthSubscriptionID{}, ErrModuleDisabled
}
func (e *EthModuleDummy) EthUnsubscribe(ctx context.Context, id ethtypes.EthSubscriptionID) (bool, error) {
return false, ErrModuleDisabled
}
var _ EthModuleAPI = &EthModuleDummy{} var _ EthModuleAPI = &EthModuleDummy{}
var _ EthEventAPI = &EthModuleDummy{}

View File

@ -1148,12 +1148,14 @@ func (e *EthEvent) EthSubscribe(ctx context.Context, p jsonrpc.RawParams) (ethty
} }
var addresses []address.Address var addresses []address.Address
for _, ea := range params.Params.Address { if params.Params != nil {
a, err := ea.ToFilecoinAddress() for _, ea := range params.Params.Address {
if err != nil { a, err := ea.ToFilecoinAddress()
return ethtypes.EthSubscriptionID{}, xerrors.Errorf("invalid address %x", ea) if err != nil {
return ethtypes.EthSubscriptionID{}, xerrors.Errorf("invalid address %x", ea)
}
addresses = append(addresses, a)
} }
addresses = append(addresses, a)
} }
f, err := e.EventFilterManager.Install(ctx, -1, -1, cid.Undef, addresses, keys) f, err := e.EventFilterManager.Install(ctx, -1, -1, cid.Undef, addresses, keys)