1use fvm_ipld_encoding::tuple::*;
5use fvm_ipld_encoding::{strict_bytes, BytesDe, RawBytes};
6use fvm_shared3::address::Address;
7use fvm_shared3::bigint::bigint_ser;
8use fvm_shared3::clock::ChainEpoch;
9use fvm_shared3::econ::TokenAmount;
10use fvm_shared3::sector::{RegisteredPoStProof, SealVerifyInfo, StoragePower};
11use fvm_shared3::smooth::FilterEstimate;
12use fvm_shared3::ActorID;
13
14use serde::{Deserialize, Serialize};
15
16pub type SectorTermination = i64;
17
18pub const SECTOR_TERMINATION_EXPIRED: SectorTermination = 0;
20pub const SECTOR_TERMINATION_MANUAL: SectorTermination = 1;
22pub const SECTOR_TERMINATION_FAULTY: SectorTermination = 3;
24
25pub const CRON_QUEUE_HAMT_BITWIDTH: u32 = 6;
26pub const CRON_QUEUE_AMT_BITWIDTH: u32 = 6;
27pub const PROOF_VALIDATION_BATCH_AMT_BITWIDTH: u32 = 4;
28
29#[derive(Serialize_tuple, Deserialize_tuple, Debug, Clone, Eq, PartialEq)]
30pub struct CreateMinerParams {
31 pub owner: Address,
32 pub worker: Address,
33 pub window_post_proof_type: RegisteredPoStProof,
34 #[serde(with = "strict_bytes")]
35 pub peer: Vec<u8>,
36 pub multiaddrs: Vec<BytesDe>,
37}
38
39#[derive(Serialize_tuple, Deserialize_tuple, Debug, Clone, Eq, PartialEq)]
40pub struct CreateMinerReturn {
41 pub id_address: Address,
43 pub robust_address: Address,
45}
46
47#[derive(Serialize_tuple, Deserialize_tuple, Debug, Clone, Eq, PartialEq)]
48pub struct UpdateClaimedPowerParams {
49 #[serde(with = "bigint_ser")]
50 pub raw_byte_delta: StoragePower,
51 #[serde(with = "bigint_ser")]
52 pub quality_adjusted_delta: StoragePower,
53}
54
55#[derive(Serialize_tuple, Deserialize_tuple, Debug, Clone, Eq, PartialEq)]
56pub struct EnrollCronEventParams {
57 pub event_epoch: ChainEpoch,
58 pub payload: RawBytes,
59}
60
61#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Clone, Default)]
62#[serde(transparent)]
63pub struct UpdatePledgeTotalParams {
64 pub pledge_delta: TokenAmount,
65}
66
67#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Clone)]
68#[serde(transparent)]
69pub struct SubmitPoRepForBulkVerifyParams {
70 pub seal_info: SealVerifyInfo,
71}
72
73#[derive(Serialize_tuple, Deserialize_tuple, Debug, Clone, Eq, PartialEq)]
74pub struct CurrentTotalPowerReturn {
75 #[serde(with = "bigint_ser")]
76 pub raw_byte_power: StoragePower,
77 #[serde(with = "bigint_ser")]
78 pub quality_adj_power: StoragePower,
79 pub pledge_collateral: TokenAmount,
80 pub quality_adj_power_smoothed: FilterEstimate,
81}
82
83#[derive(Serialize_tuple, Deserialize_tuple, Debug, Clone, Eq, PartialEq)]
84#[serde(transparent)]
85pub struct NetworkRawPowerReturn {
86 #[serde(with = "bigint_ser")]
87 pub raw_byte_power: StoragePower,
88}
89
90#[derive(Serialize_tuple, Deserialize_tuple, Debug, Clone, Eq, PartialEq)]
91#[serde(transparent)]
92pub struct MinerRawPowerParams {
93 pub miner: ActorID,
94}
95
96#[derive(Serialize_tuple, Deserialize_tuple, Debug, Clone, Eq, PartialEq)]
97pub struct MinerRawPowerReturn {
98 #[serde(with = "bigint_ser")]
99 pub raw_byte_power: StoragePower,
100 pub meets_consensus_minimum: bool,
101}
102
103#[derive(Serialize_tuple, Deserialize_tuple, Debug, Clone, Eq, PartialEq)]
104#[serde(transparent)]
105pub struct MinerCountReturn {
106 pub miner_count: i64,
107}
108
109#[derive(Serialize_tuple, Deserialize_tuple, Debug, Clone, Eq, PartialEq)]
110#[serde(transparent)]
111pub struct MinerConsensusCountReturn {
112 pub miner_consensus_count: i64,
113}