@@ -45,7 +45,11 @@ namespace fc::mining {
4545 using vm::actor::builtin::types::market::deal_info_manager::
4646 DealInfoManagerImpl;
4747 using vm::actor::builtin::types::miner::kChainFinality ;
48+ using vm::actor::builtin::types::miner::kMaxPreCommitRandomnessLookback ;
49+ using vm::actor::builtin::types::miner::kMaxProveCommitDuration ;
50+ using vm::actor::builtin::types::miner::kMaxSectorExpirationExtension ;
4851 using vm::actor::builtin::types::miner::kMinSectorExpiration ;
52+ using vm::actor::builtin::types::miner::kPreCommitChallengeDelay ;
4953 using vm::actor::builtin::v0::miner::PreCommitSector;
5054 using vm::actor::builtin::v0::miner::ProveCommitSector;
5155
@@ -1137,14 +1141,22 @@ namespace fc::mining {
11371141 OUTCOME_TRY (seal_duration,
11381142 checks::getMaxProveCommitDuration (network, info));
11391143 OUTCOME_TRY (policy_expiration, policy_->expiration (info->pieces ));
1140- const ChainEpoch static_expiration =
1141- head->epoch () + seal_duration + kMinSectorExpiration + kChainFinality
1142- + gsl::narrow<ChainEpoch>(kEpochsInDay );
1143- const auto expiration =
1144- std::min<ChainEpoch>(policy_expiration, static_expiration);
1144+ const auto min_expiration = info->ticket_epoch
1145+ + kMaxPreCommitRandomnessLookback
1146+ + seal_duration + kMinSectorExpiration ;
1147+
1148+ if (policy_expiration < min_expiration) {
1149+ policy_expiration = min_expiration;
1150+ }
1151+
1152+ const auto max_expiration = head->epoch () + kPreCommitChallengeDelay
1153+ + kMaxSectorExpirationExtension ;
1154+ if (policy_expiration > max_expiration) {
1155+ policy_expiration = max_expiration;
1156+ }
11451157
11461158 SectorPreCommitInfo params;
1147- params.expiration = expiration ;
1159+ params.expiration = policy_expiration ;
11481160 params.sector = info->sector_number ;
11491161 params.registered_proof = info->sector_type ;
11501162 params.sealed_cid = info->comm_r .get ();
@@ -1281,7 +1293,6 @@ namespace fc::mining {
12811293 precommit_params->deposit ,
12821294 precommit_params->info ,
12831295 [=](const outcome::result<CID> &maybe_cid) -> void {
1284- logger_->info (" SUBMIT" );
12851296 if (maybe_cid.has_error ()) {
12861297 logger_->error (" submitting message to precommit batcher: {}" ,
12871298 maybe_cid.error ().message ());
0 commit comments