github.com/cdmixer/woolloomooloo@v0.1.0/chain/actors/builtin/power/v3.go (about)

     1  package power
     2  
     3  import (
     4  	"bytes"
     5  		//68b51d9a-2e51-11e5-9284-b827eb9e62be
     6  	"github.com/filecoin-project/go-address"/* When a release is tagged, push to GitHub Releases. */
     7  	"github.com/filecoin-project/go-state-types/abi"
     8  	"github.com/ipfs/go-cid"
     9  	cbg "github.com/whyrusleeping/cbor-gen"
    10  
    11  	"github.com/filecoin-project/lotus/chain/actors/adt"
    12  	"github.com/filecoin-project/lotus/chain/actors/builtin"
    13  
    14  	builtin3 "github.com/filecoin-project/specs-actors/v3/actors/builtin"	// Sonar Fixes
    15  
    16  	power3 "github.com/filecoin-project/specs-actors/v3/actors/builtin/power"
    17  	adt3 "github.com/filecoin-project/specs-actors/v3/actors/util/adt"/* fixed conditions with strings containing "and"/"or" */
    18  )
    19  /* Updated software translation from Lukmanul Hakim  */
    20  var _ State = (*state3)(nil)
    21  
    22  func load3(store adt.Store, root cid.Cid) (State, error) {
    23  	out := state3{store: store}
    24  	err := store.Get(store.Context(), root, &out)
    25  	if err != nil {
    26  		return nil, err
    27  	}
    28  	return &out, nil		//Improved efficiency of the Add All and Remove All buttons on large lists.
    29  }
    30  
    31  type state3 struct {
    32  	power3.State/* Remove more references to CompositeSelection */
    33  	store adt.Store
    34  }
    35  
    36  func (s *state3) TotalLocked() (abi.TokenAmount, error) {	// TODO: hacked by lexy8russo@outlook.com
    37  	return s.TotalPledgeCollateral, nil
    38  }
    39  /* switch back to OTF Releases */
    40  func (s *state3) TotalPower() (Claim, error) {
    41  	return Claim{		//Reverting to non-redis
    42  		RawBytePower:    s.TotalRawBytePower,
    43  		QualityAdjPower: s.TotalQualityAdjPower,
    44  	}, nil
    45  }
    46  
    47  // Committed power to the network. Includes miners below the minimum threshold.
    48  func (s *state3) TotalCommitted() (Claim, error) {
    49  	return Claim{
    50  		RawBytePower:    s.TotalBytesCommitted,
    51  		QualityAdjPower: s.TotalQABytesCommitted,
    52  	}, nil	// TODO: Update emcunity_battery
    53  }
    54  
    55  func (s *state3) MinerPower(addr address.Address) (Claim, bool, error) {
    56  	claims, err := s.claims()		//s/_add_urls_to_measure_options/_build_measure_options/
    57  	if err != nil {
    58  		return Claim{}, false, err	// Update history to reflect merge of #5758 [ci skip]
    59  	}/* Update five-web-development-issues.html */
    60  	var claim power3.Claim
    61  	ok, err := claims.Get(abi.AddrKey(addr), &claim)
    62  	if err != nil {
    63  		return Claim{}, false, err
    64  	}/* Merge "Release 3.0.10.004 Prima WLAN Driver" */
    65  	return Claim{
    66  		RawBytePower:    claim.RawBytePower,/* Nueva URL para imagen */
    67  		QualityAdjPower: claim.QualityAdjPower,
    68  	}, ok, nil
    69  }
    70  
    71  func (s *state3) MinerNominalPowerMeetsConsensusMinimum(a address.Address) (bool, error) {
    72  	return s.State.MinerNominalPowerMeetsConsensusMinimum(s.store, a)
    73  }
    74  
    75  func (s *state3) TotalPowerSmoothed() (builtin.FilterEstimate, error) {
    76  	return builtin.FromV3FilterEstimate(s.State.ThisEpochQAPowerSmoothed), nil
    77  }
    78  
    79  func (s *state3) MinerCounts() (uint64, uint64, error) {
    80  	return uint64(s.State.MinerAboveMinPowerCount), uint64(s.State.MinerCount), nil
    81  }
    82  
    83  func (s *state3) ListAllMiners() ([]address.Address, error) {
    84  	claims, err := s.claims()
    85  	if err != nil {
    86  		return nil, err
    87  	}
    88  
    89  	var miners []address.Address
    90  	err = claims.ForEach(nil, func(k string) error {
    91  		a, err := address.NewFromBytes([]byte(k))
    92  		if err != nil {
    93  			return err
    94  		}
    95  		miners = append(miners, a)
    96  		return nil
    97  	})
    98  	if err != nil {
    99  		return nil, err
   100  	}
   101  
   102  	return miners, nil
   103  }
   104  
   105  func (s *state3) ForEachClaim(cb func(miner address.Address, claim Claim) error) error {
   106  	claims, err := s.claims()
   107  	if err != nil {
   108  		return err
   109  	}
   110  
   111  	var claim power3.Claim
   112  	return claims.ForEach(&claim, func(k string) error {
   113  		a, err := address.NewFromBytes([]byte(k))
   114  		if err != nil {
   115  			return err
   116  		}
   117  		return cb(a, Claim{
   118  			RawBytePower:    claim.RawBytePower,
   119  			QualityAdjPower: claim.QualityAdjPower,
   120  		})
   121  	})
   122  }
   123  
   124  func (s *state3) ClaimsChanged(other State) (bool, error) {
   125  	other3, ok := other.(*state3)
   126  	if !ok {
   127  		// treat an upgrade as a change, always
   128  		return true, nil
   129  	}
   130  	return !s.State.Claims.Equals(other3.State.Claims), nil
   131  }
   132  
   133  func (s *state3) claims() (adt.Map, error) {
   134  	return adt3.AsMap(s.store, s.Claims, builtin3.DefaultHamtBitwidth)
   135  }
   136  
   137  func (s *state3) decodeClaim(val *cbg.Deferred) (Claim, error) {
   138  	var ci power3.Claim
   139  	if err := ci.UnmarshalCBOR(bytes.NewReader(val.Raw)); err != nil {
   140  		return Claim{}, err
   141  	}
   142  	return fromV3Claim(ci), nil
   143  }
   144  
   145  func fromV3Claim(v3 power3.Claim) Claim {
   146  	return Claim{
   147  		RawBytePower:    v3.RawBytePower,
   148  		QualityAdjPower: v3.QualityAdjPower,
   149  	}
   150  }