Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
- Change circulating supply calculation for calibnet, butterflynet and 2k for nv25 upgrade; see ([filecoin-project/lotus#12938](https://github.com/filecoin-project/lotus/pull/12938)) for more information
- feat(miner): remove batch balancer-related functionality ([filecoin-project/lotus#12919](https://github.com/filecoin-project/lotus/pull/12919))
- chore(eth): make `EthGetBlockByNumber` & `EthGetBlockByHash` share the same cache and be impacted by `EthBlkCacheSize` config settings ([filecoin-project/lotus#12979](https://github.com/filecoin-project/lotus/pull/12979))
- feat(market): expose access to ProviderSectors on the market actor abstraction ([filecoin-project/lotus#12978](https://github.com/filecoin-project/lotus/pull/12978))

# UNRELEASED v.1.32.0

Expand Down
16 changes: 13 additions & 3 deletions chain/actors/builtin/market/actor.go.template
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ func MakeState(store adt.Store, av actorstypes.Version) (State, error) {
type State interface {
cbor.Marshaler

Code() cid.Cid
ActorKey() string
ActorVersion() actorstypes.Version
Code() cid.Cid
ActorKey() string
ActorVersion() actorstypes.Version

BalancesChanged(State) (bool, error)
EscrowTable() (BalanceTable, error)
Expand All @@ -95,6 +95,7 @@ type State interface {
NextID() (abi.DealID, error)
GetState() interface{}
GetAllocationIdForPendingDeal(dealId abi.DealID) (verifregtypes.AllocationId, error)
ProviderSectors() (ProviderSectors, error)
}

type BalanceTable interface {
Expand Down Expand Up @@ -155,6 +156,15 @@ type DealState interface {
Equals(other DealState) bool
}

type ProviderSectors interface {
Get(actorId abi.ActorID) (SectorDealIDs, bool, error)
}

type SectorDealIDs interface {
ForEach(cb func(abi.SectorNumber, []abi.DealID) error) error
Get(sectorNumber abi.SectorNumber) ([]abi.DealID, bool, error)
}

func DealStatesEqual(a, b DealState) bool {
if a.SectorNumber() != b.SectorNumber() {
return false
Expand Down
10 changes: 10 additions & 0 deletions chain/actors/builtin/market/market.go
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ type State interface {
NextID() (abi.DealID, error)
GetState() interface{}
GetAllocationIdForPendingDeal(dealId abi.DealID) (verifregtypes.AllocationId, error)
ProviderSectors() (ProviderSectors, error)
}

type BalanceTable interface {
Expand Down Expand Up @@ -283,6 +284,15 @@ type DealState interface {
Equals(other DealState) bool
}

type ProviderSectors interface {
Get(actorId abi.ActorID) (SectorDealIDs, bool, error)
}

type SectorDealIDs interface {
ForEach(cb func(abi.SectorNumber, []abi.DealID) error) error
Get(sectorNumber abi.SectorNumber) ([]abi.DealID, bool, error)
}

func DealStatesEqual(a, b DealState) bool {
if a.SectorNumber() != b.SectorNumber() {
return false
Expand Down
60 changes: 60 additions & 0 deletions chain/actors/builtin/market/state.go.template
Original file line number Diff line number Diff line change
Expand Up @@ -460,3 +460,63 @@ func (s *state{{.v}}) Code() cid.Cid {

return code
}

func (s *state{{.v}}) ProviderSectors() (ProviderSectors, error) {
{{if lt .v 13}}
return nil, xerrors.Errorf("unsupported before actors v13")
{{else}}
proverSectors, err := adt{{.v}}.AsMap(s.store, s.State.ProviderSectors, builtin.DefaultHamtBitwidth)
if err != nil {
return nil, err
}
return &providerSectors{{.v}}{proverSectors, s.store}, nil
{{end}}
}

{{if ge .v 13}}
type providerSectors{{.v}} struct {
*adt{{.v}}.Map
adt{{.v}}.Store
}

type sectorDealIDs{{.v}} struct {
*adt{{.v}}.Map
}

func (s *providerSectors{{.v}}) Get(actorId abi.ActorID) (SectorDealIDs, bool, error) {
var sectorDealIdsCID cbg.CborCid
if ok, err := s.Map.Get(abi.UIntKey(uint64(actorId)), &sectorDealIdsCID); err != nil {
return nil, false, xerrors.Errorf("failed to load sector deal ids for actor %d: %w", actorId, err)
} else if !ok {
return nil, false, nil
}
sectorDealIds, err := adt{{.v}}.AsMap(s.Store, cid.Cid(sectorDealIdsCID), builtin.DefaultHamtBitwidth)
if err != nil {
return nil, false, xerrors.Errorf("failed to load sector deal ids for actor %d: %w", actorId, err)
}
return &sectorDealIDs{{.v}}{sectorDealIds}, true, nil
}

func (s *sectorDealIDs{{.v}}) ForEach(cb func(abi.SectorNumber, []abi.DealID) error) error {
var dealIds abi.DealIDList
return s.Map.ForEach(&dealIds, func(key string) error {
uk, err := abi.ParseUIntKey(key)
if err != nil {
return xerrors.Errorf("failed to parse sector number from key %s: %w", key, err)
}
return cb(abi.SectorNumber(uk), dealIds)
})
}

func (s *sectorDealIDs{{.v}}) Get(sectorNumber abi.SectorNumber) ([]abi.DealID, bool, error) {
var dealIds abi.DealIDList
found, err := s.Map.Get(abi.UIntKey(uint64(sectorNumber)), &dealIds)
if err != nil {
return nil, false, xerrors.Errorf("failed to load sector deal ids for sector %d: %w", sectorNumber, err)
}
if !found {
return nil, false, nil
}
return dealIds, true, nil
}
{{end}}
6 changes: 6 additions & 0 deletions chain/actors/builtin/market/v0.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions chain/actors/builtin/market/v10.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions chain/actors/builtin/market/v11.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions chain/actors/builtin/market/v12.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

56 changes: 56 additions & 0 deletions chain/actors/builtin/market/v13.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

56 changes: 56 additions & 0 deletions chain/actors/builtin/market/v14.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

56 changes: 56 additions & 0 deletions chain/actors/builtin/market/v15.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading