diff --git a/beacon-chain/cache/BUILD.bazel b/beacon-chain/cache/BUILD.bazel index 4df9d6755a..4a514be910 100644 --- a/beacon-chain/cache/BUILD.bazel +++ b/beacon-chain/cache/BUILD.bazel @@ -41,13 +41,13 @@ go_library( "//beacon-chain/state/v2:go_default_library", "//cache/lru:go_default_library", "//config/features:go_default_library", + "//container/slice:go_default_library", "//crypto/hash:go_default_library", "//crypto/rand:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/bytesutil:go_default_library", "//shared/mathutil:go_default_library", "//shared/params:go_default_library", - "//shared/sliceutil:go_default_library", "@com_github_hashicorp_golang_lru//:go_default_library", "@com_github_patrickmn_go_cache//:go_default_library", "@com_github_pkg_errors//:go_default_library", diff --git a/beacon-chain/cache/committee.go b/beacon-chain/cache/committee.go index b806974cc4..9b62cb0d44 100644 --- a/beacon-chain/cache/committee.go +++ b/beacon-chain/cache/committee.go @@ -11,9 +11,9 @@ import ( "github.com/prometheus/client_golang/prometheus/promauto" types "github.com/prysmaticlabs/eth2-types" lruwrpr "github.com/prysmaticlabs/prysm/cache/lru" + "github.com/prysmaticlabs/prysm/container/slice" "github.com/prysmaticlabs/prysm/shared/mathutil" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" ) var ( @@ -154,8 +154,8 @@ func (c *CommitteeCache) HasEntry(seed string) bool { func startEndIndices(c *Committees, index uint64) (uint64, uint64) { validatorCount := uint64(len(c.ShuffledIndices)) - start := sliceutil.SplitOffset(validatorCount, c.CommitteeCount, index) - end := sliceutil.SplitOffset(validatorCount, c.CommitteeCount, index+1) + start := slice.SplitOffset(validatorCount, c.CommitteeCount, index) + end := slice.SplitOffset(validatorCount, c.CommitteeCount, index+1) return start, end } diff --git a/beacon-chain/cache/depositcache/BUILD.bazel b/beacon-chain/cache/depositcache/BUILD.bazel index b72837fe6f..52bb265641 100644 --- a/beacon-chain/cache/depositcache/BUILD.bazel +++ b/beacon-chain/cache/depositcache/BUILD.bazel @@ -10,11 +10,11 @@ go_library( importpath = "github.com/prysmaticlabs/prysm/beacon-chain/cache/depositcache", visibility = ["//beacon-chain:__subpackages__"], deps = [ + "//container/trie:go_default_library", "//crypto/hash:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/bytesutil:go_default_library", "//shared/params:go_default_library", - "//shared/trieutil:go_default_library", "@com_github_pkg_errors//:go_default_library", "@com_github_prometheus_client_golang//prometheus:go_default_library", "@com_github_prometheus_client_golang//prometheus/promauto:go_default_library", @@ -31,12 +31,12 @@ go_test( ], embed = [":go_default_library"], deps = [ + "//container/trie:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/bytesutil:go_default_library", "//shared/params:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", - "//shared/trieutil:go_default_library", "@com_github_sirupsen_logrus//hooks/test:go_default_library", "@org_golang_google_protobuf//proto:go_default_library", ], diff --git a/beacon-chain/cache/depositcache/deposits_cache.go b/beacon-chain/cache/depositcache/deposits_cache.go index 2fe6f67317..2804186448 100644 --- a/beacon-chain/cache/depositcache/deposits_cache.go +++ b/beacon-chain/cache/depositcache/deposits_cache.go @@ -15,11 +15,11 @@ import ( "github.com/pkg/errors" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" + "github.com/prysmaticlabs/prysm/container/trie" dbpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/trieutil" "github.com/sirupsen/logrus" "go.opencensus.io/trace" ) @@ -43,7 +43,7 @@ type DepositFetcher interface { // FinalizedDeposits stores the trie of deposits that have been included // in the beacon state up to the latest finalized checkpoint. type FinalizedDeposits struct { - Deposits *trieutil.SparseMerkleTrie + Deposits *trie.SparseMerkleTrie MerkleTrieIndex int64 } @@ -59,7 +59,7 @@ type DepositCache struct { // New instantiates a new deposit cache func New() (*DepositCache, error) { - finalizedDepositsTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + finalizedDepositsTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) if err != nil { return nil, err } diff --git a/beacon-chain/cache/depositcache/deposits_cache_test.go b/beacon-chain/cache/depositcache/deposits_cache_test.go index e6c5aab041..14c1773f4c 100644 --- a/beacon-chain/cache/depositcache/deposits_cache_test.go +++ b/beacon-chain/cache/depositcache/deposits_cache_test.go @@ -7,13 +7,13 @@ import ( "math/big" "testing" + "github.com/prysmaticlabs/prysm/container/trie" dbpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" - "github.com/prysmaticlabs/prysm/shared/trieutil" logTest "github.com/sirupsen/logrus/hooks/test" ) @@ -429,7 +429,7 @@ func TestFinalizedDeposits_DepositsCachedCorrectly(t *testing.T) { require.NoError(t, err, "Could not hash deposit data") deps = append(deps, hash[:]) } - trie, err := trieutil.GenerateTrieFromItems(deps, params.BeaconConfig().DepositContractTreeDepth) + trie, err := trie.GenerateTrieFromItems(deps, params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not generate deposit trie") assert.Equal(t, trie.HashTreeRoot(), cachedDeposits.Deposits.HashTreeRoot()) } @@ -487,7 +487,7 @@ func TestFinalizedDeposits_UtilizesPreviouslyCachedDeposits(t *testing.T) { require.NoError(t, err, "Could not hash deposit data") deps = append(deps, hash[:]) } - trie, err := trieutil.GenerateTrieFromItems(deps, params.BeaconConfig().DepositContractTreeDepth) + trie, err := trie.GenerateTrieFromItems(deps, params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not generate deposit trie") assert.Equal(t, trie.HashTreeRoot(), cachedDeposits.Deposits.HashTreeRoot()) } diff --git a/beacon-chain/cache/subnet_ids.go b/beacon-chain/cache/subnet_ids.go index b30c1d59d0..e429fcad50 100644 --- a/beacon-chain/cache/subnet_ids.go +++ b/beacon-chain/cache/subnet_ids.go @@ -8,8 +8,8 @@ import ( "github.com/patrickmn/go-cache" types "github.com/prysmaticlabs/eth2-types" lruwrpr "github.com/prysmaticlabs/prysm/cache/lru" + "github.com/prysmaticlabs/prysm/container/slice" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" ) type subnetIDs struct { @@ -44,7 +44,7 @@ func (s *subnetIDs) AddAttesterSubnetID(slot types.Slot, subnetID uint64) { ids := []uint64{subnetID} val, exists := s.attester.Get(slot) if exists { - ids = sliceutil.UnionUint64(append(val.([]uint64), ids...)) + ids = slice.UnionUint64(append(val.([]uint64), ids...)) } s.attester.Add(slot, ids) } @@ -72,7 +72,7 @@ func (s *subnetIDs) AddAggregatorSubnetID(slot types.Slot, subnetID uint64) { ids := []uint64{subnetID} val, exists := s.aggregator.Get(slot) if exists { - ids = sliceutil.UnionUint64(append(val.([]uint64), ids...)) + ids = slice.UnionUint64(append(val.([]uint64), ids...)) } s.aggregator.Add(slot, ids) } @@ -117,7 +117,7 @@ func (s *subnetIDs) GetAllSubnets() []uint64 { } committees = append(committees, v.Object.([]uint64)...) } - return sliceutil.SetUint64(committees) + return slice.SetUint64(committees) } // AddPersistentCommittee adds the relevant committee for that particular validator along with its diff --git a/beacon-chain/cache/sync_subnet_ids.go b/beacon-chain/cache/sync_subnet_ids.go index 99c02804fd..7260d4f45c 100644 --- a/beacon-chain/cache/sync_subnet_ids.go +++ b/beacon-chain/cache/sync_subnet_ids.go @@ -6,10 +6,10 @@ import ( "github.com/patrickmn/go-cache" types "github.com/prysmaticlabs/eth2-types" + "github.com/prysmaticlabs/prysm/container/slice" "github.com/prysmaticlabs/prysm/crypto/rand" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" ) type syncSubnetIDs struct { @@ -86,7 +86,7 @@ func (s *syncSubnetIDs) GetAllSubnets(currEpoch types.Epoch) []uint64 { // epoch of the validator's assignments. committees = append(committees, idxs[1:]...) } - return sliceutil.SetUint64(committees) + return slice.SetUint64(committees) } // AddSyncCommitteeSubnets adds the relevant committee for that particular validator along with its diff --git a/beacon-chain/core/altair/BUILD.bazel b/beacon-chain/core/altair/BUILD.bazel index 574a957b6c..5a43735295 100644 --- a/beacon-chain/core/altair/BUILD.bazel +++ b/beacon-chain/core/altair/BUILD.bazel @@ -66,6 +66,7 @@ go_test( "//beacon-chain/p2p/types:go_default_library", "//beacon-chain/state:go_default_library", "//beacon-chain/state/v2:go_default_library", + "//container/trie:go_default_library", "//crypto/bls:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/wrapper:go_default_library", @@ -76,7 +77,6 @@ go_test( "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", - "//shared/trieutil:go_default_library", "//time:go_default_library", "@com_github_google_gofuzz//:go_default_library", "@com_github_prysmaticlabs_eth2_types//:go_default_library", diff --git a/beacon-chain/core/altair/deposit_test.go b/beacon-chain/core/altair/deposit_test.go index 42d8bfa718..78824d4a4d 100644 --- a/beacon-chain/core/altair/deposit_test.go +++ b/beacon-chain/core/altair/deposit_test.go @@ -7,13 +7,13 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/altair" "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" stateAltair "github.com/prysmaticlabs/prysm/beacon-chain/state/v2" + "github.com/prysmaticlabs/prysm/container/trie" "github.com/prysmaticlabs/prysm/crypto/bls" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/require" - "github.com/prysmaticlabs/prysm/shared/trieutil" ) func TestProcessDeposits_SameValidatorMultipleDepositsSameBlock(t *testing.T) { @@ -56,7 +56,7 @@ func TestProcessDeposits_MerkleBranchFailsVerification(t *testing.T) { require.NoError(t, err) // We then create a merkle branch for the test. - depositTrie, err := trieutil.GenerateTrieFromItems([][]byte{leaf[:]}, params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.GenerateTrieFromItems([][]byte{leaf[:]}, params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not generate trie") proof, err := depositTrie.MerkleProof(0) require.NoError(t, err, "Could not generate proof") @@ -127,7 +127,7 @@ func TestProcessDeposits_RepeatedDeposit_IncreasesValidatorBalance(t *testing.T) require.NoError(t, err) // We then create a merkle branch for the test. - depositTrie, err := trieutil.GenerateTrieFromItems([][]byte{leaf[:]}, params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.GenerateTrieFromItems([][]byte{leaf[:]}, params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not generate trie") proof, err := depositTrie.MerkleProof(0) require.NoError(t, err, "Could not generate proof") diff --git a/beacon-chain/core/blocks/BUILD.bazel b/beacon-chain/core/blocks/BUILD.bazel index ee621171a0..40b8bacc54 100644 --- a/beacon-chain/core/blocks/BUILD.bazel +++ b/beacon-chain/core/blocks/BUILD.bazel @@ -28,6 +28,8 @@ go_library( "//beacon-chain/core/helpers:go_default_library", "//beacon-chain/core/validators:go_default_library", "//beacon-chain/state:go_default_library", + "//container/slice:go_default_library", + "//container/trie:go_default_library", "//crypto/bls:go_default_library", "//crypto/hash:go_default_library", "//proto/prysm/v1alpha1:go_default_library", @@ -40,8 +42,6 @@ go_library( "//shared/p2putils:go_default_library", "//shared/params:go_default_library", "//shared/slashutil:go_default_library", - "//shared/sliceutil:go_default_library", - "//shared/trieutil:go_default_library", "@com_github_pkg_errors//:go_default_library", "@com_github_prysmaticlabs_eth2_types//:go_default_library", "@com_github_sirupsen_logrus//:go_default_library", @@ -79,6 +79,7 @@ go_test( "//beacon-chain/p2p/types:go_default_library", "//beacon-chain/state:go_default_library", "//beacon-chain/state/v1:go_default_library", + "//container/trie:go_default_library", "//crypto/bls:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/wrapper:go_default_library", @@ -90,7 +91,6 @@ go_test( "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", - "//shared/trieutil:go_default_library", "@com_github_google_gofuzz//:go_default_library", "@com_github_prysmaticlabs_eth2_types//:go_default_library", "@com_github_prysmaticlabs_go_bitfield//:go_default_library", diff --git a/beacon-chain/core/blocks/attester_slashing.go b/beacon-chain/core/blocks/attester_slashing.go index 49fc312a50..c35b7f5ee8 100644 --- a/beacon-chain/core/blocks/attester_slashing.go +++ b/beacon-chain/core/blocks/attester_slashing.go @@ -9,12 +9,12 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core" "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" "github.com/prysmaticlabs/prysm/beacon-chain/state" + "github.com/prysmaticlabs/prysm/container/slice" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/runtime/version" "github.com/prysmaticlabs/prysm/shared/attestationutil" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/slashutil" - "github.com/prysmaticlabs/prysm/shared/sliceutil" ) // ProcessAttesterSlashings is one of the operations performed @@ -138,5 +138,5 @@ func slashableAttesterIndices(slashing *ethpb.AttesterSlashing) []uint64 { } indices1 := slashing.Attestation_1.AttestingIndices indices2 := slashing.Attestation_2.AttestingIndices - return sliceutil.IntersectionUint64(indices1, indices2) + return slice.IntersectionUint64(indices1, indices2) } diff --git a/beacon-chain/core/blocks/deposit.go b/beacon-chain/core/blocks/deposit.go index d1fee5f298..9fad8e33d6 100644 --- a/beacon-chain/core/blocks/deposit.go +++ b/beacon-chain/core/blocks/deposit.go @@ -7,13 +7,13 @@ import ( "github.com/pkg/errors" "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" "github.com/prysmaticlabs/prysm/beacon-chain/state" + "github.com/prysmaticlabs/prysm/container/trie" "github.com/prysmaticlabs/prysm/crypto/bls" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/depositutil" "github.com/prysmaticlabs/prysm/shared/mathutil" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/trieutil" ) // ProcessPreGenesisDeposits processes a deposit for the beacon state before chainstart. @@ -221,7 +221,7 @@ func verifyDeposit(beaconState state.ReadOnlyBeaconState, deposit *ethpb.Deposit if err != nil { return errors.Wrap(err, "could not tree hash deposit data") } - if ok := trieutil.VerifyMerkleBranch( + if ok := trie.VerifyMerkleBranch( receiptRoot, leaf[:], int(beaconState.Eth1DepositIndex()), diff --git a/beacon-chain/core/blocks/deposit_test.go b/beacon-chain/core/blocks/deposit_test.go index 9b84052c14..6a0222efc6 100644 --- a/beacon-chain/core/blocks/deposit_test.go +++ b/beacon-chain/core/blocks/deposit_test.go @@ -8,6 +8,7 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/blocks" "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" v1 "github.com/prysmaticlabs/prysm/beacon-chain/state/v1" + "github.com/prysmaticlabs/prysm/container/trie" "github.com/prysmaticlabs/prysm/crypto/bls" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" @@ -15,7 +16,6 @@ import ( "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" - "github.com/prysmaticlabs/prysm/shared/trieutil" ) func TestProcessDeposits_SameValidatorMultipleDepositsSameBlock(t *testing.T) { @@ -67,7 +67,7 @@ func TestProcessDeposits_MerkleBranchFailsVerification(t *testing.T) { require.NoError(t, err) // We then create a merkle branch for the test. - depositTrie, err := trieutil.GenerateTrieFromItems([][]byte{leaf[:]}, params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.GenerateTrieFromItems([][]byte{leaf[:]}, params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not generate trie") proof, err := depositTrie.MerkleProof(0) require.NoError(t, err, "Could not generate proof") @@ -150,7 +150,7 @@ func TestProcessDeposits_RepeatedDeposit_IncreasesValidatorBalance(t *testing.T) require.NoError(t, err) // We then create a merkle branch for the test. - depositTrie, err := trieutil.GenerateTrieFromItems([][]byte{leaf[:]}, params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.GenerateTrieFromItems([][]byte{leaf[:]}, params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not generate trie") proof, err := depositTrie.MerkleProof(0) require.NoError(t, err, "Could not generate proof") @@ -359,7 +359,7 @@ func TestProcessDeposit_RepeatedDeposit_IncreasesValidatorBalance(t *testing.T) require.NoError(t, err) // We then create a merkle branch for the test. - depositTrie, err := trieutil.GenerateTrieFromItems([][]byte{leaf[:]}, params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.GenerateTrieFromItems([][]byte{leaf[:]}, params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not generate trie") proof, err := depositTrie.MerkleProof(0) require.NoError(t, err, "Could not generate proof") diff --git a/beacon-chain/core/helpers/BUILD.bazel b/beacon-chain/core/helpers/BUILD.bazel index a9a01459af..b629913c9f 100644 --- a/beacon-chain/core/helpers/BUILD.bazel +++ b/beacon-chain/core/helpers/BUILD.bazel @@ -37,6 +37,8 @@ go_library( "//beacon-chain/cache:go_default_library", "//beacon-chain/core:go_default_library", "//beacon-chain/state:go_default_library", + "//container/slice:go_default_library", + "//container/trie:go_default_library", "//crypto/bls:go_default_library", "//crypto/hash:go_default_library", "//proto/prysm/v1alpha1:go_default_library", @@ -44,8 +46,6 @@ go_library( "//shared/bytesutil:go_default_library", "//shared/mathutil:go_default_library", "//shared/params:go_default_library", - "//shared/sliceutil:go_default_library", - "//shared/trieutil:go_default_library", "//time:go_default_library", "@com_github_ferranbt_fastssz//:go_default_library", "@com_github_pkg_errors//:go_default_library", @@ -79,12 +79,12 @@ go_test( "//beacon-chain/state/v1:go_default_library", "//beacon-chain/state/v2:go_default_library", "//config/features:go_default_library", + "//container/slice:go_default_library", "//crypto/bls:go_default_library", "//crypto/hash:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/bytesutil:go_default_library", "//shared/params:go_default_library", - "//shared/sliceutil:go_default_library", "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", diff --git a/beacon-chain/core/helpers/beacon_committee.go b/beacon-chain/core/helpers/beacon_committee.go index 0f2d7373e5..81ffd9e360 100644 --- a/beacon-chain/core/helpers/beacon_committee.go +++ b/beacon-chain/core/helpers/beacon_committee.go @@ -13,12 +13,12 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/cache" "github.com/prysmaticlabs/prysm/beacon-chain/core" "github.com/prysmaticlabs/prysm/beacon-chain/state" + "github.com/prysmaticlabs/prysm/container/slice" "github.com/prysmaticlabs/prysm/crypto/hash" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/mathutil" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" ) var ( @@ -389,8 +389,8 @@ func computeCommittee( index, count uint64, ) ([]types.ValidatorIndex, error) { validatorCount := uint64(len(indices)) - start := sliceutil.SplitOffset(validatorCount, count, index) - end := sliceutil.SplitOffset(validatorCount, count, index+1) + start := slice.SplitOffset(validatorCount, count, index) + end := slice.SplitOffset(validatorCount, count, index+1) if start > validatorCount || end > validatorCount { return nil, errors.New("index out of range") diff --git a/beacon-chain/core/helpers/beacon_committee_test.go b/beacon-chain/core/helpers/beacon_committee_test.go index d8e016e600..9ab8833aa1 100644 --- a/beacon-chain/core/helpers/beacon_committee_test.go +++ b/beacon-chain/core/helpers/beacon_committee_test.go @@ -9,11 +9,11 @@ import ( "github.com/prysmaticlabs/go-bitfield" "github.com/prysmaticlabs/prysm/beacon-chain/core" v1 "github.com/prysmaticlabs/prysm/beacon-chain/state/v1" + "github.com/prysmaticlabs/prysm/container/slice" "github.com/prysmaticlabs/prysm/crypto/hash" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" ) @@ -55,16 +55,16 @@ func TestComputeCommittee_WithoutCache(t *testing.T) { index := uint64(5) committee5, err := computeCommittee(indices, seed, index, committeeCount) assert.NoError(t, err, "Could not compute committee") - start := sliceutil.SplitOffset(validatorCount, committeeCount, index) - end := sliceutil.SplitOffset(validatorCount, committeeCount, index+1) + start := slice.SplitOffset(validatorCount, committeeCount, index) + end := slice.SplitOffset(validatorCount, committeeCount, index+1) assert.DeepEqual(t, committee5, committees[start:end], "Committee has different shuffled indices") // Test shuffled indices are correct for index 9 committee index = uint64(9) committee9, err := computeCommittee(indices, seed, index, committeeCount) assert.NoError(t, err, "Could not compute committee") - start = sliceutil.SplitOffset(validatorCount, committeeCount, index) - end = sliceutil.SplitOffset(validatorCount, committeeCount, index+1) + start = slice.SplitOffset(validatorCount, committeeCount, index) + end = slice.SplitOffset(validatorCount, committeeCount, index+1) assert.DeepEqual(t, committee9, committees[start:end], "Committee has different shuffled indices") } diff --git a/beacon-chain/core/helpers/genesis.go b/beacon-chain/core/helpers/genesis.go index 9ed43325f9..925875bee6 100644 --- a/beacon-chain/core/helpers/genesis.go +++ b/beacon-chain/core/helpers/genesis.go @@ -5,9 +5,9 @@ import ( "github.com/pkg/errors" "github.com/prysmaticlabs/prysm/beacon-chain/state" + "github.com/prysmaticlabs/prysm/container/trie" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/trieutil" ) // UpdateGenesisEth1Data updates eth1 data for genesis state. @@ -27,21 +27,21 @@ func UpdateGenesisEth1Data(state state.BeaconState, deposits []*ethpb.Deposit, e } leaves = append(leaves, hash[:]) } - var trie *trieutil.SparseMerkleTrie + var t *trie.SparseMerkleTrie var err error if len(leaves) > 0 { - trie, err = trieutil.GenerateTrieFromItems(leaves, params.BeaconConfig().DepositContractTreeDepth) + t, err = trie.GenerateTrieFromItems(leaves, params.BeaconConfig().DepositContractTreeDepth) if err != nil { return nil, err } } else { - trie, err = trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + t, err = trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) if err != nil { return nil, err } } - depositRoot := trie.HashTreeRoot() + depositRoot := t.HashTreeRoot() eth1Data.DepositRoot = depositRoot[:] err = state.SetEth1Data(eth1Data) if err != nil { diff --git a/beacon-chain/core/helpers/shuffle.go b/beacon-chain/core/helpers/shuffle.go index 202f9b8dde..5a75653b0c 100644 --- a/beacon-chain/core/helpers/shuffle.go +++ b/beacon-chain/core/helpers/shuffle.go @@ -5,10 +5,10 @@ import ( "fmt" types "github.com/prysmaticlabs/eth2-types" + "github.com/prysmaticlabs/prysm/container/slice" "github.com/prysmaticlabs/prysm/crypto/hash" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" ) const seedSize = int8(32) @@ -24,8 +24,8 @@ func SplitIndices(l []uint64, n uint64) [][]uint64 { var divided [][]uint64 var lSize = uint64(len(l)) for i := uint64(0); i < n; i++ { - start := sliceutil.SplitOffset(lSize, n, i) - end := sliceutil.SplitOffset(lSize, n, i+1) + start := slice.SplitOffset(lSize, n, i) + end := slice.SplitOffset(lSize, n, i+1) divided = append(divided, l[start:end]) } return divided diff --git a/beacon-chain/core/helpers/shuffle_test.go b/beacon-chain/core/helpers/shuffle_test.go index f2216211c1..9db6ab5b7a 100644 --- a/beacon-chain/core/helpers/shuffle_test.go +++ b/beacon-chain/core/helpers/shuffle_test.go @@ -6,8 +6,8 @@ import ( "testing" types "github.com/prysmaticlabs/eth2-types" + "github.com/prysmaticlabs/prysm/container/slice" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" ) @@ -155,8 +155,8 @@ func TestSplitIndicesAndOffset_OK(t *testing.T) { chunks := uint64(6) split := SplitIndices(l, chunks) for i := uint64(0); i < chunks; i++ { - if !reflect.DeepEqual(split[i], l[sliceutil.SplitOffset(uint64(len(l)), chunks, i):sliceutil.SplitOffset(uint64(len(l)), chunks, i+1)]) { - t.Errorf("Want: %v got: %v", l[sliceutil.SplitOffset(uint64(len(l)), chunks, i):sliceutil.SplitOffset(uint64(len(l)), chunks, i+1)], split[i]) + if !reflect.DeepEqual(split[i], l[slice.SplitOffset(uint64(len(l)), chunks, i):slice.SplitOffset(uint64(len(l)), chunks, i+1)]) { + t.Errorf("Want: %v got: %v", l[slice.SplitOffset(uint64(len(l)), chunks, i):slice.SplitOffset(uint64(len(l)), chunks, i+1)], split[i]) break } } diff --git a/beacon-chain/db/kv/BUILD.bazel b/beacon-chain/db/kv/BUILD.bazel index 0d1ad608ef..c6d0065c7f 100644 --- a/beacon-chain/db/kv/BUILD.bazel +++ b/beacon-chain/db/kv/BUILD.bazel @@ -44,6 +44,7 @@ go_library( "//beacon-chain/state/v1:go_default_library", "//beacon-chain/state/v2:go_default_library", "//config/features:go_default_library", + "//container/slice:go_default_library", "//monitoring/progress:go_default_library", "//monitoring/tracing:go_default_library", "//proto/prysm/v1alpha1:go_default_library", @@ -53,7 +54,6 @@ go_library( "//shared/bytesutil:go_default_library", "//shared/fileutil:go_default_library", "//shared/params:go_default_library", - "//shared/sliceutil:go_default_library", "@com_github_dgraph_io_ristretto//:go_default_library", "@com_github_ethereum_go_ethereum//common:go_default_library", "@com_github_ethereum_go_ethereum//common/hexutil:go_default_library", diff --git a/beacon-chain/db/kv/blocks.go b/beacon-chain/db/kv/blocks.go index 6fdce98979..15bc5e5724 100644 --- a/beacon-chain/db/kv/blocks.go +++ b/beacon-chain/db/kv/blocks.go @@ -10,13 +10,13 @@ import ( types "github.com/prysmaticlabs/eth2-types" "github.com/prysmaticlabs/prysm/beacon-chain/core" "github.com/prysmaticlabs/prysm/beacon-chain/db/filters" + "github.com/prysmaticlabs/prysm/container/slice" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" "github.com/prysmaticlabs/prysm/runtime/version" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" bolt "go.etcd.io/bbolt" "go.opencensus.io/trace" ) @@ -435,12 +435,12 @@ func blockRootsByFilter(ctx context.Context, tx *bolt.Tx, f *filters.QueryFilter // between these two sets of roots. if len(rootsBySlotRange) > 0 { joined := append([][][]byte{keys}, indices...) - keys = sliceutil.IntersectionByteSlices(joined...) + keys = slice.IntersectionByteSlices(joined...) } else { // If we have found indices that meet the filter criteria, but there are no block roots // that meet the slot range filter criteria, we find the intersection // of the regular filter indices. - keys = sliceutil.IntersectionByteSlices(indices...) + keys = slice.IntersectionByteSlices(indices...) } } diff --git a/beacon-chain/node/BUILD.bazel b/beacon-chain/node/BUILD.bazel index 9f97cfb7e9..8eb710ab07 100644 --- a/beacon-chain/node/BUILD.bazel +++ b/beacon-chain/node/BUILD.bazel @@ -37,6 +37,7 @@ go_library( "//beacon-chain/sync/initial-sync:go_default_library", "//cmd/beacon-chain/flags:go_default_library", "//config/features:go_default_library", + "//container/slice:go_default_library", "//monitoring/backup:go_default_library", "//monitoring/prometheus:go_default_library", "//monitoring/tracing:go_default_library", @@ -48,7 +49,6 @@ go_library( "//shared/event:go_default_library", "//shared/gateway:go_default_library", "//shared/params:go_default_library", - "//shared/sliceutil:go_default_library", "@com_github_ethereum_go_ethereum//common:go_default_library", "@com_github_pkg_errors//:go_default_library", "@com_github_prometheus_client_golang//prometheus:go_default_library", diff --git a/beacon-chain/node/node.go b/beacon-chain/node/node.go index 5f2082caa9..90417b3e75 100644 --- a/beacon-chain/node/node.go +++ b/beacon-chain/node/node.go @@ -39,6 +39,7 @@ import ( initialsync "github.com/prysmaticlabs/prysm/beacon-chain/sync/initial-sync" "github.com/prysmaticlabs/prysm/cmd/beacon-chain/flags" "github.com/prysmaticlabs/prysm/config/features" + "github.com/prysmaticlabs/prysm/container/slice" "github.com/prysmaticlabs/prysm/monitoring/backup" "github.com/prysmaticlabs/prysm/monitoring/prometheus" "github.com/prysmaticlabs/prysm/runtime/debug" @@ -49,7 +50,6 @@ import ( "github.com/prysmaticlabs/prysm/shared/event" "github.com/prysmaticlabs/prysm/shared/gateway" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" "github.com/sirupsen/logrus" "github.com/urfave/cli/v2" ) @@ -363,7 +363,7 @@ func (b *BeaconNode) registerP2P(cliCtx *cli.Context) error { svc, err := p2p.NewService(b.ctx, &p2p.Config{ NoDiscovery: cliCtx.Bool(cmd.NoDiscovery.Name), - StaticPeers: sliceutil.SplitCommaSeparated(cliCtx.StringSlice(cmd.StaticPeers.Name)), + StaticPeers: slice.SplitCommaSeparated(cliCtx.StringSlice(cmd.StaticPeers.Name)), BootstrapNodeAddr: bootstrapNodeAddrs, RelayNodeAddr: cliCtx.String(cmd.RelayNode.Name), DataDir: dataDir, @@ -376,7 +376,7 @@ func (b *BeaconNode) registerP2P(cliCtx *cli.Context) error { UDPPort: cliCtx.Uint(cmd.P2PUDPPort.Name), MaxPeers: cliCtx.Uint(cmd.P2PMaxPeers.Name), AllowListCIDR: cliCtx.String(cmd.P2PAllowList.Name), - DenyListCIDR: sliceutil.SplitCommaSeparated(cliCtx.StringSlice(cmd.P2PDenyList.Name)), + DenyListCIDR: slice.SplitCommaSeparated(cliCtx.StringSlice(cmd.P2PDenyList.Name)), EnableUPnP: cliCtx.Bool(cmd.EnableUPnPFlag.Name), DisableDiscv5: cliCtx.Bool(flags.DisableDiscv5.Name), StateNotifier: b, diff --git a/beacon-chain/operations/slashings/BUILD.bazel b/beacon-chain/operations/slashings/BUILD.bazel index e8f083bace..d6b067041a 100644 --- a/beacon-chain/operations/slashings/BUILD.bazel +++ b/beacon-chain/operations/slashings/BUILD.bazel @@ -20,9 +20,9 @@ go_library( "//beacon-chain/core/blocks:go_default_library", "//beacon-chain/core/helpers:go_default_library", "//beacon-chain/state:go_default_library", + "//container/slice:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/params:go_default_library", - "//shared/sliceutil:go_default_library", "@com_github_pkg_errors//:go_default_library", "@com_github_prometheus_client_golang//prometheus:go_default_library", "@com_github_prometheus_client_golang//prometheus/promauto:go_default_library", diff --git a/beacon-chain/operations/slashings/service.go b/beacon-chain/operations/slashings/service.go index c106794067..6c0f0470ca 100644 --- a/beacon-chain/operations/slashings/service.go +++ b/beacon-chain/operations/slashings/service.go @@ -11,9 +11,9 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/blocks" "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" "github.com/prysmaticlabs/prysm/beacon-chain/state" + "github.com/prysmaticlabs/prysm/container/slice" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" "github.com/trailofbits/go-mutexasserts" "go.opencensus.io/trace" ) @@ -63,7 +63,7 @@ func (p *Pool) PendingAttesterSlashings(ctx context.Context, state state.ReadOnl continue } attSlashing := slashing.attesterSlashing - slashedVal := sliceutil.IntersectionUint64(attSlashing.Attestation_1.AttestingIndices, attSlashing.Attestation_2.AttestingIndices) + slashedVal := slice.IntersectionUint64(attSlashing.Attestation_1.AttestingIndices, attSlashing.Attestation_2.AttestingIndices) for _, idx := range slashedVal { included[types.ValidatorIndex(idx)] = true } @@ -129,7 +129,7 @@ func (p *Pool) InsertAttesterSlashing( return errors.Wrap(err, "could not verify attester slashing") } - slashedVal := sliceutil.IntersectionUint64(slashing.Attestation_1.AttestingIndices, slashing.Attestation_2.AttestingIndices) + slashedVal := slice.IntersectionUint64(slashing.Attestation_1.AttestingIndices, slashing.Attestation_2.AttestingIndices) cantSlash := make([]uint64, 0, len(slashedVal)) for _, val := range slashedVal { // Has this validator index been included recently? @@ -225,7 +225,7 @@ func (p *Pool) InsertProposerSlashing( func (p *Pool) MarkIncludedAttesterSlashing(as *ethpb.AttesterSlashing) { p.lock.Lock() defer p.lock.Unlock() - slashedVal := sliceutil.IntersectionUint64(as.Attestation_1.AttestingIndices, as.Attestation_2.AttestingIndices) + slashedVal := slice.IntersectionUint64(as.Attestation_1.AttestingIndices, as.Attestation_2.AttestingIndices) for _, val := range slashedVal { i := sort.Search(len(p.pendingAttesterSlashing), func(i int) bool { return uint64(p.pendingAttesterSlashing[i].validatorToSlash) >= val diff --git a/beacon-chain/operations/synccommittee/BUILD.bazel b/beacon-chain/operations/synccommittee/BUILD.bazel index c166feba12..6f83481ba8 100644 --- a/beacon-chain/operations/synccommittee/BUILD.bazel +++ b/beacon-chain/operations/synccommittee/BUILD.bazel @@ -13,8 +13,8 @@ go_library( importpath = "github.com/prysmaticlabs/prysm/beacon-chain/operations/synccommittee", visibility = ["//beacon-chain:__subpackages__"], deps = [ + "//container/queue:go_default_library", "//proto/prysm/v1alpha1:go_default_library", - "//shared/queue:go_default_library", "@com_github_pkg_errors//:go_default_library", "@com_github_prometheus_client_golang//prometheus:go_default_library", "@com_github_prometheus_client_golang//prometheus/promauto:go_default_library", diff --git a/beacon-chain/operations/synccommittee/contribution.go b/beacon-chain/operations/synccommittee/contribution.go index 06cf1607ea..f6988bcdae 100644 --- a/beacon-chain/operations/synccommittee/contribution.go +++ b/beacon-chain/operations/synccommittee/contribution.go @@ -5,8 +5,8 @@ import ( "github.com/pkg/errors" types "github.com/prysmaticlabs/eth2-types" + "github.com/prysmaticlabs/prysm/container/queue" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/queue" ) // To give two slots tolerance for objects that arrive earlier. diff --git a/beacon-chain/operations/synccommittee/kv.go b/beacon-chain/operations/synccommittee/kv.go index 95125e3d6f..73ca86a6ed 100644 --- a/beacon-chain/operations/synccommittee/kv.go +++ b/beacon-chain/operations/synccommittee/kv.go @@ -3,7 +3,7 @@ package synccommittee import ( "sync" - "github.com/prysmaticlabs/prysm/shared/queue" + "github.com/prysmaticlabs/prysm/container/queue" ) // Store defines the caches for various sync committee objects diff --git a/beacon-chain/operations/synccommittee/message.go b/beacon-chain/operations/synccommittee/message.go index 3d8801719b..e41facd100 100644 --- a/beacon-chain/operations/synccommittee/message.go +++ b/beacon-chain/operations/synccommittee/message.go @@ -3,8 +3,8 @@ package synccommittee import ( "github.com/pkg/errors" types "github.com/prysmaticlabs/eth2-types" + "github.com/prysmaticlabs/prysm/container/queue" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/queue" ) // SaveSyncCommitteeMessage saves a sync committee message in to a priority queue. diff --git a/beacon-chain/powchain/BUILD.bazel b/beacon-chain/powchain/BUILD.bazel index 50d6f4f827..d8011f025f 100644 --- a/beacon-chain/powchain/BUILD.bazel +++ b/beacon-chain/powchain/BUILD.bazel @@ -30,6 +30,7 @@ go_library( "//beacon-chain/state:go_default_library", "//beacon-chain/state/stategen:go_default_library", "//beacon-chain/state/v1:go_default_library", + "//container/trie:go_default_library", "//contracts/deposit-contract:go_default_library", "//crypto/hash:go_default_library", "//monitoring/clientstats:go_default_library", @@ -40,7 +41,6 @@ go_library( "//shared/httputils/authorizationmethod:go_default_library", "//shared/logutil:go_default_library", "//shared/params:go_default_library", - "//shared/trieutil:go_default_library", "//time:go_default_library", "@com_github_ethereum_go_ethereum//:go_default_library", "@com_github_ethereum_go_ethereum//accounts/abi/bind:go_default_library", @@ -82,6 +82,7 @@ go_test( "//beacon-chain/db/testing:go_default_library", "//beacon-chain/powchain/testing:go_default_library", "//beacon-chain/powchain/types:go_default_library", + "//container/trie:go_default_library", "//contracts/deposit-contract:go_default_library", "//crypto/bls:go_default_library", "//monitoring/clientstats:go_default_library", @@ -94,7 +95,6 @@ go_test( "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", - "//shared/trieutil:go_default_library", "@com_github_ethereum_go_ethereum//:go_default_library", "@com_github_ethereum_go_ethereum//accounts/abi/bind/backends:go_default_library", "@com_github_ethereum_go_ethereum//common:go_default_library", diff --git a/beacon-chain/powchain/deposit_test.go b/beacon-chain/powchain/deposit_test.go index d4932382a3..78f58405dc 100644 --- a/beacon-chain/powchain/deposit_test.go +++ b/beacon-chain/powchain/deposit_test.go @@ -8,6 +8,7 @@ import ( types "github.com/prysmaticlabs/eth2-types" "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" testDB "github.com/prysmaticlabs/prysm/beacon-chain/db/testing" + "github.com/prysmaticlabs/prysm/container/trie" "github.com/prysmaticlabs/prysm/crypto/bls" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" @@ -15,7 +16,6 @@ import ( "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" - "github.com/prysmaticlabs/prysm/shared/trieutil" logTest "github.com/sirupsen/logrus/hooks/test" ) @@ -87,7 +87,7 @@ func TestProcessDeposit_InvalidPublicKey(t *testing.T) { leaf, err := deposits[0].Data.HashTreeRoot() require.NoError(t, err, "Could not hash deposit") - trie, err := trieutil.GenerateTrieFromItems([][]byte{leaf[:]}, params.BeaconConfig().DepositContractTreeDepth) + trie, err := trie.GenerateTrieFromItems([][]byte{leaf[:]}, params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err) deposits[0].Proof, err = trie.MerkleProof(0) @@ -125,7 +125,7 @@ func TestProcessDeposit_InvalidSignature(t *testing.T) { leaf, err := deposits[0].Data.HashTreeRoot() require.NoError(t, err, "Could not hash deposit") - trie, err := trieutil.GenerateTrieFromItems([][]byte{leaf[:]}, params.BeaconConfig().DepositContractTreeDepth) + trie, err := trie.GenerateTrieFromItems([][]byte{leaf[:]}, params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err) root := trie.HashTreeRoot() @@ -203,7 +203,7 @@ func TestProcessDeposit_IncompleteDeposit(t *testing.T) { sig := priv.Sign(signedRoot[:]) deposit.Data.Signature = sig.Marshal() - trie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + trie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err) root := trie.HashTreeRoot() eth1Data := ðpb.Eth1Data{ diff --git a/beacon-chain/powchain/service.go b/beacon-chain/powchain/service.go index 158d69b24e..e525b060bf 100644 --- a/beacon-chain/powchain/service.go +++ b/beacon-chain/powchain/service.go @@ -32,6 +32,7 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/state" "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen" v1 "github.com/prysmaticlabs/prysm/beacon-chain/state/v1" + "github.com/prysmaticlabs/prysm/container/trie" contracts "github.com/prysmaticlabs/prysm/contracts/deposit-contract" "github.com/prysmaticlabs/prysm/monitoring/clientstats" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" @@ -41,7 +42,6 @@ import ( "github.com/prysmaticlabs/prysm/shared/httputils/authorizationmethod" "github.com/prysmaticlabs/prysm/shared/logutil" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/trieutil" prysmTime "github.com/prysmaticlabs/prysm/time" "github.com/sirupsen/logrus" ) @@ -142,7 +142,7 @@ type Service struct { headerCache *headerCache // cache to store block hash/block height. latestEth1Data *protodb.LatestETH1Data depositContractCaller *contracts.DepositContractCaller - depositTrie *trieutil.SparseMerkleTrie + depositTrie *trie.SparseMerkleTrie chainStartData *protodb.ChainStartData lastReceivedMerkleIndex int64 // Keeps track of the last received index to prevent log spam. runError error @@ -167,7 +167,7 @@ type Web3ServiceConfig struct { func NewService(ctx context.Context, config *Web3ServiceConfig) (*Service, error) { ctx, cancel := context.WithCancel(ctx) _ = cancel // govet fix for lost cancel. Cancel is handled in service.Stop() - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) if err != nil { cancel() return nil, errors.Wrap(err, "could not setup deposit trie") @@ -350,7 +350,7 @@ func (s *Service) DepositRoot() [32]byte { // DepositTrie returns the sparse Merkle trie used for storing // deposits from the ETH1.0 deposit contract. -func (s *Service) DepositTrie() *trieutil.SparseMerkleTrie { +func (s *Service) DepositTrie() *trie.SparseMerkleTrie { return s.depositTrie } @@ -965,7 +965,7 @@ func (s *Service) initializeEth1Data(ctx context.Context, eth1DataInDB *protodb. if eth1DataInDB == nil { return nil } - s.depositTrie = trieutil.CreateTrieFromProto(eth1DataInDB.Trie) + s.depositTrie = trie.CreateTrieFromProto(eth1DataInDB.Trie) s.chainStartData = eth1DataInDB.ChainstartData var err error if !reflect.ValueOf(eth1DataInDB.BeaconState).IsZero() { diff --git a/beacon-chain/powchain/testing/BUILD.bazel b/beacon-chain/powchain/testing/BUILD.bazel index e476456370..dfd5e8fe6f 100644 --- a/beacon-chain/powchain/testing/BUILD.bazel +++ b/beacon-chain/powchain/testing/BUILD.bazel @@ -16,10 +16,10 @@ go_library( "//beacon-chain/powchain/types:go_default_library", "//beacon-chain/state:go_default_library", "//beacon-chain/state/v1:go_default_library", + "//container/trie:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/bytesutil:go_default_library", "//shared/event:go_default_library", - "//shared/trieutil: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//common/hexutil:go_default_library", diff --git a/beacon-chain/powchain/testing/mock_faulty_powchain.go b/beacon-chain/powchain/testing/mock_faulty_powchain.go index 7ac6ef3189..b6afc0314a 100644 --- a/beacon-chain/powchain/testing/mock_faulty_powchain.go +++ b/beacon-chain/powchain/testing/mock_faulty_powchain.go @@ -9,9 +9,9 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/powchain/types" "github.com/prysmaticlabs/prysm/beacon-chain/state" v1 "github.com/prysmaticlabs/prysm/beacon-chain/state/v1" + "github.com/prysmaticlabs/prysm/container/trie" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/event" - "github.com/prysmaticlabs/prysm/shared/trieutil" ) // FaultyMockPOWChain defines an incorrectly functioning powchain service. @@ -60,8 +60,8 @@ func (f *FaultyMockPOWChain) DepositRoot() [32]byte { } // DepositTrie -- -func (f *FaultyMockPOWChain) DepositTrie() *trieutil.SparseMerkleTrie { - return &trieutil.SparseMerkleTrie{} +func (f *FaultyMockPOWChain) DepositTrie() *trie.SparseMerkleTrie { + return &trie.SparseMerkleTrie{} } // ChainStartDeposits -- diff --git a/beacon-chain/powchain/testing/mock_powchain.go b/beacon-chain/powchain/testing/mock_powchain.go index 255c3f9783..2b91303454 100644 --- a/beacon-chain/powchain/testing/mock_powchain.go +++ b/beacon-chain/powchain/testing/mock_powchain.go @@ -15,10 +15,10 @@ import ( "github.com/ethereum/go-ethereum/rpc" "github.com/prysmaticlabs/prysm/beacon-chain/powchain/types" "github.com/prysmaticlabs/prysm/beacon-chain/state" + "github.com/prysmaticlabs/prysm/container/trie" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/event" - "github.com/prysmaticlabs/prysm/shared/trieutil" ) // POWChain defines a properly functioning mock for the powchain service. @@ -55,8 +55,8 @@ func (m *POWChain) Eth2GenesisPowchainInfo() (uint64, *big.Int) { } // DepositTrie -- -func (m *POWChain) DepositTrie() *trieutil.SparseMerkleTrie { - return &trieutil.SparseMerkleTrie{} +func (m *POWChain) DepositTrie() *trie.SparseMerkleTrie { + return &trie.SparseMerkleTrie{} } // BlockExists -- diff --git a/beacon-chain/rpc/prysm/v1alpha1/beacon/BUILD.bazel b/beacon-chain/rpc/prysm/v1alpha1/beacon/BUILD.bazel index 648c71764e..4698de0e5e 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/beacon/BUILD.bazel +++ b/beacon-chain/rpc/prysm/v1alpha1/beacon/BUILD.bazel @@ -40,6 +40,7 @@ go_library( "//beacon-chain/state/stategen:go_default_library", "//beacon-chain/sync:go_default_library", "//config/features:go_default_library", + "//container/slice:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/block:go_default_library", "//runtime/version:go_default_library", @@ -50,7 +51,6 @@ go_library( "//shared/event:go_default_library", "//shared/pagination:go_default_library", "//shared/params:go_default_library", - "//shared/sliceutil:go_default_library", "//time/slots:go_default_library", "@com_github_patrickmn_go_cache//:go_default_library", "@com_github_prometheus_client_golang//prometheus:go_default_library", diff --git a/beacon-chain/rpc/prysm/v1alpha1/beacon/slashings.go b/beacon-chain/rpc/prysm/v1alpha1/beacon/slashings.go index 25885b897d..aa21d43140 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/beacon/slashings.go +++ b/beacon-chain/rpc/prysm/v1alpha1/beacon/slashings.go @@ -5,8 +5,8 @@ import ( types "github.com/prysmaticlabs/eth2-types" "github.com/prysmaticlabs/prysm/config/features" + "github.com/prysmaticlabs/prysm/container/slice" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/sliceutil" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" ) @@ -55,7 +55,7 @@ func (bs *Server) SubmitAttesterSlashing( return nil, status.Errorf(codes.Internal, "Could not broadcast slashing object: %v", err) } } - indices := sliceutil.IntersectionUint64(req.Attestation_1.AttestingIndices, req.Attestation_2.AttestingIndices) + indices := slice.IntersectionUint64(req.Attestation_1.AttestingIndices, req.Attestation_2.AttestingIndices) slashedIndices := make([]types.ValidatorIndex, len(indices)) for i, index := range indices { slashedIndices[i] = types.ValidatorIndex(index) diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel b/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel index 1957d35090..c4f9c99a58 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/BUILD.bazel @@ -42,6 +42,7 @@ go_library( "//beacon-chain/state/stategen:go_default_library", "//beacon-chain/sync:go_default_library", "//config/features:go_default_library", + "//container/trie:go_default_library", "//crypto/bls:go_default_library", "//crypto/hash:go_default_library", "//crypto/rand:go_default_library", @@ -59,7 +60,6 @@ go_library( "//shared/event:go_default_library", "//shared/p2putils:go_default_library", "//shared/params:go_default_library", - "//shared/trieutil:go_default_library", "//time:go_default_library", "//time/slots:go_default_library", "@com_github_ferranbt_fastssz//:go_default_library", @@ -119,6 +119,7 @@ go_test( "//beacon-chain/state/v1:go_default_library", "//beacon-chain/sync/initial-sync/testing:go_default_library", "//config/features:go_default_library", + "//container/trie:go_default_library", "//crypto/bls:go_default_library", "//proto/eth/v1:go_default_library", "//proto/prysm/v1alpha1:go_default_library", @@ -132,7 +133,6 @@ go_test( "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", - "//shared/trieutil:go_default_library", "//time:go_default_library", "@com_github_golang_mock//gomock:go_default_library", "@com_github_prysmaticlabs_eth2_types//:go_default_library", diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go index 2c1556d0e6..44e854b710 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go @@ -21,6 +21,7 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/transition/interop" "github.com/prysmaticlabs/prysm/beacon-chain/state" "github.com/prysmaticlabs/prysm/config/features" + "github.com/prysmaticlabs/prysm/container/trie" "github.com/prysmaticlabs/prysm/crypto/bls" "github.com/prysmaticlabs/prysm/crypto/hash" "github.com/prysmaticlabs/prysm/crypto/rand" @@ -32,7 +33,6 @@ import ( synccontribution "github.com/prysmaticlabs/prysm/shared/aggregation/sync_contribution" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/trieutil" "github.com/sirupsen/logrus" "go.opencensus.io/trace" "google.golang.org/grpc/codes" @@ -698,11 +698,11 @@ func (vs *Server) canonicalEth1Data( return canonicalEth1Data, canonicalEth1DataHeight, nil } -func (vs *Server) depositTrie(ctx context.Context, canonicalEth1Data *ethpb.Eth1Data, canonicalEth1DataHeight *big.Int) (*trieutil.SparseMerkleTrie, error) { +func (vs *Server) depositTrie(ctx context.Context, canonicalEth1Data *ethpb.Eth1Data, canonicalEth1DataHeight *big.Int) (*trie.SparseMerkleTrie, error) { ctx, span := trace.StartSpan(ctx, "ProposerServer.depositTrie") defer span.End() - var depositTrie *trieutil.SparseMerkleTrie + var depositTrie *trie.SparseMerkleTrie finalizedDeposits := vs.DepositFetcher.FinalizedDeposits(ctx) depositTrie = finalizedDeposits.Deposits @@ -729,7 +729,7 @@ func (vs *Server) depositTrie(ctx context.Context, canonicalEth1Data *ethpb.Eth1 // rebuilds our deposit trie by recreating it from all processed deposits till // specified eth1 block height. -func (vs *Server) rebuildDepositTrie(ctx context.Context, canonicalEth1Data *ethpb.Eth1Data, canonicalEth1DataHeight *big.Int) (*trieutil.SparseMerkleTrie, error) { +func (vs *Server) rebuildDepositTrie(ctx context.Context, canonicalEth1Data *ethpb.Eth1Data, canonicalEth1DataHeight *big.Int) (*trie.SparseMerkleTrie, error) { ctx, span := trace.StartSpan(ctx, "ProposerServer.rebuildDepositTrie") defer span.End() @@ -742,7 +742,7 @@ func (vs *Server) rebuildDepositTrie(ctx context.Context, canonicalEth1Data *eth } trieItems = append(trieItems, depHash[:]) } - depositTrie, err := trieutil.GenerateTrieFromItems(trieItems, params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.GenerateTrieFromItems(trieItems, params.BeaconConfig().DepositContractTreeDepth) if err != nil { return nil, err } @@ -756,7 +756,7 @@ func (vs *Server) rebuildDepositTrie(ctx context.Context, canonicalEth1Data *eth } // validate that the provided deposit trie matches up with the canonical eth1 data provided. -func (vs *Server) validateDepositTrie(trie *trieutil.SparseMerkleTrie, canonicalEth1Data *ethpb.Eth1Data) (bool, error) { +func (vs *Server) validateDepositTrie(trie *trie.SparseMerkleTrie, canonicalEth1Data *ethpb.Eth1Data) (bool, error) { if trie.NumOfItems() != int(canonicalEth1Data.DepositCount) { return false, errors.Errorf("wanted the canonical count of %d but received %d", canonicalEth1Data.DepositCount, trie.NumOfItems()) } @@ -841,7 +841,7 @@ func (vs *Server) deleteAttsInPool(ctx context.Context, atts []*ethpb.Attestatio return nil } -func constructMerkleProof(trie *trieutil.SparseMerkleTrie, index int, deposit *ethpb.Deposit) (*ethpb.Deposit, error) { +func constructMerkleProof(trie *trie.SparseMerkleTrie, index int, deposit *ethpb.Deposit) (*ethpb.Deposit, error) { proof, err := trie.MerkleProof(index) if err != nil { return nil, errors.Wrapf(err, "could not generate merkle proof for deposit at index %d", index) diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_test.go b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_test.go index 7e9a0114c7..f1e515fbf6 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_test.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_test.go @@ -22,6 +22,7 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen" v1 "github.com/prysmaticlabs/prysm/beacon-chain/state/v1" mockSync "github.com/prysmaticlabs/prysm/beacon-chain/sync/initial-sync/testing" + "github.com/prysmaticlabs/prysm/container/trie" "github.com/prysmaticlabs/prysm/crypto/bls" dbpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" @@ -34,7 +35,6 @@ import ( "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" - "github.com/prysmaticlabs/prysm/shared/trieutil" "google.golang.org/protobuf/proto" ) @@ -476,7 +476,7 @@ func TestProposer_PendingDeposits_OutsideEth1FollowWindow(t *testing.T) { depositCache, err := depositcache.New() require.NoError(t, err) - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") for _, dp := range append(readyDeposits, recentDeposits...) { depositHash, err := dp.Deposit.Data.HashTreeRoot() @@ -611,7 +611,7 @@ func TestProposer_PendingDeposits_FollowsCorrectEth1Block(t *testing.T) { depositCache, err := depositcache.New() require.NoError(t, err) - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") for _, dp := range append(readyDeposits, recentDeposits...) { depositHash, err := dp.Deposit.Data.HashTreeRoot() @@ -706,7 +706,7 @@ func TestProposer_PendingDeposits_CantReturnBelowStateEth1DepositIndex(t *testin }}, }) } - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() @@ -802,7 +802,7 @@ func TestProposer_PendingDeposits_CantReturnMoreThanMax(t *testing.T) { }}, }) } - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() @@ -896,7 +896,7 @@ func TestProposer_PendingDeposits_CantReturnMoreThanDepositCount(t *testing.T) { }}, }) } - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() @@ -1009,7 +1009,7 @@ func TestProposer_DepositTrie_UtilizesCachedFinalizedDeposits(t *testing.T) { depositCache, err := depositcache.New() require.NoError(t, err) - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") for _, dp := range append(finalizedDeposits, recentDeposits...) { depositHash, err := dp.Deposit.Data.HashTreeRoot() @@ -1119,7 +1119,7 @@ func TestProposer_DepositTrie_RebuildTrie(t *testing.T) { depositCache, err := depositcache.New() require.NoError(t, err) - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") for _, dp := range append(finalizedDeposits, recentDeposits...) { depositHash, err := dp.Deposit.Data.HashTreeRoot() @@ -1167,7 +1167,7 @@ func TestProposer_ValidateDepositTrie(t *testing.T) { tt := []struct { name string eth1dataCreator func() *ethpb.Eth1Data - trieCreator func() *trieutil.SparseMerkleTrie + trieCreator func() *trie.SparseMerkleTrie success bool }{ { @@ -1175,8 +1175,8 @@ func TestProposer_ValidateDepositTrie(t *testing.T) { eth1dataCreator: func() *ethpb.Eth1Data { return ðpb.Eth1Data{DepositRoot: []byte{}, DepositCount: 10, BlockHash: []byte{}} }, - trieCreator: func() *trieutil.SparseMerkleTrie { - trie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + trieCreator: func() *trie.SparseMerkleTrie { + trie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) assert.NoError(t, err) return trie }, @@ -1185,15 +1185,15 @@ func TestProposer_ValidateDepositTrie(t *testing.T) { { name: "invalid deposit root", eth1dataCreator: func() *ethpb.Eth1Data { - trie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + trie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) assert.NoError(t, err) trie.Insert([]byte{'a'}, 0) trie.Insert([]byte{'b'}, 1) trie.Insert([]byte{'c'}, 2) return ðpb.Eth1Data{DepositRoot: []byte{'B'}, DepositCount: 3, BlockHash: []byte{}} }, - trieCreator: func() *trieutil.SparseMerkleTrie { - trie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + trieCreator: func() *trie.SparseMerkleTrie { + trie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) assert.NoError(t, err) trie.Insert([]byte{'a'}, 0) trie.Insert([]byte{'b'}, 1) @@ -1205,7 +1205,7 @@ func TestProposer_ValidateDepositTrie(t *testing.T) { { name: "valid deposit trie", eth1dataCreator: func() *ethpb.Eth1Data { - trie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + trie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) assert.NoError(t, err) trie.Insert([]byte{'a'}, 0) trie.Insert([]byte{'b'}, 1) @@ -1213,8 +1213,8 @@ func TestProposer_ValidateDepositTrie(t *testing.T) { rt := trie.HashTreeRoot() return ðpb.Eth1Data{DepositRoot: rt[:], DepositCount: 3, BlockHash: []byte{}} }, - trieCreator: func() *trieutil.SparseMerkleTrie { - trie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + trieCreator: func() *trie.SparseMerkleTrie { + trie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) assert.NoError(t, err) trie.Insert([]byte{'a'}, 0) trie.Insert([]byte{'b'}, 1) @@ -1265,7 +1265,7 @@ func TestProposer_Eth1Data_NoBlockExists(t *testing.T) { }}, }, } - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() @@ -1320,7 +1320,7 @@ func TestProposer_Eth1Data_MajorityVote(t *testing.T) { WithdrawalCredentials: make([]byte, 32), }}, } - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err) depositCache, err := depositcache.New() require.NoError(t, err) @@ -2015,7 +2015,7 @@ func TestProposer_Deposits_ReturnsEmptyList_IfLatestEth1DataEqGenesisEth1Block(t }}, }) } - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/server_test.go b/beacon-chain/rpc/prysm/v1alpha1/validator/server_test.go index ef8b648d66..e87c0e6486 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/server_test.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/server_test.go @@ -14,6 +14,7 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" mockPOW "github.com/prysmaticlabs/prysm/beacon-chain/powchain/testing" v1 "github.com/prysmaticlabs/prysm/beacon-chain/state/v1" + "github.com/prysmaticlabs/prysm/container/trie" "github.com/prysmaticlabs/prysm/crypto/bls" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" @@ -23,7 +24,6 @@ import ( "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" - "github.com/prysmaticlabs/prysm/shared/trieutil" logTest "github.com/sirupsen/logrus/hooks/test" "google.golang.org/protobuf/types/known/emptypb" ) @@ -135,7 +135,7 @@ func TestWaitForActivation_ValidatorOriginallyExists(t *testing.T) { deposit := ðpb.Deposit{ Data: depData, } - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() require.NoError(t, err) diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/status_test.go b/beacon-chain/rpc/prysm/v1alpha1/validator/status_test.go index 18b5ade930..9953da7a46 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/status_test.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/status_test.go @@ -16,6 +16,7 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/state/stategen" v1 "github.com/prysmaticlabs/prysm/beacon-chain/state/v1" mockSync "github.com/prysmaticlabs/prysm/beacon-chain/sync/initial-sync/testing" + "github.com/prysmaticlabs/prysm/container/trie" "github.com/prysmaticlabs/prysm/crypto/bls" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" @@ -23,7 +24,6 @@ import ( "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" - "github.com/prysmaticlabs/prysm/shared/trieutil" "google.golang.org/protobuf/proto" ) @@ -33,7 +33,7 @@ func TestValidatorStatus_DepositedEth1(t *testing.T) { require.NoError(t, err, "Could not generate deposits and keys") deposit := deposits[0] pubKey1 := deposit.Data.PublicKey - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() require.NoError(t, err) @@ -76,7 +76,7 @@ func TestValidatorStatus_Deposited(t *testing.T) { deposit := ðpb.Deposit{ Data: depData, } - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() require.NoError(t, err) @@ -126,7 +126,7 @@ func TestValidatorStatus_PartiallyDeposited(t *testing.T) { deposit := ðpb.Deposit{ Data: depData, } - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() require.NoError(t, err) @@ -194,7 +194,7 @@ func TestValidatorStatus_Pending(t *testing.T) { deposit := ðpb.Deposit{ Data: depData, } - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() require.NoError(t, err) @@ -239,7 +239,7 @@ func TestValidatorStatus_Active(t *testing.T) { deposit := ðpb.Deposit{ Data: depData, } - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() require.NoError(t, err) @@ -326,7 +326,7 @@ func TestValidatorStatus_Exiting(t *testing.T) { deposit := ðpb.Deposit{ Data: depData, } - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() require.NoError(t, err) @@ -383,7 +383,7 @@ func TestValidatorStatus_Slashing(t *testing.T) { deposit := ðpb.Deposit{ Data: depData, } - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() require.NoError(t, err) @@ -441,7 +441,7 @@ func TestValidatorStatus_Exited(t *testing.T) { deposit := ðpb.Deposit{ Data: depData, } - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() require.NoError(t, err) @@ -524,7 +524,7 @@ func TestActivationStatus_OK(t *testing.T) { genesisRoot, err := block.Block.HashTreeRoot() require.NoError(t, err, "Could not get signing root") dep := deposits[0] - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() require.NoError(t, err) @@ -638,7 +638,7 @@ func TestValidatorStatus_CorrectActivationQueue(t *testing.T) { require.NoError(t, state.SetValidators(validators)) require.NoError(t, state.SetSlot(currentSlot)) - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() require.NoError(t, err) @@ -728,7 +728,7 @@ func TestMultipleValidatorStatus_Pubkeys(t *testing.T) { block := testutil.NewBeaconBlock() genesisRoot, err := block.Block.HashTreeRoot() require.NoError(t, err, "Could not get signing root") - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() require.NoError(t, err) @@ -891,7 +891,7 @@ func TestValidatorStatus_Invalid(t *testing.T) { deposit := deposits[0] pubKey1 := deposit.Data.PublicKey deposit.Data.Signature = deposit.Data.Signature[1:] - depositTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + depositTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err, "Could not setup deposit trie") depositCache, err := depositcache.New() require.NoError(t, err) diff --git a/beacon-chain/state/stateutil/BUILD.bazel b/beacon-chain/state/stateutil/BUILD.bazel index d6acfb527c..c65164da48 100644 --- a/beacon-chain/state/stateutil/BUILD.bazel +++ b/beacon-chain/state/stateutil/BUILD.bazel @@ -27,12 +27,12 @@ go_library( ], deps = [ "//beacon-chain/core/transition/stateutils:go_default_library", + "//container/trie:go_default_library", "//crypto/hash:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/bytesutil:go_default_library", "//shared/htrutils:go_default_library", "//shared/params:go_default_library", - "//shared/trieutil:go_default_library", "@com_github_pkg_errors//:go_default_library", "@com_github_prysmaticlabs_eth2_types//:go_default_library", ], diff --git a/beacon-chain/state/stateutil/trie_helpers.go b/beacon-chain/state/stateutil/trie_helpers.go index 266fdea6a4..0e4dfc62e3 100644 --- a/beacon-chain/state/stateutil/trie_helpers.go +++ b/beacon-chain/state/stateutil/trie_helpers.go @@ -5,9 +5,9 @@ import ( "encoding/binary" "github.com/pkg/errors" + "github.com/prysmaticlabs/prysm/container/trie" "github.com/prysmaticlabs/prysm/crypto/hash" "github.com/prysmaticlabs/prysm/shared/htrutils" - "github.com/prysmaticlabs/prysm/shared/trieutil" ) // ReturnTrieLayer returns the representation of a merkle trie when @@ -70,7 +70,7 @@ func ReturnTrieLayerVariable(elements [][32]byte, length uint64) [][]*[32]byte { layers := make([][]*[32]byte, depth+1) // Return zerohash at depth if len(elements) == 0 { - zerohash := trieutil.ZeroHashes[depth] + zerohash := trie.ZeroHashes[depth] layers[len(layers)-1] = []*[32]byte{&zerohash} return layers } @@ -85,7 +85,7 @@ func ReturnTrieLayerVariable(elements [][32]byte, length uint64) [][]*[32]byte { for i := 0; i < int(depth); i++ { oddNodeLength := len(layers[i])%2 == 1 if oddNodeLength { - zerohash := trieutil.ZeroHashes[i] + zerohash := trie.ZeroHashes[i] layers[i] = append(layers[i], &zerohash) } updatedValues := make([]*[32]byte, 0, len(layers[i])/2) @@ -205,7 +205,7 @@ func recomputeRootFromLayer(idx int, layers [][]*[32]byte, chunks []*[32]byte, func recomputeRootFromLayerVariable(idx int, item [32]byte, layers [][]*[32]byte, hasher func([]byte) [32]byte) ([32]byte, [][]*[32]byte, error) { for idx >= len(layers[0]) { - zerohash := trieutil.ZeroHashes[0] + zerohash := trie.ZeroHashes[0] layers[0] = append(layers[0], &zerohash) } layers[0][idx] = &item @@ -218,7 +218,7 @@ func recomputeRootFromLayerVariable(idx int, item [32]byte, layers [][]*[32]byte neighbor := [32]byte{} if neighborIdx >= len(layers[i]) { - neighbor = trieutil.ZeroHashes[i] + neighbor = trie.ZeroHashes[i] } else { neighbor = *layers[i][neighborIdx] } diff --git a/beacon-chain/state/v1/BUILD.bazel b/beacon-chain/state/v1/BUILD.bazel index dc5b5043b3..b799031e7d 100644 --- a/beacon-chain/state/v1/BUILD.bazel +++ b/beacon-chain/state/v1/BUILD.bazel @@ -48,6 +48,7 @@ go_library( "//beacon-chain/state/stateutil:go_default_library", "//beacon-chain/state/types:go_default_library", "//config/features:go_default_library", + "//container/slice:go_default_library", "//crypto/hash:go_default_library", "//proto/eth/v1:go_default_library", "//proto/prysm/v1alpha1:go_default_library", @@ -55,7 +56,6 @@ go_library( "//shared/bytesutil:go_default_library", "//shared/htrutils:go_default_library", "//shared/params:go_default_library", - "//shared/sliceutil:go_default_library", "@com_github_dgraph_io_ristretto//:go_default_library", "@com_github_pkg_errors//:go_default_library", "@com_github_prometheus_client_golang//prometheus:go_default_library", diff --git a/beacon-chain/state/v1/state_trie.go b/beacon-chain/state/v1/state_trie.go index 1327cb4b1a..364e7c1b45 100644 --- a/beacon-chain/state/v1/state_trie.go +++ b/beacon-chain/state/v1/state_trie.go @@ -12,13 +12,13 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/state/fieldtrie" "github.com/prysmaticlabs/prysm/beacon-chain/state/stateutil" "github.com/prysmaticlabs/prysm/beacon-chain/state/types" + "github.com/prysmaticlabs/prysm/container/slice" "github.com/prysmaticlabs/prysm/crypto/hash" v1 "github.com/prysmaticlabs/prysm/proto/eth/v1" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/htrutils" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" "go.opencensus.io/trace" "google.golang.org/protobuf/proto" ) @@ -521,7 +521,7 @@ func (b *BeaconState) recomputeFieldTrie(index types.FieldIndex, elements interf fTrieMutex.Unlock() } // remove duplicate indexes - b.dirtyIndices[index] = sliceutil.SetUint64(b.dirtyIndices[index]) + b.dirtyIndices[index] = slice.SetUint64(b.dirtyIndices[index]) // sort indexes again sort.Slice(b.dirtyIndices[index], func(i int, j int) bool { return b.dirtyIndices[index][i] < b.dirtyIndices[index][j] diff --git a/beacon-chain/state/v2/BUILD.bazel b/beacon-chain/state/v2/BUILD.bazel index 179e19be66..ca02859a65 100644 --- a/beacon-chain/state/v2/BUILD.bazel +++ b/beacon-chain/state/v2/BUILD.bazel @@ -30,6 +30,7 @@ go_library( "//beacon-chain/state/types:go_default_library", "//beacon-chain/state/v1:go_default_library", "//config/features:go_default_library", + "//container/slice:go_default_library", "//crypto/hash:go_default_library", "//proto/eth/v1:go_default_library", "//proto/prysm/v1alpha1:go_default_library", @@ -37,7 +38,6 @@ go_library( "//shared/bytesutil:go_default_library", "//shared/htrutils:go_default_library", "//shared/params:go_default_library", - "//shared/sliceutil:go_default_library", "@com_github_dgraph_io_ristretto//:go_default_library", "@com_github_pkg_errors//:go_default_library", "@com_github_prysmaticlabs_eth2_types//:go_default_library", diff --git a/beacon-chain/state/v2/state_trie.go b/beacon-chain/state/v2/state_trie.go index 6ea446717e..312b379a58 100644 --- a/beacon-chain/state/v2/state_trie.go +++ b/beacon-chain/state/v2/state_trie.go @@ -10,12 +10,12 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/state/fieldtrie" "github.com/prysmaticlabs/prysm/beacon-chain/state/stateutil" "github.com/prysmaticlabs/prysm/beacon-chain/state/types" + "github.com/prysmaticlabs/prysm/container/slice" "github.com/prysmaticlabs/prysm/crypto/hash" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/htrutils" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" "go.opencensus.io/trace" "google.golang.org/protobuf/proto" ) @@ -347,7 +347,7 @@ func (b *BeaconState) recomputeFieldTrie(index types.FieldIndex, elements interf fTrie = newTrie } // remove duplicate indexes - b.dirtyIndices[index] = sliceutil.SetUint64(b.dirtyIndices[index]) + b.dirtyIndices[index] = slice.SetUint64(b.dirtyIndices[index]) // sort indexes again sort.Slice(b.dirtyIndices[index], func(i int, j int) bool { return b.dirtyIndices[index][i] < b.dirtyIndices[index][j] diff --git a/beacon-chain/sync/BUILD.bazel b/beacon-chain/sync/BUILD.bazel index c6702594ac..2dc8a47b62 100644 --- a/beacon-chain/sync/BUILD.bazel +++ b/beacon-chain/sync/BUILD.bazel @@ -77,6 +77,7 @@ go_library( "//cache/lru:go_default_library", "//cmd/beacon-chain/flags:go_default_library", "//config/features:go_default_library", + "//container/slice:go_default_library", "//crypto/bls:go_default_library", "//crypto/rand:go_default_library", "//monitoring/tracing:go_default_library", @@ -93,7 +94,6 @@ go_library( "//shared/p2putils:go_default_library", "//shared/params:go_default_library", "//shared/runutil:go_default_library", - "//shared/sliceutil:go_default_library", "//shared/sszutil:go_default_library", "//time:go_default_library", "//time/slots:go_default_library", diff --git a/beacon-chain/sync/initial-sync/BUILD.bazel b/beacon-chain/sync/initial-sync/BUILD.bazel index 8159392656..7757513716 100644 --- a/beacon-chain/sync/initial-sync/BUILD.bazel +++ b/beacon-chain/sync/initial-sync/BUILD.bazel @@ -73,12 +73,13 @@ go_test( "//beacon-chain/sync:go_default_library", "//cmd/beacon-chain/flags:go_default_library", "//config/features:go_default_library", + "//container/queue:go_default_library", + "//container/slice:go_default_library", "//crypto/hash:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/wrapper:go_default_library", "//shared/bytesutil:go_default_library", "//shared/params:go_default_library", - "//shared/sliceutil:go_default_library", "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", @@ -121,6 +122,7 @@ go_test( "//beacon-chain/sync:go_default_library", "//cmd/beacon-chain/flags:go_default_library", "//config/features:go_default_library", + "//container/slice:go_default_library", "//crypto/hash:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/block:go_default_library", @@ -129,7 +131,6 @@ go_test( "//shared/bytesutil:go_default_library", "//shared/event:go_default_library", "//shared/params:go_default_library", - "//shared/sliceutil:go_default_library", "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", diff --git a/beacon-chain/sync/initial-sync/blocks_fetcher_test.go b/beacon-chain/sync/initial-sync/blocks_fetcher_test.go index 3c57a2a1df..1591a81b5e 100644 --- a/beacon-chain/sync/initial-sync/blocks_fetcher_test.go +++ b/beacon-chain/sync/initial-sync/blocks_fetcher_test.go @@ -19,12 +19,12 @@ import ( p2pt "github.com/prysmaticlabs/prysm/beacon-chain/p2p/testing" beaconsync "github.com/prysmaticlabs/prysm/beacon-chain/sync" "github.com/prysmaticlabs/prysm/cmd/beacon-chain/flags" + "github.com/prysmaticlabs/prysm/container/slice" eth "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" p2ppb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" @@ -363,7 +363,7 @@ func TestBlocksFetcher_RoundRobin(t *testing.T) { for _, blk := range blocks { receivedBlockSlots = append(receivedBlockSlots, blk.Block().Slot()) } - missing := sliceutil.NotSlot(sliceutil.IntersectionSlot(tt.expectedBlockSlots, receivedBlockSlots), tt.expectedBlockSlots) + missing := slice.NotSlot(slice.IntersectionSlot(tt.expectedBlockSlots, receivedBlockSlots), tt.expectedBlockSlots) if len(missing) > 0 { t.Errorf("Missing blocks at slots %v", missing) } @@ -467,7 +467,7 @@ func TestBlocksFetcher_handleRequest(t *testing.T) { for _, blk := range blocks { receivedBlockSlots = append(receivedBlockSlots, blk.Block().Slot()) } - missing := sliceutil.NotSlot(sliceutil.IntersectionSlot(chainConfig.expectedBlockSlots, receivedBlockSlots), chainConfig.expectedBlockSlots) + missing := slice.NotSlot(slice.IntersectionSlot(chainConfig.expectedBlockSlots, receivedBlockSlots), chainConfig.expectedBlockSlots) if len(missing) > 0 { t.Errorf("Missing blocks at slots %v", missing) } diff --git a/beacon-chain/sync/initial-sync/blocks_queue_test.go b/beacon-chain/sync/initial-sync/blocks_queue_test.go index 70a6fc5114..405b0d8b6e 100644 --- a/beacon-chain/sync/initial-sync/blocks_queue_test.go +++ b/beacon-chain/sync/initial-sync/blocks_queue_test.go @@ -16,11 +16,11 @@ import ( p2pt "github.com/prysmaticlabs/prysm/beacon-chain/p2p/testing" beaconsync "github.com/prysmaticlabs/prysm/beacon-chain/sync" "github.com/prysmaticlabs/prysm/cmd/beacon-chain/flags" + "github.com/prysmaticlabs/prysm/container/slice" eth "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/sliceutil" "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" @@ -286,7 +286,7 @@ func TestBlocksQueue_Loop(t *testing.T) { for _, blk := range blocks { receivedBlockSlots = append(receivedBlockSlots, blk.Block().Slot()) } - missing := sliceutil.NotSlot(sliceutil.IntersectionSlot(tt.expectedBlockSlots, receivedBlockSlots), tt.expectedBlockSlots) + missing := slice.NotSlot(slice.IntersectionSlot(tt.expectedBlockSlots, receivedBlockSlots), tt.expectedBlockSlots) if len(missing) > 0 { t.Errorf("Missing blocks at slots %v", missing) } diff --git a/beacon-chain/sync/initial-sync/initial_sync_test.go b/beacon-chain/sync/initial-sync/initial_sync_test.go index 47c12577e7..affc156c34 100644 --- a/beacon-chain/sync/initial-sync/initial_sync_test.go +++ b/beacon-chain/sync/initial-sync/initial_sync_test.go @@ -22,13 +22,13 @@ import ( beaconsync "github.com/prysmaticlabs/prysm/beacon-chain/sync" "github.com/prysmaticlabs/prysm/cmd/beacon-chain/flags" "github.com/prysmaticlabs/prysm/config/features" + "github.com/prysmaticlabs/prysm/container/slice" "github.com/prysmaticlabs/prysm/crypto/hash" eth "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" p2ppb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" @@ -180,7 +180,7 @@ func connectPeer(t *testing.T, host *p2pt.TestP2P, datum *peerData, peerStatus * requestedBlocks := makeSequence(req.StartSlot, req.StartSlot.Add((req.Count-1)*req.Step)) // Expected failure range - if len(sliceutil.IntersectionSlot(datum.failureSlots, requestedBlocks)) > 0 { + if len(slice.IntersectionSlot(datum.failureSlots, requestedBlocks)) > 0 { _, err := stream.Write([]byte{0x01}) assert.NoError(t, err) msg := p2pTypes.ErrorMessage("bad") @@ -190,7 +190,7 @@ func connectPeer(t *testing.T, host *p2pt.TestP2P, datum *peerData, peerStatus * } // Determine the correct subset of blocks to return as dictated by the test scenario. - slots := sliceutil.IntersectionSlot(datum.blocks, requestedBlocks) + slots := slice.IntersectionSlot(datum.blocks, requestedBlocks) ret := make([]*eth.SignedBeaconBlock, 0) for _, slot := range slots { diff --git a/beacon-chain/sync/initial-sync/round_robin_test.go b/beacon-chain/sync/initial-sync/round_robin_test.go index c7e4f5961c..44242bbe9f 100644 --- a/beacon-chain/sync/initial-sync/round_robin_test.go +++ b/beacon-chain/sync/initial-sync/round_robin_test.go @@ -10,11 +10,11 @@ import ( mock "github.com/prysmaticlabs/prysm/beacon-chain/blockchain/testing" dbtest "github.com/prysmaticlabs/prysm/beacon-chain/db/testing" p2pt "github.com/prysmaticlabs/prysm/beacon-chain/p2p/testing" + "github.com/prysmaticlabs/prysm/container/slice" eth "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/block" "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/wrapper" "github.com/prysmaticlabs/prysm/shared/abool" - "github.com/prysmaticlabs/prysm/shared/sliceutil" "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" @@ -313,7 +313,7 @@ func TestService_roundRobinSync(t *testing.T) { for _, blk := range mc.BlocksReceived { receivedBlockSlots = append(receivedBlockSlots, blk.Block().Slot()) } - missing := sliceutil.NotSlot(sliceutil.IntersectionSlot(tt.expectedBlockSlots, receivedBlockSlots), tt.expectedBlockSlots) + missing := slice.NotSlot(slice.IntersectionSlot(tt.expectedBlockSlots, receivedBlockSlots), tt.expectedBlockSlots) if len(missing) > 0 { t.Errorf("Missing blocks at slots %v", missing) } @@ -557,7 +557,7 @@ func TestService_blockProviderScoring(t *testing.T) { for _, blk := range mc.BlocksReceived { receivedBlockSlots = append(receivedBlockSlots, blk.Block().Slot()) } - missing := sliceutil.NotSlot(sliceutil.IntersectionSlot(expectedBlockSlots, receivedBlockSlots), expectedBlockSlots) + missing := slice.NotSlot(slice.IntersectionSlot(expectedBlockSlots, receivedBlockSlots), expectedBlockSlots) if len(missing) > 0 { t.Errorf("Missing blocks at slots %v", missing) } @@ -626,7 +626,7 @@ func TestService_syncToFinalizedEpoch(t *testing.T) { for _, blk := range mc.BlocksReceived { receivedBlockSlots = append(receivedBlockSlots, blk.Block().Slot()) } - missing := sliceutil.NotSlot(sliceutil.IntersectionSlot(expectedBlockSlots, receivedBlockSlots), expectedBlockSlots) + missing := slice.NotSlot(slice.IntersectionSlot(expectedBlockSlots, receivedBlockSlots), expectedBlockSlots) if len(missing) > 0 { t.Errorf("Missing blocks at slots %v", missing) } diff --git a/beacon-chain/sync/subscriber.go b/beacon-chain/sync/subscriber.go index c15edf2bd0..c23d54c391 100644 --- a/beacon-chain/sync/subscriber.go +++ b/beacon-chain/sync/subscriber.go @@ -15,13 +15,13 @@ import ( "github.com/prysmaticlabs/prysm/beacon-chain/core" "github.com/prysmaticlabs/prysm/beacon-chain/p2p" "github.com/prysmaticlabs/prysm/cmd/beacon-chain/flags" + "github.com/prysmaticlabs/prysm/container/slice" "github.com/prysmaticlabs/prysm/monitoring/tracing" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" pb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/messagehandler" "github.com/prysmaticlabs/prysm/shared/p2putils" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" "github.com/prysmaticlabs/prysm/time/slots" "go.opencensus.io/trace" "google.golang.org/protobuf/proto" @@ -630,12 +630,12 @@ func (s *Service) retrievePersistentSubs(currSlot types.Slot) []uint64 { wantedSubs := s.aggregatorSubnetIndices(currSlot) // Combine subscriptions to get all requested subscriptions - return sliceutil.SetUint64(append(persistentSubs, wantedSubs...)) + return slice.SetUint64(append(persistentSubs, wantedSubs...)) } func (s *Service) retrieveActiveSyncSubnets(currEpoch types.Epoch) []uint64 { subs := cache.SyncSubnetIDs.GetAllSubnets(currEpoch) - return sliceutil.SetUint64(subs) + return slice.SetUint64(subs) } // filters out required peers for the node to function, not @@ -652,7 +652,7 @@ func (s *Service) filterNeededPeers(pids []peer.ID) []peer.ID { } currSlot := s.cfg.Chain.CurrentSlot() wantedSubs := s.retrievePersistentSubs(currSlot) - wantedSubs = sliceutil.SetUint64(append(wantedSubs, s.attesterSubnetIndices(currSlot)...)) + wantedSubs = slice.SetUint64(append(wantedSubs, s.attesterSubnetIndices(currSlot)...)) topic := p2p.GossipTypeMapping[reflect.TypeOf(&pb.Attestation{})] // Map of peers in subnets diff --git a/beacon-chain/sync/subscriber_beacon_attestation.go b/beacon-chain/sync/subscriber_beacon_attestation.go index a0ef578a2d..bd87a5fef7 100644 --- a/beacon-chain/sync/subscriber_beacon_attestation.go +++ b/beacon-chain/sync/subscriber_beacon_attestation.go @@ -8,9 +8,9 @@ import ( types "github.com/prysmaticlabs/eth2-types" "github.com/prysmaticlabs/prysm/beacon-chain/cache" "github.com/prysmaticlabs/prysm/beacon-chain/core" + "github.com/prysmaticlabs/prysm/container/slice" eth "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" "google.golang.org/protobuf/proto" ) @@ -47,7 +47,7 @@ func (s *Service) aggregatorSubnetIndices(currentSlot types.Slot) []uint64 { for i := currentSlot; i <= endSlot; i++ { commIds = append(commIds, cache.SubnetIDs.GetAggregatorSubnetIDs(i)...) } - return sliceutil.SetUint64(commIds) + return slice.SetUint64(commIds) } func (s *Service) attesterSubnetIndices(currentSlot types.Slot) []uint64 { @@ -57,5 +57,5 @@ func (s *Service) attesterSubnetIndices(currentSlot types.Slot) []uint64 { for i := currentSlot; i <= endSlot; i++ { commIds = append(commIds, cache.SubnetIDs.GetAttesterSubnetIDs(i)...) } - return sliceutil.SetUint64(commIds) + return slice.SetUint64(commIds) } diff --git a/beacon-chain/sync/validate_attester_slashing.go b/beacon-chain/sync/validate_attester_slashing.go index 23a0b80968..56452ffd5e 100644 --- a/beacon-chain/sync/validate_attester_slashing.go +++ b/beacon-chain/sync/validate_attester_slashing.go @@ -6,9 +6,9 @@ import ( "github.com/libp2p/go-libp2p-core/peer" pubsub "github.com/libp2p/go-libp2p-pubsub" "github.com/prysmaticlabs/prysm/beacon-chain/core/blocks" + "github.com/prysmaticlabs/prysm/container/slice" "github.com/prysmaticlabs/prysm/monitoring/tracing" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/shared/sliceutil" "go.opencensus.io/trace" ) @@ -61,7 +61,7 @@ func (s *Service) validateAttesterSlashing(ctx context.Context, pid peer.ID, msg // Returns true if the node has already received a valid attester slashing with the attesting indices. func (s *Service) hasSeenAttesterSlashingIndices(indices1, indices2 []uint64) bool { - slashableIndices := sliceutil.IntersectionUint64(indices1, indices2) + slashableIndices := slice.IntersectionUint64(indices1, indices2) s.seenAttesterSlashingLock.RLock() defer s.seenAttesterSlashingLock.RUnlock() @@ -78,7 +78,7 @@ func (s *Service) hasSeenAttesterSlashingIndices(indices1, indices2 []uint64) bo // Set attester slashing indices in attester slashing cache. func (s *Service) setAttesterSlashingIndicesSeen(indices1, indices2 []uint64) { - slashableIndices := sliceutil.IntersectionUint64(indices1, indices2) + slashableIndices := slice.IntersectionUint64(indices1, indices2) s.seenAttesterSlashingLock.Lock() defer s.seenAttesterSlashingLock.Unlock() diff --git a/shared/queue/BUILD.bazel b/container/queue/BUILD.bazel similarity index 84% rename from shared/queue/BUILD.bazel rename to container/queue/BUILD.bazel index 8aa5394302..5c93b02887 100644 --- a/shared/queue/BUILD.bazel +++ b/container/queue/BUILD.bazel @@ -3,7 +3,7 @@ load("@prysm//tools/go:def.bzl", "go_library", "go_test") go_library( name = "go_default_library", srcs = ["priority_queue.go"], - importpath = "github.com/prysmaticlabs/prysm/shared/queue", + importpath = "github.com/prysmaticlabs/prysm/container/queue", visibility = ["//visibility:public"], ) diff --git a/shared/queue/LICENSE b/container/queue/LICENSE similarity index 100% rename from shared/queue/LICENSE rename to container/queue/LICENSE diff --git a/shared/queue/priority_queue.go b/container/queue/priority_queue.go similarity index 100% rename from shared/queue/priority_queue.go rename to container/queue/priority_queue.go diff --git a/shared/queue/priority_queue_test.go b/container/queue/priority_queue_test.go similarity index 100% rename from shared/queue/priority_queue_test.go rename to container/queue/priority_queue_test.go diff --git a/shared/sliceutil/BUILD.bazel b/container/slice/BUILD.bazel similarity index 87% rename from shared/sliceutil/BUILD.bazel rename to container/slice/BUILD.bazel index ee8801ade4..928bc09a32 100644 --- a/shared/sliceutil/BUILD.bazel +++ b/container/slice/BUILD.bazel @@ -6,7 +6,7 @@ go_library( "doc.go", "slice.go", ], - importpath = "github.com/prysmaticlabs/prysm/shared/sliceutil", + importpath = "github.com/prysmaticlabs/prysm/container/slice", visibility = ["//visibility:public"], deps = ["@com_github_prysmaticlabs_eth2_types//:go_default_library"], ) diff --git a/shared/sliceutil/doc.go b/container/slice/doc.go similarity index 71% rename from shared/sliceutil/doc.go rename to container/slice/doc.go index 703673b038..34677dce1d 100644 --- a/shared/sliceutil/doc.go +++ b/container/slice/doc.go @@ -1,5 +1,5 @@ /* -Package sliceutil implements set operations for specified data type +Package slice implements set operations for specified data type Currently types which are tested and supported are: @@ -13,6 +13,5 @@ Currently types which are tested and supported are: []float64 Intersection, Union, Not , IsIn are the operations which are supported on slices - */ -package sliceutil +package slice diff --git a/shared/sliceutil/slice.go b/container/slice/slice.go similarity index 99% rename from shared/sliceutil/slice.go rename to container/slice/slice.go index a5322898a2..fff726bde5 100644 --- a/shared/sliceutil/slice.go +++ b/container/slice/slice.go @@ -1,4 +1,4 @@ -package sliceutil +package slice import ( "strings" diff --git a/shared/sliceutil/slice_test.go b/container/slice/slice_test.go similarity index 92% rename from shared/sliceutil/slice_test.go rename to container/slice/slice_test.go index cfc71aee4c..aa0ce3d0e6 100644 --- a/shared/sliceutil/slice_test.go +++ b/container/slice/slice_test.go @@ -1,4 +1,4 @@ -package sliceutil_test +package slice_test import ( "reflect" @@ -6,7 +6,7 @@ import ( "testing" types "github.com/prysmaticlabs/eth2-types" - "github.com/prysmaticlabs/prysm/shared/sliceutil" + "github.com/prysmaticlabs/prysm/container/slice" ) func TestSubsetUint64(t *testing.T) { @@ -23,7 +23,7 @@ func TestSubsetUint64(t *testing.T) { {[]uint64{1, 2, 3, 4, 5}, []uint64{1, 2, 3, 4}, false}, } for _, tt := range testCases { - result := sliceutil.SubsetUint64(tt.setA, tt.setB) + result := slice.SubsetUint64(tt.setA, tt.setB) if result != tt.out { t.Errorf("%v, got %v, want %v", tt.setA, result, tt.out) } @@ -57,7 +57,7 @@ func TestIntersectionUint64(t *testing.T) { setA := append([]uint64{}, tt.setA...) setB := append([]uint64{}, tt.setB...) setC := append([]uint64{}, tt.setC...) - result := sliceutil.IntersectionUint64(setA, setB, setC) + result := slice.IntersectionUint64(setA, setB, setC) sort.Slice(result, func(i, j int) bool { return result[i] < result[j] }) @@ -87,7 +87,7 @@ func TestIsSortedUint64(t *testing.T) { {[]uint64{}, true}, } for _, tt := range testCases { - result := sliceutil.IsUint64Sorted(tt.setA) + result := slice.IsUint64Sorted(tt.setA) if result != tt.out { t.Errorf("got %v, want %v", result, tt.out) } @@ -121,7 +121,7 @@ func TestIntersectionInt64(t *testing.T) { setA := append([]int64{}, tt.setA...) setB := append([]int64{}, tt.setB...) setC := append([]int64{}, tt.setC...) - result := sliceutil.IntersectionInt64(setA, setB, setC) + result := slice.IntersectionInt64(setA, setB, setC) sort.Slice(result, func(i, j int) bool { return result[i] < result[j] }) @@ -155,7 +155,7 @@ func TestUnionUint64(t *testing.T) { {[]uint64{1}, []uint64{1}, []uint64{1}}, } for _, tt := range testCases { - result := sliceutil.UnionUint64(tt.setA, tt.setB) + result := slice.UnionUint64(tt.setA, tt.setB) if !reflect.DeepEqual(result, tt.out) { t.Errorf("got %d, want %d", result, tt.out) } @@ -166,7 +166,7 @@ func TestUnionUint64(t *testing.T) { {6, 7, 8}, {9, 10, 11}, } - variadicResult := sliceutil.UnionUint64(items...) + variadicResult := slice.UnionUint64(items...) want := []uint64{3, 4, 5, 6, 7, 8, 9, 10, 11} if !reflect.DeepEqual(want, variadicResult) { t.Errorf("Received %v, wanted %v", variadicResult, want) @@ -188,7 +188,7 @@ func TestUnionInt64(t *testing.T) { {[]int64{1}, []int64{1}, []int64{1}}, } for _, tt := range testCases { - result := sliceutil.UnionInt64(tt.setA, tt.setB) + result := slice.UnionInt64(tt.setA, tt.setB) if !reflect.DeepEqual(result, tt.out) { t.Errorf("got %d, want %d", result, tt.out) } @@ -198,7 +198,7 @@ func TestUnionInt64(t *testing.T) { {6, 7, 8}, {9, 10, 11}, } - variadicResult := sliceutil.UnionInt64(items...) + variadicResult := slice.UnionInt64(items...) want := []int64{3, 4, 5, 6, 7, 8, 9, 10, 11} if !reflect.DeepEqual(want, variadicResult) { t.Errorf("Received %v, wanted %v", variadicResult, want) @@ -218,7 +218,7 @@ func TestCleanUint64(t *testing.T) { {[]uint64{1}, []uint64{1}}, } for _, tt := range testCases { - result := sliceutil.SetUint64(tt.in) + result := slice.SetUint64(tt.in) if !reflect.DeepEqual(result, tt.out) { t.Errorf("got %d, want %d", result, tt.out) } @@ -240,7 +240,7 @@ func TestNotUint64(t *testing.T) { {[]uint64{1}, []uint64{1}, []uint64{}}, } for _, tt := range testCases { - result := sliceutil.NotUint64(tt.setA, tt.setB) + result := slice.NotUint64(tt.setA, tt.setB) if !reflect.DeepEqual(result, tt.out) { t.Errorf("got %d, want %d", result, tt.out) } @@ -262,7 +262,7 @@ func TestNotInt64(t *testing.T) { {[]int64{1}, []int64{1}, []int64{}}, } for _, tt := range testCases { - result := sliceutil.NotInt64(tt.setA, tt.setB) + result := slice.NotInt64(tt.setA, tt.setB) if !reflect.DeepEqual(result, tt.out) { t.Errorf("got %d, want %d", result, tt.out) } @@ -281,7 +281,7 @@ func TestIsInUint64(t *testing.T) { {100, []uint64{2, 3, 5, 4, 6}, false}, } for _, tt := range testCases { - result := sliceutil.IsInUint64(tt.a, tt.b) + result := slice.IsInUint64(tt.a, tt.b) if result != tt.result { t.Errorf("IsIn(%d, %v)=%v, wanted: %v", tt.a, tt.b, result, tt.result) @@ -301,7 +301,7 @@ func TestIsInInt64(t *testing.T) { {100, []int64{2, 3, 5, 4, 6}, false}, } for _, tt := range testCases { - result := sliceutil.IsInInt64(tt.a, tt.b) + result := slice.IsInInt64(tt.a, tt.b) if result != tt.result { t.Errorf("IsIn(%d, %v)=%v, wanted: %v", tt.a, tt.b, result, tt.result) @@ -327,7 +327,7 @@ func TestUnionByteSlices(t *testing.T) { }, } for _, tt := range testCases { - result := sliceutil.UnionByteSlices(tt.setA, tt.setB) + result := slice.UnionByteSlices(tt.setA, tt.setB) if !reflect.DeepEqual(result, tt.out) { t.Errorf("got %d, want %d", result, tt.out) } @@ -343,7 +343,7 @@ func TestUnionByteSlices(t *testing.T) { {7, 8, 9}, }, } - variadicResult := sliceutil.UnionByteSlices(items...) + variadicResult := slice.UnionByteSlices(items...) want := [][]byte{ {1, 2, 3}, {4, 5, 6}, @@ -429,7 +429,7 @@ func TestIntersectionByteSlices(t *testing.T) { } for _, tt := range testCases { t.Run(tt.name, func(t *testing.T) { - result := sliceutil.IntersectionByteSlices(tt.input...) + result := slice.IntersectionByteSlices(tt.input...) if !reflect.DeepEqual(result, tt.result) { t.Errorf("IntersectionByteSlices(%v)=%v, wanted: %v", tt.input, result, tt.result) @@ -442,7 +442,7 @@ func TestIntersectionByteSlices(t *testing.T) { {{1, 2}, {1, 2}}, {}, } - result := sliceutil.IntersectionByteSlices(input...) + result := slice.IntersectionByteSlices(input...) if !reflect.DeepEqual(result, [][]byte{}) { t.Errorf("IntersectionByteSlices(%v)=%v, wanted: %v", input, result, [][]byte{}) } @@ -469,7 +469,7 @@ func TestSplitCommaSeparated(t *testing.T) { } for _, tt := range tests { - if result := sliceutil.SplitCommaSeparated(tt.input); !reflect.DeepEqual(result, tt.output) { + if result := slice.SplitCommaSeparated(tt.input); !reflect.DeepEqual(result, tt.output) { t.Errorf("SplitCommaSeparated(%v) = %v; wanted %v", tt.input, result, tt.output) } } @@ -492,7 +492,7 @@ func TestSplitOffset_OK(t *testing.T) { {23, 3, 9, 69}, } for _, tt := range testCases { - result := sliceutil.SplitOffset(tt.listSize, tt.chunks, tt.index) + result := slice.SplitOffset(tt.listSize, tt.chunks, tt.index) if result != tt.offset { t.Errorf("got %d, want %d", result, tt.offset) } @@ -527,7 +527,7 @@ func TestIntersectionSlot(t *testing.T) { setA := append([]types.Slot{}, tt.setA...) setB := append([]types.Slot{}, tt.setB...) setC := append([]types.Slot{}, tt.setC...) - result := sliceutil.IntersectionSlot(setA, setB, setC) + result := slice.IntersectionSlot(setA, setB, setC) sort.Slice(result, func(i, j int) bool { return result[i] < result[j] }) @@ -561,7 +561,7 @@ func TestNotSlot(t *testing.T) { {[]types.Slot{1}, []types.Slot{1}, []types.Slot{}}, } for _, tt := range testCases { - result := sliceutil.NotSlot(tt.setA, tt.setB) + result := slice.NotSlot(tt.setA, tt.setB) if !reflect.DeepEqual(result, tt.out) { t.Errorf("got %d, want %d", result, tt.out) } @@ -580,7 +580,7 @@ func TestIsInSlots(t *testing.T) { {100, []types.Slot{2, 3, 5, 4, 6}, false}, } for _, tt := range testCases { - result := sliceutil.IsInSlots(tt.a, tt.b) + result := slice.IsInSlots(tt.a, tt.b) if result != tt.result { t.Errorf("IsIn(%d, %v)=%v, wanted: %v", tt.a, tt.b, result, tt.result) diff --git a/shared/trieutil/BUILD.bazel b/container/trie/BUILD.bazel similarity index 93% rename from shared/trieutil/BUILD.bazel rename to container/trie/BUILD.bazel index 76dfbddb3a..ae39f2d642 100644 --- a/shared/trieutil/BUILD.bazel +++ b/container/trie/BUILD.bazel @@ -6,7 +6,7 @@ go_library( "sparse_merkle.go", "zerohashes.go", ], - importpath = "github.com/prysmaticlabs/prysm/shared/trieutil", + importpath = "github.com/prysmaticlabs/prysm/container/trie", visibility = ["//visibility:public"], deps = [ "//crypto/hash:go_default_library", diff --git a/shared/trieutil/sparse_merkle.go b/container/trie/sparse_merkle.go similarity index 98% rename from shared/trieutil/sparse_merkle.go rename to container/trie/sparse_merkle.go index 46fd93e3e7..15b144f2d2 100644 --- a/shared/trieutil/sparse_merkle.go +++ b/container/trie/sparse_merkle.go @@ -1,5 +1,5 @@ -// Package trieutil defines utilities for sparse merkle tries for Ethereum consensus. -package trieutil +// Package trie defines utilities for sparse merkle tries for Ethereum consensus. +package trie import ( "bytes" diff --git a/shared/trieutil/sparse_merkle_test.go b/container/trie/sparse_merkle_test.go similarity index 99% rename from shared/trieutil/sparse_merkle_test.go rename to container/trie/sparse_merkle_test.go index 8cfff25156..ebd3d6e497 100644 --- a/shared/trieutil/sparse_merkle_test.go +++ b/container/trie/sparse_merkle_test.go @@ -1,4 +1,4 @@ -package trieutil +package trie import ( "strconv" diff --git a/shared/trieutil/zerohashes.go b/container/trie/zerohashes.go similarity index 99% rename from shared/trieutil/zerohashes.go rename to container/trie/zerohashes.go index 91fa5037eb..5fa703b693 100644 --- a/shared/trieutil/zerohashes.go +++ b/container/trie/zerohashes.go @@ -1,4 +1,4 @@ -package trieutil +package trie // ZeroHashes is a representation of all zerohashes of // varying depths till h=100. diff --git a/contracts/deposit-contract/BUILD.bazel b/contracts/deposit-contract/BUILD.bazel index 87effffafc..c69e8e0927 100644 --- a/contracts/deposit-contract/BUILD.bazel +++ b/contracts/deposit-contract/BUILD.bazel @@ -32,11 +32,11 @@ go_test( ], deps = [ ":go_default_library", + "//container/trie:go_default_library", "//shared/interop:go_default_library", "//shared/params:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", - "//shared/trieutil:go_default_library", "@com_github_ethereum_go_ethereum//:go_default_library", "@com_github_ethereum_go_ethereum//accounts/abi/bind:go_default_library", "@com_github_ethereum_go_ethereum//common:go_default_library", diff --git a/contracts/deposit-contract/deposit_tree_test.go b/contracts/deposit-contract/deposit_tree_test.go index ce2134b6a6..f1a388577b 100644 --- a/contracts/deposit-contract/deposit_tree_test.go +++ b/contracts/deposit-contract/deposit_tree_test.go @@ -5,19 +5,19 @@ import ( "testing" "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/prysmaticlabs/prysm/container/trie" depositcontract "github.com/prysmaticlabs/prysm/contracts/deposit-contract" "github.com/prysmaticlabs/prysm/shared/interop" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" - "github.com/prysmaticlabs/prysm/shared/trieutil" ) func TestDepositTrieRoot_OK(t *testing.T) { testAcc, err := depositcontract.Setup() require.NoError(t, err) - localTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + localTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err) depRoot, err := testAcc.Contract.GetDepositRoot(&bind.CallOpts{}) @@ -55,7 +55,7 @@ func TestDepositTrieRoot_Fail(t *testing.T) { testAcc, err := depositcontract.Setup() require.NoError(t, err) - localTrie, err := trieutil.NewTrie(params.BeaconConfig().DepositContractTreeDepth) + localTrie, err := trie.NewTrie(params.BeaconConfig().DepositContractTreeDepth) require.NoError(t, err) depRoot, err := testAcc.Contract.GetDepositRoot(&bind.CallOpts{}) diff --git a/shared/htrutils/BUILD.bazel b/shared/htrutils/BUILD.bazel index 5466c002f9..e67cd832b6 100644 --- a/shared/htrutils/BUILD.bazel +++ b/shared/htrutils/BUILD.bazel @@ -11,11 +11,11 @@ go_library( importpath = "github.com/prysmaticlabs/prysm/shared/htrutils", visibility = ["//visibility:public"], deps = [ + "//container/trie:go_default_library", "//crypto/hash:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//shared/bytesutil:go_default_library", "//shared/params:go_default_library", - "//shared/trieutil:go_default_library", "@com_github_minio_sha256_simd//:go_default_library", "@com_github_pkg_errors//:go_default_library", "@com_github_prysmaticlabs_go_bitfield//:go_default_library", diff --git a/shared/htrutils/merkleize.go b/shared/htrutils/merkleize.go index 68edcbb833..928c4b061a 100644 --- a/shared/htrutils/merkleize.go +++ b/shared/htrutils/merkleize.go @@ -2,7 +2,7 @@ package htrutils import ( - "github.com/prysmaticlabs/prysm/shared/trieutil" + "github.com/prysmaticlabs/prysm/container/trie" ) // Merkleize.go is mostly a directly copy of the same filename from @@ -96,7 +96,7 @@ func Merkleize(hasher Hasher, count, limit uint64, leaf func(i uint64) []byte) ( if i&(uint64(1)< 0 { - for _, indice := range sliceutil.IntersectionUint64(tt.att.AttestingIndices, tt.incomingAtt.AttestingIndices) { + for _, indice := range slice.IntersectionUint64(tt.att.AttestingIndices, tt.incomingAtt.AttestingIndices) { want = append(want, &slashertypes.DetectionResult{ ValidatorIndex: indice, Kind: slashertypes.DoubleVote, diff --git a/slasher/detection/detect.go b/slasher/detection/detect.go index f5e8a8a4b2..c4af97b5b9 100644 --- a/slasher/detection/detect.go +++ b/slasher/detection/detect.go @@ -5,13 +5,13 @@ import ( "context" "github.com/pkg/errors" + "github.com/prysmaticlabs/prysm/container/slice" "github.com/prysmaticlabs/prysm/crypto/hash" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" slashpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/attestationutil" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/slashutil" - "github.com/prysmaticlabs/prysm/shared/sliceutil" status "github.com/prysmaticlabs/prysm/slasher/db/types" "github.com/prysmaticlabs/prysm/slasher/detection/attestations/types" "go.opencensus.io/trace" @@ -107,7 +107,7 @@ func (s *Service) detectDoubleVote( } // If there are no shared indices, there is no validator to slash. - if !sliceutil.IsInUint64(detectionResult.ValidatorIndex, att.AttestingIndices) { + if !slice.IsInUint64(detectionResult.ValidatorIndex, att.AttestingIndices) { continue } @@ -144,7 +144,7 @@ func (s *Service) detectSurroundVotes( continue } // If there are no shared indices, there is no validator to slash. - if !sliceutil.IsInUint64(detectionResult.ValidatorIndex, att.AttestingIndices) { + if !slice.IsInUint64(detectionResult.ValidatorIndex, att.AttestingIndices) { continue } diff --git a/testing/endtoend/evaluators/BUILD.bazel b/testing/endtoend/evaluators/BUILD.bazel index c552aa4dbf..9d3ed842e8 100644 --- a/testing/endtoend/evaluators/BUILD.bazel +++ b/testing/endtoend/evaluators/BUILD.bazel @@ -21,13 +21,13 @@ go_library( "//beacon-chain/core:go_default_library", "//beacon-chain/core/helpers:go_default_library", "//beacon-chain/p2p:go_default_library", + "//container/slice:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//proto/prysm/v1alpha1/block:go_default_library", "//proto/prysm/v1alpha1/wrapper:go_default_library", "//shared/bytesutil:go_default_library", "//shared/p2putils:go_default_library", "//shared/params:go_default_library", - "//shared/sliceutil:go_default_library", "//shared/testutil:go_default_library", "//testing/endtoend/helpers:go_default_library", "//testing/endtoend/params:go_default_library", diff --git a/testing/endtoend/evaluators/slashing.go b/testing/endtoend/evaluators/slashing.go index 02ec3fa573..23b4db97cf 100644 --- a/testing/endtoend/evaluators/slashing.go +++ b/testing/endtoend/evaluators/slashing.go @@ -8,10 +8,10 @@ import ( types "github.com/prysmaticlabs/eth2-types" "github.com/prysmaticlabs/go-bitfield" corehelpers "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" + "github.com/prysmaticlabs/prysm/container/slice" eth "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/sliceutil" "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/testing/endtoend/policies" e2eTypes "github.com/prysmaticlabs/prysm/testing/endtoend/types" @@ -159,7 +159,7 @@ func insertDoubleAttestationIntoPool(conns ...*grpc.ClientConn) error { valsToSlash := uint64(2) for i := uint64(0); i < valsToSlash && i < uint64(len(committee)); i++ { - if len(sliceutil.IntersectionUint64(slashedIndices, []uint64{uint64(committee[i])})) > 0 { + if len(slice.IntersectionUint64(slashedIndices, []uint64{uint64(committee[i])})) > 0 { valsToSlash++ continue } @@ -212,7 +212,7 @@ func proposeDoubleBlock(conns ...*grpc.ClientConn) error { var proposerIndex types.ValidatorIndex for i, duty := range duties.CurrentEpochDuties { - if sliceutil.IsInSlots(chainHead.HeadSlot-1, duty.ProposerSlots) { + if slice.IsInSlots(chainHead.HeadSlot-1, duty.ProposerSlots) { proposerIndex = types.ValidatorIndex(i) break }