diff --git a/precommit_policy.go b/precommit_policy.go index 6477a791a..a871b655d 100644 --- a/precommit_policy.go +++ b/precommit_policy.go @@ -4,6 +4,7 @@ import ( "context" "github.com/filecoin-project/specs-actors/actors/abi" + "github.com/filecoin-project/specs-actors/actors/builtin/miner" ) type PreCommitPolicy interface { @@ -31,13 +32,15 @@ type Chain interface { type BasicPreCommitPolicy struct { api Chain - duration abi.ChainEpoch + provingBoundary abi.ChainEpoch + duration abi.ChainEpoch } // NewBasicPreCommitPolicy produces a BasicPreCommitPolicy -func NewBasicPreCommitPolicy(api Chain, duration abi.ChainEpoch) BasicPreCommitPolicy { +func NewBasicPreCommitPolicy(api Chain, duration abi.ChainEpoch, provingBoundary abi.ChainEpoch) BasicPreCommitPolicy { return BasicPreCommitPolicy{ api: api, + provingBoundary: provingBoundary, duration: duration, } } @@ -63,7 +66,8 @@ func (p *BasicPreCommitPolicy) Expiration(ctx context.Context, ps ...Piece) (abi } if end == nil || *end < p.DealInfo.DealSchedule.EndEpoch { - end = &p.DealInfo.DealSchedule.EndEpoch + tmp := p.DealInfo.DealSchedule.EndEpoch + end = &tmp } } @@ -72,5 +76,7 @@ func (p *BasicPreCommitPolicy) Expiration(ctx context.Context, ps ...Piece) (abi end = &tmp } + *end += miner.WPoStProvingPeriod - (*end % miner.WPoStProvingPeriod) + p.provingBoundary - 1 + return *end, nil }