From 943dec525c8ccbc904eb6541845189f528150dec Mon Sep 17 00:00:00 2001 From: Preston Van Loon Date: Wed, 26 Jan 2022 08:48:20 -0600 Subject: [PATCH] Refactor mock test helpers (#10133) * Delete deploy contract tool. Move mock to its own package as testonly with some helper functions * gofmt contracts/deposit/mock/mock.go * move stategen mock.go to its on testonly pkg * move password_reader_mock.go to mock testonly package * move mock keymanager to its own testonly package * move attestations mock * move voluntaryexits mock * Move slashings mock to mock pkg * move the slasher mock Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> --- .../operations/attestations/BUILD.bazel | 1 - .../operations/attestations/mock/BUILD.bazel | 13 ++ .../attestations/{ => mock}/mock.go | 2 +- beacon-chain/operations/slashings/BUILD.bazel | 2 +- .../operations/slashings/mock/BUILD.bazel | 13 ++ .../operations/slashings/{ => mock}/mock.go | 2 +- .../operations/slashings/service_test.go | 5 +- .../operations/voluntaryexits/BUILD.bazel | 1 - .../voluntaryexits/mock/BUILD.bazel | 14 ++ .../voluntaryexits/{ => mock}/mock.go | 2 +- beacon-chain/powchain/BUILD.bazel | 1 + beacon-chain/powchain/block_reader_test.go | 9 +- beacon-chain/powchain/log_processing_test.go | 35 ++-- beacon-chain/powchain/service_test.go | 25 +-- beacon-chain/rpc/eth/beacon/BUILD.bazel | 4 +- beacon-chain/rpc/eth/beacon/pool_test.go | 24 +-- beacon-chain/rpc/eth/validator/BUILD.bazel | 1 + .../rpc/eth/validator/validator_test.go | 5 +- .../rpc/prysm/v1alpha1/beacon/BUILD.bazel | 1 + .../prysm/v1alpha1/beacon/validators_test.go | 5 +- .../rpc/prysm/v1alpha1/slasher/BUILD.bazel | 2 +- .../v1alpha1/slasher/attestations_test.go | 4 +- .../rpc/prysm/v1alpha1/slasher/server_test.go | 10 +- .../rpc/prysm/v1alpha1/validator/BUILD.bazel | 1 + .../prysm/v1alpha1/validator/status_test.go | 14 +- beacon-chain/rpc/statefetcher/BUILD.bazel | 2 +- beacon-chain/rpc/statefetcher/fetcher_test.go | 10 +- beacon-chain/slasher/BUILD.bazel | 4 +- .../slasher/detect_attestations_test.go | 8 +- beacon-chain/slasher/detect_blocks_test.go | 4 +- beacon-chain/slasher/mock/BUILD.bazel | 13 ++ .../{ => mock}/mock_slashing_checker.go | 2 +- .../slasher/process_slashings_test.go | 6 +- beacon-chain/slasher/service_test.go | 3 +- beacon-chain/state/stategen/BUILD.bazel | 1 - beacon-chain/state/stategen/mock/BUILD.bazel | 15 ++ .../state/stategen/{ => mock}/mock.go | 2 +- cmd/BUILD.bazel | 3 +- cmd/helpers_test.go | 3 +- cmd/mock/BUILD.bazel | 10 + cmd/{ => mock}/password_reader_mock.go | 2 +- container/trie/BUILD.bazel | 2 +- container/trie/sparse_merkle_test.go | 2 +- contracts/deposit/BUILD.bazel | 6 +- contracts/deposit/contract_test.go | 11 +- contracts/deposit/deposit_tree_test.go | 2 +- contracts/deposit/helper.go | 23 +++ contracts/deposit/mock/BUILD.bazel | 19 ++ contracts/deposit/{ => mock}/mock.go | 15 +- testing/endtoend/BUILD.bazel | 4 +- testing/endtoend/components/BUILD.bazel | 1 + testing/endtoend/components/eth1.go | 2 +- .../endtoend/slasher_simulator_e2e_test.go | 8 +- testing/slasher/simulator/BUILD.bazel | 2 +- testing/slasher/simulator/simulator_test.go | 4 +- tools/deployContract/BUILD.bazel | 27 --- tools/deployContract/README.md | 35 ---- tools/deployContract/deployContract.go | 171 ------------------ validator/client/BUILD.bazel | 2 +- validator/client/runner_test.go | 4 +- validator/client/wait_for_activation_test.go | 6 +- validator/keymanager/remote/BUILD.bazel | 1 - validator/keymanager/remote/mock/BUILD.bazel | 15 ++ .../remote/{ => mock}/mock_keymanager.go | 2 +- 64 files changed, 281 insertions(+), 367 deletions(-) create mode 100644 beacon-chain/operations/attestations/mock/BUILD.bazel rename beacon-chain/operations/attestations/{ => mock}/mock.go (99%) create mode 100644 beacon-chain/operations/slashings/mock/BUILD.bazel rename beacon-chain/operations/slashings/{ => mock}/mock.go (98%) create mode 100644 beacon-chain/operations/voluntaryexits/mock/BUILD.bazel rename beacon-chain/operations/voluntaryexits/{ => mock}/mock.go (96%) create mode 100644 beacon-chain/slasher/mock/BUILD.bazel rename beacon-chain/slasher/{ => mock}/mock_slashing_checker.go (99%) create mode 100644 beacon-chain/state/stategen/mock/BUILD.bazel rename beacon-chain/state/stategen/{ => mock}/mock.go (99%) create mode 100644 cmd/mock/BUILD.bazel rename cmd/{ => mock}/password_reader_mock.go (99%) create mode 100644 contracts/deposit/helper.go create mode 100644 contracts/deposit/mock/BUILD.bazel rename contracts/deposit/{ => mock}/mock.go (96%) delete mode 100644 tools/deployContract/BUILD.bazel delete mode 100644 tools/deployContract/README.md delete mode 100644 tools/deployContract/deployContract.go create mode 100644 validator/keymanager/remote/mock/BUILD.bazel rename validator/keymanager/remote/{ => mock}/mock_keymanager.go (98%) diff --git a/beacon-chain/operations/attestations/BUILD.bazel b/beacon-chain/operations/attestations/BUILD.bazel index 26fa214f45..efa88bd1d6 100644 --- a/beacon-chain/operations/attestations/BUILD.bazel +++ b/beacon-chain/operations/attestations/BUILD.bazel @@ -5,7 +5,6 @@ go_library( srcs = [ "log.go", "metrics.go", - "mock.go", "pool.go", "prepare_forkchoice.go", "prune_expired.go", diff --git a/beacon-chain/operations/attestations/mock/BUILD.bazel b/beacon-chain/operations/attestations/mock/BUILD.bazel new file mode 100644 index 0000000000..36cd1df147 --- /dev/null +++ b/beacon-chain/operations/attestations/mock/BUILD.bazel @@ -0,0 +1,13 @@ +load("@prysm//tools/go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + testonly = True, + srcs = ["mock.go"], + importpath = "github.com/prysmaticlabs/prysm/beacon-chain/operations/attestations/mock", + visibility = ["//visibility:public"], + deps = [ + "//proto/prysm/v1alpha1:go_default_library", + "@com_github_prysmaticlabs_eth2_types//:go_default_library", + ], +) diff --git a/beacon-chain/operations/attestations/mock.go b/beacon-chain/operations/attestations/mock/mock.go similarity index 99% rename from beacon-chain/operations/attestations/mock.go rename to beacon-chain/operations/attestations/mock/mock.go index c396fba832..8ea89ba2d2 100644 --- a/beacon-chain/operations/attestations/mock.go +++ b/beacon-chain/operations/attestations/mock/mock.go @@ -1,4 +1,4 @@ -package attestations +package mock import ( "context" diff --git a/beacon-chain/operations/slashings/BUILD.bazel b/beacon-chain/operations/slashings/BUILD.bazel index 7f004a1d45..864eaeeba1 100644 --- a/beacon-chain/operations/slashings/BUILD.bazel +++ b/beacon-chain/operations/slashings/BUILD.bazel @@ -6,7 +6,6 @@ go_library( "doc.go", "log.go", "metrics.go", - "mock.go", "service.go", "types.go", ], @@ -44,6 +43,7 @@ go_test( ], embed = [":go_default_library"], deps = [ + "//beacon-chain/operations/slashings/mock:go_default_library", "//beacon-chain/state:go_default_library", "//config/fieldparams:go_default_library", "//config/params:go_default_library", diff --git a/beacon-chain/operations/slashings/mock/BUILD.bazel b/beacon-chain/operations/slashings/mock/BUILD.bazel new file mode 100644 index 0000000000..8d7f21403d --- /dev/null +++ b/beacon-chain/operations/slashings/mock/BUILD.bazel @@ -0,0 +1,13 @@ +load("@prysm//tools/go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + testonly = True, + srcs = ["mock.go"], + importpath = "github.com/prysmaticlabs/prysm/beacon-chain/operations/slashings/mock", + visibility = ["//visibility:public"], + deps = [ + "//beacon-chain/state:go_default_library", + "//proto/prysm/v1alpha1:go_default_library", + ], +) diff --git a/beacon-chain/operations/slashings/mock.go b/beacon-chain/operations/slashings/mock/mock.go similarity index 98% rename from beacon-chain/operations/slashings/mock.go rename to beacon-chain/operations/slashings/mock/mock.go index b5042e2c11..d35e190b80 100644 --- a/beacon-chain/operations/slashings/mock.go +++ b/beacon-chain/operations/slashings/mock/mock.go @@ -1,4 +1,4 @@ -package slashings +package mock import ( "context" diff --git a/beacon-chain/operations/slashings/service_test.go b/beacon-chain/operations/slashings/service_test.go index 888eacc931..e85beeef68 100644 --- a/beacon-chain/operations/slashings/service_test.go +++ b/beacon-chain/operations/slashings/service_test.go @@ -3,14 +3,15 @@ package slashings import ( "testing" + "github.com/prysmaticlabs/prysm/beacon-chain/operations/slashings/mock" "github.com/prysmaticlabs/prysm/testing/require" ) var ( _ = PoolManager(&Pool{}) _ = PoolInserter(&Pool{}) - _ = PoolManager(&PoolMock{}) - _ = PoolInserter(&PoolMock{}) + _ = PoolManager(&mock.PoolMock{}) + _ = PoolInserter(&mock.PoolMock{}) ) func TestPool_validatorSlashingPreconditionCheck_requiresLock(t *testing.T) { diff --git a/beacon-chain/operations/voluntaryexits/BUILD.bazel b/beacon-chain/operations/voluntaryexits/BUILD.bazel index 169f60bfb0..bca62cf25c 100644 --- a/beacon-chain/operations/voluntaryexits/BUILD.bazel +++ b/beacon-chain/operations/voluntaryexits/BUILD.bazel @@ -4,7 +4,6 @@ go_library( name = "go_default_library", srcs = [ "doc.go", - "mock.go", "service.go", ], importpath = "github.com/prysmaticlabs/prysm/beacon-chain/operations/voluntaryexits", diff --git a/beacon-chain/operations/voluntaryexits/mock/BUILD.bazel b/beacon-chain/operations/voluntaryexits/mock/BUILD.bazel new file mode 100644 index 0000000000..30dacf3bf5 --- /dev/null +++ b/beacon-chain/operations/voluntaryexits/mock/BUILD.bazel @@ -0,0 +1,14 @@ +load("@prysm//tools/go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + testonly = True, + srcs = ["mock.go"], + importpath = "github.com/prysmaticlabs/prysm/beacon-chain/operations/voluntaryexits/mock", + visibility = ["//visibility:public"], + deps = [ + "//beacon-chain/state:go_default_library", + "//proto/prysm/v1alpha1:go_default_library", + "@com_github_prysmaticlabs_eth2_types//:go_default_library", + ], +) diff --git a/beacon-chain/operations/voluntaryexits/mock.go b/beacon-chain/operations/voluntaryexits/mock/mock.go similarity index 96% rename from beacon-chain/operations/voluntaryexits/mock.go rename to beacon-chain/operations/voluntaryexits/mock/mock.go index 7a321fa23f..f05700e242 100644 --- a/beacon-chain/operations/voluntaryexits/mock.go +++ b/beacon-chain/operations/voluntaryexits/mock/mock.go @@ -1,4 +1,4 @@ -package voluntaryexits +package mock import ( "context" diff --git a/beacon-chain/powchain/BUILD.bazel b/beacon-chain/powchain/BUILD.bazel index 61f650dca2..39b168c503 100644 --- a/beacon-chain/powchain/BUILD.bazel +++ b/beacon-chain/powchain/BUILD.bazel @@ -91,6 +91,7 @@ go_test( "//config/params:go_default_library", "//container/trie:go_default_library", "//contracts/deposit:go_default_library", + "//contracts/deposit/mock:go_default_library", "//crypto/bls:go_default_library", "//encoding/bytesutil:go_default_library", "//monitoring/clientstats:go_default_library", diff --git a/beacon-chain/powchain/block_reader_test.go b/beacon-chain/powchain/block_reader_test.go index 6c5d8396dc..f7297e16e5 100644 --- a/beacon-chain/powchain/block_reader_test.go +++ b/beacon-chain/powchain/block_reader_test.go @@ -13,6 +13,7 @@ import ( dbutil "github.com/prysmaticlabs/prysm/beacon-chain/db/testing" mockPOW "github.com/prysmaticlabs/prysm/beacon-chain/powchain/testing" contracts "github.com/prysmaticlabs/prysm/contracts/deposit" + "github.com/prysmaticlabs/prysm/contracts/deposit/mock" "github.com/prysmaticlabs/prysm/testing/assert" "github.com/prysmaticlabs/prysm/testing/require" ) @@ -27,7 +28,7 @@ func setDefaultMocks(service *Service) *Service { } func TestLatestMainchainInfo_OK(t *testing.T) { - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") beaconDB := dbutil.SetupDB(t) @@ -215,7 +216,7 @@ func TestBlockExistsWithCache_HeaderNotCached(t *testing.T) { func TestService_BlockNumberByTimestamp(t *testing.T) { beaconDB := dbutil.SetupDB(t) - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") web3Service, err := NewService(context.Background(), WithHttpEndpoints([]string{endpoint}), @@ -242,7 +243,7 @@ func TestService_BlockNumberByTimestamp(t *testing.T) { func TestService_BlockNumberByTimestampLessTargetTime(t *testing.T) { beaconDB := dbutil.SetupDB(t) - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") web3Service, err := NewService(context.Background(), WithHttpEndpoints([]string{endpoint}), @@ -275,7 +276,7 @@ func TestService_BlockNumberByTimestampLessTargetTime(t *testing.T) { func TestService_BlockNumberByTimestampMoreTargetTime(t *testing.T) { beaconDB := dbutil.SetupDB(t) - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") web3Service, err := NewService(context.Background(), WithHttpEndpoints([]string{endpoint}), diff --git a/beacon-chain/powchain/log_processing_test.go b/beacon-chain/powchain/log_processing_test.go index 1a743c601b..a870b85879 100644 --- a/beacon-chain/powchain/log_processing_test.go +++ b/beacon-chain/powchain/log_processing_test.go @@ -17,6 +17,7 @@ import ( mockPOW "github.com/prysmaticlabs/prysm/beacon-chain/powchain/testing" "github.com/prysmaticlabs/prysm/config/params" contracts "github.com/prysmaticlabs/prysm/contracts/deposit" + "github.com/prysmaticlabs/prysm/contracts/deposit/mock" "github.com/prysmaticlabs/prysm/testing/assert" "github.com/prysmaticlabs/prysm/testing/require" "github.com/prysmaticlabs/prysm/testing/util" @@ -26,7 +27,7 @@ import ( func TestProcessDepositLog_OK(t *testing.T) { hook := logTest.NewGlobal() - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") beaconDB := testDB.SetupDB(t) @@ -53,7 +54,7 @@ func TestProcessDepositLog_OK(t *testing.T) { require.NoError(t, err) data := deposits[0].Data - testAcc.TxOpts.Value = contracts.Amount32Eth() + testAcc.TxOpts.Value = mock.Amount32Eth() testAcc.TxOpts.GasLimit = 1000000 _, err = testAcc.Contract.Deposit(testAcc.TxOpts, data.PublicKey, data.WithdrawalCredentials, data.Signature, depositRoots[0]) require.NoError(t, err, "Could not deposit to deposit contract") @@ -91,7 +92,7 @@ func TestProcessDepositLog_OK(t *testing.T) { func TestProcessDepositLog_InsertsPendingDeposit(t *testing.T) { hook := logTest.NewGlobal() - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") beaconDB := testDB.SetupDB(t) depositCache, err := depositcache.New() @@ -116,7 +117,7 @@ func TestProcessDepositLog_InsertsPendingDeposit(t *testing.T) { require.NoError(t, err) data := deposits[0].Data - testAcc.TxOpts.Value = contracts.Amount32Eth() + testAcc.TxOpts.Value = mock.Amount32Eth() testAcc.TxOpts.GasLimit = 1000000 _, err = testAcc.Contract.Deposit(testAcc.TxOpts, data.PublicKey, data.WithdrawalCredentials, data.Signature, depositRoots[0]) @@ -150,7 +151,7 @@ func TestProcessDepositLog_InsertsPendingDeposit(t *testing.T) { } func TestUnpackDepositLogData_OK(t *testing.T) { - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") beaconDB := testDB.SetupDB(t) web3Service, err := NewService(context.Background(), @@ -171,7 +172,7 @@ func TestUnpackDepositLogData_OK(t *testing.T) { require.NoError(t, err) data := deposits[0].Data - testAcc.TxOpts.Value = contracts.Amount32Eth() + testAcc.TxOpts.Value = mock.Amount32Eth() testAcc.TxOpts.GasLimit = 1000000 _, err = testAcc.Contract.Deposit(testAcc.TxOpts, data.PublicKey, data.WithdrawalCredentials, data.Signature, depositRoots[0]) require.NoError(t, err, "Could not deposit to deposit contract") @@ -197,7 +198,7 @@ func TestUnpackDepositLogData_OK(t *testing.T) { func TestProcessETH2GenesisLog_8DuplicatePubkeys(t *testing.T) { hook := logTest.NewGlobal() - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") beaconDB := testDB.SetupDB(t) depositCache, err := depositcache.New() @@ -228,14 +229,14 @@ func TestProcessETH2GenesisLog_8DuplicatePubkeys(t *testing.T) { require.NoError(t, err) data := deposits[0].Data - testAcc.TxOpts.Value = contracts.Amount32Eth() + testAcc.TxOpts.Value = mock.Amount32Eth() testAcc.TxOpts.GasLimit = 1000000 // 64 Validators are used as size required for beacon-chain to start. This number // is defined in the deposit contract as the number required for the testnet. The actual number // is 2**14 for i := 0; i < depositsReqForChainStart; i++ { - testAcc.TxOpts.Value = contracts.Amount32Eth() + testAcc.TxOpts.Value = mock.Amount32Eth() _, err = testAcc.Contract.Deposit(testAcc.TxOpts, data.PublicKey, data.WithdrawalCredentials, data.Signature, depositRoots[0]) require.NoError(t, err, "Could not deposit to deposit contract") @@ -267,7 +268,7 @@ func TestProcessETH2GenesisLog(t *testing.T) { cfg.GenesisDelay = 0 params.OverrideBeaconConfig(cfg) hook := logTest.NewGlobal() - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") beaconDB := testDB.SetupDB(t) depositCache, err := depositcache.New() @@ -301,7 +302,7 @@ func TestProcessETH2GenesisLog(t *testing.T) { // is 2**14 for i := 0; i < depositsReqForChainStart; i++ { data := deposits[i].Data - testAcc.TxOpts.Value = contracts.Amount32Eth() + testAcc.TxOpts.Value = mock.Amount32Eth() testAcc.TxOpts.GasLimit = 1000000 _, err = testAcc.Contract.Deposit(testAcc.TxOpts, data.PublicKey, data.WithdrawalCredentials, data.Signature, roots[i]) require.NoError(t, err, "Could not deposit to deposit contract") @@ -353,7 +354,7 @@ func TestProcessETH2GenesisLog(t *testing.T) { func TestProcessETH2GenesisLog_CorrectNumOfDeposits(t *testing.T) { hook := logTest.NewGlobal() - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") kvStore := testDB.SetupDB(t) depositCache, err := depositcache.New() @@ -399,7 +400,7 @@ func TestProcessETH2GenesisLog_CorrectNumOfDeposits(t *testing.T) { // is 2**14 for i := 0; i < totalNumOfDeposits; i++ { data := deposits[i].Data - testAcc.TxOpts.Value = contracts.Amount32Eth() + testAcc.TxOpts.Value = mock.Amount32Eth() testAcc.TxOpts.GasLimit = 1000000 _, err = testAcc.Contract.Deposit(testAcc.TxOpts, data.PublicKey, data.WithdrawalCredentials, data.Signature, depositRoots[i]) require.NoError(t, err, "Could not deposit to deposit contract") @@ -446,7 +447,7 @@ func TestProcessETH2GenesisLog_CorrectNumOfDeposits(t *testing.T) { func TestProcessETH2GenesisLog_LargePeriodOfNoLogs(t *testing.T) { hook := logTest.NewGlobal() - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") kvStore := testDB.SetupDB(t) depositCache, err := depositcache.New() @@ -491,7 +492,7 @@ func TestProcessETH2GenesisLog_LargePeriodOfNoLogs(t *testing.T) { // is 2**14 for i := 0; i < totalNumOfDeposits; i++ { data := deposits[i].Data - testAcc.TxOpts.Value = contracts.Amount32Eth() + testAcc.TxOpts.Value = mock.Amount32Eth() testAcc.TxOpts.GasLimit = 1000000 _, err = testAcc.Contract.Deposit(testAcc.TxOpts, data.PublicKey, data.WithdrawalCredentials, data.Signature, depositRoots[i]) require.NoError(t, err, "Could not deposit to deposit contract") @@ -549,7 +550,7 @@ func TestProcessETH2GenesisLog_LargePeriodOfNoLogs(t *testing.T) { func TestCheckForChainstart_NoValidator(t *testing.T) { hook := logTest.NewGlobal() - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") beaconDB := testDB.SetupDB(t) s := newPowchainService(t, testAcc, beaconDB) @@ -557,7 +558,7 @@ func TestCheckForChainstart_NoValidator(t *testing.T) { require.LogsDoNotContain(t, hook, "Could not determine active validator count from pre genesis state") } -func newPowchainService(t *testing.T, eth1Backend *contracts.TestAccount, beaconDB db.Database) *Service { +func newPowchainService(t *testing.T, eth1Backend *mock.TestAccount, beaconDB db.Database) *Service { depositCache, err := depositcache.New() require.NoError(t, err) web3Service, err := NewService(context.Background(), diff --git a/beacon-chain/powchain/service_test.go b/beacon-chain/powchain/service_test.go index 2aada570d7..d3c48b9352 100644 --- a/beacon-chain/powchain/service_test.go +++ b/beacon-chain/powchain/service_test.go @@ -22,6 +22,7 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen" "github.com/prysmaticlabs/prysm/config/params" contracts "github.com/prysmaticlabs/prysm/contracts/deposit" + "github.com/prysmaticlabs/prysm/contracts/deposit/mock" "github.com/prysmaticlabs/prysm/encoding/bytesutil" "github.com/prysmaticlabs/prysm/monitoring/clientstats" "github.com/prysmaticlabs/prysm/network" @@ -125,7 +126,7 @@ var depositsReqForChainStart = 64 func TestStart_OK(t *testing.T) { hook := logTest.NewGlobal() beaconDB := dbutil.SetupDB(t) - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") web3Service, err := NewService(context.Background(), WithHttpEndpoints([]string{endpoint}), @@ -154,7 +155,7 @@ func TestStart_OK(t *testing.T) { func TestStart_NoHttpEndpointDefinedFails_WithoutChainStarted(t *testing.T) { hook := logTest.NewGlobal() beaconDB := dbutil.SetupDB(t) - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") s, err := NewService(context.Background(), WithHttpEndpoints([]string{""}), @@ -189,7 +190,7 @@ func TestStart_NoHttpEndpointDefinedFails_WithoutChainStarted(t *testing.T) { func TestStart_NoHttpEndpointDefinedSucceeds_WithGenesisState(t *testing.T) { hook := logTest.NewGlobal() beaconDB := dbutil.SetupDB(t) - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") st, _ := util.DeterministicGenesisState(t, 10) b := util.NewBeaconBlock() @@ -223,7 +224,7 @@ func TestStart_NoHttpEndpointDefinedSucceeds_WithGenesisState(t *testing.T) { func TestStart_NoHttpEndpointDefinedSucceeds_WithChainStarted(t *testing.T) { hook := logTest.NewGlobal() beaconDB := dbutil.SetupDB(t) - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") require.NoError(t, beaconDB.SavePowchainData(context.Background(), ðpb.ETH1ChainData{ @@ -244,7 +245,7 @@ func TestStart_NoHttpEndpointDefinedSucceeds_WithChainStarted(t *testing.T) { func TestStop_OK(t *testing.T) { hook := logTest.NewGlobal() - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") beaconDB := dbutil.SetupDB(t) web3Service, err := NewService(context.Background(), @@ -269,7 +270,7 @@ func TestStop_OK(t *testing.T) { } func TestService_Eth1Synced(t *testing.T) { - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") beaconDB := dbutil.SetupDB(t) web3Service, err := NewService(context.Background(), @@ -294,7 +295,7 @@ func TestService_Eth1Synced(t *testing.T) { } func TestFollowBlock_OK(t *testing.T) { - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") beaconDB := dbutil.SetupDB(t) web3Service, err := NewService(context.Background(), @@ -399,7 +400,7 @@ func TestLogTillGenesis_OK(t *testing.T) { params.OverrideBeaconNetworkConfig(nCfg) hook := logTest.NewGlobal() - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") beaconDB := dbutil.SetupDB(t) web3Service, err := NewService(context.Background(), @@ -533,7 +534,7 @@ func TestInitDepositCacheWithFinalization_OK(t *testing.T) { } func TestNewService_EarliestVotingBlock(t *testing.T) { - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") beaconDB := dbutil.SetupDB(t) web3Service, err := NewService(context.Background(), @@ -583,7 +584,7 @@ func TestNewService_EarliestVotingBlock(t *testing.T) { } func TestNewService_Eth1HeaderRequLimit(t *testing.T) { - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") beaconDB := dbutil.SetupDB(t) @@ -618,7 +619,7 @@ func TestServiceFallbackCorrectly(t *testing.T) { firstEndpoint := "A" secondEndpoint := "B" - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") beaconDB := dbutil.SetupDB(t) @@ -828,7 +829,7 @@ func TestETH1Endpoints(t *testing.T) { secondEndpoint := "B" endpoints := []string{firstEndpoint, secondEndpoint} - testAcc, err := contracts.Setup() + testAcc, err := mock.Setup() require.NoError(t, err, "Unable to set up simulated backend") beaconDB := dbutil.SetupDB(t) diff --git a/beacon-chain/rpc/eth/beacon/BUILD.bazel b/beacon-chain/rpc/eth/beacon/BUILD.bazel index d59977385c..2d1cf4b69c 100644 --- a/beacon-chain/rpc/eth/beacon/BUILD.bazel +++ b/beacon-chain/rpc/eth/beacon/BUILD.bazel @@ -80,9 +80,9 @@ go_test( "//beacon-chain/db:go_default_library", "//beacon-chain/db/testing:go_default_library", "//beacon-chain/operations/attestations:go_default_library", - "//beacon-chain/operations/slashings:go_default_library", + "//beacon-chain/operations/slashings/mock:go_default_library", "//beacon-chain/operations/synccommittee:go_default_library", - "//beacon-chain/operations/voluntaryexits:go_default_library", + "//beacon-chain/operations/voluntaryexits/mock:go_default_library", "//beacon-chain/p2p/testing:go_default_library", "//beacon-chain/rpc/eth/helpers:go_default_library", "//beacon-chain/rpc/prysm/v1alpha1/validator:go_default_library", diff --git a/beacon-chain/rpc/eth/beacon/pool_test.go b/beacon-chain/rpc/eth/beacon/pool_test.go index bb5d6514fd..273e1bc2fe 100644 --- a/beacon-chain/rpc/eth/beacon/pool_test.go +++ b/beacon-chain/rpc/eth/beacon/pool_test.go @@ -13,8 +13,8 @@ import ( blockchainmock "github.com/prysmaticlabs/prysm/beacon-chain/blockchain/testing" "github.com/prysmaticlabs/prysm/beacon-chain/core/signing" "github.com/prysmaticlabs/prysm/beacon-chain/operations/attestations" - "github.com/prysmaticlabs/prysm/beacon-chain/operations/slashings" - "github.com/prysmaticlabs/prysm/beacon-chain/operations/voluntaryexits" + slashingsmock "github.com/prysmaticlabs/prysm/beacon-chain/operations/slashings/mock" + "github.com/prysmaticlabs/prysm/beacon-chain/operations/voluntaryexits/mock" p2pMock "github.com/prysmaticlabs/prysm/beacon-chain/p2p/testing" "github.com/prysmaticlabs/prysm/config/params" "github.com/prysmaticlabs/prysm/crypto/bls" @@ -270,7 +270,7 @@ func TestListPoolAttesterSlashings(t *testing.T) { s := &Server{ ChainInfoFetcher: &blockchainmock.ChainService{State: bs}, - SlashingsPool: &slashings.PoolMock{PendingAttSlashings: []*ethpbv1alpha1.AttesterSlashing{slashing1, slashing2}}, + SlashingsPool: &slashingsmock.PoolMock{PendingAttSlashings: []*ethpbv1alpha1.AttesterSlashing{slashing1, slashing2}}, } resp, err := s.ListPoolAttesterSlashings(context.Background(), &emptypb.Empty{}) @@ -330,7 +330,7 @@ func TestListPoolProposerSlashings(t *testing.T) { s := &Server{ ChainInfoFetcher: &blockchainmock.ChainService{State: bs}, - SlashingsPool: &slashings.PoolMock{PendingPropSlashings: []*ethpbv1alpha1.ProposerSlashing{slashing1, slashing2}}, + SlashingsPool: &slashingsmock.PoolMock{PendingPropSlashings: []*ethpbv1alpha1.ProposerSlashing{slashing1, slashing2}}, } resp, err := s.ListPoolProposerSlashings(context.Background(), &emptypb.Empty{}) @@ -360,7 +360,7 @@ func TestListPoolVoluntaryExits(t *testing.T) { s := &Server{ ChainInfoFetcher: &blockchainmock.ChainService{State: bs}, - VoluntaryExitsPool: &voluntaryexits.PoolMock{Exits: []*ethpbv1alpha1.SignedVoluntaryExit{exit1, exit2}}, + VoluntaryExitsPool: &mock.PoolMock{Exits: []*ethpbv1alpha1.SignedVoluntaryExit{exit1, exit2}}, } resp, err := s.ListPoolVoluntaryExits(context.Background(), &emptypb.Empty{}) @@ -432,7 +432,7 @@ func TestSubmitAttesterSlashing_Ok(t *testing.T) { broadcaster := &p2pMock.MockBroadcaster{} s := &Server{ ChainInfoFetcher: &blockchainmock.ChainService{State: bs}, - SlashingsPool: &slashings.PoolMock{}, + SlashingsPool: &slashingsmock.PoolMock{}, Broadcaster: broadcaster, } @@ -475,7 +475,7 @@ func TestSubmitAttesterSlashing_InvalidSlashing(t *testing.T) { broadcaster := &p2pMock.MockBroadcaster{} s := &Server{ ChainInfoFetcher: &blockchainmock.ChainService{State: bs}, - SlashingsPool: &slashings.PoolMock{}, + SlashingsPool: &slashingsmock.PoolMock{}, Broadcaster: broadcaster, } @@ -539,7 +539,7 @@ func TestSubmitProposerSlashing_Ok(t *testing.T) { broadcaster := &p2pMock.MockBroadcaster{} s := &Server{ ChainInfoFetcher: &blockchainmock.ChainService{State: bs}, - SlashingsPool: &slashings.PoolMock{}, + SlashingsPool: &slashingsmock.PoolMock{}, Broadcaster: broadcaster, } @@ -575,7 +575,7 @@ func TestSubmitProposerSlashing_InvalidSlashing(t *testing.T) { broadcaster := &p2pMock.MockBroadcaster{} s := &Server{ ChainInfoFetcher: &blockchainmock.ChainService{State: bs}, - SlashingsPool: &slashings.PoolMock{}, + SlashingsPool: &slashingsmock.PoolMock{}, Broadcaster: broadcaster, } @@ -618,7 +618,7 @@ func TestSubmitVoluntaryExit_Ok(t *testing.T) { broadcaster := &p2pMock.MockBroadcaster{} s := &Server{ ChainInfoFetcher: &blockchainmock.ChainService{State: bs}, - VoluntaryExitsPool: &voluntaryexits.PoolMock{}, + VoluntaryExitsPool: &mock.PoolMock{}, Broadcaster: broadcaster, } @@ -656,7 +656,7 @@ func TestSubmitVoluntaryExit_InvalidValidatorIndex(t *testing.T) { broadcaster := &p2pMock.MockBroadcaster{} s := &Server{ ChainInfoFetcher: &blockchainmock.ChainService{State: bs}, - VoluntaryExitsPool: &voluntaryexits.PoolMock{}, + VoluntaryExitsPool: &mock.PoolMock{}, Broadcaster: broadcaster, } @@ -691,7 +691,7 @@ func TestSubmitVoluntaryExit_InvalidExit(t *testing.T) { broadcaster := &p2pMock.MockBroadcaster{} s := &Server{ ChainInfoFetcher: &blockchainmock.ChainService{State: bs}, - VoluntaryExitsPool: &voluntaryexits.PoolMock{}, + VoluntaryExitsPool: &mock.PoolMock{}, Broadcaster: broadcaster, } diff --git a/beacon-chain/rpc/eth/validator/BUILD.bazel b/beacon-chain/rpc/eth/validator/BUILD.bazel index 2fe8815278..ae40c1a5b9 100644 --- a/beacon-chain/rpc/eth/validator/BUILD.bazel +++ b/beacon-chain/rpc/eth/validator/BUILD.bazel @@ -55,6 +55,7 @@ go_test( "//beacon-chain/core/transition:go_default_library", "//beacon-chain/db/testing:go_default_library", "//beacon-chain/operations/attestations:go_default_library", + "//beacon-chain/operations/attestations/mock:go_default_library", "//beacon-chain/operations/slashings:go_default_library", "//beacon-chain/operations/synccommittee:go_default_library", "//beacon-chain/operations/voluntaryexits:go_default_library", diff --git a/beacon-chain/rpc/eth/validator/validator_test.go b/beacon-chain/rpc/eth/validator/validator_test.go index 7ee054527d..dcfc8c767b 100644 --- a/beacon-chain/rpc/eth/validator/validator_test.go +++ b/beacon-chain/rpc/eth/validator/validator_test.go @@ -18,6 +18,7 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/transition" dbutil "github.com/prysmaticlabs/prysm/beacon-chain/db/testing" "github.com/prysmaticlabs/prysm/beacon-chain/operations/attestations" + "github.com/prysmaticlabs/prysm/beacon-chain/operations/attestations/mock" "github.com/prysmaticlabs/prysm/beacon-chain/operations/slashings" "github.com/prysmaticlabs/prysm/beacon-chain/operations/synccommittee" "github.com/prysmaticlabs/prysm/beacon-chain/operations/voluntaryexits" @@ -1011,7 +1012,7 @@ func TestGetAggregateAttestation(t *testing.T) { Signature: sig2_2, } vs := &Server{ - AttestationsPool: &attestations.PoolMock{AggregatedAtts: []*ethpbalpha.Attestation{attSlot1, attSlot2_1, attSlot2_2}}, + AttestationsPool: &mock.PoolMock{AggregatedAtts: []*ethpbalpha.Attestation{attSlot1, attSlot2_1, attSlot2_2}}, } t.Run("OK", func(t *testing.T) { @@ -1087,7 +1088,7 @@ func TestGetAggregateAttestation_SameSlotAndRoot_ReturnMostAggregationBits(t *te Signature: sig, } vs := &Server{ - AttestationsPool: &attestations.PoolMock{AggregatedAtts: []*ethpbalpha.Attestation{att1, att2}}, + AttestationsPool: &mock.PoolMock{AggregatedAtts: []*ethpbalpha.Attestation{att1, att2}}, } reqRoot, err := att1.Data.HashTreeRoot() diff --git a/beacon-chain/rpc/prysm/v1alpha1/beacon/BUILD.bazel b/beacon-chain/rpc/prysm/v1alpha1/beacon/BUILD.bazel index 7af5e047a2..435458f2bc 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/beacon/BUILD.bazel +++ b/beacon-chain/rpc/prysm/v1alpha1/beacon/BUILD.bazel @@ -97,6 +97,7 @@ go_test( "//beacon-chain/p2p/testing:go_default_library", "//beacon-chain/state:go_default_library", "//beacon-chain/state/stategen:go_default_library", + "//beacon-chain/state/stategen/mock:go_default_library", "//beacon-chain/state/v1:go_default_library", "//beacon-chain/sync/initial-sync/testing:go_default_library", "//cmd:go_default_library", diff --git a/beacon-chain/rpc/prysm/v1alpha1/beacon/validators_test.go b/beacon-chain/rpc/prysm/v1alpha1/beacon/validators_test.go index 9a4f027080..f0b5a5fa39 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/beacon/validators_test.go +++ b/beacon-chain/rpc/prysm/v1alpha1/beacon/validators_test.go @@ -19,6 +19,7 @@ import ( dbTest "github.com/prysmaticlabs/prysm/beacon-chain/db/testing" "github.com/prysmaticlabs/prysm/beacon-chain/state" "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen" + mockstategen "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen/mock" v1 "github.com/prysmaticlabs/prysm/beacon-chain/state/v1" mockSync "github.com/prysmaticlabs/prysm/beacon-chain/sync/initial-sync/testing" "github.com/prysmaticlabs/prysm/cmd" @@ -447,7 +448,7 @@ func TestServer_ListValidators_reqStateIsNil(t *testing.T) { HeadFetcher: &mock.ChainService{ State: nil, }, - StateGen: &stategen.MockStateManager{ + StateGen: &mockstategen.MockStateManager{ StatesBySlot: map[types.Slot]state.BeaconState{ 0: nil, }, @@ -1497,7 +1498,7 @@ func TestServer_GetValidatorParticipation_UnknownState(t *testing.T) { require.NoError(t, headState.SetSlot(0)) epoch := types.Epoch(50) slots := params.BeaconConfig().SlotsPerEpoch.Mul(uint64(epoch)) - mockStateGen := &stategen.MockStateManager{ + mockStateGen := &mockstategen.MockStateManager{ StatesBySlot: map[types.Slot]state.BeaconState{ 0: (*v1.BeaconState)(nil), }, diff --git a/beacon-chain/rpc/prysm/v1alpha1/slasher/BUILD.bazel b/beacon-chain/rpc/prysm/v1alpha1/slasher/BUILD.bazel index 7bcc109a99..3982e06658 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/slasher/BUILD.bazel +++ b/beacon-chain/rpc/prysm/v1alpha1/slasher/BUILD.bazel @@ -26,7 +26,7 @@ go_test( ], embed = [":go_default_library"], deps = [ - "//beacon-chain/slasher:go_default_library", + "//beacon-chain/slasher/mock:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//testing/require:go_default_library", "@com_github_prysmaticlabs_eth2_types//:go_default_library", diff --git a/beacon-chain/rpc/prysm/v1alpha1/slasher/attestations_test.go b/beacon-chain/rpc/prysm/v1alpha1/slasher/attestations_test.go index c0d42dd730..53f8c9ca36 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/slasher/attestations_test.go +++ b/beacon-chain/rpc/prysm/v1alpha1/slasher/attestations_test.go @@ -5,7 +5,7 @@ import ( "testing" types "github.com/prysmaticlabs/eth2-types" - "github.com/prysmaticlabs/prysm/beacon-chain/slasher" + "github.com/prysmaticlabs/prysm/beacon-chain/slasher/mock" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/testing/require" ) @@ -23,7 +23,7 @@ func TestServer_HighestAttestations(t *testing.T) { HighestTargetEpoch: 3, }, } - mockSlasher := &slasher.MockSlashingChecker{ + mockSlasher := &mock.MockSlashingChecker{ HighestAtts: highestAtts, } s := Server{SlashingChecker: mockSlasher} diff --git a/beacon-chain/rpc/prysm/v1alpha1/slasher/server_test.go b/beacon-chain/rpc/prysm/v1alpha1/slasher/server_test.go index f0ec4ec66a..43e6dc3938 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/slasher/server_test.go +++ b/beacon-chain/rpc/prysm/v1alpha1/slasher/server_test.go @@ -4,13 +4,13 @@ import ( "context" "testing" - "github.com/prysmaticlabs/prysm/beacon-chain/slasher" + "github.com/prysmaticlabs/prysm/beacon-chain/slasher/mock" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/testing/require" ) func TestServer_IsSlashableAttestation_SlashingFound(t *testing.T) { - mockSlasher := &slasher.MockSlashingChecker{ + mockSlasher := &mock.MockSlashingChecker{ AttesterSlashingFound: true, } s := Server{SlashingChecker: mockSlasher} @@ -21,7 +21,7 @@ func TestServer_IsSlashableAttestation_SlashingFound(t *testing.T) { } func TestServer_IsSlashableAttestation_SlashingNotFound(t *testing.T) { - mockSlasher := &slasher.MockSlashingChecker{ + mockSlasher := &mock.MockSlashingChecker{ AttesterSlashingFound: false, } s := Server{SlashingChecker: mockSlasher} @@ -32,7 +32,7 @@ func TestServer_IsSlashableAttestation_SlashingNotFound(t *testing.T) { } func TestServer_IsSlashableBlock_SlashingFound(t *testing.T) { - mockSlasher := &slasher.MockSlashingChecker{ + mockSlasher := &mock.MockSlashingChecker{ ProposerSlashingFound: true, } s := Server{SlashingChecker: mockSlasher} @@ -43,7 +43,7 @@ func TestServer_IsSlashableBlock_SlashingFound(t *testing.T) { } func TestServer_IsSlashableBlock_SlashingNotFound(t *testing.T) { - mockSlasher := &slasher.MockSlashingChecker{ + mockSlasher := &mock.MockSlashingChecker{ ProposerSlashingFound: false, } s := Server{SlashingChecker: mockSlasher} diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel b/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel index 5345aff754..41ce11b306 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel @@ -125,6 +125,7 @@ go_test( "//beacon-chain/powchain/testing:go_default_library", "//beacon-chain/state:go_default_library", "//beacon-chain/state/stategen:go_default_library", + "//beacon-chain/state/stategen/mock:go_default_library", "//beacon-chain/state/v1:go_default_library", "//beacon-chain/sync/initial-sync/testing:go_default_library", "//config/features:go_default_library", diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/status_test.go b/beacon-chain/rpc/prysm/v1alpha1/validator/status_test.go index 4a397d825f..c5d85d17a0 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/status_test.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/status_test.go @@ -14,7 +14,7 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" mockPOW "github.com/prysmaticlabs/prysm/beacon-chain/powchain/testing" "github.com/prysmaticlabs/prysm/beacon-chain/state" - "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen" + mockstategen "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen/mock" v1 "github.com/prysmaticlabs/prysm/beacon-chain/state/v1" mockSync "github.com/prysmaticlabs/prysm/beacon-chain/sync/initial-sync/testing" fieldparams "github.com/prysmaticlabs/prysm/config/fieldparams" @@ -937,7 +937,7 @@ func TestServer_CheckDoppelGanger(t *testing.T) { name: "normal doppelganger request", wantErr: false, svSetup: func(t *testing.T) (*Server, *ethpb.DoppelGangerRequest, *ethpb.DoppelGangerResponse) { - mockGen := stategen.NewMockService() + mockGen := mockstategen.NewMockService() hs, ps, os, keys := createStateSetup(t, 4, mockGen) // Previous Epoch State for i := 0; i < 3; i++ { @@ -982,7 +982,7 @@ func TestServer_CheckDoppelGanger(t *testing.T) { name: "doppelganger exists current epoch", wantErr: false, svSetup: func(t *testing.T) (*Server, *ethpb.DoppelGangerRequest, *ethpb.DoppelGangerResponse) { - mockGen := stategen.NewMockService() + mockGen := mockstategen.NewMockService() hs, ps, os, keys := createStateSetup(t, 4, mockGen) // Previous Epoch State @@ -1049,7 +1049,7 @@ func TestServer_CheckDoppelGanger(t *testing.T) { name: "doppelganger exists previous epoch", wantErr: false, svSetup: func(t *testing.T) (*Server, *ethpb.DoppelGangerRequest, *ethpb.DoppelGangerResponse) { - mockGen := stategen.NewMockService() + mockGen := mockstategen.NewMockService() hs, ps, os, keys := createStateSetup(t, 4, mockGen) // Previous Epoch State @@ -1116,7 +1116,7 @@ func TestServer_CheckDoppelGanger(t *testing.T) { name: "multiple doppelganger exists", wantErr: false, svSetup: func(t *testing.T) (*Server, *ethpb.DoppelGangerRequest, *ethpb.DoppelGangerResponse) { - mockGen := stategen.NewMockService() + mockGen := mockstategen.NewMockService() hs, ps, os, keys := createStateSetup(t, 4, mockGen) // Previous Epoch State @@ -1166,7 +1166,7 @@ func TestServer_CheckDoppelGanger(t *testing.T) { name: "attesters are too recent", wantErr: false, svSetup: func(t *testing.T) (*Server, *ethpb.DoppelGangerRequest, *ethpb.DoppelGangerResponse) { - mockGen := stategen.NewMockService() + mockGen := mockstategen.NewMockService() hs, _, _, keys := createStateSetup(t, 4, mockGen) @@ -1213,7 +1213,7 @@ func TestServer_CheckDoppelGanger(t *testing.T) { } } -func createStateSetup(t *testing.T, head types.Epoch, mockgen *stategen.MockStateManager) (state.BeaconState, +func createStateSetup(t *testing.T, head types.Epoch, mockgen *mockstategen.MockStateManager) (state.BeaconState, state.BeaconState, state.BeaconState, []bls.SecretKey) { gs, keys := util.DeterministicGenesisState(t, 64) hs := gs.Copy() diff --git a/beacon-chain/rpc/statefetcher/BUILD.bazel b/beacon-chain/rpc/statefetcher/BUILD.bazel index e211c87bde..57657557da 100644 --- a/beacon-chain/rpc/statefetcher/BUILD.bazel +++ b/beacon-chain/rpc/statefetcher/BUILD.bazel @@ -24,7 +24,7 @@ go_test( deps = [ "//beacon-chain/blockchain/testing:go_default_library", "//beacon-chain/db/testing:go_default_library", - "//beacon-chain/state/stategen:go_default_library", + "//beacon-chain/state/stategen/mock:go_default_library", "//config/params:go_default_library", "//encoding/bytesutil:go_default_library", "//proto/prysm/v1alpha1:go_default_library", diff --git a/beacon-chain/rpc/statefetcher/fetcher_test.go b/beacon-chain/rpc/statefetcher/fetcher_test.go index 98558495c1..b54af28864 100644 --- a/beacon-chain/rpc/statefetcher/fetcher_test.go +++ b/beacon-chain/rpc/statefetcher/fetcher_test.go @@ -11,7 +11,7 @@ import ( types "github.com/prysmaticlabs/eth2-types" chainMock "github.com/prysmaticlabs/prysm/beacon-chain/blockchain/testing" testDB "github.com/prysmaticlabs/prysm/beacon-chain/db/testing" - "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen" + mockstategen "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen/mock" "github.com/prysmaticlabs/prysm/config/params" "github.com/prysmaticlabs/prysm/encoding/bytesutil" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" @@ -83,7 +83,7 @@ func TestGetState(t *testing.T) { }) t.Run("finalized", func(t *testing.T) { - stateGen := stategen.NewMockService() + stateGen := mockstategen.NewMockService() stateGen.StatesByRoot[stateRoot] = newBeaconState p := StateProvider{ @@ -103,7 +103,7 @@ func TestGetState(t *testing.T) { }) t.Run("justified", func(t *testing.T) { - stateGen := stategen.NewMockService() + stateGen := mockstategen.NewMockService() stateGen.StatesByRoot[stateRoot] = newBeaconState p := StateProvider{ @@ -125,7 +125,7 @@ func TestGetState(t *testing.T) { t.Run("hex_root", func(t *testing.T) { stateId, err := hexutil.Decode("0x" + strings.Repeat("0", 63) + "1") require.NoError(t, err) - stateGen := stategen.NewMockService() + stateGen := mockstategen.NewMockService() stateGen.StatesByRoot[bytesutil.ToBytes32(stateId)] = newBeaconState p := StateProvider{ @@ -151,7 +151,7 @@ func TestGetState(t *testing.T) { }) t.Run("slot", func(t *testing.T) { - stateGen := stategen.NewMockService() + stateGen := mockstategen.NewMockService() stateGen.StatesBySlot[headSlot] = newBeaconState p := StateProvider{ diff --git a/beacon-chain/slasher/BUILD.bazel b/beacon-chain/slasher/BUILD.bazel index 9a76fddf02..b810f445d0 100644 --- a/beacon-chain/slasher/BUILD.bazel +++ b/beacon-chain/slasher/BUILD.bazel @@ -10,7 +10,6 @@ go_library( "helpers.go", "log.go", "metrics.go", - "mock_slashing_checker.go", "params.go", "process_slashings.go", "queue.go", @@ -75,7 +74,8 @@ go_test( "//beacon-chain/core/feed/state:go_default_library", "//beacon-chain/core/signing:go_default_library", "//beacon-chain/db/testing:go_default_library", - "//beacon-chain/operations/slashings:go_default_library", + "//beacon-chain/operations/slashings/mock:go_default_library", + "//beacon-chain/slasher/mock:go_default_library", "//beacon-chain/slasher/types:go_default_library", "//beacon-chain/state/stategen:go_default_library", "//beacon-chain/sync/initial-sync/testing:go_default_library", diff --git a/beacon-chain/slasher/detect_attestations_test.go b/beacon-chain/slasher/detect_attestations_test.go index 3f76fa930b..bdbea514ff 100644 --- a/beacon-chain/slasher/detect_attestations_test.go +++ b/beacon-chain/slasher/detect_attestations_test.go @@ -10,7 +10,7 @@ import ( mock "github.com/prysmaticlabs/prysm/beacon-chain/blockchain/testing" "github.com/prysmaticlabs/prysm/beacon-chain/core/signing" dbtest "github.com/prysmaticlabs/prysm/beacon-chain/db/testing" - "github.com/prysmaticlabs/prysm/beacon-chain/operations/slashings" + slashingsmock "github.com/prysmaticlabs/prysm/beacon-chain/operations/slashings/mock" slashertypes "github.com/prysmaticlabs/prysm/beacon-chain/slasher/types" "github.com/prysmaticlabs/prysm/config/params" "github.com/prysmaticlabs/prysm/crypto/bls" @@ -238,7 +238,7 @@ func Test_processQueuedAttestations(t *testing.T) { StateNotifier: &mock.MockStateNotifier{}, HeadStateFetcher: mockChain, AttestationStateFetcher: mockChain, - SlashingPoolInserter: &slashings.PoolMock{}, + SlashingPoolInserter: &slashingsmock.PoolMock{}, }, params: DefaultParams(), attsQueue: newAttestationsQueue(), @@ -297,7 +297,7 @@ func Test_processQueuedAttestations_MultipleChunkIndices(t *testing.T) { StateNotifier: &mock.MockStateNotifier{}, HeadStateFetcher: mockChain, AttestationStateFetcher: mockChain, - SlashingPoolInserter: &slashings.PoolMock{}, + SlashingPoolInserter: &slashingsmock.PoolMock{}, }, params: slasherParams, attsQueue: newAttestationsQueue(), @@ -364,7 +364,7 @@ func Test_processQueuedAttestations_OverlappingChunkIndices(t *testing.T) { StateNotifier: &mock.MockStateNotifier{}, HeadStateFetcher: mockChain, AttestationStateFetcher: mockChain, - SlashingPoolInserter: &slashings.PoolMock{}, + SlashingPoolInserter: &slashingsmock.PoolMock{}, }, params: slasherParams, attsQueue: newAttestationsQueue(), diff --git a/beacon-chain/slasher/detect_blocks_test.go b/beacon-chain/slasher/detect_blocks_test.go index 57c476ee28..316189bd99 100644 --- a/beacon-chain/slasher/detect_blocks_test.go +++ b/beacon-chain/slasher/detect_blocks_test.go @@ -8,7 +8,7 @@ import ( mock "github.com/prysmaticlabs/prysm/beacon-chain/blockchain/testing" "github.com/prysmaticlabs/prysm/beacon-chain/core/signing" dbtest "github.com/prysmaticlabs/prysm/beacon-chain/db/testing" - "github.com/prysmaticlabs/prysm/beacon-chain/operations/slashings" + slashingsmock "github.com/prysmaticlabs/prysm/beacon-chain/operations/slashings/mock" slashertypes "github.com/prysmaticlabs/prysm/beacon-chain/slasher/types" "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen" "github.com/prysmaticlabs/prysm/config/params" @@ -61,7 +61,7 @@ func Test_processQueuedBlocks_DetectsDoubleProposals(t *testing.T) { StateNotifier: &mock.MockStateNotifier{}, HeadStateFetcher: mockChain, StateGen: stategen.New(beaconDB), - SlashingPoolInserter: &slashings.PoolMock{}, + SlashingPoolInserter: &slashingsmock.PoolMock{}, }, params: DefaultParams(), blksQueue: newBlocksQueue(), diff --git a/beacon-chain/slasher/mock/BUILD.bazel b/beacon-chain/slasher/mock/BUILD.bazel new file mode 100644 index 0000000000..b57dbb3f13 --- /dev/null +++ b/beacon-chain/slasher/mock/BUILD.bazel @@ -0,0 +1,13 @@ +load("@prysm//tools/go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["mock_slashing_checker.go"], + importpath = "github.com/prysmaticlabs/prysm/beacon-chain/slasher/mock", + visibility = ["//visibility:public"], + deps = [ + "//config/params:go_default_library", + "//proto/prysm/v1alpha1:go_default_library", + "@com_github_prysmaticlabs_eth2_types//:go_default_library", + ], +) diff --git a/beacon-chain/slasher/mock_slashing_checker.go b/beacon-chain/slasher/mock/mock_slashing_checker.go similarity index 99% rename from beacon-chain/slasher/mock_slashing_checker.go rename to beacon-chain/slasher/mock/mock_slashing_checker.go index cbec22ae40..73ccddaac3 100644 --- a/beacon-chain/slasher/mock_slashing_checker.go +++ b/beacon-chain/slasher/mock/mock_slashing_checker.go @@ -1,4 +1,4 @@ -package slasher +package mock import ( "context" diff --git a/beacon-chain/slasher/process_slashings_test.go b/beacon-chain/slasher/process_slashings_test.go index 0d8b78f507..2bd0fa4720 100644 --- a/beacon-chain/slasher/process_slashings_test.go +++ b/beacon-chain/slasher/process_slashings_test.go @@ -7,7 +7,7 @@ import ( mock "github.com/prysmaticlabs/prysm/beacon-chain/blockchain/testing" "github.com/prysmaticlabs/prysm/beacon-chain/core/signing" dbtest "github.com/prysmaticlabs/prysm/beacon-chain/db/testing" - "github.com/prysmaticlabs/prysm/beacon-chain/operations/slashings" + slashingsmock "github.com/prysmaticlabs/prysm/beacon-chain/operations/slashings/mock" "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen" "github.com/prysmaticlabs/prysm/config/params" "github.com/prysmaticlabs/prysm/crypto/bls" @@ -45,7 +45,7 @@ func TestService_processAttesterSlashings(t *testing.T) { Database: slasherDB, AttestationStateFetcher: mockChain, StateGen: stategen.New(beaconDB), - SlashingPoolInserter: &slashings.PoolMock{}, + SlashingPoolInserter: &slashingsmock.PoolMock{}, HeadStateFetcher: mockChain, }, } @@ -152,7 +152,7 @@ func TestService_processProposerSlashings(t *testing.T) { Database: slasherDB, AttestationStateFetcher: mockChain, StateGen: stategen.New(beaconDB), - SlashingPoolInserter: &slashings.PoolMock{}, + SlashingPoolInserter: &slashingsmock.PoolMock{}, HeadStateFetcher: mockChain, }, } diff --git a/beacon-chain/slasher/service_test.go b/beacon-chain/slasher/service_test.go index 5704145ead..e988ae4f5a 100644 --- a/beacon-chain/slasher/service_test.go +++ b/beacon-chain/slasher/service_test.go @@ -12,6 +12,7 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/feed" statefeed "github.com/prysmaticlabs/prysm/beacon-chain/core/feed/state" dbtest "github.com/prysmaticlabs/prysm/beacon-chain/db/testing" + mockslasher "github.com/prysmaticlabs/prysm/beacon-chain/slasher/mock" mockSync "github.com/prysmaticlabs/prysm/beacon-chain/sync/initial-sync/testing" "github.com/prysmaticlabs/prysm/testing/require" "github.com/prysmaticlabs/prysm/testing/util" @@ -21,7 +22,7 @@ import ( ) var _ = SlashingChecker(&Service{}) -var _ = SlashingChecker(&MockSlashingChecker{}) +var _ = SlashingChecker(&mockslasher.MockSlashingChecker{}) func TestMain(m *testing.M) { logrus.SetLevel(logrus.DebugLevel) diff --git a/beacon-chain/state/stategen/BUILD.bazel b/beacon-chain/state/stategen/BUILD.bazel index 27246a9fda..e3d13b67a9 100644 --- a/beacon-chain/state/stategen/BUILD.bazel +++ b/beacon-chain/state/stategen/BUILD.bazel @@ -10,7 +10,6 @@ go_library( "log.go", "metrics.go", "migrate.go", - "mock.go", "replay.go", "service.go", "setter.go", diff --git a/beacon-chain/state/stategen/mock/BUILD.bazel b/beacon-chain/state/stategen/mock/BUILD.bazel new file mode 100644 index 0000000000..66bd1e8047 --- /dev/null +++ b/beacon-chain/state/stategen/mock/BUILD.bazel @@ -0,0 +1,15 @@ +load("@prysm//tools/go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + testonly = True, + srcs = ["mock.go"], + importpath = "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen/mock", + visibility = ["//visibility:public"], + deps = [ + "//beacon-chain/state:go_default_library", + "//proto/prysm/v1alpha1:go_default_library", + "//proto/prysm/v1alpha1/block:go_default_library", + "@com_github_prysmaticlabs_eth2_types//:go_default_library", + ], +) diff --git a/beacon-chain/state/stategen/mock.go b/beacon-chain/state/stategen/mock/mock.go similarity index 99% rename from beacon-chain/state/stategen/mock.go rename to beacon-chain/state/stategen/mock/mock.go index 4bef97f00b..3336b130a9 100644 --- a/beacon-chain/state/stategen/mock.go +++ b/beacon-chain/state/stategen/mock/mock.go @@ -1,4 +1,4 @@ -package stategen +package mock import ( "context" diff --git a/cmd/BUILD.bazel b/cmd/BUILD.bazel index e2a76f475f..a6c8986ec6 100644 --- a/cmd/BUILD.bazel +++ b/cmd/BUILD.bazel @@ -8,7 +8,6 @@ go_library( "flags.go", "helpers.go", "password_reader.go", - "password_reader_mock.go", "wrap_flags.go", ], importpath = "github.com/prysmaticlabs/prysm/cmd", @@ -16,7 +15,6 @@ go_library( deps = [ "//config/params:go_default_library", "//io/file:go_default_library", - "@com_github_golang_mock//gomock:go_default_library", "@com_github_pkg_errors//:go_default_library", "@com_github_sirupsen_logrus//:go_default_library", "@com_github_urfave_cli_v2//:go_default_library", @@ -35,6 +33,7 @@ go_test( ], embed = [":go_default_library"], deps = [ + "//cmd/mock:go_default_library", "//config/params:go_default_library", "//testing/assert:go_default_library", "//testing/require:go_default_library", diff --git a/cmd/helpers_test.go b/cmd/helpers_test.go index 95c9ee0df0..8415dd529e 100644 --- a/cmd/helpers_test.go +++ b/cmd/helpers_test.go @@ -8,6 +8,7 @@ import ( "github.com/golang/mock/gomock" "github.com/pkg/errors" + "github.com/prysmaticlabs/prysm/cmd/mock" "github.com/prysmaticlabs/prysm/testing/assert" "github.com/prysmaticlabs/prysm/testing/require" "github.com/urfave/cli/v2" @@ -65,7 +66,7 @@ func TestEnterPassword(t *testing.T) { for _, tc := range tt { t.Run(tc.name, func(t *testing.T) { ctrl := gomock.NewController(t) - m := NewMockPasswordReader(ctrl) + m := mock.NewMockPasswordReader(ctrl) for _, ret := range tc.rets { m.EXPECT().ReadPassword().Return(ret.pw, ret.err) } diff --git a/cmd/mock/BUILD.bazel b/cmd/mock/BUILD.bazel new file mode 100644 index 0000000000..3053ddcf5a --- /dev/null +++ b/cmd/mock/BUILD.bazel @@ -0,0 +1,10 @@ +load("@prysm//tools/go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + testonly = True, + srcs = ["password_reader_mock.go"], + importpath = "github.com/prysmaticlabs/prysm/cmd/mock", + visibility = ["//visibility:public"], + deps = ["@com_github_golang_mock//gomock:go_default_library"], +) diff --git a/cmd/password_reader_mock.go b/cmd/mock/password_reader_mock.go similarity index 99% rename from cmd/password_reader_mock.go rename to cmd/mock/password_reader_mock.go index 4c9a9f4063..c35c40052f 100644 --- a/cmd/password_reader_mock.go +++ b/cmd/mock/password_reader_mock.go @@ -2,7 +2,7 @@ // Source: github.com/connorwstein/prysm/cmd (interfaces: PasswordReader) // Package mock_cmd is a generated GoMock package. -package cmd +package mock import ( reflect "reflect" diff --git a/container/trie/BUILD.bazel b/container/trie/BUILD.bazel index 5b58b40615..7e766f07b8 100644 --- a/container/trie/BUILD.bazel +++ b/container/trie/BUILD.bazel @@ -24,7 +24,7 @@ go_test( ":go_default_library", "//config/fieldparams:go_default_library", "//config/params:go_default_library", - "//contracts/deposit:go_default_library", + "//contracts/deposit/mock:go_default_library", "//crypto/hash:go_default_library", "//encoding/bytesutil:go_default_library", "//proto/prysm/v1alpha1:go_default_library", diff --git a/container/trie/sparse_merkle_test.go b/container/trie/sparse_merkle_test.go index cb4e053d45..463aac13a6 100644 --- a/container/trie/sparse_merkle_test.go +++ b/container/trie/sparse_merkle_test.go @@ -8,7 +8,7 @@ import ( fieldparams "github.com/prysmaticlabs/prysm/config/fieldparams" "github.com/prysmaticlabs/prysm/config/params" "github.com/prysmaticlabs/prysm/container/trie" - contracts "github.com/prysmaticlabs/prysm/contracts/deposit" + contracts "github.com/prysmaticlabs/prysm/contracts/deposit/mock" "github.com/prysmaticlabs/prysm/crypto/hash" "github.com/prysmaticlabs/prysm/encoding/bytesutil" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" diff --git a/contracts/deposit/BUILD.bazel b/contracts/deposit/BUILD.bazel index ec98a28a43..14a651bcf6 100644 --- a/contracts/deposit/BUILD.bazel +++ b/contracts/deposit/BUILD.bazel @@ -5,8 +5,8 @@ go_library( srcs = [ "contract.go", "deposit.go", + "helper.go", "logs.go", - "mock.go", ], importpath = "github.com/prysmaticlabs/prysm/contracts/deposit", visibility = ["//visibility:public"], @@ -20,11 +20,8 @@ go_library( "@com_github_ethereum_go_ethereum//:go_default_library", "@com_github_ethereum_go_ethereum//accounts/abi:go_default_library", "@com_github_ethereum_go_ethereum//accounts/abi/bind:go_default_library", - "@com_github_ethereum_go_ethereum//accounts/abi/bind/backends:go_default_library", "@com_github_ethereum_go_ethereum//common:go_default_library", - "@com_github_ethereum_go_ethereum//core:go_default_library", "@com_github_ethereum_go_ethereum//core/types:go_default_library", - "@com_github_ethereum_go_ethereum//crypto:go_default_library", "@com_github_ethereum_go_ethereum//event:go_default_library", "@com_github_pkg_errors//:go_default_library", ], @@ -43,6 +40,7 @@ go_test( "//beacon-chain/core/signing:go_default_library", "//config/params:go_default_library", "//container/trie:go_default_library", + "//contracts/deposit/mock:go_default_library", "//crypto/bls:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//runtime/interop:go_default_library", diff --git a/contracts/deposit/contract_test.go b/contracts/deposit/contract_test.go index f7b13c53fe..077552349a 100644 --- a/contracts/deposit/contract_test.go +++ b/contracts/deposit/contract_test.go @@ -8,19 +8,20 @@ import ( "github.com/ethereum/go-ethereum" "github.com/ethereum/go-ethereum/common" depositcontract "github.com/prysmaticlabs/prysm/contracts/deposit" + "github.com/prysmaticlabs/prysm/contracts/deposit/mock" "github.com/prysmaticlabs/prysm/runtime/interop" "github.com/prysmaticlabs/prysm/testing/assert" "github.com/prysmaticlabs/prysm/testing/require" ) func TestSetupRegistrationContract_OK(t *testing.T) { - _, err := depositcontract.Setup() + _, err := mock.Setup() assert.NoError(t, err, "Can not deploy validator registration contract") } // negative test case, deposit with less than 1 ETH which is less than the top off amount. func TestRegister_Below1ETH(t *testing.T) { - testAccount, err := depositcontract.Setup() + testAccount, err := mock.Setup() require.NoError(t, err) // Generate deposit data @@ -31,16 +32,16 @@ func TestRegister_Below1ETH(t *testing.T) { var depositDataRoot [32]byte copy(depositDataRoot[:], depositDataRoots[0]) - testAccount.TxOpts.Value = depositcontract.LessThan1Eth() + testAccount.TxOpts.Value = mock.LessThan1Eth() _, err = testAccount.Contract.Deposit(testAccount.TxOpts, pubKeys[0].Marshal(), depositDataItems[0].WithdrawalCredentials, depositDataItems[0].Signature, depositDataRoot) assert.ErrorContains(t, "execution reverted", err, "Validator registration should have failed with insufficient deposit") } // normal test case, test depositing 32 ETH and verify HashChainValue event is correctly emitted. func TestValidatorRegister_OK(t *testing.T) { - testAccount, err := depositcontract.Setup() + testAccount, err := mock.Setup() require.NoError(t, err) - testAccount.TxOpts.Value = depositcontract.Amount32Eth() + testAccount.TxOpts.Value = mock.Amount32Eth() // Generate deposit data privKeys, pubKeys, err := interop.DeterministicallyGenerateKeys(0 /*startIndex*/, 1) diff --git a/contracts/deposit/deposit_tree_test.go b/contracts/deposit/deposit_tree_test.go index 1c3ee8b612..fb75b1e190 100644 --- a/contracts/deposit/deposit_tree_test.go +++ b/contracts/deposit/deposit_tree_test.go @@ -7,7 +7,7 @@ import ( "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/prysmaticlabs/prysm/config/params" "github.com/prysmaticlabs/prysm/container/trie" - depositcontract "github.com/prysmaticlabs/prysm/contracts/deposit" + depositcontract "github.com/prysmaticlabs/prysm/contracts/deposit/mock" "github.com/prysmaticlabs/prysm/runtime/interop" "github.com/prysmaticlabs/prysm/testing/assert" "github.com/prysmaticlabs/prysm/testing/require" diff --git a/contracts/deposit/helper.go b/contracts/deposit/helper.go new file mode 100644 index 0000000000..f69b5fef85 --- /dev/null +++ b/contracts/deposit/helper.go @@ -0,0 +1,23 @@ +package deposit + +import ( + "github.com/ethereum/go-ethereum/accounts/abi/bind" +) + +// NewDepositContractcallFromBoundContract creates a new instance of DepositContractCaller, bound to +// a specific deployed contract. +func NewDepositContractCallerFromBoundContract(contract *bind.BoundContract) DepositContractCaller { + return DepositContractCaller{contract: contract} +} + +// NewDepositContractTransactorFromBoundContract creates a new instance of +// DepositContractTransactor, bound to a specific deployed contract. +func NewDepositContractTransactorFromBoundContract(contract *bind.BoundContract) DepositContractTransactor { + return DepositContractTransactor{contract: contract} +} + +// NewDepositContractFiltererFromBoundContract creates a new instance of +// DepositContractFilterer, bound to a specific deployed contract. +func NewDepositContractFiltererFromBoundContract(contract *bind.BoundContract) DepositContractFilterer { + return DepositContractFilterer{contract: contract} +} diff --git a/contracts/deposit/mock/BUILD.bazel b/contracts/deposit/mock/BUILD.bazel new file mode 100644 index 0000000000..ad6a47a3cc --- /dev/null +++ b/contracts/deposit/mock/BUILD.bazel @@ -0,0 +1,19 @@ +load("@prysm//tools/go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + testonly = True, + srcs = ["mock.go"], + importpath = "github.com/prysmaticlabs/prysm/contracts/deposit/mock", + visibility = ["//visibility:public"], + deps = [ + "//contracts/deposit:go_default_library", + "@com_github_ethereum_go_ethereum//accounts/abi:go_default_library", + "@com_github_ethereum_go_ethereum//accounts/abi/bind:go_default_library", + "@com_github_ethereum_go_ethereum//accounts/abi/bind/backends:go_default_library", + "@com_github_ethereum_go_ethereum//common:go_default_library", + "@com_github_ethereum_go_ethereum//core:go_default_library", + "@com_github_ethereum_go_ethereum//core/types:go_default_library", + "@com_github_ethereum_go_ethereum//crypto:go_default_library", + ], +) diff --git a/contracts/deposit/mock.go b/contracts/deposit/mock/mock.go similarity index 96% rename from contracts/deposit/mock.go rename to contracts/deposit/mock/mock.go index 74102b6241..cdbc1dff73 100644 --- a/contracts/deposit/mock.go +++ b/contracts/deposit/mock/mock.go @@ -1,4 +1,4 @@ -package deposit +package mock import ( "crypto/ecdsa" @@ -13,6 +13,7 @@ import ( "github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/crypto" + "github.com/prysmaticlabs/prysm/contracts/deposit" ) var ( @@ -26,7 +27,7 @@ var ( type TestAccount struct { Addr common.Address ContractAddr common.Address - Contract *DepositContract + Contract *deposit.DepositContract Backend *backends.SimulatedBackend TxOpts *bind.TransactOpts } @@ -79,8 +80,8 @@ func LessThan1Eth() *big.Int { } // DeployDepositContract deploys a new Ethereum contract, binding an instance of DepositContract to it. -func DeployDepositContract(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *DepositContract, error) { - parsed, err := abi.JSON(strings.NewReader(DepositContractABI)) +func DeployDepositContract(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *deposit.DepositContract, error) { + parsed, err := abi.JSON(strings.NewReader(deposit.DepositContractABI)) if err != nil { return common.Address{}, nil, nil, err } @@ -89,5 +90,9 @@ func DeployDepositContract(auth *bind.TransactOpts, backend bind.ContractBackend if err != nil { return common.Address{}, nil, nil, err } - return address, tx, &DepositContract{DepositContractCaller: DepositContractCaller{contract: contract}, DepositContractTransactor: DepositContractTransactor{contract: contract}, DepositContractFilterer: DepositContractFilterer{contract: contract}}, nil + return address, tx, &deposit.DepositContract{ + DepositContractCaller: deposit.NewDepositContractCallerFromBoundContract(contract), + DepositContractTransactor: deposit.NewDepositContractTransactorFromBoundContract(contract), + DepositContractFilterer: deposit.NewDepositContractFiltererFromBoundContract(contract), + }, nil } diff --git a/testing/endtoend/BUILD.bazel b/testing/endtoend/BUILD.bazel index 811ee886cd..90c2f40b9d 100644 --- a/testing/endtoend/BUILD.bazel +++ b/testing/endtoend/BUILD.bazel @@ -33,8 +33,8 @@ go_test( "//beacon-chain/blockchain/testing:go_default_library", "//beacon-chain/core/transition:go_default_library", "//beacon-chain/db/testing:go_default_library", - "//beacon-chain/operations/slashings:go_default_library", - "//beacon-chain/state/stategen:go_default_library", + "//beacon-chain/operations/slashings/mock:go_default_library", + "//beacon-chain/state/stategen/mock:go_default_library", "//config/params:go_default_library", "//crypto/bls:go_default_library", "//proto/prysm/v1alpha1:go_default_library", diff --git a/testing/endtoend/components/BUILD.bazel b/testing/endtoend/components/BUILD.bazel index ba32575cd5..e5950a78e1 100644 --- a/testing/endtoend/components/BUILD.bazel +++ b/testing/endtoend/components/BUILD.bazel @@ -21,6 +21,7 @@ go_library( "//config/features:go_default_library", "//config/params:go_default_library", "//contracts/deposit:go_default_library", + "//contracts/deposit/mock:go_default_library", "//crypto/bls:go_default_library", "//encoding/bytesutil:go_default_library", "//runtime/interop:go_default_library", diff --git a/testing/endtoend/components/eth1.go b/testing/endtoend/components/eth1.go index 5047f8c848..2af5e7fdbb 100644 --- a/testing/endtoend/components/eth1.go +++ b/testing/endtoend/components/eth1.go @@ -20,7 +20,7 @@ import ( "github.com/ethereum/go-ethereum/ethclient" "github.com/ethereum/go-ethereum/rpc" "github.com/prysmaticlabs/prysm/config/params" - contracts "github.com/prysmaticlabs/prysm/contracts/deposit" + contracts "github.com/prysmaticlabs/prysm/contracts/deposit/mock" "github.com/prysmaticlabs/prysm/testing/endtoend/helpers" e2e "github.com/prysmaticlabs/prysm/testing/endtoend/params" e2etypes "github.com/prysmaticlabs/prysm/testing/endtoend/types" diff --git a/testing/endtoend/slasher_simulator_e2e_test.go b/testing/endtoend/slasher_simulator_e2e_test.go index 62deb8106d..5421766e5e 100644 --- a/testing/endtoend/slasher_simulator_e2e_test.go +++ b/testing/endtoend/slasher_simulator_e2e_test.go @@ -9,8 +9,8 @@ import ( types "github.com/prysmaticlabs/eth2-types" mock "github.com/prysmaticlabs/prysm/beacon-chain/blockchain/testing" dbtest "github.com/prysmaticlabs/prysm/beacon-chain/db/testing" - "github.com/prysmaticlabs/prysm/beacon-chain/operations/slashings" - "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen" + mockslashings "github.com/prysmaticlabs/prysm/beacon-chain/operations/slashings/mock" + mockstategen "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen/mock" "github.com/prysmaticlabs/prysm/crypto/bls" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/testing/require" @@ -80,7 +80,7 @@ func TestEndToEnd_SlasherSimulator(t *testing.T) { require.NoError(t, err) mockChain := &mock.ChainService{State: beaconState} - gen := stategen.NewMockService() + gen := mockstategen.NewMockService() gen.AddStateForRoot(beaconState, [32]byte{}) sim, err := slashersimulator.New(ctx, &slashersimulator.ServiceConfig{ @@ -91,7 +91,7 @@ func TestEndToEnd_SlasherSimulator(t *testing.T) { AttestationStateFetcher: mockChain, StateGen: gen, PrivateKeysByValidatorIndex: privKeys, - SlashingsPool: &slashings.PoolMock{}, + SlashingsPool: &mockslashings.PoolMock{}, SyncChecker: mockSyncChecker{}, }) require.NoError(t, err) diff --git a/testing/slasher/simulator/BUILD.bazel b/testing/slasher/simulator/BUILD.bazel index 3565c27463..242591e288 100644 --- a/testing/slasher/simulator/BUILD.bazel +++ b/testing/slasher/simulator/BUILD.bazel @@ -47,7 +47,7 @@ go_test( deps = [ "//beacon-chain/blockchain/testing:go_default_library", "//beacon-chain/db/testing:go_default_library", - "//beacon-chain/state/stategen:go_default_library", + "//beacon-chain/state/stategen/mock:go_default_library", "//config/params:go_default_library", "//crypto/bls:go_default_library", "//proto/prysm/v1alpha1:go_default_library", diff --git a/testing/slasher/simulator/simulator_test.go b/testing/slasher/simulator/simulator_test.go index 9aa7c41e3b..2a99ffcfd0 100644 --- a/testing/slasher/simulator/simulator_test.go +++ b/testing/slasher/simulator/simulator_test.go @@ -6,7 +6,7 @@ import ( types "github.com/prysmaticlabs/eth2-types" mock "github.com/prysmaticlabs/prysm/beacon-chain/blockchain/testing" dbtest "github.com/prysmaticlabs/prysm/beacon-chain/db/testing" - "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen" + mockstategen "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen/mock" "github.com/prysmaticlabs/prysm/crypto/bls" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/testing/require" @@ -34,7 +34,7 @@ func setupService(t *testing.T, params *Parameters) *Simulator { err = beaconState.SetValidators(validators) require.NoError(t, err) - gen := stategen.NewMockService() + gen := mockstategen.NewMockService() gen.AddStateForRoot(beaconState, [32]byte{}) return &Simulator{ srvConfig: &ServiceConfig{ diff --git a/tools/deployContract/BUILD.bazel b/tools/deployContract/BUILD.bazel deleted file mode 100644 index 09e6ab44a8..0000000000 --- a/tools/deployContract/BUILD.bazel +++ /dev/null @@ -1,27 +0,0 @@ -load("@prysm//tools/go:def.bzl", "go_library") -load("@io_bazel_rules_go//go:def.bzl", "go_binary") - -go_library( - name = "go_default_library", - srcs = ["deployContract.go"], - importpath = "github.com/prysmaticlabs/prysm/tools/deployContract", - visibility = ["//visibility:private"], - deps = [ - "//contracts/deposit:go_default_library", - "//runtime/version:go_default_library", - "@com_github_ethereum_go_ethereum//accounts/abi/bind:go_default_library", - "@com_github_ethereum_go_ethereum//accounts/keystore:go_default_library", - "@com_github_ethereum_go_ethereum//crypto:go_default_library", - "@com_github_ethereum_go_ethereum//ethclient:go_default_library", - "@com_github_ethereum_go_ethereum//rpc:go_default_library", - "@com_github_sirupsen_logrus//:go_default_library", - "@com_github_urfave_cli_v2//:go_default_library", - "@com_github_x_cray_logrus_prefixed_formatter//:go_default_library", - ], -) - -go_binary( - name = "deployContract", - embed = [":go_default_library"], - visibility = ["//visibility:public"], -) diff --git a/tools/deployContract/README.md b/tools/deployContract/README.md deleted file mode 100644 index a11a8c7221..0000000000 --- a/tools/deployContract/README.md +++ /dev/null @@ -1,35 +0,0 @@ -## Utility to Deploy Deposit Contract - -This is a utility to help users deploy deposit contract for running their own beacon chain node in a local containerized set up. To run the utility, it assumes there is a running geth node as a separate process attached to proof-of-work main chain. The utility will deploy the validator registration contract and print out the contract address. Users will pass the contract address to the beacon chain node to monitor when they have been conducted to become an active validator. - -### Usage - -*Name:* - **deployContract** - this is a util to deploy deposit contract - -*Usage:* - deployContract [global options] command [command options] [arguments...] - -*Flags:* -- --ipcPath value Filename for IPC socket/pipe within the datadir -- --httpPath value HTTP-RPC server listening interface (default: "http://localhost:8545/") -- --passwordFile value Password file for unlock account (default: "./password.txt") -- --privKey value Private key to unlock account -- --k8sConfig value Name of kubernetes config map to update with the contract address -- --help, -h show help -- --version, -v print the version - -### Example - -To use private key with default RPC: - -``` -bazel run //contracts/deposit-contract/deployContract -- --httpPath=https://goerli.prylabs.net --privKey=$(echo /path/to/private/key/file) -``` - - -### Output - -``` -INFO[0001] New contract deployed at 0x5275C2220C574330E230bFB7e4a0b96f60a18f02 -``` diff --git a/tools/deployContract/deployContract.go b/tools/deployContract/deployContract.go deleted file mode 100644 index 954afa7306..0000000000 --- a/tools/deployContract/deployContract.go +++ /dev/null @@ -1,171 +0,0 @@ -package main - -import ( - "bufio" - "context" - "io/ioutil" - "math/big" - "os" - "time" - - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/accounts/keystore" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/ethclient" - "github.com/ethereum/go-ethereum/rpc" - contracts "github.com/prysmaticlabs/prysm/contracts/deposit" - "github.com/prysmaticlabs/prysm/runtime/version" - "github.com/sirupsen/logrus" - "github.com/urfave/cli/v2" - prefixed "github.com/x-cray/logrus-prefixed-formatter" -) - -func main() { - var keystoreUTCPath string - var ipcPath string - var passwordFile string - var httpPath string - var privKeyString string - var drainAddress string - - customFormatter := new(prefixed.TextFormatter) - customFormatter.TimestampFormat = "2006-01-02 15:04:05" - customFormatter.FullTimestamp = true - logrus.SetFormatter(customFormatter) - log := logrus.WithField("prefix", "main") - - app := cli.App{} - app.Name = "deployDepositContract" - app.Usage = "this is a util to deploy deposit contract" - app.Version = version.Version() - app.Flags = []cli.Flag{ - &cli.StringFlag{ - Name: "keystoreUTCPath", - Usage: "Location of keystore", - Destination: &keystoreUTCPath, - }, - &cli.StringFlag{ - Name: "ipcPath", - Usage: "Filename for IPC socket/pipe within the datadir", - Destination: &ipcPath, - }, - &cli.StringFlag{ - Name: "httpPath", - Value: "http://localhost:8545/", - Usage: "HTTP-RPC server listening interface", - Destination: &httpPath, - }, - &cli.StringFlag{ - Name: "passwordFile", - Value: "./password.txt", - Usage: "Password file for unlock account", - Destination: &passwordFile, - }, - &cli.StringFlag{ - Name: "privKey", - Usage: "Private key to unlock account", - Destination: &privKeyString, - }, - &cli.StringFlag{ - Name: "drainAddress", - Value: "", - Usage: "The drain address to specify in the contract. The default will be msg.sender", - Destination: &drainAddress, - }, - } - - app.Action = func(c *cli.Context) error { - // Set up RPC client - var rpcClient *rpc.Client - var err error - var txOps *bind.TransactOpts - - // Uses HTTP-RPC if IPC is not set - if ipcPath == "" { - rpcClient, err = rpc.Dial(httpPath) - } else { - rpcClient, err = rpc.Dial(ipcPath) - } - if err != nil { - return err - } - - client := ethclient.NewClient(rpcClient) - - // User inputs private key, sign tx with private key - if privKeyString != "" { - privKey, err := crypto.HexToECDSA(privKeyString) - if err != nil { - log.Fatal(err) - } - txOps, err = bind.NewKeyedTransactorWithChainID(privKey, big.NewInt(1337)) - if err != nil { - log.Fatal(err) - } - txOps.Value = big.NewInt(0) - txOps.GasLimit = 4000000 - txOps.Context = context.Background() - // User inputs keystore json file, sign tx with keystore json - } else { - // #nosec - Inclusion of file via variable is OK for this tool. - file, err := os.Open(passwordFile) - if err != nil { - return err - } - - scanner := bufio.NewScanner(file) - scanner.Split(bufio.ScanWords) - scanner.Scan() - password := scanner.Text() - - // #nosec - Inclusion of file via variable is OK for this tool. - keyJSON, err := ioutil.ReadFile(keystoreUTCPath) - if err != nil { - return err - } - privKey, err := keystore.DecryptKey(keyJSON, password) - if err != nil { - return err - } - - txOps, err = bind.NewKeyedTransactorWithChainID(privKey.PrivateKey, big.NewInt(1337)) - if err != nil { - log.Fatal(err) - } - txOps.Value = big.NewInt(0) - txOps.GasLimit = 4000000 - txOps.Context = context.Background() - } - - txOps.GasPrice = big.NewInt(10 * 1e9 /* 10 gwei */) - - // Deploy validator registration contract - addr, tx, _, err := contracts.DeployDepositContract( - txOps, - client, - ) - - if err != nil { - return err - } - - // Wait for contract to mine - for pending := true; pending; _, pending, err = client.TransactionByHash(context.Background(), tx.Hash()) { - if err != nil { - return err - } - time.Sleep(1 * time.Second) - } - - log.WithFields(logrus.Fields{ - "address": addr.Hex(), - }).Info("New contract deployed") - - return nil - } - - err := app.Run(os.Args) - if err != nil { - log.Fatal(err) - } -} diff --git a/validator/client/BUILD.bazel b/validator/client/BUILD.bazel index 575647fa9e..526395bcdf 100644 --- a/validator/client/BUILD.bazel +++ b/validator/client/BUILD.bazel @@ -129,7 +129,7 @@ go_test( "//validator/db/testing:go_default_library", "//validator/graffiti:go_default_library", "//validator/keymanager/derived:go_default_library", - "//validator/keymanager/remote:go_default_library", + "//validator/keymanager/remote/mock:go_default_library", "//validator/slashing-protection-history:go_default_library", "//validator/testing:go_default_library", "@com_github_golang_mock//gomock:go_default_library", diff --git a/validator/client/runner_test.go b/validator/client/runner_test.go index 257dffae25..e26b6d904d 100644 --- a/validator/client/runner_test.go +++ b/validator/client/runner_test.go @@ -13,7 +13,7 @@ import ( "github.com/prysmaticlabs/prysm/testing/require" "github.com/prysmaticlabs/prysm/validator/client/iface" "github.com/prysmaticlabs/prysm/validator/client/testutil" - "github.com/prysmaticlabs/prysm/validator/keymanager/remote" + "github.com/prysmaticlabs/prysm/validator/keymanager/remote/mock" logTest "github.com/sirupsen/logrus/hooks/test" ) @@ -231,7 +231,7 @@ func TestKeyReload_NoActiveKey(t *testing.T) { func TestKeyReload_RemoteKeymanager(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) - km := remote.NewMock() + km := mock.NewMock() v := &testutil.FakeValidator{Keymanager: &km} ticker := make(chan types.Slot) diff --git a/validator/client/wait_for_activation_test.go b/validator/client/wait_for_activation_test.go index 7f51ea03d9..1f0ece503e 100644 --- a/validator/client/wait_for_activation_test.go +++ b/validator/client/wait_for_activation_test.go @@ -20,7 +20,7 @@ import ( walletMock "github.com/prysmaticlabs/prysm/validator/accounts/testing" "github.com/prysmaticlabs/prysm/validator/client/testutil" "github.com/prysmaticlabs/prysm/validator/keymanager/derived" - "github.com/prysmaticlabs/prysm/validator/keymanager/remote" + remotekeymanagermock "github.com/prysmaticlabs/prysm/validator/keymanager/remote/mock" constant "github.com/prysmaticlabs/prysm/validator/testing" logTest "github.com/sirupsen/logrus/hooks/test" "github.com/tyler-smith/go-bip39" @@ -398,7 +398,7 @@ func TestWaitForActivation_RemoteKeymanager(t *testing.T) { inactiveKey := bytesutil.ToBytes48([]byte("inactive")) activeKey := bytesutil.ToBytes48([]byte("active")) - km := remote.NewMock() + km := remotekeymanagermock.NewMock() km.PublicKeys = [][fieldparams.BLSPubkeyLength]byte{inactiveKey, activeKey} slot := types.Slot(0) @@ -461,7 +461,7 @@ func TestWaitForActivation_RemoteKeymanager(t *testing.T) { t.Run("reloaded", func(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) hook := logTest.NewGlobal() - remoteKm := remote.NewMock() + remoteKm := remotekeymanagermock.NewMock() remoteKm.PublicKeys = [][fieldparams.BLSPubkeyLength]byte{inactiveKey} tickerChan := make(chan types.Slot) diff --git a/validator/keymanager/remote/BUILD.bazel b/validator/keymanager/remote/BUILD.bazel index 01c8265b35..18b4652536 100644 --- a/validator/keymanager/remote/BUILD.bazel +++ b/validator/keymanager/remote/BUILD.bazel @@ -6,7 +6,6 @@ go_library( "doc.go", "keymanager.go", "log.go", - "mock_keymanager.go", ], importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/remote", visibility = [ diff --git a/validator/keymanager/remote/mock/BUILD.bazel b/validator/keymanager/remote/mock/BUILD.bazel new file mode 100644 index 0000000000..35ba3b7800 --- /dev/null +++ b/validator/keymanager/remote/mock/BUILD.bazel @@ -0,0 +1,15 @@ +load("@prysm//tools/go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + testonly = True, + srcs = ["mock_keymanager.go"], + importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/remote/mock", + visibility = ["//visibility:public"], + deps = [ + "//async/event:go_default_library", + "//config/fieldparams:go_default_library", + "//crypto/bls:go_default_library", + "//proto/prysm/v1alpha1/validator-client:go_default_library", + ], +) diff --git a/validator/keymanager/remote/mock_keymanager.go b/validator/keymanager/remote/mock/mock_keymanager.go similarity index 98% rename from validator/keymanager/remote/mock_keymanager.go rename to validator/keymanager/remote/mock/mock_keymanager.go index c23f7ff084..f99fcd34c5 100644 --- a/validator/keymanager/remote/mock_keymanager.go +++ b/validator/keymanager/remote/mock/mock_keymanager.go @@ -1,4 +1,4 @@ -package remote +package mock import ( "context"