Skip to content

Commit ba74910

Browse files
authored
chore: more delegate_enum to reduce repetitive code (#6474)
1 parent cff1d86 commit ba74910

File tree

18 files changed

+496
-841
lines changed

18 files changed

+496
-841
lines changed

src/interpreter/fvm2.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ impl<DB: Blockstore + Send + Sync + 'static> ForestExternsV2<DB> {
9898

9999
let state = StateTree::new_from_root(Arc::clone(self.chain_index.db()), &self.root)?;
100100

101-
let addr = resolve_to_key_addr(&state, &tbs, &worker.into())?;
101+
let addr = resolve_to_key_addr(&state, &tbs, &worker)?;
102102

103103
let network_version = self.chain_config.network_version(self.epoch);
104104
let gas_used = cal_gas_used_from_stats(tbs.stats.borrow(), network_version)?;

src/interpreter/fvm3.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ impl<DB: Blockstore + Send + Sync + 'static> ForestExterns<DB> {
9898

9999
let ms = miner::State::load(&tbs, actor.code, actor.state)?;
100100

101-
let worker = ms.info(&tbs)?.worker.into();
101+
let worker = ms.info(&tbs)?.worker;
102102

103103
let state = StateTree::new_from_root(Arc::clone(self.chain_index.db()), &self.root)?;
104104

src/interpreter/fvm4.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ impl<DB: Blockstore + Send + Sync + 'static> ForestExterns<DB> {
9797

9898
let ms = miner::State::load(&tbs, actor.code, actor.state)?;
9999

100-
let worker = ms.info(&tbs)?.worker.into();
100+
let worker = ms.info(&tbs)?.worker;
101101

102102
let state = StateTree::new_from_root(Arc::clone(self.chain_index.db()), &self.root)?;
103103

src/lotus_json/miner_info.rs

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -82,71 +82,63 @@ impl HasLotusJson for MinerInfo {
8282
"WorkerChangeEpoch": 0
8383
}),
8484
Self {
85-
owner: Address::default().into(),
86-
worker: Address::default().into(),
85+
owner: Address::default(),
86+
worker: Address::default(),
8787
new_worker: Default::default(),
8888
control_addresses: Default::default(),
8989
worker_change_epoch: Default::default(),
9090
peer_id: Default::default(),
9191
multiaddrs: Default::default(),
9292
window_post_proof_type:
9393
fvm_shared2::sector::RegisteredPoStProof::StackedDRGWinning2KiBV1,
94-
sector_size: crate::shim::sector::SectorSize::_2KiB.into(),
94+
sector_size: crate::shim::sector::SectorSize::_2KiB,
9595
window_post_partition_sectors: Default::default(),
9696
consensus_fault_elapsed: Default::default(),
9797
pending_owner_address: Default::default(),
98-
beneficiary: Address::default().into(),
98+
beneficiary: Address::default(),
9999
beneficiary_term: Default::default(),
100100
pending_beneficiary_term: Default::default(),
101101
},
102102
)]
103103
}
104104
fn into_lotus_json(self) -> Self::LotusJson {
105105
MinerInfoLotusJson {
106-
owner: self.owner.into(),
107-
worker: self.worker.into(),
108-
new_worker: AddressOrEmpty(self.new_worker.map(|addr| addr.into())),
109-
control_addresses: self
110-
.control_addresses
111-
.into_iter()
112-
.map(|a| a.into())
113-
.collect(),
106+
owner: self.owner,
107+
worker: self.worker,
108+
new_worker: AddressOrEmpty(self.new_worker),
109+
control_addresses: self.control_addresses,
114110
worker_change_epoch: self.worker_change_epoch,
115111
peer_id: PeerId::try_from(self.peer_id).map(|id| id.to_base58()).ok(),
116112
multiaddrs: self.multiaddrs.into_iter().map(|addr| addr.0).collect(),
117113
window_po_st_proof_type: self.window_post_proof_type,
118-
sector_size: self.sector_size.into(),
114+
sector_size: self.sector_size,
119115
window_po_st_partition_sectors: self.window_post_partition_sectors,
120116
consensus_fault_elapsed: self.consensus_fault_elapsed,
121117
// NOTE: In Lotus this field is never set for any of the versions, so we have to ignore
122118
// it too.
123119
// See: <https://github.com/filecoin-project/lotus/blob/b6a77dfafcf0110e95840fca15a775ed663836d8/chain/actors/builtin/miner/v12.go#L370>.
124120
pending_owner_address: None,
125-
beneficiary: self.beneficiary.into(),
121+
beneficiary: self.beneficiary,
126122
beneficiary_term: self.beneficiary_term,
127123
pending_beneficiary_term: self.pending_beneficiary_term,
128124
}
129125
}
130126
fn from_lotus_json(lotus_json: Self::LotusJson) -> Self {
131127
MinerInfo {
132-
owner: lotus_json.owner.into(),
133-
worker: lotus_json.worker.into(),
134-
new_worker: lotus_json.new_worker.0.map(|addr| addr.into()),
135-
control_addresses: lotus_json
136-
.control_addresses
137-
.into_iter()
138-
.map(|a| a.into())
139-
.collect(),
128+
owner: lotus_json.owner,
129+
worker: lotus_json.worker,
130+
new_worker: lotus_json.new_worker.0,
131+
control_addresses: lotus_json.control_addresses,
140132
worker_change_epoch: lotus_json.worker_change_epoch,
141133
peer_id: lotus_json.peer_id.map_or_else(Vec::new, |s| s.into_bytes()),
142134
multiaddrs: lotus_json.multiaddrs.into_iter().map(BytesDe).collect(),
143135
window_post_proof_type: lotus_json.window_po_st_proof_type,
144-
sector_size: lotus_json.sector_size.into(),
136+
sector_size: lotus_json.sector_size,
145137
window_post_partition_sectors: lotus_json.window_po_st_partition_sectors,
146138
consensus_fault_elapsed: lotus_json.consensus_fault_elapsed,
147139
// Ignore this field as it is never set on Lotus side.
148140
pending_owner_address: None,
149-
beneficiary: lotus_json.beneficiary.into(),
141+
beneficiary: lotus_json.beneficiary,
150142
beneficiary_term: lotus_json.beneficiary_term,
151143
pending_beneficiary_term: lotus_json.pending_beneficiary_term,
152144
}

src/rpc/methods/f3.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ impl GetPowerTable {
256256
if ts.epoch() <= miner_info.consensus_fault_elapsed {
257257
return Ok(());
258258
}
259-
id_power_worker_mappings.push((id, power, miner_info.worker.into()));
259+
id_power_worker_mappings.push((id, power, miner_info.worker));
260260
Ok(())
261261
})?;
262262
}
@@ -299,7 +299,7 @@ impl GetPowerTable {
299299
if ts.epoch() <= miner_info.consensus_fault_elapsed {
300300
return Ok(());
301301
}
302-
id_power_worker_mappings.push((id, power, miner_info.worker.into()));
302+
id_power_worker_mappings.push((id, power, miner_info.worker));
303303
Ok(())
304304
})?;
305305
}
@@ -342,7 +342,7 @@ impl GetPowerTable {
342342
if ts.epoch() <= miner_info.consensus_fault_elapsed {
343343
return Ok(());
344344
}
345-
id_power_worker_mappings.push((id, power, miner_info.worker.into()));
345+
id_power_worker_mappings.push((id, power, miner_info.worker));
346346
Ok(())
347347
})?;
348348
}
@@ -385,7 +385,7 @@ impl GetPowerTable {
385385
if ts.epoch() <= miner_info.consensus_fault_elapsed {
386386
return Ok(());
387387
}
388-
id_power_worker_mappings.push((id, power, miner_info.worker.into()));
388+
id_power_worker_mappings.push((id, power, miner_info.worker));
389389
Ok(())
390390
})?;
391391
}

src/rpc/methods/state.rs

Lines changed: 25 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ use crate::shim::actors::{
3535
use crate::shim::address::Payload;
3636
use crate::shim::machine::BuiltinActorManifest;
3737
use crate::shim::message::{Message, MethodNum};
38-
use crate::shim::piece::PaddedPieceSize;
3938
use crate::shim::sector::{SectorNumber, SectorSize};
4039
use crate::shim::state_tree::{ActorID, StateTree};
4140
use crate::shim::{
@@ -1033,7 +1032,7 @@ impl RpcMethod<3> for StateMinerInitialPledgeCollateral {
10331032
let market_state: market::State = ctx.state_manager.get_actor_state(&ts)?;
10341033
let (w, vw) = market_state.verify_deals_for_activation(
10351034
ctx.store(),
1036-
address.into(),
1035+
address,
10371036
pci.deal_ids,
10381037
ts.epoch(),
10391038
pci.expiration,
@@ -1053,16 +1052,14 @@ impl RpcMethod<3> for StateMinerInitialPledgeCollateral {
10531052
&Arc::new(ctx.store()),
10541053
ts.parent_state(),
10551054
)?;
1056-
let initial_pledge: TokenAmount = reward_state
1057-
.initial_pledge_for_power(
1058-
&sector_weight,
1059-
pledge_collateral,
1060-
power_smoothed,
1061-
&circ_supply.fil_circulating.into(),
1062-
power_state.ramp_start_epoch(),
1063-
power_state.ramp_duration_epochs(),
1064-
)?
1065-
.into();
1055+
let initial_pledge = reward_state.initial_pledge_for_power(
1056+
&sector_weight,
1057+
pledge_collateral,
1058+
power_smoothed,
1059+
&circ_supply.fil_circulating,
1060+
power_state.ramp_start_epoch(),
1061+
power_state.ramp_duration_epochs(),
1062+
)?;
10661063

10671064
let (q, _) = (initial_pledge * INITIAL_PLEDGE_NUM).div_rem(INITIAL_PLEDGE_DEN);
10681065
Ok(q)
@@ -1096,7 +1093,7 @@ impl RpcMethod<3> for StateMinerPreCommitDepositForPower {
10961093
let market_state: market::State = ctx.state_manager.get_actor_state(&ts)?;
10971094
let (w, vw) = market_state.verify_deals_for_activation(
10981095
ctx.store(),
1099-
address.into(),
1096+
address,
11001097
pci.deal_ids,
11011098
ts.epoch(),
11021099
pci.expiration,
@@ -1114,9 +1111,8 @@ impl RpcMethod<3> for StateMinerPreCommitDepositForPower {
11141111
let power_smoothed = power_state.total_power_smoothed();
11151112

11161113
let reward_state: reward::State = ctx.state_manager.get_actor_state(&ts)?;
1117-
let deposit: TokenAmount = reward_state
1118-
.pre_commit_deposit_for_power(power_smoothed, sector_weight)?
1119-
.into();
1114+
let deposit: TokenAmount =
1115+
reward_state.pre_commit_deposit_for_power(power_smoothed, sector_weight)?;
11201116
let (value, _) = (deposit * INITIAL_PLEDGE_NUM).div_rem(INITIAL_PLEDGE_DEN);
11211117
Ok(value)
11221118
}
@@ -1966,12 +1962,12 @@ impl RpcMethod<1> for StateMarketParticipants {
19661962
let locked_table = market_state.locked_table(ctx.store())?;
19671963
let mut result = HashMap::new();
19681964
escrow_table.for_each(|address, escrow| {
1969-
let locked = locked_table.get(&address.into())?;
1965+
let locked = locked_table.get(address)?;
19701966
result.insert(
19711967
address.to_string(),
19721968
MarketBalance {
19731969
escrow: escrow.clone(),
1974-
locked: locked.into(),
1970+
locked,
19751971
},
19761972
);
19771973
Ok(())
@@ -2025,10 +2021,10 @@ impl RpcMethod<3> for StateDealProviderCollateralBounds {
20252021

20262022
let (min, max) = reward_state.deal_provider_collateral_bounds(
20272023
policy,
2028-
PaddedPieceSize::from(size).into(),
2024+
size.into(),
20292025
&power_claim.raw_byte_power,
20302026
baseline_power,
2031-
&supply.into(),
2027+
&supply,
20322028
);
20332029

20342030
let min = min
@@ -2037,7 +2033,7 @@ impl RpcMethod<3> for StateDealProviderCollateralBounds {
20372033
.div_euclid(&deal_provider_collateral_denom);
20382034

20392035
Ok(DealCollateralBounds {
2040-
max: max.into(),
2036+
max,
20412037
min: TokenAmount::from_atto(min),
20422038
})
20432039
}
@@ -3177,16 +3173,14 @@ impl RpcMethod<4> for StateMinerInitialPledgeForSector {
31773173

31783174
let (epochs_since_start, duration) = get_pledge_ramp_params(&ctx, ts.epoch(), &ts)?;
31793175

3180-
let initial_pledge: TokenAmount = reward_state
3181-
.initial_pledge_for_power(
3182-
&sector_weight,
3183-
pledge_collateral,
3184-
power_smoothed,
3185-
&circ_supply.fil_circulating.into(),
3186-
epochs_since_start,
3187-
duration,
3188-
)?
3189-
.into();
3176+
let initial_pledge = reward_state.initial_pledge_for_power(
3177+
&sector_weight,
3178+
pledge_collateral,
3179+
power_smoothed,
3180+
&circ_supply.fil_circulating,
3181+
epochs_since_start,
3182+
duration,
3183+
)?;
31903184

31913185
let (value, _) = (initial_pledge * INITIAL_PLEDGE_NUM).div_rem(INITIAL_PLEDGE_DEN);
31923186
Ok(value)

src/rpc/types/deal_impl.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,16 @@ impl From<DealProposal> for ApiDealProposal {
3939
} = p;
4040
Self {
4141
piece_cid,
42-
piece_size: piece_size.0,
42+
piece_size: piece_size.into(),
4343
verified_deal,
44-
client: client.into(),
45-
provider: provider.into(),
44+
client,
45+
provider,
4646
label,
4747
start_epoch,
4848
end_epoch,
49-
storage_price_per_epoch: storage_price_per_epoch.into(),
50-
provider_collateral: provider_collateral.into(),
51-
client_collateral: client_collateral.into(),
49+
storage_price_per_epoch,
50+
provider_collateral,
51+
client_collateral,
5252
}
5353
}
5454
}

src/rpc/types/mod.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,19 @@ mod tests;
1919
use crate::beacon::BeaconEntry;
2020
use crate::blocks::TipsetKey;
2121
use crate::lotus_json::{LotusJson, lotus_json_with_self};
22-
use crate::shim::actors::market::AllocationID;
23-
use crate::shim::actors::market::{DealProposal, DealState};
24-
use crate::shim::actors::miner::DeadlineInfo;
25-
use crate::shim::executor::StampedEvent;
2622
use crate::shim::{
23+
actors::{
24+
market::{AllocationID, DealProposal, DealState},
25+
miner::DeadlineInfo,
26+
},
2727
address::Address,
2828
clock::ChainEpoch,
2929
deal::DealID,
3030
econ::TokenAmount,
31-
executor::Receipt,
31+
executor::{Receipt, StampedEvent},
3232
fvm_shared_latest::MethodNum,
3333
message::Message,
34-
sector::{ExtendedSectorInfo, RegisteredSealProof, SectorNumber, StoragePower},
34+
sector::{ExtendedSectorInfo, RegisteredSealProof, SectorNumber, SectorSize, StoragePower},
3535
};
3636
use chrono::Utc;
3737
use cid::Cid;
@@ -514,7 +514,7 @@ pub struct MiningBaseInfo {
514514
#[schemars(with = "LotusJson<Address>")]
515515
pub worker_key: Address,
516516
#[schemars(with = "u64")]
517-
pub sector_size: fvm_shared2::sector::SectorSize,
517+
pub sector_size: SectorSize,
518518
#[serde(with = "crate::lotus_json")]
519519
#[schemars(with = "LotusJson<BeaconEntry>")]
520520
pub prev_beacon_entry: BeaconEntry,

0 commit comments

Comments
 (0)