@@ -479,16 +479,6 @@ func (p *Protocol) CreatePreStates(ctx context.Context, sm protocol.StateManager
479479 return err
480480 }
481481 vd := v .(* viewData )
482- indexers := []ContractStakingIndexer {}
483- if p .contractStakingIndexer != nil {
484- indexers = append (indexers , p .contractStakingIndexer )
485- }
486- if p .contractStakingIndexerV2 != nil {
487- indexers = append (indexers , p .contractStakingIndexerV2 )
488- }
489- if p .contractStakingIndexerV3 != nil {
490- indexers = append (indexers , p .contractStakingIndexerV3 )
491- }
492482 if blkCtx .BlockHeight == g .ToBeEnabledBlockHeight {
493483 handler , err := newNFTBucketEventHandler (sm , func (bucket * contractstaking.Bucket , height uint64 ) * big.Int {
494484 vb := p .convertToVoteBucket (bucket , height )
@@ -497,42 +487,16 @@ func (p *Protocol) CreatePreStates(ctx context.Context, sm protocol.StateManager
497487 if err != nil {
498488 return err
499489 }
500- buckets := make ([]map [uint64 ]* contractstaking.Bucket , 3 )
501- for i , indexer := range indexers {
502- h , bs , err := indexer .ContractStakingBuckets ()
503- if err != nil {
504- return err
505- }
506- if indexer .StartHeight () <= blkCtx .BlockHeight && h != blkCtx .BlockHeight - 1 {
507- return errors .Errorf ("bucket cache height %d does not match current height %d" , h , blkCtx .BlockHeight - 1 )
508- }
509- buckets [i ] = bs
510- }
511- if err := vd .contractsStake .Migrate (handler , buckets ); err != nil {
490+ if err := vd .contractsStake .Migrate (ctx , handler ); err != nil {
512491 return errors .Wrap (err , "failed to flush buckets for contract staking" )
513492 }
514493 }
515494 if featureCtx .StoreVoteOfNFTBucketIntoView {
516- brs := make ([]BucketReader , len (indexers ))
517- for i , indexer := range indexers {
518- brs [i ] = indexer
519- }
520- if err := vd .contractsStake .CreatePreStates (ctx , brs ); err != nil {
495+ if err := vd .contractsStake .CreatePreStates (ctx ); err != nil {
521496 return err
522497 }
523498 if blkCtx .BlockHeight == g .WakeBlockHeight {
524- buckets := make ([]map [uint64 ]* contractstaking.Bucket , 3 )
525- for i , indexer := range indexers {
526- h , bs , err := indexer .ContractStakingBuckets ()
527- if err != nil {
528- return err
529- }
530- if indexer .StartHeight () <= blkCtx .BlockHeight && h != blkCtx .BlockHeight - 1 {
531- return errors .Errorf ("bucket cache height %d does not match current height %d" , h , blkCtx .BlockHeight - 1 )
532- }
533- buckets [i ] = bs
534- }
535- vd .contractsStake .Revise (buckets )
499+ vd .contractsStake .Revise (ctx )
536500 }
537501 }
538502
@@ -1072,32 +1036,6 @@ func (p *Protocol) needToWriteCandsMap(ctx context.Context, height uint64) bool
10721036 return height >= p .config .PersistStakingPatchBlock && fCtx .CandCenterHasAlias (height )
10731037}
10741038
1075- func (p * Protocol ) contractStakingVotesFromIndexer (ctx context.Context , candidate address.Address , height uint64 ) (* big.Int , error ) {
1076- featureCtx := protocol .MustGetFeatureCtx (ctx )
1077- votes := big .NewInt (0 )
1078- indexers := []ContractStakingIndexer {}
1079- if p .contractStakingIndexer != nil && featureCtx .AddContractStakingVotes {
1080- indexers = append (indexers , p .contractStakingIndexer )
1081- }
1082- if p .contractStakingIndexerV2 != nil && ! featureCtx .LimitedStakingContract {
1083- indexers = append (indexers , p .contractStakingIndexerV2 )
1084- }
1085- if p .contractStakingIndexerV3 != nil && featureCtx .TimestampedStakingContract {
1086- indexers = append (indexers , p .contractStakingIndexerV3 )
1087- }
1088-
1089- for _ , indexer := range indexers {
1090- btks , err := indexer .BucketsByCandidate (candidate , height )
1091- if err != nil {
1092- return nil , errors .Wrap (err , "failed to get BucketsByCandidate from contractStakingIndexer" )
1093- }
1094- for _ , b := range btks {
1095- votes .Add (votes , p .contractBucketVotes (featureCtx , b ))
1096- }
1097- }
1098- return votes , nil
1099- }
1100-
11011039func (p * Protocol ) contractStakingVotesFromView (ctx context.Context , candidate address.Address , view * viewData ) (* big.Int , error ) {
11021040 featureCtx := protocol .MustGetFeatureCtx (ctx )
11031041 votes := big .NewInt (0 )
@@ -1121,19 +1059,6 @@ func (p *Protocol) contractStakingVotesFromView(ctx context.Context, candidate a
11211059 return votes , nil
11221060}
11231061
1124- func (p * Protocol ) contractBucketVotes (fCtx protocol.FeatureCtx , bkt * VoteBucket ) * big.Int {
1125- votes := big .NewInt (0 )
1126- if bkt .isUnstaked () {
1127- return votes
1128- }
1129- if fCtx .FixContractStakingWeightedVotes {
1130- votes .Add (votes , p .calculateVoteWeight (bkt , false ))
1131- } else {
1132- votes .Add (votes , bkt .StakedAmount )
1133- }
1134- return votes
1135- }
1136-
11371062func readCandCenterStateFromStateDB (sr protocol.StateReader ) (CandidateList , CandidateList , CandidateList , error ) {
11381063 var (
11391064 name , operator , owner CandidateList
0 commit comments