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 }