diff --git a/substrate/frame/broker/src/dispatchable_impls.rs b/substrate/frame/broker/src/dispatchable_impls.rs index 489be12bdd15..afd9d6048f97 100644 --- a/substrate/frame/broker/src/dispatchable_impls.rs +++ b/substrate/frame/broker/src/dispatchable_impls.rs @@ -211,6 +211,34 @@ impl Pallet { Ok(core) } + pub(crate) fn do_add_potential_renewal(core: CoreIndex) -> Result<(), Error> { + let now = RCBlockNumberProviderOf::::current_block_number(); + let sale = SaleInfo::::get().ok_or(Error::::NoSales)?; + let renewal_id = PotentialRenewalId { core, when: sale.region_begin }; + // Check if a record already exists + if PotentialRenewals::::contains_key(renewal_id) { + return Err(Error::::NotAllowed); + } + price = Self::sale_price(&sale, now); + let workload = Workload::::get(core); + log::debug!( + "Create PotentialRenewalRecord for workload {:?}", + workload + ); + let new_record = PotentialRenewalRecord { price, completion: Complete(workload) } + PotentialRenewals::::insert(PotentialRenewalId { core, when: begin }, &new_record); + } + + pub(crate) fn do_remove_potential_renewal(core: CoreIndex) -> Result<(), Error> { + let sale = SaleInfo::::get().ok_or(Error::::NoSales)?; + let renewal_id = PotentialRenewalId { core, when: sale.region_begin }; + let current_record = PotentialRenewals::::get(renewal_id); + + if let Some(_) = current_record { + PotentialRenewals::::remove(renewal_id); + } + } + pub(crate) fn do_transfer( region_id: RegionId, maybe_check_owner: Option, diff --git a/substrate/frame/broker/src/lib.rs b/substrate/frame/broker/src/lib.rs index 01368fd6404d..26eba4ea14c8 100644 --- a/substrate/frame/broker/src/lib.rs +++ b/substrate/frame/broker/src/lib.rs @@ -976,5 +976,20 @@ pub mod pallet { Self::do_swap_leases(id, other)?; Ok(()) } + + /* + #[pallet::call_index(60)] + pub fn potential_renewal(origin: OriginFor, core: CoreIndex, renew: bool) -> DispatchResult { + let who = T::AdminOrigin::ensure_origin_or_root(origin)?; + if renew { + Self::do_renew(who, core)?; + } else { + + let renewal_id = PotentialRenewalId { core, when: sale.region_begin }; + PotentialRenewals::::remove(renewal_id); + } + Ok(Pays::Yes.into()) + } + */ } }