From c86f5a1b2b3122c7c8d67775e9b2b3127c84661e Mon Sep 17 00:00:00 2001 From: Aayush Date: Wed, 10 Jan 2024 17:50:33 -0500 Subject: [PATCH 1/2] fix: chain: use latest go-state-types types for miner UI --- api/docgen/docgen.go | 2 ++ api/mocks/mock_full.go | 21 ++++++++++--------- api/v0api/v0mocks/mock_full.go | 21 ++++++++++--------- build/openrpc/full.json.gz | Bin 34608 -> 34601 bytes build/openrpc/gateway.json.gz | Bin 11872 -> 11870 bytes chain/actors/builtin/miner/actor.go.template | 3 ++- chain/actors/builtin/miner/miner.go | 3 ++- documentation/en/api-v0-methods.md | 12 +++++------ documentation/en/api-v1-unstable-methods.md | 12 +++++------ storage/pipeline/mocks/api.go | 17 ++++++++------- storage/wdpost/wdpost_run_test.go | 7 ++++--- 11 files changed, 53 insertions(+), 45 deletions(-) diff --git a/api/docgen/docgen.go b/api/docgen/docgen.go index b31c25b86..181efeb30 100644 --- a/api/docgen/docgen.go +++ b/api/docgen/docgen.go @@ -32,6 +32,7 @@ import ( "github.com/filecoin-project/go-fil-markets/retrievalmarket" "github.com/filecoin-project/go-jsonrpc/auth" "github.com/filecoin-project/go-state-types/abi" + "github.com/filecoin-project/go-state-types/builtin/v12/miner" "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/crypto" "github.com/filecoin-project/go-state-types/exitcode" @@ -145,6 +146,7 @@ func init() { allocationId := verifreg.AllocationId(0) addExample(allocationId) addExample(&allocationId) + addExample(miner.SectorOnChainInfoFlags(0)) addExample(map[verifreg.AllocationId]verifreg.Allocation{}) claimId := verifreg.ClaimId(0) addExample(claimId) diff --git a/api/mocks/mock_full.go b/api/mocks/mock_full.go index ed9fe740e..f4a9832bb 100644 --- a/api/mocks/mock_full.go +++ b/api/mocks/mock_full.go @@ -27,8 +27,9 @@ import ( auth "github.com/filecoin-project/go-jsonrpc/auth" abi "github.com/filecoin-project/go-state-types/abi" big "github.com/filecoin-project/go-state-types/big" + miner "github.com/filecoin-project/go-state-types/builtin/v12/miner" paych "github.com/filecoin-project/go-state-types/builtin/v8/paych" - miner "github.com/filecoin-project/go-state-types/builtin/v9/miner" + miner0 "github.com/filecoin-project/go-state-types/builtin/v9/miner" verifreg "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" crypto "github.com/filecoin-project/go-state-types/crypto" dline "github.com/filecoin-project/go-state-types/dline" @@ -36,7 +37,7 @@ import ( api "github.com/filecoin-project/lotus/api" apitypes "github.com/filecoin-project/lotus/api/types" - miner0 "github.com/filecoin-project/lotus/chain/actors/builtin/miner" + miner1 "github.com/filecoin-project/lotus/chain/actors/builtin/miner" types "github.com/filecoin-project/lotus/chain/types" ethtypes "github.com/filecoin-project/lotus/chain/types/ethtypes" alerting "github.com/filecoin-project/lotus/journal/alerting" @@ -3549,7 +3550,7 @@ func (mr *MockFullNodeMockRecorder) StateMinerInfo(arg0, arg1, arg2 interface{}) } // StateMinerInitialPledgeCollateral mocks base method. -func (m *MockFullNode) StateMinerInitialPledgeCollateral(arg0 context.Context, arg1 address.Address, arg2 miner.SectorPreCommitInfo, arg3 types.TipSetKey) (big.Int, error) { +func (m *MockFullNode) StateMinerInitialPledgeCollateral(arg0 context.Context, arg1 address.Address, arg2 miner0.SectorPreCommitInfo, arg3 types.TipSetKey) (big.Int, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "StateMinerInitialPledgeCollateral", arg0, arg1, arg2, arg3) ret0, _ := ret[0].(big.Int) @@ -3594,7 +3595,7 @@ func (mr *MockFullNodeMockRecorder) StateMinerPower(arg0, arg1, arg2 interface{} } // StateMinerPreCommitDepositForPower mocks base method. -func (m *MockFullNode) StateMinerPreCommitDepositForPower(arg0 context.Context, arg1 address.Address, arg2 miner.SectorPreCommitInfo, arg3 types.TipSetKey) (big.Int, error) { +func (m *MockFullNode) StateMinerPreCommitDepositForPower(arg0 context.Context, arg1 address.Address, arg2 miner0.SectorPreCommitInfo, arg3 types.TipSetKey) (big.Int, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "StateMinerPreCommitDepositForPower", arg0, arg1, arg2, arg3) ret0, _ := ret[0].(big.Int) @@ -3759,10 +3760,10 @@ func (mr *MockFullNodeMockRecorder) StateSearchMsg(arg0, arg1, arg2, arg3, arg4 } // StateSectorExpiration mocks base method. -func (m *MockFullNode) StateSectorExpiration(arg0 context.Context, arg1 address.Address, arg2 abi.SectorNumber, arg3 types.TipSetKey) (*miner0.SectorExpiration, error) { +func (m *MockFullNode) StateSectorExpiration(arg0 context.Context, arg1 address.Address, arg2 abi.SectorNumber, arg3 types.TipSetKey) (*miner1.SectorExpiration, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "StateSectorExpiration", arg0, arg1, arg2, arg3) - ret0, _ := ret[0].(*miner0.SectorExpiration) + ret0, _ := ret[0].(*miner1.SectorExpiration) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -3789,10 +3790,10 @@ func (mr *MockFullNodeMockRecorder) StateSectorGetInfo(arg0, arg1, arg2, arg3 in } // StateSectorPartition mocks base method. -func (m *MockFullNode) StateSectorPartition(arg0 context.Context, arg1 address.Address, arg2 abi.SectorNumber, arg3 types.TipSetKey) (*miner0.SectorLocation, error) { +func (m *MockFullNode) StateSectorPartition(arg0 context.Context, arg1 address.Address, arg2 abi.SectorNumber, arg3 types.TipSetKey) (*miner1.SectorLocation, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "StateSectorPartition", arg0, arg1, arg2, arg3) - ret0, _ := ret[0].(*miner0.SectorLocation) + ret0, _ := ret[0].(*miner1.SectorLocation) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -3804,10 +3805,10 @@ func (mr *MockFullNodeMockRecorder) StateSectorPartition(arg0, arg1, arg2, arg3 } // StateSectorPreCommitInfo mocks base method. -func (m *MockFullNode) StateSectorPreCommitInfo(arg0 context.Context, arg1 address.Address, arg2 abi.SectorNumber, arg3 types.TipSetKey) (*miner.SectorPreCommitOnChainInfo, error) { +func (m *MockFullNode) StateSectorPreCommitInfo(arg0 context.Context, arg1 address.Address, arg2 abi.SectorNumber, arg3 types.TipSetKey) (*miner0.SectorPreCommitOnChainInfo, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "StateSectorPreCommitInfo", arg0, arg1, arg2, arg3) - ret0, _ := ret[0].(*miner.SectorPreCommitOnChainInfo) + ret0, _ := ret[0].(*miner0.SectorPreCommitOnChainInfo) ret1, _ := ret[1].(error) return ret0, ret1 } diff --git a/api/v0api/v0mocks/mock_full.go b/api/v0api/v0mocks/mock_full.go index 7a722ed25..151b1dbc1 100644 --- a/api/v0api/v0mocks/mock_full.go +++ b/api/v0api/v0mocks/mock_full.go @@ -26,8 +26,9 @@ import ( auth "github.com/filecoin-project/go-jsonrpc/auth" abi "github.com/filecoin-project/go-state-types/abi" big "github.com/filecoin-project/go-state-types/big" + miner "github.com/filecoin-project/go-state-types/builtin/v12/miner" paych "github.com/filecoin-project/go-state-types/builtin/v8/paych" - miner "github.com/filecoin-project/go-state-types/builtin/v9/miner" + miner0 "github.com/filecoin-project/go-state-types/builtin/v9/miner" verifreg "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" crypto "github.com/filecoin-project/go-state-types/crypto" dline "github.com/filecoin-project/go-state-types/dline" @@ -36,7 +37,7 @@ import ( api "github.com/filecoin-project/lotus/api" apitypes "github.com/filecoin-project/lotus/api/types" v0api "github.com/filecoin-project/lotus/api/v0api" - miner0 "github.com/filecoin-project/lotus/chain/actors/builtin/miner" + miner1 "github.com/filecoin-project/lotus/chain/actors/builtin/miner" types "github.com/filecoin-project/lotus/chain/types" alerting "github.com/filecoin-project/lotus/journal/alerting" marketevents "github.com/filecoin-project/lotus/markets/loggers" @@ -2669,7 +2670,7 @@ func (mr *MockFullNodeMockRecorder) StateMinerInfo(arg0, arg1, arg2 interface{}) } // StateMinerInitialPledgeCollateral mocks base method. -func (m *MockFullNode) StateMinerInitialPledgeCollateral(arg0 context.Context, arg1 address.Address, arg2 miner.SectorPreCommitInfo, arg3 types.TipSetKey) (big.Int, error) { +func (m *MockFullNode) StateMinerInitialPledgeCollateral(arg0 context.Context, arg1 address.Address, arg2 miner0.SectorPreCommitInfo, arg3 types.TipSetKey) (big.Int, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "StateMinerInitialPledgeCollateral", arg0, arg1, arg2, arg3) ret0, _ := ret[0].(big.Int) @@ -2714,7 +2715,7 @@ func (mr *MockFullNodeMockRecorder) StateMinerPower(arg0, arg1, arg2 interface{} } // StateMinerPreCommitDepositForPower mocks base method. -func (m *MockFullNode) StateMinerPreCommitDepositForPower(arg0 context.Context, arg1 address.Address, arg2 miner.SectorPreCommitInfo, arg3 types.TipSetKey) (big.Int, error) { +func (m *MockFullNode) StateMinerPreCommitDepositForPower(arg0 context.Context, arg1 address.Address, arg2 miner0.SectorPreCommitInfo, arg3 types.TipSetKey) (big.Int, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "StateMinerPreCommitDepositForPower", arg0, arg1, arg2, arg3) ret0, _ := ret[0].(big.Int) @@ -2894,10 +2895,10 @@ func (mr *MockFullNodeMockRecorder) StateSearchMsgLimited(arg0, arg1, arg2 inter } // StateSectorExpiration mocks base method. -func (m *MockFullNode) StateSectorExpiration(arg0 context.Context, arg1 address.Address, arg2 abi.SectorNumber, arg3 types.TipSetKey) (*miner0.SectorExpiration, error) { +func (m *MockFullNode) StateSectorExpiration(arg0 context.Context, arg1 address.Address, arg2 abi.SectorNumber, arg3 types.TipSetKey) (*miner1.SectorExpiration, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "StateSectorExpiration", arg0, arg1, arg2, arg3) - ret0, _ := ret[0].(*miner0.SectorExpiration) + ret0, _ := ret[0].(*miner1.SectorExpiration) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -2924,10 +2925,10 @@ func (mr *MockFullNodeMockRecorder) StateSectorGetInfo(arg0, arg1, arg2, arg3 in } // StateSectorPartition mocks base method. -func (m *MockFullNode) StateSectorPartition(arg0 context.Context, arg1 address.Address, arg2 abi.SectorNumber, arg3 types.TipSetKey) (*miner0.SectorLocation, error) { +func (m *MockFullNode) StateSectorPartition(arg0 context.Context, arg1 address.Address, arg2 abi.SectorNumber, arg3 types.TipSetKey) (*miner1.SectorLocation, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "StateSectorPartition", arg0, arg1, arg2, arg3) - ret0, _ := ret[0].(*miner0.SectorLocation) + ret0, _ := ret[0].(*miner1.SectorLocation) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -2939,10 +2940,10 @@ func (mr *MockFullNodeMockRecorder) StateSectorPartition(arg0, arg1, arg2, arg3 } // StateSectorPreCommitInfo mocks base method. -func (m *MockFullNode) StateSectorPreCommitInfo(arg0 context.Context, arg1 address.Address, arg2 abi.SectorNumber, arg3 types.TipSetKey) (miner.SectorPreCommitOnChainInfo, error) { +func (m *MockFullNode) StateSectorPreCommitInfo(arg0 context.Context, arg1 address.Address, arg2 abi.SectorNumber, arg3 types.TipSetKey) (miner0.SectorPreCommitOnChainInfo, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "StateSectorPreCommitInfo", arg0, arg1, arg2, arg3) - ret0, _ := ret[0].(miner.SectorPreCommitOnChainInfo) + ret0, _ := ret[0].(miner0.SectorPreCommitOnChainInfo) ret1, _ := ret[1].(error) return ret0, ret1 } diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 3c30e81a9427867a286d476b5eb52110c995bcae..0b0acf6dae7a7a7e8d64017a070186a9a62d8b6b 100644 GIT binary patch delta 7650 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 Q2LJ&7|3;wZ-81n90P!6V7XSbN delta 7657 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 X)T0^DG=CM_1PCG$ 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 JJQe}&zW_~9Bg+5) delta 6726 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 =yF@E9ai(tIvQ6y2uqW@+mSp z64_#9-f#x9Y1n@lx`6JbCH#D#vKa_2FDJh08lXI1{A)3Q|n1gZVH8 zN@|K_O)9XRrsQ+lq>9;a<(oLTKJz9kGs~hv5ny2`OK!3C4ZDEVlP5%kmd@3f{0-#-RCru4lh(B@L$qJuC(I}W5NP{-p zdJxBJUR3gFUazWs0^^v^SrVjC1e;TSVX^^~t*BKnc86JOw^JZ`#>s-a?NXG`~u1|ZfL6p6J7(oN`yOUiD@ zFNxboT~^&)eUsH5hVMRDQP#LYm&Mc?G;vPsFFrytuOn?8ib*=AtDvi_b)V)9@yts? zUI1`+4s==qE;Ulb=2kK<8ovH!gqRo=Z>TDJ^Gj;CQdbZz$jPUZmB8@nYwVl4GlgS! ze&`h7@xO7y1~`IUBw9b^R6BRG@fI^y8ONtpXecdDZrDYEMi+!Qcr8LAl`6~)gfG#N zH}j%6R7VUbt_@E}G7^{j@sB99LEfsq-jg|($vX42tjPm83$7M>|MF+uBKBNMGJw}q zME=NN!NUH?zz}z}y7QK63Rj5aUiOUNxl(+2I+=nG;HIU+f%@>r9d`MhS<#2RO+}yV zAv~K{JnHO;AyH_Gxvk#&#XPKq<0mz!;8OarbIEq{0sJE%a=tO4q}PUvKru1(zSAU^ zqd}BNAOq7#h3Cv5JLlN9T1{iFJDfl66E;dY%~(`hbYsH%^55l$C0nfC&}oyWEy6vf zOrL^0z!;L}7SwaMvL&WJ!NKRM;V1f27+2bl!xB?=cfRf{hEB~G3nIt(7d<^Xkls)a zUu34PrCo^g>ifJsbG-H*awwYM{h+&LPN6KW`R#sh73nV5AXvl*w|SI@l^e{7b41k8 z9fQ~3#y?#eITS)o_}5-G-~C507pFu}MzoSC@PwP);=c3(OM0;gF@Ml@BF^D^ZFdph zey)myPUoqUBYM2u2k{L(eqc60OS`?pvMN)9+2iX!1<=NZR?~?5Bw>F`d5-=A&U>Dk z)IFt>u7-%KieGonEBRVN^n)(!yweZvZa{lfb|MnVg-bm(?@q^w-0Tnu{!vOcg>BFT zu;7QKv0qMA7Ij?5pNJRqIm`?!YWKgK!vFm} zWH_tmFDnQ|^cXABI|QL?CXI1xR23HSDw!h968T?8WncLQK|X|a*;9%BGyBMt#rm{q zC@gY_2dhYb`)~c~anI5C8)2$$!`%H|6NqU`*|4hbkttPe-(K%mh{$dGv^D0qDPx78 zMVy_KsR)Qam(PE2DY&nSYdYz&{GFa)>HMsk#f7Ir!Kb zA+wbad%%U?BwS&^7g1%$QDxq@ZI2?e6r?9`*W$d}ZE%#53IiShBoOHNIoNp-;gXCD F`Y+k+C_DfF diff --git a/chain/actors/builtin/miner/actor.go.template b/chain/actors/builtin/miner/actor.go.template index b4ad3a4b5..ead254847 100644 --- a/chain/actors/builtin/miner/actor.go.template +++ b/chain/actors/builtin/miner/actor.go.template @@ -17,6 +17,7 @@ import ( "github.com/filecoin-project/lotus/chain/actors/adt" "github.com/filecoin-project/lotus/chain/types" + miner12 "github.com/filecoin-project/go-state-types/builtin/v12/miner" minertypes "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/manifest" @@ -152,7 +153,7 @@ type Partition interface { UnprovenSectors() (bitfield.BitField, error) } -type SectorOnChainInfo = minertypes.SectorOnChainInfo +type SectorOnChainInfo = miner12.SectorOnChainInfo func PreferredSealProofTypeFromWindowPoStType(nver network.Version, proof abi.RegisteredPoStProof, configWantSynthetic bool) (abi.RegisteredSealProof, error) { // We added support for the new proofs in network version 7, and removed support for the old diff --git a/chain/actors/builtin/miner/miner.go b/chain/actors/builtin/miner/miner.go index 1637cdade..151688d04 100644 --- a/chain/actors/builtin/miner/miner.go +++ b/chain/actors/builtin/miner/miner.go @@ -9,6 +9,7 @@ import ( "github.com/filecoin-project/go-state-types/abi" actorstypes "github.com/filecoin-project/go-state-types/actors" "github.com/filecoin-project/go-state-types/big" + miner12 "github.com/filecoin-project/go-state-types/builtin/v12/miner" minertypes "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/cbor" "github.com/filecoin-project/go-state-types/dline" @@ -212,7 +213,7 @@ type Partition interface { UnprovenSectors() (bitfield.BitField, error) } -type SectorOnChainInfo = minertypes.SectorOnChainInfo +type SectorOnChainInfo = miner12.SectorOnChainInfo func PreferredSealProofTypeFromWindowPoStType(nver network.Version, proof abi.RegisteredPoStProof, configWantSynthetic bool) (abi.RegisteredSealProof, error) { // We added support for the new proofs in network version 7, and removed support for the old diff --git a/documentation/en/api-v0-methods.md b/documentation/en/api-v0-methods.md index 9110c1c3b..2eb683f2c 100644 --- a/documentation/en/api-v0-methods.md +++ b/documentation/en/api-v0-methods.md @@ -5875,12 +5875,12 @@ Response: "InitialPledge": "0", "ExpectedDayReward": "0", "ExpectedStoragePledge": "0", - "ReplacedSectorAge": 10101, + "PowerBaseEpoch": 10101, "ReplacedDayReward": "0", "SectorKeyCID": { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, - "SimpleQAPower": true + "Flags": 0 } ] ``` @@ -6355,12 +6355,12 @@ Response: "InitialPledge": "0", "ExpectedDayReward": "0", "ExpectedStoragePledge": "0", - "ReplacedSectorAge": 10101, + "PowerBaseEpoch": 10101, "ReplacedDayReward": "0", "SectorKeyCID": { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, - "SimpleQAPower": true + "Flags": 0 } ] ``` @@ -6760,12 +6760,12 @@ Response: "InitialPledge": "0", "ExpectedDayReward": "0", "ExpectedStoragePledge": "0", - "ReplacedSectorAge": 10101, + "PowerBaseEpoch": 10101, "ReplacedDayReward": "0", "SectorKeyCID": { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, - "SimpleQAPower": true + "Flags": 0 } ``` diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index 53b5ddbe6..6c315a92d 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -7473,12 +7473,12 @@ Response: "InitialPledge": "0", "ExpectedDayReward": "0", "ExpectedStoragePledge": "0", - "ReplacedSectorAge": 10101, + "PowerBaseEpoch": 10101, "ReplacedDayReward": "0", "SectorKeyCID": { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, - "SimpleQAPower": true + "Flags": 0 } ] ``` @@ -7981,12 +7981,12 @@ Response: "InitialPledge": "0", "ExpectedDayReward": "0", "ExpectedStoragePledge": "0", - "ReplacedSectorAge": 10101, + "PowerBaseEpoch": 10101, "ReplacedDayReward": "0", "SectorKeyCID": { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, - "SimpleQAPower": true + "Flags": 0 } ] ``` @@ -8340,12 +8340,12 @@ Response: "InitialPledge": "0", "ExpectedDayReward": "0", "ExpectedStoragePledge": "0", - "ReplacedSectorAge": 10101, + "PowerBaseEpoch": 10101, "ReplacedDayReward": "0", "SectorKeyCID": { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, - "SimpleQAPower": true + "Flags": 0 } ``` diff --git a/storage/pipeline/mocks/api.go b/storage/pipeline/mocks/api.go index 5c67a1c42..126dbba7d 100644 --- a/storage/pipeline/mocks/api.go +++ b/storage/pipeline/mocks/api.go @@ -15,14 +15,15 @@ import ( bitfield "github.com/filecoin-project/go-bitfield" abi "github.com/filecoin-project/go-state-types/abi" big "github.com/filecoin-project/go-state-types/big" - miner "github.com/filecoin-project/go-state-types/builtin/v9/miner" + miner "github.com/filecoin-project/go-state-types/builtin/v12/miner" + miner0 "github.com/filecoin-project/go-state-types/builtin/v9/miner" verifreg "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" crypto "github.com/filecoin-project/go-state-types/crypto" dline "github.com/filecoin-project/go-state-types/dline" network "github.com/filecoin-project/go-state-types/network" api "github.com/filecoin-project/lotus/api" - miner0 "github.com/filecoin-project/lotus/chain/actors/builtin/miner" + miner1 "github.com/filecoin-project/lotus/chain/actors/builtin/miner" types "github.com/filecoin-project/lotus/chain/types" ) @@ -290,7 +291,7 @@ func (mr *MockSealingAPIMockRecorder) StateMinerInfo(arg0, arg1, arg2 interface{ } // StateMinerInitialPledgeCollateral mocks base method. -func (m *MockSealingAPI) StateMinerInitialPledgeCollateral(arg0 context.Context, arg1 address.Address, arg2 miner.SectorPreCommitInfo, arg3 types.TipSetKey) (big.Int, error) { +func (m *MockSealingAPI) StateMinerInitialPledgeCollateral(arg0 context.Context, arg1 address.Address, arg2 miner0.SectorPreCommitInfo, arg3 types.TipSetKey) (big.Int, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "StateMinerInitialPledgeCollateral", arg0, arg1, arg2, arg3) ret0, _ := ret[0].(big.Int) @@ -320,7 +321,7 @@ func (mr *MockSealingAPIMockRecorder) StateMinerPartitions(arg0, arg1, arg2, arg } // StateMinerPreCommitDepositForPower mocks base method. -func (m *MockSealingAPI) StateMinerPreCommitDepositForPower(arg0 context.Context, arg1 address.Address, arg2 miner.SectorPreCommitInfo, arg3 types.TipSetKey) (big.Int, error) { +func (m *MockSealingAPI) StateMinerPreCommitDepositForPower(arg0 context.Context, arg1 address.Address, arg2 miner0.SectorPreCommitInfo, arg3 types.TipSetKey) (big.Int, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "StateMinerPreCommitDepositForPower", arg0, arg1, arg2, arg3) ret0, _ := ret[0].(big.Int) @@ -410,10 +411,10 @@ func (mr *MockSealingAPIMockRecorder) StateSectorGetInfo(arg0, arg1, arg2, arg3 } // StateSectorPartition mocks base method. -func (m *MockSealingAPI) StateSectorPartition(arg0 context.Context, arg1 address.Address, arg2 abi.SectorNumber, arg3 types.TipSetKey) (*miner0.SectorLocation, error) { +func (m *MockSealingAPI) StateSectorPartition(arg0 context.Context, arg1 address.Address, arg2 abi.SectorNumber, arg3 types.TipSetKey) (*miner1.SectorLocation, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "StateSectorPartition", arg0, arg1, arg2, arg3) - ret0, _ := ret[0].(*miner0.SectorLocation) + ret0, _ := ret[0].(*miner1.SectorLocation) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -425,10 +426,10 @@ func (mr *MockSealingAPIMockRecorder) StateSectorPartition(arg0, arg1, arg2, arg } // StateSectorPreCommitInfo mocks base method. -func (m *MockSealingAPI) StateSectorPreCommitInfo(arg0 context.Context, arg1 address.Address, arg2 abi.SectorNumber, arg3 types.TipSetKey) (*miner.SectorPreCommitOnChainInfo, error) { +func (m *MockSealingAPI) StateSectorPreCommitInfo(arg0 context.Context, arg1 address.Address, arg2 abi.SectorNumber, arg3 types.TipSetKey) (*miner0.SectorPreCommitOnChainInfo, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "StateSectorPreCommitInfo", arg0, arg1, arg2, arg3) - ret0, _ := ret[0].(*miner.SectorPreCommitOnChainInfo) + ret0, _ := ret[0].(*miner0.SectorPreCommitOnChainInfo) ret1, _ := ret[1].(error) return ret0, ret1 } diff --git a/storage/wdpost/wdpost_run_test.go b/storage/wdpost/wdpost_run_test.go index a3847a6f6..a6b37fd54 100644 --- a/storage/wdpost/wdpost_run_test.go +++ b/storage/wdpost/wdpost_run_test.go @@ -16,6 +16,7 @@ import ( actorstypes "github.com/filecoin-project/go-state-types/actors" "github.com/filecoin-project/go-state-types/big" "github.com/filecoin-project/go-state-types/builtin" + miner12 "github.com/filecoin-project/go-state-types/builtin/v12/miner" minertypes "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/crypto" "github.com/filecoin-project/go-state-types/dline" @@ -73,13 +74,13 @@ func (m *mockStorageMinerAPI) StateMinerPartitions(ctx context.Context, a addres return m.partitions, nil } -func (m *mockStorageMinerAPI) StateMinerSectors(ctx context.Context, address address.Address, snos *bitfield.BitField, key types.TipSetKey) ([]*minertypes.SectorOnChainInfo, error) { - var sis []*minertypes.SectorOnChainInfo +func (m *mockStorageMinerAPI) StateMinerSectors(ctx context.Context, address address.Address, snos *bitfield.BitField, key types.TipSetKey) ([]*miner12.SectorOnChainInfo, error) { + var sis []*miner12.SectorOnChainInfo if snos == nil { panic("unsupported") } _ = snos.ForEach(func(i uint64) error { - sis = append(sis, &minertypes.SectorOnChainInfo{ + sis = append(sis, &miner12.SectorOnChainInfo{ SectorNumber: abi.SectorNumber(i), }) return nil From 61cfb51674e9a6b92cfa80c86746e568e241714c Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Wed, 17 Jan 2024 16:15:58 -0800 Subject: [PATCH 2/2] fix: fill in power-base & replaced-day-reward in state getter see #11586 --- chain/actors/builtin/miner/state.go.template | 6 +++++- chain/actors/builtin/miner/v12.go | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/chain/actors/builtin/miner/state.go.template b/chain/actors/builtin/miner/state.go.template index 3c7f05d9a..ac3326828 100644 --- a/chain/actors/builtin/miner/state.go.template +++ b/chain/actors/builtin/miner/state.go.template @@ -583,7 +583,11 @@ func fromV{{.v}}SectorOnChainInfo(v{{.v}} miner{{.v}}.SectorOnChainInfo) SectorO ExpectedStoragePledge: v{{.v}}.ExpectedStoragePledge, {{if (ge .v 7)}} SectorKeyCID: v{{.v}}.SectorKeyCID, - {{end}} + {{end}} + {{if (ge .v 12)}} + PowerBaseEpoch: v{{.v}}.PowerBaseEpoch, + ReplacedDayReward: v{{.v}}.ReplacedDayReward, + {{end}} } return info } diff --git a/chain/actors/builtin/miner/v12.go b/chain/actors/builtin/miner/v12.go index 90ecc97fd..f06d2c431 100644 --- a/chain/actors/builtin/miner/v12.go +++ b/chain/actors/builtin/miner/v12.go @@ -545,6 +545,9 @@ func fromV12SectorOnChainInfo(v12 miner12.SectorOnChainInfo) SectorOnChainInfo { ExpectedStoragePledge: v12.ExpectedStoragePledge, SectorKeyCID: v12.SectorKeyCID, + + PowerBaseEpoch: v12.PowerBaseEpoch, + ReplacedDayReward: v12.ReplacedDayReward, } return info }