From 06bec3a72fa1c3a60e94fcb7194633ad51213487 Mon Sep 17 00:00:00 2001 From: Rod Vagg Date: Wed, 25 Sep 2024 16:51:55 +1000 Subject: [PATCH] feat(miner): add DDO-friendly StateMinerInitialPledgeForSector (#12384) * feat(miner): add DDO-friendly StateMinerInitialPledgeForSector Fixes: https://github.com/filecoin-project/lotus/issues/12369 deprecate StateMinerInitialPledgeCollateral since it only accounts for deals in PCI, which aren't present in a DDO world * feat: simplify StateMinerInitialPledgeForSector arguments * feat(miner): use StateMinerInitialPledgeForSector for collateral calcs * docs: add StateMinerInitialPledgeForSector to CHANGELOG * fix: undo unnecessary docsgen changes * chore(state): use types.EmptyInt as err return instead of big.Zero() * chore(miner): add tests for pledge calculations * doc(miner): more docs about pledge calculation delta * chore(miner): tweaks to pledge api from feedback --- CHANGELOG.md | 1 + api/api_full.go | 29 +- api/docgen/docgen.go | 2 +- api/mocks/mock_full.go | 15 + api/proxy_gen.go | 71 +- build/openrpc/full.json | 607 ++++++++++-------- build/openrpc/gateway.json | 200 +++--- build/openrpc/miner.json | 176 ++--- build/openrpc/worker.json | 74 +-- chain/actors/builtin/miner/actor.go.template | 1 + chain/actors/builtin/miner/miner.go | 1 + .../actors/builtin/verifreg/actor.go.template | 26 +- chain/actors/builtin/verifreg/verifreg.go | 23 +- documentation/en/api-v1-unstable-methods.md | 38 +- itests/direct_data_onboard_verified_test.go | 64 +- itests/sector_miner_collateral_test.go | 351 ++++++++++ node/impl/full/state.go | 184 ++++-- storage/pipeline/commit_batch.go | 43 +- storage/pipeline/mocks/mocks.go | 27 +- storage/pipeline/pledge.go | 121 ---- storage/pipeline/sealing.go | 9 +- storage/pipeline/states_replica_update.go | 27 +- storage/pipeline/states_sealing.go | 15 +- 23 files changed, 1308 insertions(+), 797 deletions(-) delete mode 100644 storage/pipeline/pledge.go diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c0b58f019e..360411d6796 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ * Add `EthSendRawTransactionUntrusted` RPC method to be used for the gateway when accepting `EthSendRawTransaction` and `eth_sendRawTransaction`. Applies a tighter limit on the number of messages in the queue from a single sender and applies additional restrictions on nonce increments. ([filecoin-project/lotus#12431](https://github.com/filecoin-project/lotus/pull/12431)) * [Checkpoint TipSets finalized by F3](https://github.com/filecoin-project/lotus/pull/12460): Once a decision is made by F3, the TipSet is check-pointed in `ChainStore`. As part of this change, any missing TipSets are asynchronously synced as required by the `ChainStore` checkpointing mechanism. * Add an environment variable, `F3_INITIAL_POWERTABLE_CID` to allow specifying the initial power table used by F3 ([filecoin-project/lotus#12502](https://github.com/filecoin-project/lotus/pull/12502)). This may be used to help a lotus node re-sync the F3 chain when syncing from a snapshot after the F3 upgrade epoch. The precise CID to use here won't be known until the F3 is officially "live". +* Added `StateMinerInitialPledgeForSector` RPC method and deprecated existing `StateMinerInitialPledgeCollateral` method. Since ProveCommitSectors3 and ProveReplicaUpdates3, sector onboarding no longer includes an explicit notion of "deals", and precommit messages no longer contain deal information. This makes the existing `StateMinerInitialPledgeCollateral` unable to properly calculate pledge requirements with only the precommit. `StateMinerInitialPledgeForSector` is a new simplified calculator that simply takes duration, sector size, and verified size and estimates pledge based on current network conditions. Please note that the `StateMinerInitialPledgeCollateral` method will be removed entirely in the next non-patch release. ([filecoin-project/lotus#12384](https://github.com/filecoin-project/lotus/pull/12384) ## Improvements diff --git a/api/api_full.go b/api/api_full.go index e08e7b8d869..9c2b4d345c7 100644 --- a/api/api_full.go +++ b/api/api_full.go @@ -18,7 +18,6 @@ import ( "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/big" "github.com/filecoin-project/go-state-types/builtin/v8/paych" - verifregtypes "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/dline" abinetwork "github.com/filecoin-project/go-state-types/network" @@ -410,8 +409,20 @@ type FullNode interface { StateMinerRecoveries(context.Context, address.Address, types.TipSetKey) (bitfield.BitField, error) //perm:read // StateMinerPreCommitDepositForPower returns the precommit deposit for the specified miner's sector StateMinerPreCommitDepositForPower(context.Context, address.Address, miner.SectorPreCommitInfo, types.TipSetKey) (types.BigInt, error) //perm:read - // StateMinerInitialPledgeCollateral returns the initial pledge collateral for the specified miner's sector + // StateMinerInitialPledgeCollateral attempts to calculate the initial pledge collateral based on a SectorPreCommitInfo. + // This method uses the DealIDs field in SectorPreCommitInfo to determine the amount of verified + // deal space in the sector in order to perform a QAP calculation. Since network version 22 and + // the introduction of DDO, the DealIDs field can no longer be used to reliably determine verified + // deal space; therefore, this method is deprecated. Use StateMinerInitialPledgeForSector instead + // and pass in the verified deal space directly. + // + // Deprecated: Use StateMinerInitialPledgeForSector instead. StateMinerInitialPledgeCollateral(context.Context, address.Address, miner.SectorPreCommitInfo, types.TipSetKey) (types.BigInt, error) //perm:read + // StateMinerInitialPledgeForSector returns the initial pledge collateral for a given sector + // duration, size, and combined size of any verified pieces within the sector. This calculation + // depends on current network conditions (total power, total pledge and current rewards) at the + // given tipset. + StateMinerInitialPledgeForSector(ctx context.Context, sectorDuration abi.ChainEpoch, sectorSize abi.SectorSize, verifiedSize uint64, tsk types.TipSetKey) (types.BigInt, error) //perm:read // StateMinerAvailableBalance returns the portion of a miner's balance that can be withdrawn or spent StateMinerAvailableBalance(context.Context, address.Address, types.TipSetKey) (types.BigInt, error) //perm:read // StateMinerSectorAllocated checks if a sector number is marked as allocated. @@ -481,21 +492,21 @@ type FullNode interface { StateMarketStorageDeal(context.Context, abi.DealID, types.TipSetKey) (*MarketDeal, error) //perm:read // StateGetAllocationForPendingDeal returns the allocation for a given deal ID of a pending deal. Returns nil if // pending allocation is not found. - StateGetAllocationForPendingDeal(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*verifregtypes.Allocation, error) //perm:read + StateGetAllocationForPendingDeal(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*verifreg.Allocation, error) //perm:read // StateGetAllocationIdForPendingDeal is like StateGetAllocationForPendingDeal except it returns the allocation ID StateGetAllocationIdForPendingDeal(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (verifreg.AllocationId, error) //perm:read // StateGetAllocation returns the allocation for a given address and allocation ID. - StateGetAllocation(ctx context.Context, clientAddr address.Address, allocationId verifregtypes.AllocationId, tsk types.TipSetKey) (*verifregtypes.Allocation, error) //perm:read + StateGetAllocation(ctx context.Context, clientAddr address.Address, allocationId verifreg.AllocationId, tsk types.TipSetKey) (*verifreg.Allocation, error) //perm:read // StateGetAllocations returns the all the allocations for a given client. - StateGetAllocations(ctx context.Context, clientAddr address.Address, tsk types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) //perm:read + StateGetAllocations(ctx context.Context, clientAddr address.Address, tsk types.TipSetKey) (map[verifreg.AllocationId]verifreg.Allocation, error) //perm:read // StateGetAllAllocations returns the all the allocations available in verified registry actor. - StateGetAllAllocations(ctx context.Context, tsk types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) //perm:read + StateGetAllAllocations(ctx context.Context, tsk types.TipSetKey) (map[verifreg.AllocationId]verifreg.Allocation, error) //perm:read // StateGetClaim returns the claim for a given address and claim ID. - StateGetClaim(ctx context.Context, providerAddr address.Address, claimId verifregtypes.ClaimId, tsk types.TipSetKey) (*verifregtypes.Claim, error) //perm:read + StateGetClaim(ctx context.Context, providerAddr address.Address, claimId verifreg.ClaimId, tsk types.TipSetKey) (*verifreg.Claim, error) //perm:read // StateGetClaims returns the all the claims for a given provider. - StateGetClaims(ctx context.Context, providerAddr address.Address, tsk types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) //perm:read + StateGetClaims(ctx context.Context, providerAddr address.Address, tsk types.TipSetKey) (map[verifreg.ClaimId]verifreg.Claim, error) //perm:read // StateGetAllClaims returns the all the claims available in verified registry actor. - StateGetAllClaims(ctx context.Context, tsk types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) //perm:read + StateGetAllClaims(ctx context.Context, tsk types.TipSetKey) (map[verifreg.ClaimId]verifreg.Claim, error) //perm:read // StateComputeDataCID computes DataCID from a set of on-chain deals StateComputeDataCID(ctx context.Context, maddr address.Address, sectorType abi.RegisteredSealProof, deals []abi.DealID, tsk types.TipSetKey) (cid.Cid, error) //perm:read // StateLookupID retrieves the ID address of the given address diff --git a/api/docgen/docgen.go b/api/docgen/docgen.go index 5e443518f91..bc1b3b0f9ba 100644 --- a/api/docgen/docgen.go +++ b/api/docgen/docgen.go @@ -32,7 +32,6 @@ import ( "github.com/filecoin-project/go-f3/manifest" "github.com/filecoin-project/go-jsonrpc/auth" "github.com/filecoin-project/go-state-types/abi" - "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" @@ -41,6 +40,7 @@ import ( "github.com/filecoin-project/lotus/api/v0api" "github.com/filecoin-project/lotus/build/buildconstants" "github.com/filecoin-project/lotus/chain/actors/builtin/miner" + "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/chain/types/ethtypes" "github.com/filecoin-project/lotus/node/modules/dtypes" diff --git a/api/mocks/mock_full.go b/api/mocks/mock_full.go index a3236c96bd8..80e774b1964 100644 --- a/api/mocks/mock_full.go +++ b/api/mocks/mock_full.go @@ -3362,6 +3362,21 @@ func (mr *MockFullNodeMockRecorder) StateMinerInitialPledgeCollateral(arg0, arg1 return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateMinerInitialPledgeCollateral", reflect.TypeOf((*MockFullNode)(nil).StateMinerInitialPledgeCollateral), arg0, arg1, arg2, arg3) } +// StateMinerInitialPledgeForSector mocks base method. +func (m *MockFullNode) StateMinerInitialPledgeForSector(arg0 context.Context, arg1 abi.ChainEpoch, arg2 abi.SectorSize, arg3 uint64, arg4 types.TipSetKey) (big.Int, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "StateMinerInitialPledgeForSector", arg0, arg1, arg2, arg3, arg4) + ret0, _ := ret[0].(big.Int) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// StateMinerInitialPledgeForSector indicates an expected call of StateMinerInitialPledgeForSector. +func (mr *MockFullNodeMockRecorder) StateMinerInitialPledgeForSector(arg0, arg1, arg2, arg3, arg4 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateMinerInitialPledgeForSector", reflect.TypeOf((*MockFullNode)(nil).StateMinerInitialPledgeForSector), arg0, arg1, arg2, arg3, arg4) +} + // StateMinerPartitions mocks base method. func (m *MockFullNode) StateMinerPartitions(arg0 context.Context, arg1 address.Address, arg2 uint64, arg3 types.TipSetKey) ([]api.Partition, error) { m.ctrl.T.Helper() diff --git a/api/proxy_gen.go b/api/proxy_gen.go index a23aec56337..a6eb0b6a281 100644 --- a/api/proxy_gen.go +++ b/api/proxy_gen.go @@ -428,23 +428,23 @@ type FullNodeMethods struct { StateGetActor func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*types.Actor, error) `perm:"read"` - StateGetAllAllocations func(p0 context.Context, p1 types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) `perm:"read"` + StateGetAllAllocations func(p0 context.Context, p1 types.TipSetKey) (map[verifreg.AllocationId]verifreg.Allocation, error) `perm:"read"` - StateGetAllClaims func(p0 context.Context, p1 types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) `perm:"read"` + StateGetAllClaims func(p0 context.Context, p1 types.TipSetKey) (map[verifreg.ClaimId]verifreg.Claim, error) `perm:"read"` - StateGetAllocation func(p0 context.Context, p1 address.Address, p2 verifregtypes.AllocationId, p3 types.TipSetKey) (*verifregtypes.Allocation, error) `perm:"read"` + StateGetAllocation func(p0 context.Context, p1 address.Address, p2 verifreg.AllocationId, p3 types.TipSetKey) (*verifreg.Allocation, error) `perm:"read"` - StateGetAllocationForPendingDeal func(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) `perm:"read"` + StateGetAllocationForPendingDeal func(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifreg.Allocation, error) `perm:"read"` StateGetAllocationIdForPendingDeal func(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (verifreg.AllocationId, error) `perm:"read"` - StateGetAllocations func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) `perm:"read"` + StateGetAllocations func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifreg.AllocationId]verifreg.Allocation, error) `perm:"read"` StateGetBeaconEntry func(p0 context.Context, p1 abi.ChainEpoch) (*types.BeaconEntry, error) `perm:"read"` - StateGetClaim func(p0 context.Context, p1 address.Address, p2 verifregtypes.ClaimId, p3 types.TipSetKey) (*verifregtypes.Claim, error) `perm:"read"` + StateGetClaim func(p0 context.Context, p1 address.Address, p2 verifreg.ClaimId, p3 types.TipSetKey) (*verifreg.Claim, error) `perm:"read"` - StateGetClaims func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) `perm:"read"` + StateGetClaims func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifreg.ClaimId]verifreg.Claim, error) `perm:"read"` StateGetNetworkParams func(p0 context.Context) (*NetworkParams, error) `perm:"read"` @@ -488,6 +488,8 @@ type FullNodeMethods struct { StateMinerInitialPledgeCollateral func(p0 context.Context, p1 address.Address, p2 miner.SectorPreCommitInfo, p3 types.TipSetKey) (types.BigInt, error) `perm:"read"` + StateMinerInitialPledgeForSector func(p0 context.Context, p1 abi.ChainEpoch, p2 abi.SectorSize, p3 uint64, p4 types.TipSetKey) (types.BigInt, error) `perm:"read"` + StateMinerPartitions func(p0 context.Context, p1 address.Address, p2 uint64, p3 types.TipSetKey) ([]Partition, error) `perm:"read"` StateMinerPower func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*MinerPower, error) `perm:"read"` @@ -3054,47 +3056,47 @@ func (s *FullNodeStub) StateGetActor(p0 context.Context, p1 address.Address, p2 return nil, ErrNotSupported } -func (s *FullNodeStruct) StateGetAllAllocations(p0 context.Context, p1 types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) { +func (s *FullNodeStruct) StateGetAllAllocations(p0 context.Context, p1 types.TipSetKey) (map[verifreg.AllocationId]verifreg.Allocation, error) { if s.Internal.StateGetAllAllocations == nil { - return *new(map[verifregtypes.AllocationId]verifregtypes.Allocation), ErrNotSupported + return *new(map[verifreg.AllocationId]verifreg.Allocation), ErrNotSupported } return s.Internal.StateGetAllAllocations(p0, p1) } -func (s *FullNodeStub) StateGetAllAllocations(p0 context.Context, p1 types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) { - return *new(map[verifregtypes.AllocationId]verifregtypes.Allocation), ErrNotSupported +func (s *FullNodeStub) StateGetAllAllocations(p0 context.Context, p1 types.TipSetKey) (map[verifreg.AllocationId]verifreg.Allocation, error) { + return *new(map[verifreg.AllocationId]verifreg.Allocation), ErrNotSupported } -func (s *FullNodeStruct) StateGetAllClaims(p0 context.Context, p1 types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) { +func (s *FullNodeStruct) StateGetAllClaims(p0 context.Context, p1 types.TipSetKey) (map[verifreg.ClaimId]verifreg.Claim, error) { if s.Internal.StateGetAllClaims == nil { - return *new(map[verifregtypes.ClaimId]verifregtypes.Claim), ErrNotSupported + return *new(map[verifreg.ClaimId]verifreg.Claim), ErrNotSupported } return s.Internal.StateGetAllClaims(p0, p1) } -func (s *FullNodeStub) StateGetAllClaims(p0 context.Context, p1 types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) { - return *new(map[verifregtypes.ClaimId]verifregtypes.Claim), ErrNotSupported +func (s *FullNodeStub) StateGetAllClaims(p0 context.Context, p1 types.TipSetKey) (map[verifreg.ClaimId]verifreg.Claim, error) { + return *new(map[verifreg.ClaimId]verifreg.Claim), ErrNotSupported } -func (s *FullNodeStruct) StateGetAllocation(p0 context.Context, p1 address.Address, p2 verifregtypes.AllocationId, p3 types.TipSetKey) (*verifregtypes.Allocation, error) { +func (s *FullNodeStruct) StateGetAllocation(p0 context.Context, p1 address.Address, p2 verifreg.AllocationId, p3 types.TipSetKey) (*verifreg.Allocation, error) { if s.Internal.StateGetAllocation == nil { return nil, ErrNotSupported } return s.Internal.StateGetAllocation(p0, p1, p2, p3) } -func (s *FullNodeStub) StateGetAllocation(p0 context.Context, p1 address.Address, p2 verifregtypes.AllocationId, p3 types.TipSetKey) (*verifregtypes.Allocation, error) { +func (s *FullNodeStub) StateGetAllocation(p0 context.Context, p1 address.Address, p2 verifreg.AllocationId, p3 types.TipSetKey) (*verifreg.Allocation, error) { return nil, ErrNotSupported } -func (s *FullNodeStruct) StateGetAllocationForPendingDeal(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) { +func (s *FullNodeStruct) StateGetAllocationForPendingDeal(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifreg.Allocation, error) { if s.Internal.StateGetAllocationForPendingDeal == nil { return nil, ErrNotSupported } return s.Internal.StateGetAllocationForPendingDeal(p0, p1, p2) } -func (s *FullNodeStub) StateGetAllocationForPendingDeal(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) { +func (s *FullNodeStub) StateGetAllocationForPendingDeal(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifreg.Allocation, error) { return nil, ErrNotSupported } @@ -3109,15 +3111,15 @@ func (s *FullNodeStub) StateGetAllocationIdForPendingDeal(p0 context.Context, p1 return *new(verifreg.AllocationId), ErrNotSupported } -func (s *FullNodeStruct) StateGetAllocations(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) { +func (s *FullNodeStruct) StateGetAllocations(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifreg.AllocationId]verifreg.Allocation, error) { if s.Internal.StateGetAllocations == nil { - return *new(map[verifregtypes.AllocationId]verifregtypes.Allocation), ErrNotSupported + return *new(map[verifreg.AllocationId]verifreg.Allocation), ErrNotSupported } return s.Internal.StateGetAllocations(p0, p1, p2) } -func (s *FullNodeStub) StateGetAllocations(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) { - return *new(map[verifregtypes.AllocationId]verifregtypes.Allocation), ErrNotSupported +func (s *FullNodeStub) StateGetAllocations(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifreg.AllocationId]verifreg.Allocation, error) { + return *new(map[verifreg.AllocationId]verifreg.Allocation), ErrNotSupported } func (s *FullNodeStruct) StateGetBeaconEntry(p0 context.Context, p1 abi.ChainEpoch) (*types.BeaconEntry, error) { @@ -3131,26 +3133,26 @@ func (s *FullNodeStub) StateGetBeaconEntry(p0 context.Context, p1 abi.ChainEpoch return nil, ErrNotSupported } -func (s *FullNodeStruct) StateGetClaim(p0 context.Context, p1 address.Address, p2 verifregtypes.ClaimId, p3 types.TipSetKey) (*verifregtypes.Claim, error) { +func (s *FullNodeStruct) StateGetClaim(p0 context.Context, p1 address.Address, p2 verifreg.ClaimId, p3 types.TipSetKey) (*verifreg.Claim, error) { if s.Internal.StateGetClaim == nil { return nil, ErrNotSupported } return s.Internal.StateGetClaim(p0, p1, p2, p3) } -func (s *FullNodeStub) StateGetClaim(p0 context.Context, p1 address.Address, p2 verifregtypes.ClaimId, p3 types.TipSetKey) (*verifregtypes.Claim, error) { +func (s *FullNodeStub) StateGetClaim(p0 context.Context, p1 address.Address, p2 verifreg.ClaimId, p3 types.TipSetKey) (*verifreg.Claim, error) { return nil, ErrNotSupported } -func (s *FullNodeStruct) StateGetClaims(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) { +func (s *FullNodeStruct) StateGetClaims(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifreg.ClaimId]verifreg.Claim, error) { if s.Internal.StateGetClaims == nil { - return *new(map[verifregtypes.ClaimId]verifregtypes.Claim), ErrNotSupported + return *new(map[verifreg.ClaimId]verifreg.Claim), ErrNotSupported } return s.Internal.StateGetClaims(p0, p1, p2) } -func (s *FullNodeStub) StateGetClaims(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) { - return *new(map[verifregtypes.ClaimId]verifregtypes.Claim), ErrNotSupported +func (s *FullNodeStub) StateGetClaims(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifreg.ClaimId]verifreg.Claim, error) { + return *new(map[verifreg.ClaimId]verifreg.Claim), ErrNotSupported } func (s *FullNodeStruct) StateGetNetworkParams(p0 context.Context) (*NetworkParams, error) { @@ -3384,6 +3386,17 @@ func (s *FullNodeStub) StateMinerInitialPledgeCollateral(p0 context.Context, p1 return *new(types.BigInt), ErrNotSupported } +func (s *FullNodeStruct) StateMinerInitialPledgeForSector(p0 context.Context, p1 abi.ChainEpoch, p2 abi.SectorSize, p3 uint64, p4 types.TipSetKey) (types.BigInt, error) { + if s.Internal.StateMinerInitialPledgeForSector == nil { + return *new(types.BigInt), ErrNotSupported + } + return s.Internal.StateMinerInitialPledgeForSector(p0, p1, p2, p3, p4) +} + +func (s *FullNodeStub) StateMinerInitialPledgeForSector(p0 context.Context, p1 abi.ChainEpoch, p2 abi.SectorSize, p3 uint64, p4 types.TipSetKey) (types.BigInt, error) { + return *new(types.BigInt), ErrNotSupported +} + func (s *FullNodeStruct) StateMinerPartitions(p0 context.Context, p1 address.Address, p2 uint64, p3 types.TipSetKey) ([]Partition, error) { if s.Internal.StateMinerPartitions == nil { return *new([]Partition), ErrNotSupported diff --git a/build/openrpc/full.json b/build/openrpc/full.json index 207784bfa4b..237dab24093 100644 --- a/build/openrpc/full.json +++ b/build/openrpc/full.json @@ -37,7 +37,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1330" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1332" } }, { @@ -60,7 +60,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1341" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1343" } }, { @@ -103,7 +103,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1352" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1354" } }, { @@ -214,7 +214,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1374" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1376" } }, { @@ -454,7 +454,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1385" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1387" } }, { @@ -685,7 +685,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1396" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1398" } }, { @@ -784,7 +784,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1407" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1409" } }, { @@ -816,7 +816,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1418" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1420" } }, { @@ -922,7 +922,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1429" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1431" } }, { @@ -1019,7 +1019,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1440" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1442" } }, { @@ -1078,7 +1078,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1451" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1453" } }, { @@ -1171,7 +1171,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1462" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1464" } }, { @@ -1255,7 +1255,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1473" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1475" } }, { @@ -1355,7 +1355,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1484" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1486" } }, { @@ -1411,7 +1411,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1495" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1497" } }, { @@ -1484,7 +1484,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1506" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1508" } }, { @@ -1557,7 +1557,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1517" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1519" } }, { @@ -1604,7 +1604,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1528" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1530" } }, { @@ -1636,7 +1636,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1539" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1541" } }, { @@ -1691,7 +1691,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1550" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1552" } }, { @@ -1743,7 +1743,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1572" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1574" } }, { @@ -1780,7 +1780,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1583" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1585" } }, { @@ -1827,7 +1827,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1594" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1596" } }, { @@ -1874,7 +1874,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1605" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1607" } }, { @@ -1954,7 +1954,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1616" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1618" } }, { @@ -2006,7 +2006,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1627" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1629" } }, { @@ -2045,7 +2045,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1638" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1640" } }, { @@ -2092,7 +2092,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1649" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1651" } }, { @@ -2147,7 +2147,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1660" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1662" } }, { @@ -2176,7 +2176,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1671" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1673" } }, { @@ -2313,7 +2313,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1682" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1684" } }, { @@ -2342,7 +2342,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1693" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1695" } }, { @@ -2396,7 +2396,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1704" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1706" } }, { @@ -2487,7 +2487,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1715" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1717" } }, { @@ -2515,7 +2515,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1726" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1728" } }, { @@ -2605,7 +2605,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1737" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1739" } }, { @@ -2861,7 +2861,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1748" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1750" } }, { @@ -3106,7 +3106,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1759" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1761" } }, { @@ -3162,7 +3162,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1770" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1772" } }, { @@ -3209,7 +3209,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1781" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1783" } }, { @@ -3307,7 +3307,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1792" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1794" } }, { @@ -3373,7 +3373,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1803" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1805" } }, { @@ -3439,7 +3439,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1814" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1816" } }, { @@ -3548,7 +3548,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1825" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1827" } }, { @@ -3606,7 +3606,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1836" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1838" } }, { @@ -3728,7 +3728,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1847" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1849" } }, { @@ -3937,7 +3937,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1858" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1860" } }, { @@ -4137,7 +4137,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1869" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1871" } }, { @@ -4329,7 +4329,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1880" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1882" } }, { @@ -4538,7 +4538,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1891" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1893" } }, { @@ -4629,7 +4629,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1902" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1904" } }, { @@ -4687,7 +4687,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1913" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1915" } }, { @@ -4945,7 +4945,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1924" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1926" } }, { @@ -5220,7 +5220,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1935" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1937" } }, { @@ -5248,7 +5248,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1946" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1948" } }, { @@ -5286,7 +5286,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1957" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1959" } }, { @@ -5394,7 +5394,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1968" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1970" } }, { @@ -5432,7 +5432,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1979" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1981" } }, { @@ -5461,7 +5461,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1990" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1992" } }, { @@ -5524,7 +5524,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2001" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2003" } }, { @@ -5587,7 +5587,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2012" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2014" } }, { @@ -5650,7 +5650,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2023" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2025" } }, { @@ -5695,7 +5695,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2034" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2036" } }, { @@ -5817,7 +5817,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2045" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2047" } }, { @@ -5993,7 +5993,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2056" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2058" } }, { @@ -6148,7 +6148,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2067" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2069" } }, { @@ -6270,7 +6270,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2078" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2080" } }, { @@ -6324,7 +6324,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2089" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2091" } }, { @@ -6378,7 +6378,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2100" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2102" } }, { @@ -6563,7 +6563,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2111" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2113" } }, { @@ -6646,7 +6646,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2122" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2124" } }, { @@ -6729,7 +6729,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2133" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2135" } }, { @@ -6896,7 +6896,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2144" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2146" } }, { @@ -7097,7 +7097,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2155" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2157" } }, { @@ -7124,7 +7124,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2166" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2168" } }, { @@ -7200,7 +7200,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2177" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2179" } }, { @@ -7263,7 +7263,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2188" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2190" } }, { @@ -7406,7 +7406,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2199" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2201" } }, { @@ -7533,7 +7533,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2210" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2212" } }, { @@ -7635,7 +7635,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2221" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2223" } }, { @@ -7858,7 +7858,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2232" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2234" } }, { @@ -8041,7 +8041,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2243" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2245" } }, { @@ -8121,7 +8121,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2254" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2256" } }, { @@ -8166,7 +8166,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2265" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2267" } }, { @@ -8222,7 +8222,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2276" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2278" } }, { @@ -8302,7 +8302,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2287" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2289" } }, { @@ -8382,7 +8382,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2298" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2300" } }, { @@ -8867,7 +8867,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2309" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2311" } }, { @@ -9061,7 +9061,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2320" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2322" } }, { @@ -9216,7 +9216,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2331" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2333" } }, { @@ -9465,7 +9465,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2342" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2344" } }, { @@ -9620,7 +9620,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2353" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2355" } }, { @@ -9797,7 +9797,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2364" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2366" } }, { @@ -9895,7 +9895,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2375" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2377" } }, { @@ -10060,7 +10060,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2386" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2388" } }, { @@ -10099,7 +10099,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2397" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2399" } }, { @@ -10164,7 +10164,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2408" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2410" } }, { @@ -10210,7 +10210,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2419" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2421" } }, { @@ -10360,7 +10360,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2430" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2432" } }, { @@ -10497,7 +10497,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2441" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2443" } }, { @@ -10728,7 +10728,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2452" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2454" } }, { @@ -10865,7 +10865,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2463" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2465" } }, { @@ -11030,7 +11030,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2474" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2476" } }, { @@ -11107,7 +11107,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2485" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2487" } }, { @@ -11302,7 +11302,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2507" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2509" } }, { @@ -11481,7 +11481,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2518" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2520" } }, { @@ -11643,7 +11643,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2529" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2531" } }, { @@ -11791,7 +11791,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2540" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2542" } }, { @@ -12019,7 +12019,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2551" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2553" } }, { @@ -12167,7 +12167,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2562" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2564" } }, { @@ -12379,7 +12379,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2573" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2575" } }, { @@ -12585,7 +12585,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2584" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2586" } }, { @@ -12653,7 +12653,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2595" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2597" } }, { @@ -12770,7 +12770,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2606" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2608" } }, { @@ -12861,7 +12861,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2617" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2619" } }, { @@ -12947,7 +12947,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2628" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2630" } }, { @@ -13142,7 +13142,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2639" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2641" } }, { @@ -13304,7 +13304,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2650" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2652" } }, { @@ -13500,7 +13500,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2661" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2663" } }, { @@ -13680,7 +13680,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2672" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2674" } }, { @@ -13843,7 +13843,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2683" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2685" } }, { @@ -13870,7 +13870,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2694" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2696" } }, { @@ -13897,7 +13897,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2705" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2707" } }, { @@ -13996,7 +13996,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2716" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2718" } }, { @@ -14042,7 +14042,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2727" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2729" } }, { @@ -14142,7 +14142,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2738" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2740" } }, { @@ -14258,7 +14258,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2749" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2751" } }, { @@ -14306,7 +14306,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2760" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2762" } }, { @@ -14398,7 +14398,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2771" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2773" } }, { @@ -14513,7 +14513,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2782" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2784" } }, { @@ -14561,7 +14561,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2793" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2795" } }, { @@ -14598,7 +14598,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2804" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2806" } }, { @@ -14870,7 +14870,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2815" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2817" } }, { @@ -14918,7 +14918,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2826" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2828" } }, { @@ -14976,7 +14976,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2837" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2839" } }, { @@ -15181,7 +15181,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2848" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2850" } }, { @@ -15384,7 +15384,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2859" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2861" } }, { @@ -15553,7 +15553,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2870" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2872" } }, { @@ -15757,7 +15757,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2881" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2883" } }, { @@ -15924,7 +15924,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2892" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2894" } }, { @@ -16131,7 +16131,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2903" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2905" } }, { @@ -16199,7 +16199,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2914" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2916" } }, { @@ -16251,7 +16251,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2925" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2927" } }, { @@ -16300,7 +16300,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2936" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2938" } }, { @@ -16391,7 +16391,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2947" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2949" } }, { @@ -16897,7 +16897,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2958" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2960" } }, { @@ -17003,7 +17003,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2969" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2971" } }, { @@ -17055,7 +17055,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2980" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2982" } }, { @@ -17607,7 +17607,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2991" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2993" } }, { @@ -17721,7 +17721,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3002" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3004" } }, { @@ -17818,7 +17818,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3013" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3015" } }, { @@ -17918,7 +17918,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3024" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3026" } }, { @@ -18006,7 +18006,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3035" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3037" } }, { @@ -18106,12 +18106,12 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3046" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3048" } }, { "name": "Filecoin.StateGetAllAllocations", - "description": "```go\nfunc (s *FullNodeStruct) StateGetAllAllocations(p0 context.Context, p1 types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) {\n\tif s.Internal.StateGetAllAllocations == nil {\n\t\treturn *new(map[verifregtypes.AllocationId]verifregtypes.Allocation), ErrNotSupported\n\t}\n\treturn s.Internal.StateGetAllAllocations(p0, p1)\n}\n```", + "description": "```go\nfunc (s *FullNodeStruct) StateGetAllAllocations(p0 context.Context, p1 types.TipSetKey) (map[verifreg.AllocationId]verifreg.Allocation, error) {\n\tif s.Internal.StateGetAllAllocations == nil {\n\t\treturn *new(map[verifreg.AllocationId]verifreg.Allocation), ErrNotSupported\n\t}\n\treturn s.Internal.StateGetAllAllocations(p0, p1)\n}\n```", "summary": "StateGetAllAllocations returns the all the allocations available in verified registry actor.\n", "paramStructure": "by-position", "params": [ @@ -18140,8 +18140,8 @@ } ], "result": { - "name": "map[verifregtypes.AllocationId]verifregtypes.Allocation", - "description": "map[verifregtypes.AllocationId]verifregtypes.Allocation", + "name": "map[verifreg.AllocationId]verifreg.Allocation", + "description": "map[verifreg.AllocationId]verifreg.Allocation", "summary": "", "schema": { "examples": [ @@ -18193,12 +18193,12 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3057" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3059" } }, { "name": "Filecoin.StateGetAllClaims", - "description": "```go\nfunc (s *FullNodeStruct) StateGetAllClaims(p0 context.Context, p1 types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) {\n\tif s.Internal.StateGetAllClaims == nil {\n\t\treturn *new(map[verifregtypes.ClaimId]verifregtypes.Claim), ErrNotSupported\n\t}\n\treturn s.Internal.StateGetAllClaims(p0, p1)\n}\n```", + "description": "```go\nfunc (s *FullNodeStruct) StateGetAllClaims(p0 context.Context, p1 types.TipSetKey) (map[verifreg.ClaimId]verifreg.Claim, error) {\n\tif s.Internal.StateGetAllClaims == nil {\n\t\treturn *new(map[verifreg.ClaimId]verifreg.Claim), ErrNotSupported\n\t}\n\treturn s.Internal.StateGetAllClaims(p0, p1)\n}\n```", "summary": "StateGetAllClaims returns the all the claims available in verified registry actor.\n", "paramStructure": "by-position", "params": [ @@ -18227,8 +18227,8 @@ } ], "result": { - "name": "map[verifregtypes.ClaimId]verifregtypes.Claim", - "description": "map[verifregtypes.ClaimId]verifregtypes.Claim", + "name": "map[verifreg.ClaimId]verifreg.Claim", + "description": "map[verifreg.ClaimId]verifreg.Claim", "summary": "", "schema": { "examples": [ @@ -18284,12 +18284,12 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3068" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3070" } }, { "name": "Filecoin.StateGetAllocation", - "description": "```go\nfunc (s *FullNodeStruct) StateGetAllocation(p0 context.Context, p1 address.Address, p2 verifregtypes.AllocationId, p3 types.TipSetKey) (*verifregtypes.Allocation, error) {\n\tif s.Internal.StateGetAllocation == nil {\n\t\treturn nil, ErrNotSupported\n\t}\n\treturn s.Internal.StateGetAllocation(p0, p1, p2, p3)\n}\n```", + "description": "```go\nfunc (s *FullNodeStruct) StateGetAllocation(p0 context.Context, p1 address.Address, p2 verifreg.AllocationId, p3 types.TipSetKey) (*verifreg.Allocation, error) {\n\tif s.Internal.StateGetAllocation == nil {\n\t\treturn nil, ErrNotSupported\n\t}\n\treturn s.Internal.StateGetAllocation(p0, p1, p2, p3)\n}\n```", "summary": "StateGetAllocation returns the allocation for a given address and allocation ID.\n", "paramStructure": "by-position", "params": [ @@ -18311,7 +18311,7 @@ }, { "name": "p2", - "description": "verifregtypes.AllocationId", + "description": "verifreg.AllocationId", "summary": "", "schema": { "title": "number", @@ -18351,8 +18351,8 @@ } ], "result": { - "name": "*verifregtypes.Allocation", - "description": "*verifregtypes.Allocation", + "name": "*verifreg.Allocation", + "description": "*verifreg.Allocation", "summary": "", "schema": { "examples": [ @@ -18409,12 +18409,12 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3079" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3081" } }, { "name": "Filecoin.StateGetAllocationForPendingDeal", - "description": "```go\nfunc (s *FullNodeStruct) StateGetAllocationForPendingDeal(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) {\n\tif s.Internal.StateGetAllocationForPendingDeal == nil {\n\t\treturn nil, ErrNotSupported\n\t}\n\treturn s.Internal.StateGetAllocationForPendingDeal(p0, p1, p2)\n}\n```", + "description": "```go\nfunc (s *FullNodeStruct) StateGetAllocationForPendingDeal(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifreg.Allocation, error) {\n\tif s.Internal.StateGetAllocationForPendingDeal == nil {\n\t\treturn nil, ErrNotSupported\n\t}\n\treturn s.Internal.StateGetAllocationForPendingDeal(p0, p1, p2)\n}\n```", "summary": "StateGetAllocationForPendingDeal returns the allocation for a given deal ID of a pending deal. Returns nil if\npending allocation is not found.\n", "paramStructure": "by-position", "params": [ @@ -18460,8 +18460,8 @@ } ], "result": { - "name": "*verifregtypes.Allocation", - "description": "*verifregtypes.Allocation", + "name": "*verifreg.Allocation", + "description": "*verifreg.Allocation", "summary": "", "schema": { "examples": [ @@ -18518,7 +18518,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3090" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3092" } }, { @@ -18588,12 +18588,12 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3101" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3103" } }, { "name": "Filecoin.StateGetAllocations", - "description": "```go\nfunc (s *FullNodeStruct) StateGetAllocations(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) {\n\tif s.Internal.StateGetAllocations == nil {\n\t\treturn *new(map[verifregtypes.AllocationId]verifregtypes.Allocation), ErrNotSupported\n\t}\n\treturn s.Internal.StateGetAllocations(p0, p1, p2)\n}\n```", + "description": "```go\nfunc (s *FullNodeStruct) StateGetAllocations(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifreg.AllocationId]verifreg.Allocation, error) {\n\tif s.Internal.StateGetAllocations == nil {\n\t\treturn *new(map[verifreg.AllocationId]verifreg.Allocation), ErrNotSupported\n\t}\n\treturn s.Internal.StateGetAllocations(p0, p1, p2)\n}\n```", "summary": "StateGetAllocations returns the all the allocations for a given client.\n", "paramStructure": "by-position", "params": [ @@ -18638,8 +18638,8 @@ } ], "result": { - "name": "map[verifregtypes.AllocationId]verifregtypes.Allocation", - "description": "map[verifregtypes.AllocationId]verifregtypes.Allocation", + "name": "map[verifreg.AllocationId]verifreg.Allocation", + "description": "map[verifreg.AllocationId]verifreg.Allocation", "summary": "", "schema": { "examples": [ @@ -18691,7 +18691,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3112" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3114" } }, { @@ -18752,12 +18752,12 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3123" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3125" } }, { "name": "Filecoin.StateGetClaim", - "description": "```go\nfunc (s *FullNodeStruct) StateGetClaim(p0 context.Context, p1 address.Address, p2 verifregtypes.ClaimId, p3 types.TipSetKey) (*verifregtypes.Claim, error) {\n\tif s.Internal.StateGetClaim == nil {\n\t\treturn nil, ErrNotSupported\n\t}\n\treturn s.Internal.StateGetClaim(p0, p1, p2, p3)\n}\n```", + "description": "```go\nfunc (s *FullNodeStruct) StateGetClaim(p0 context.Context, p1 address.Address, p2 verifreg.ClaimId, p3 types.TipSetKey) (*verifreg.Claim, error) {\n\tif s.Internal.StateGetClaim == nil {\n\t\treturn nil, ErrNotSupported\n\t}\n\treturn s.Internal.StateGetClaim(p0, p1, p2, p3)\n}\n```", "summary": "StateGetClaim returns the claim for a given address and claim ID.\n", "paramStructure": "by-position", "params": [ @@ -18779,7 +18779,7 @@ }, { "name": "p2", - "description": "verifregtypes.ClaimId", + "description": "verifreg.ClaimId", "summary": "", "schema": { "title": "number", @@ -18819,8 +18819,8 @@ } ], "result": { - "name": "*verifregtypes.Claim", - "description": "*verifregtypes.Claim", + "name": "*verifreg.Claim", + "description": "*verifreg.Claim", "summary": "", "schema": { "examples": [ @@ -18882,12 +18882,12 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3134" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3136" } }, { "name": "Filecoin.StateGetClaims", - "description": "```go\nfunc (s *FullNodeStruct) StateGetClaims(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) {\n\tif s.Internal.StateGetClaims == nil {\n\t\treturn *new(map[verifregtypes.ClaimId]verifregtypes.Claim), ErrNotSupported\n\t}\n\treturn s.Internal.StateGetClaims(p0, p1, p2)\n}\n```", + "description": "```go\nfunc (s *FullNodeStruct) StateGetClaims(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifreg.ClaimId]verifreg.Claim, error) {\n\tif s.Internal.StateGetClaims == nil {\n\t\treturn *new(map[verifreg.ClaimId]verifreg.Claim), ErrNotSupported\n\t}\n\treturn s.Internal.StateGetClaims(p0, p1, p2)\n}\n```", "summary": "StateGetClaims returns the all the claims for a given provider.\n", "paramStructure": "by-position", "params": [ @@ -18932,8 +18932,8 @@ } ], "result": { - "name": "map[verifregtypes.ClaimId]verifregtypes.Claim", - "description": "map[verifregtypes.ClaimId]verifregtypes.Claim", + "name": "map[verifreg.ClaimId]verifreg.Claim", + "description": "map[verifreg.ClaimId]verifreg.Claim", "summary": "", "schema": { "examples": [ @@ -18989,7 +18989,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3145" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3147" } }, { @@ -19208,7 +19208,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3156" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3158" } }, { @@ -19285,7 +19285,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3167" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3169" } }, { @@ -19362,7 +19362,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3178" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3180" } }, { @@ -19471,7 +19471,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3189" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3191" } }, { @@ -19580,7 +19580,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3200" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3202" } }, { @@ -19641,7 +19641,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3211" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3213" } }, { @@ -19751,7 +19751,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3222" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3224" } }, { @@ -19812,7 +19812,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3233" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3235" } }, { @@ -19880,7 +19880,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3244" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3246" } }, { @@ -19948,7 +19948,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3255" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3257" } }, { @@ -20029,7 +20029,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3266" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3268" } }, { @@ -20183,7 +20183,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3277" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3279" } }, { @@ -20255,7 +20255,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3288" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3290" } }, { @@ -20419,7 +20419,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3299" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3301" } }, { @@ -20584,7 +20584,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3310" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3312" } }, { @@ -20654,7 +20654,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3321" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3323" } }, { @@ -20722,7 +20722,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3332" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3334" } }, { @@ -20815,7 +20815,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3343" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3345" } }, { @@ -20886,7 +20886,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3354" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3356" } }, { @@ -21087,13 +21087,13 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3365" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3367" } }, { "name": "Filecoin.StateMinerInitialPledgeCollateral", "description": "```go\nfunc (s *FullNodeStruct) StateMinerInitialPledgeCollateral(p0 context.Context, p1 address.Address, p2 miner.SectorPreCommitInfo, p3 types.TipSetKey) (types.BigInt, error) {\n\tif s.Internal.StateMinerInitialPledgeCollateral == nil {\n\t\treturn *new(types.BigInt), ErrNotSupported\n\t}\n\treturn s.Internal.StateMinerInitialPledgeCollateral(p0, p1, p2, p3)\n}\n```", - "summary": "StateMinerInitialPledgeCollateral returns the initial pledge collateral for the specified miner's sector\n", + "summary": "StateMinerInitialPledgeCollateral attempts to calculate the initial pledge collateral based on a SectorPreCommitInfo.\nThis method uses the DealIDs field in SectorPreCommitInfo to determine the amount of verified\ndeal space in the sector in order to perform a QAP calculation. Since network version 22 and\nthe introduction of DDO, the DealIDs field can no longer be used to reliably determine verified\ndeal space; therefore, this method is deprecated. Use StateMinerInitialPledgeForSector instead\nand pass in the verified deal space directly.\n\nDeprecated: Use StateMinerInitialPledgeForSector instead.\n", "paramStructure": "by-position", "params": [ { @@ -21219,7 +21219,110 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3376" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3378" + } + }, + { + "name": "Filecoin.StateMinerInitialPledgeForSector", + "description": "```go\nfunc (s *FullNodeStruct) StateMinerInitialPledgeForSector(p0 context.Context, p1 abi.ChainEpoch, p2 abi.SectorSize, p3 uint64, p4 types.TipSetKey) (types.BigInt, error) {\n\tif s.Internal.StateMinerInitialPledgeForSector == nil {\n\t\treturn *new(types.BigInt), ErrNotSupported\n\t}\n\treturn s.Internal.StateMinerInitialPledgeForSector(p0, p1, p2, p3, p4)\n}\n```", + "summary": "StateMinerInitialPledgeForSector returns the initial pledge collateral for a given sector\nduration, size, and combined size of any verified pieces within the sector. This calculation\ndepends on current network conditions (total power, total pledge and current rewards) at the\ngiven tipset.\n", + "paramStructure": "by-position", + "params": [ + { + "name": "p1", + "description": "abi.ChainEpoch", + "summary": "", + "schema": { + "title": "number", + "description": "Number is a number", + "examples": [ + 10101 + ], + "type": [ + "number" + ] + }, + "required": true, + "deprecated": false + }, + { + "name": "p2", + "description": "abi.SectorSize", + "summary": "", + "schema": { + "title": "number", + "description": "Number is a number", + "examples": [ + 34359738368 + ], + "type": [ + "number" + ] + }, + "required": true, + "deprecated": false + }, + { + "name": "p3", + "description": "uint64", + "summary": "", + "schema": { + "title": "number", + "description": "Number is a number", + "examples": [ + 42 + ], + "type": [ + "number" + ] + }, + "required": true, + "deprecated": false + }, + { + "name": "p4", + "description": "types.TipSetKey", + "summary": "", + "schema": { + "examples": [ + [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + { + "/": "bafy2bzacebp3shtrn43k7g3unredz7fxn4gj533d3o43tqn2p2ipxxhrvchve" + } + ] + ], + "additionalProperties": false, + "type": [ + "object" + ] + }, + "required": true, + "deprecated": false + } + ], + "result": { + "name": "types.BigInt", + "description": "types.BigInt", + "summary": "", + "schema": { + "examples": [ + "0" + ], + "additionalProperties": false, + "type": [ + "object" + ] + }, + "required": true, + "deprecated": false + }, + "deprecated": false, + "externalDocs": { + "description": "Github remote link", + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3389" } }, { @@ -21356,7 +21459,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3387" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3400" } }, { @@ -21467,7 +21570,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3398" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3411" } }, { @@ -21599,7 +21702,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3409" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3422" } }, { @@ -21730,7 +21833,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3420" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3433" } }, { @@ -21801,7 +21904,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3431" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3444" } }, { @@ -21885,7 +21988,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3442" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3455" } }, { @@ -21971,7 +22074,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3453" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3466" } }, { @@ -22154,7 +22257,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3464" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3477" } }, { @@ -22181,7 +22284,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3475" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3488" } }, { @@ -22234,7 +22337,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3486" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3499" } }, { @@ -22322,7 +22425,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3497" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3510" } }, { @@ -22773,7 +22876,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3508" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3521" } }, { @@ -22940,7 +23043,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3519" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3532" } }, { @@ -23038,7 +23141,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3530" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3543" } }, { @@ -23211,7 +23314,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3541" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3554" } }, { @@ -23309,7 +23412,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3552" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3565" } }, { @@ -23460,7 +23563,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3563" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3576" } }, { @@ -23545,7 +23648,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3574" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3587" } }, { @@ -23613,7 +23716,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3585" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3598" } }, { @@ -23665,7 +23768,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3596" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3609" } }, { @@ -23733,7 +23836,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3607" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3620" } }, { @@ -23894,7 +23997,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3618" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3631" } }, { @@ -23941,7 +24044,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3640" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3653" } }, { @@ -23988,7 +24091,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3651" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3664" } }, { @@ -24031,7 +24134,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3673" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3686" } }, { @@ -24127,7 +24230,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3684" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3697" } }, { @@ -24393,7 +24496,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3695" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3708" } }, { @@ -24416,7 +24519,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3706" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3719" } }, { @@ -24459,7 +24562,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3717" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3730" } }, { @@ -24510,7 +24613,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3728" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3741" } }, { @@ -24555,7 +24658,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3739" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3752" } }, { @@ -24583,7 +24686,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3750" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3763" } }, { @@ -24623,7 +24726,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3761" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3774" } }, { @@ -24682,7 +24785,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3772" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3785" } }, { @@ -24726,7 +24829,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3783" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3796" } }, { @@ -24785,7 +24888,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3794" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3807" } }, { @@ -24822,7 +24925,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3805" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3818" } }, { @@ -24866,7 +24969,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3816" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3829" } }, { @@ -24906,7 +25009,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3827" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3840" } }, { @@ -24981,7 +25084,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3838" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3851" } }, { @@ -25189,7 +25292,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3849" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3862" } }, { @@ -25233,7 +25336,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3860" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3873" } }, { @@ -25323,7 +25426,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3871" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3884" } }, { @@ -25350,7 +25453,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3882" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3895" } } ] diff --git a/build/openrpc/gateway.json b/build/openrpc/gateway.json index 8902b0f1f94..0a3d576e7b7 100644 --- a/build/openrpc/gateway.json +++ b/build/openrpc/gateway.json @@ -242,7 +242,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3893" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3906" } }, { @@ -473,7 +473,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3904" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3917" } }, { @@ -572,7 +572,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3915" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3928" } }, { @@ -604,7 +604,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3926" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3939" } }, { @@ -710,7 +710,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3937" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3950" } }, { @@ -803,7 +803,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3948" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3961" } }, { @@ -887,7 +887,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3959" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3972" } }, { @@ -987,7 +987,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3970" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3983" } }, { @@ -1043,7 +1043,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3981" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3994" } }, { @@ -1116,7 +1116,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3992" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4005" } }, { @@ -1189,7 +1189,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4003" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4016" } }, { @@ -1236,7 +1236,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4014" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4027" } }, { @@ -1268,7 +1268,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4025" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4038" } }, { @@ -1305,7 +1305,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4047" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4060" } }, { @@ -1352,7 +1352,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4058" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4071" } }, { @@ -1392,7 +1392,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4069" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4082" } }, { @@ -1439,7 +1439,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4080" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4093" } }, { @@ -1494,7 +1494,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4091" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4104" } }, { @@ -1523,7 +1523,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4102" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4115" } }, { @@ -1660,7 +1660,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4113" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4126" } }, { @@ -1689,7 +1689,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4124" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4137" } }, { @@ -1743,7 +1743,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4135" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4148" } }, { @@ -1834,7 +1834,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4146" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4159" } }, { @@ -1862,7 +1862,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4157" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4170" } }, { @@ -1952,7 +1952,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4168" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4181" } }, { @@ -2208,7 +2208,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4179" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4192" } }, { @@ -2453,7 +2453,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4190" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4203" } }, { @@ -2509,7 +2509,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4201" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4214" } }, { @@ -2556,7 +2556,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4212" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4225" } }, { @@ -2654,7 +2654,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4223" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4236" } }, { @@ -2720,7 +2720,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4234" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4247" } }, { @@ -2786,7 +2786,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4245" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4258" } }, { @@ -2895,7 +2895,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4256" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4269" } }, { @@ -2953,7 +2953,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4267" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4280" } }, { @@ -3075,7 +3075,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4278" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4291" } }, { @@ -3267,7 +3267,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4289" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4302" } }, { @@ -3476,7 +3476,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4300" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4313" } }, { @@ -3567,7 +3567,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4311" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4324" } }, { @@ -3625,7 +3625,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4322" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4335" } }, { @@ -3883,7 +3883,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4333" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4346" } }, { @@ -4158,7 +4158,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4344" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4357" } }, { @@ -4186,7 +4186,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4355" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4368" } }, { @@ -4224,7 +4224,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4366" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4379" } }, { @@ -4332,7 +4332,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4377" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4390" } }, { @@ -4370,7 +4370,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4388" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4401" } }, { @@ -4399,7 +4399,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4399" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4412" } }, { @@ -4462,7 +4462,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4410" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4423" } }, { @@ -4525,7 +4525,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4421" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4434" } }, { @@ -4570,7 +4570,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4432" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4445" } }, { @@ -4692,7 +4692,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4443" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4456" } }, { @@ -4868,7 +4868,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4454" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4467" } }, { @@ -5023,7 +5023,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4465" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4478" } }, { @@ -5145,7 +5145,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4476" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4489" } }, { @@ -5199,7 +5199,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4487" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4500" } }, { @@ -5253,7 +5253,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4498" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4511" } }, { @@ -5316,7 +5316,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4509" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4522" } }, { @@ -5418,7 +5418,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4520" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4533" } }, { @@ -5641,7 +5641,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4531" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4544" } }, { @@ -5824,7 +5824,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4542" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4555" } }, { @@ -6018,7 +6018,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4553" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4566" } }, { @@ -6064,7 +6064,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4564" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4577" } }, { @@ -6214,7 +6214,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4575" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4588" } }, { @@ -6351,7 +6351,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4586" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4599" } }, { @@ -6419,7 +6419,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4597" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4610" } }, { @@ -6536,7 +6536,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4608" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4621" } }, { @@ -6627,7 +6627,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4619" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4632" } }, { @@ -6713,7 +6713,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4630" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4643" } }, { @@ -6740,7 +6740,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4641" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4654" } }, { @@ -6767,7 +6767,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4652" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4665" } }, { @@ -6835,7 +6835,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4663" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4676" } }, { @@ -7341,7 +7341,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4674" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4687" } }, { @@ -7438,7 +7438,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4685" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4698" } }, { @@ -7538,7 +7538,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4696" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4709" } }, { @@ -7638,7 +7638,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4707" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4720" } }, { @@ -7763,7 +7763,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4718" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4731" } }, { @@ -7872,7 +7872,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4729" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4742" } }, { @@ -7975,7 +7975,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4740" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4753" } }, { @@ -8105,7 +8105,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4751" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4764" } }, { @@ -8212,7 +8212,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4762" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4775" } }, { @@ -8273,7 +8273,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4773" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4786" } }, { @@ -8341,7 +8341,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4784" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4797" } }, { @@ -8422,7 +8422,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4795" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4808" } }, { @@ -8586,7 +8586,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4806" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4819" } }, { @@ -8679,7 +8679,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4817" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4830" } }, { @@ -8880,7 +8880,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4828" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4841" } }, { @@ -8991,7 +8991,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4839" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4852" } }, { @@ -9122,7 +9122,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4850" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4863" } }, { @@ -9208,7 +9208,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4861" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4874" } }, { @@ -9235,7 +9235,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4872" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4885" } }, { @@ -9288,7 +9288,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4883" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4896" } }, { @@ -9376,7 +9376,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4894" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4907" } }, { @@ -9827,7 +9827,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4905" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4918" } }, { @@ -9994,7 +9994,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4916" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4929" } }, { @@ -10167,7 +10167,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4927" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4940" } }, { @@ -10235,7 +10235,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4938" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4951" } }, { @@ -10303,7 +10303,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4949" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4962" } }, { @@ -10464,7 +10464,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4960" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4973" } }, { @@ -10509,7 +10509,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4982" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4995" } }, { @@ -10554,7 +10554,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4993" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5006" } }, { @@ -10581,7 +10581,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5004" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5017" } } ] diff --git a/build/openrpc/miner.json b/build/openrpc/miner.json index fdff2c2e18a..392edac9684 100644 --- a/build/openrpc/miner.json +++ b/build/openrpc/miner.json @@ -30,7 +30,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5290" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5303" } }, { @@ -109,7 +109,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5301" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5314" } }, { @@ -155,7 +155,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5312" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5325" } }, { @@ -203,7 +203,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5323" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5336" } }, { @@ -251,7 +251,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5334" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5347" } }, { @@ -354,7 +354,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5345" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5358" } }, { @@ -428,7 +428,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5356" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5369" } }, { @@ -591,7 +591,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5367" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5380" } }, { @@ -742,7 +742,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5378" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5391" } }, { @@ -781,7 +781,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5389" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5402" } }, { @@ -913,7 +913,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5400" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5413" } }, { @@ -945,7 +945,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5411" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5424" } }, { @@ -986,7 +986,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5422" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5435" } }, { @@ -1054,7 +1054,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5433" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5446" } }, { @@ -1185,7 +1185,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5444" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5457" } }, { @@ -1316,7 +1316,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5455" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5468" } }, { @@ -1416,7 +1416,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5466" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5479" } }, { @@ -1516,7 +1516,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5477" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5490" } }, { @@ -1616,7 +1616,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5488" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5501" } }, { @@ -1716,7 +1716,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5499" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5512" } }, { @@ -1816,7 +1816,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5510" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5523" } }, { @@ -1916,7 +1916,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5521" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5534" } }, { @@ -2040,7 +2040,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5532" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5545" } }, { @@ -2164,7 +2164,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5543" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5556" } }, { @@ -2279,7 +2279,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5554" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5567" } }, { @@ -2379,7 +2379,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5565" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5578" } }, { @@ -2512,7 +2512,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5576" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5589" } }, { @@ -2636,7 +2636,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5587" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5600" } }, { @@ -2760,7 +2760,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5598" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5611" } }, { @@ -2884,7 +2884,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5609" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5622" } }, { @@ -3017,7 +3017,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5620" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5633" } }, { @@ -3117,7 +3117,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5631" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5644" } }, { @@ -3157,7 +3157,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5642" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5655" } }, { @@ -3229,7 +3229,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5653" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5666" } }, { @@ -3279,7 +3279,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5664" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5677" } }, { @@ -3323,7 +3323,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5675" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5688" } }, { @@ -3364,7 +3364,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5686" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5699" } }, { @@ -3608,7 +3608,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5697" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5710" } }, { @@ -3682,7 +3682,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5708" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5721" } }, { @@ -3732,7 +3732,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5719" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5732" } }, { @@ -3761,7 +3761,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5730" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5743" } }, { @@ -3790,7 +3790,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5741" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5754" } }, { @@ -3846,7 +3846,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5752" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5765" } }, { @@ -3869,7 +3869,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5763" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5776" } }, { @@ -3929,7 +3929,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5774" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5787" } }, { @@ -3968,7 +3968,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5785" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5798" } }, { @@ -4008,7 +4008,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5796" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5809" } }, { @@ -4081,7 +4081,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5807" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5820" } }, { @@ -4145,7 +4145,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5818" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5831" } }, { @@ -4208,7 +4208,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5829" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5842" } }, { @@ -4258,7 +4258,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5840" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5853" } }, { @@ -4817,7 +4817,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5851" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5864" } }, { @@ -4858,7 +4858,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5862" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5875" } }, { @@ -4899,7 +4899,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5873" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5886" } }, { @@ -4940,7 +4940,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5884" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5897" } }, { @@ -4981,7 +4981,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5895" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5908" } }, { @@ -5022,7 +5022,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5906" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5919" } }, { @@ -5053,7 +5053,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5917" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5930" } }, { @@ -5103,7 +5103,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5928" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5941" } }, { @@ -5144,7 +5144,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5939" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5952" } }, { @@ -5183,7 +5183,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5950" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5963" } }, { @@ -5247,7 +5247,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5961" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5974" } }, { @@ -5305,7 +5305,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5972" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5985" } }, { @@ -5752,7 +5752,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5983" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5996" } }, { @@ -5788,7 +5788,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5994" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6007" } }, { @@ -5931,7 +5931,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6005" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6018" } }, { @@ -5987,7 +5987,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6016" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6029" } }, { @@ -6026,7 +6026,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6027" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6040" } }, { @@ -6203,7 +6203,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6038" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6051" } }, { @@ -6255,7 +6255,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6049" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6062" } }, { @@ -6447,7 +6447,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6060" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6073" } }, { @@ -6547,7 +6547,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6071" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6084" } }, { @@ -6601,7 +6601,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6082" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6095" } }, { @@ -6640,7 +6640,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6093" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6106" } }, { @@ -6725,7 +6725,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6104" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6117" } }, { @@ -6919,7 +6919,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6115" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6128" } }, { @@ -7017,7 +7017,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6126" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6139" } }, { @@ -7149,7 +7149,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6137" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6150" } }, { @@ -7203,7 +7203,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6148" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6161" } }, { @@ -7237,7 +7237,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6159" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6172" } }, { @@ -7324,7 +7324,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6170" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6183" } }, { @@ -7378,7 +7378,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6181" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6194" } }, { @@ -7478,7 +7478,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6192" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6205" } }, { @@ -7555,7 +7555,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6203" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6216" } }, { @@ -7646,7 +7646,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6214" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6227" } }, { @@ -7685,7 +7685,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6225" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6238" } }, { @@ -7801,7 +7801,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6236" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6249" } }, { @@ -9901,7 +9901,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6247" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6260" } } ] diff --git a/build/openrpc/worker.json b/build/openrpc/worker.json index 7452fe52f20..8b57ea7c66d 100644 --- a/build/openrpc/worker.json +++ b/build/openrpc/worker.json @@ -161,7 +161,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6335" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6348" } }, { @@ -252,7 +252,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6346" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6359" } }, { @@ -420,7 +420,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6357" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6370" } }, { @@ -447,7 +447,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6368" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6381" } }, { @@ -597,7 +597,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6379" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6392" } }, { @@ -700,7 +700,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6390" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6403" } }, { @@ -803,7 +803,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6401" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6414" } }, { @@ -925,7 +925,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6412" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6425" } }, { @@ -1135,7 +1135,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6423" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6436" } }, { @@ -1306,7 +1306,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6434" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6447" } }, { @@ -3350,7 +3350,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6445" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6458" } }, { @@ -3470,7 +3470,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6456" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6469" } }, { @@ -3531,7 +3531,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6467" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6480" } }, { @@ -3569,7 +3569,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6478" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6491" } }, { @@ -3729,7 +3729,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6489" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6502" } }, { @@ -3913,7 +3913,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6500" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6513" } }, { @@ -4054,7 +4054,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6511" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6524" } }, { @@ -4107,7 +4107,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6522" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6535" } }, { @@ -4250,7 +4250,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6533" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6546" } }, { @@ -4474,7 +4474,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6544" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6557" } }, { @@ -4601,7 +4601,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6555" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6568" } }, { @@ -4768,7 +4768,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6566" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6579" } }, { @@ -4895,7 +4895,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6577" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6590" } }, { @@ -4933,7 +4933,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6588" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6601" } }, { @@ -4972,7 +4972,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6599" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6612" } }, { @@ -4995,7 +4995,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6610" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6623" } }, { @@ -5034,7 +5034,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6621" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6634" } }, { @@ -5057,7 +5057,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6632" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6645" } }, { @@ -5096,7 +5096,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6643" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6656" } }, { @@ -5130,7 +5130,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6654" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6667" } }, { @@ -5184,7 +5184,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6665" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6678" } }, { @@ -5223,7 +5223,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6676" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6689" } }, { @@ -5262,7 +5262,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6687" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6700" } }, { @@ -5297,7 +5297,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6698" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6711" } }, { @@ -5477,7 +5477,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6709" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6722" } }, { @@ -5506,7 +5506,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6720" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6733" } }, { @@ -5529,7 +5529,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6731" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6744" } } ] diff --git a/chain/actors/builtin/miner/actor.go.template b/chain/actors/builtin/miner/actor.go.template index c29590bba28..de590c93f32 100644 --- a/chain/actors/builtin/miner/actor.go.template +++ b/chain/actors/builtin/miner/actor.go.template @@ -257,6 +257,7 @@ type SectorActivationManifest = minertypes13.SectorActivationManifest type ProveReplicaUpdates3Params = minertypes13.ProveReplicaUpdates3Params type SectorUpdateManifest = minertypes13.SectorUpdateManifest type SectorOnChainInfoFlags = minertypes13.SectorOnChainInfoFlags +type VerifiedAllocationKey = minertypes13.VerifiedAllocationKey var QAPowerMax = minertypes.QAPowerMax diff --git a/chain/actors/builtin/miner/miner.go b/chain/actors/builtin/miner/miner.go index 44436eb5a78..6290a051a3a 100644 --- a/chain/actors/builtin/miner/miner.go +++ b/chain/actors/builtin/miner/miner.go @@ -335,6 +335,7 @@ type SectorActivationManifest = minertypes13.SectorActivationManifest type ProveReplicaUpdates3Params = minertypes13.ProveReplicaUpdates3Params type SectorUpdateManifest = minertypes13.SectorUpdateManifest type SectorOnChainInfoFlags = minertypes13.SectorOnChainInfoFlags +type VerifiedAllocationKey = minertypes13.VerifiedAllocationKey var QAPowerMax = minertypes.QAPowerMax diff --git a/chain/actors/builtin/verifreg/actor.go.template b/chain/actors/builtin/verifreg/actor.go.template index f4467d979bf..75c99f2aaef 100644 --- a/chain/actors/builtin/verifreg/actor.go.template +++ b/chain/actors/builtin/verifreg/actor.go.template @@ -20,7 +20,8 @@ import ( "github.com/filecoin-project/lotus/chain/actors/adt" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/types" - verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" + verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" + verifregtypes12 "github.com/filecoin-project/go-state-types/builtin/v12/verifreg" ) var ( @@ -96,9 +97,22 @@ func AllCodes() []cid.Cid { } } -type Allocation = verifregtypes.Allocation -type AllocationId = verifregtypes.AllocationId -type Claim = verifregtypes.Claim -type ClaimId = verifregtypes.ClaimId +type ( + Allocation = verifregtypes.Allocation + AllocationId = verifregtypes.AllocationId + Claim = verifregtypes.Claim + ClaimId = verifregtypes.ClaimId + AllocationRequest = verifregtypes12.AllocationRequest + AllocationRequests = verifregtypes12.AllocationRequests + RemoveExpiredAllocationsParams = verifregtypes12.RemoveExpiredAllocationsParams + AddVerifierParams = verifregtypes12.AddVerifierParams + AddVerifiedClientParams = verifregtypes12.AddVerifiedClientParams +) + +const ( + NoAllocationID = verifregtypes.NoAllocationID + MinimumVerifiedAllocationTerm = verifregtypes12.MinimumVerifiedAllocationTerm + MaximumVerifiedAllocationTerm = verifregtypes12.MaximumVerifiedAllocationTerm + MaximumVerifiedAllocationExpiration = verifregtypes12.MaximumVerifiedAllocationExpiration +) -const NoAllocationID = verifregtypes.NoAllocationID diff --git a/chain/actors/builtin/verifreg/verifreg.go b/chain/actors/builtin/verifreg/verifreg.go index 02e3f961dbf..02d8aa116fd 100644 --- a/chain/actors/builtin/verifreg/verifreg.go +++ b/chain/actors/builtin/verifreg/verifreg.go @@ -8,6 +8,7 @@ import ( "github.com/filecoin-project/go-state-types/abi" actorstypes "github.com/filecoin-project/go-state-types/actors" builtin15 "github.com/filecoin-project/go-state-types/builtin" + verifregtypes12 "github.com/filecoin-project/go-state-types/builtin/v12/verifreg" verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/cbor" "github.com/filecoin-project/go-state-types/manifest" @@ -187,9 +188,21 @@ func AllCodes() []cid.Cid { } } -type Allocation = verifregtypes.Allocation -type AllocationId = verifregtypes.AllocationId -type Claim = verifregtypes.Claim -type ClaimId = verifregtypes.ClaimId +type ( + Allocation = verifregtypes.Allocation + AllocationId = verifregtypes.AllocationId + Claim = verifregtypes.Claim + ClaimId = verifregtypes.ClaimId + AllocationRequest = verifregtypes12.AllocationRequest + AllocationRequests = verifregtypes12.AllocationRequests + RemoveExpiredAllocationsParams = verifregtypes12.RemoveExpiredAllocationsParams + AddVerifierParams = verifregtypes12.AddVerifierParams + AddVerifiedClientParams = verifregtypes12.AddVerifiedClientParams +) -const NoAllocationID = verifregtypes.NoAllocationID +const ( + NoAllocationID = verifregtypes.NoAllocationID + MinimumVerifiedAllocationTerm = verifregtypes12.MinimumVerifiedAllocationTerm + MaximumVerifiedAllocationTerm = verifregtypes12.MaximumVerifiedAllocationTerm + MaximumVerifiedAllocationExpiration = verifregtypes12.MaximumVerifiedAllocationExpiration +) diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index 73aa32d6274..389443ce857 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -241,6 +241,7 @@ * [StateMinerFaults](#StateMinerFaults) * [StateMinerInfo](#StateMinerInfo) * [StateMinerInitialPledgeCollateral](#StateMinerInitialPledgeCollateral) + * [StateMinerInitialPledgeForSector](#StateMinerInitialPledgeForSector) * [StateMinerPartitions](#StateMinerPartitions) * [StateMinerPower](#StateMinerPower) * [StateMinerPreCommitDepositForPower](#StateMinerPreCommitDepositForPower) @@ -7163,7 +7164,14 @@ Response: ``` ### StateMinerInitialPledgeCollateral -StateMinerInitialPledgeCollateral returns the initial pledge collateral for the specified miner's sector +StateMinerInitialPledgeCollateral attempts to calculate the initial pledge collateral based on a SectorPreCommitInfo. +This method uses the DealIDs field in SectorPreCommitInfo to determine the amount of verified +deal space in the sector in order to perform a QAP calculation. Since network version 22 and +the introduction of DDO, the DealIDs field can no longer be used to reliably determine verified +deal space; therefore, this method is deprecated. Use StateMinerInitialPledgeForSector instead +and pass in the verified deal space directly. + +Deprecated: Use StateMinerInitialPledgeForSector instead. Perms: read @@ -7200,6 +7208,34 @@ Inputs: Response: `"0"` +### StateMinerInitialPledgeForSector +StateMinerInitialPledgeForSector returns the initial pledge collateral for a given sector +duration, size, and combined size of any verified pieces within the sector. This calculation +depends on current network conditions (total power, total pledge and current rewards) at the +given tipset. + + +Perms: read + +Inputs: +```json +[ + 10101, + 34359738368, + 42, + [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + { + "/": "bafy2bzacebp3shtrn43k7g3unredz7fxn4gj533d3o43tqn2p2ipxxhrvchve" + } + ] +] +``` + +Response: `"0"` + ### StateMinerPartitions StateMinerPartitions returns all partitions in the specified deadline diff --git a/itests/direct_data_onboard_verified_test.go b/itests/direct_data_onboard_verified_test.go index 8d3d9fef78c..53e3b3bade0 100644 --- a/itests/direct_data_onboard_verified_test.go +++ b/itests/direct_data_onboard_verified_test.go @@ -24,10 +24,8 @@ import ( "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/big" "github.com/filecoin-project/go-state-types/builtin" - minertypes13 "github.com/filecoin-project/go-state-types/builtin/v13/miner" verifregtypes13 "github.com/filecoin-project/go-state-types/builtin/v13/verifreg" datacap2 "github.com/filecoin-project/go-state-types/builtin/v9/datacap" - verifregtypes9 "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" lapi "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/api/v1api" @@ -237,16 +235,16 @@ func TestOnboardRawPieceVerified_WithActorEvents(t *testing.T) { {Flags: 0x03, Codec: uint64(multicodec.Cbor), Key: "provider", Value: must.One(ipld.Encode(basicnode.NewInt(int64(minerId)), dagcbor.Encode))}, {Flags: 0x03, Codec: uint64(multicodec.Cbor), Key: "piece-cid", Value: must.One(ipld.Encode(basicnode.NewLink(cidlink.Link{Cid: bogusPieceCid}), dagcbor.Encode))}, {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "piece-size", Value: must.One(ipld.Encode(basicnode.NewInt(int64(pieceSize.Padded())), dagcbor.Encode))}, - {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "term-min", Value: must.One(ipld.Encode(basicnode.NewInt(verifregtypes13.MinimumVerifiedAllocationTerm), dagcbor.Encode))}, - {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "term-max", Value: must.One(ipld.Encode(basicnode.NewInt(verifregtypes13.MaximumVerifiedAllocationTerm), dagcbor.Encode))}, + {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "term-min", Value: must.One(ipld.Encode(basicnode.NewInt(verifreg.MinimumVerifiedAllocationTerm), dagcbor.Encode))}, + {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "term-max", Value: must.One(ipld.Encode(basicnode.NewInt(verifreg.MaximumVerifiedAllocationTerm), dagcbor.Encode))}, {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "expiration", Value: must.One(ipld.Encode(basicnode.NewInt(int64(bogusAllocationExpiry)), dagcbor.Encode))}, } require.Equal(t, expectedEntries, allocationEvents[0].Entries) // the second, real allocation - expectedEntries[1].Value = must.One(ipld.Encode(basicnode.NewInt(int64(allocationId)), dagcbor.Encode)) // "id" - expectedEntries[4].Value = must.One(ipld.Encode(basicnode.NewLink(cidlink.Link{Cid: dc.PieceCID}), dagcbor.Encode)) // "piece-cid" - expectedEntries[8].Value = must.One(ipld.Encode(basicnode.NewInt(verifregtypes13.MaximumVerifiedAllocationExpiration), dagcbor.Encode)) // "expiration" + expectedEntries[1].Value = must.One(ipld.Encode(basicnode.NewInt(int64(allocationId)), dagcbor.Encode)) // "id" + expectedEntries[4].Value = must.One(ipld.Encode(basicnode.NewLink(cidlink.Link{Cid: dc.PieceCID}), dagcbor.Encode)) // "piece-cid" + expectedEntries[8].Value = must.One(ipld.Encode(basicnode.NewInt(verifreg.MaximumVerifiedAllocationExpiration), dagcbor.Encode)) // "expiration" require.Equal(t, expectedEntries, allocationEvents[1].Entries) } @@ -262,8 +260,8 @@ func TestOnboardRawPieceVerified_WithActorEvents(t *testing.T) { {Flags: 0x03, Codec: uint64(multicodec.Cbor), Key: "provider", Value: must.One(ipld.Encode(basicnode.NewInt(int64(minerId)), dagcbor.Encode))}, {Flags: 0x03, Codec: uint64(multicodec.Cbor), Key: "piece-cid", Value: must.One(ipld.Encode(basicnode.NewLink(cidlink.Link{Cid: bogusPieceCid}), dagcbor.Encode))}, {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "piece-size", Value: must.One(ipld.Encode(basicnode.NewInt(int64(pieceSize.Padded())), dagcbor.Encode))}, - {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "term-min", Value: must.One(ipld.Encode(basicnode.NewInt(verifregtypes13.MinimumVerifiedAllocationTerm), dagcbor.Encode))}, - {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "term-max", Value: must.One(ipld.Encode(basicnode.NewInt(verifregtypes13.MaximumVerifiedAllocationTerm), dagcbor.Encode))}, + {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "term-min", Value: must.One(ipld.Encode(basicnode.NewInt(verifreg.MinimumVerifiedAllocationTerm), dagcbor.Encode))}, + {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "term-max", Value: must.One(ipld.Encode(basicnode.NewInt(verifreg.MaximumVerifiedAllocationTerm), dagcbor.Encode))}, {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "expiration", Value: must.One(ipld.Encode(basicnode.NewInt(int64(bogusAllocationExpiry)), dagcbor.Encode))}, } require.Equal(t, expectedEntries, allocationEvents[0].Entries) @@ -281,8 +279,8 @@ func TestOnboardRawPieceVerified_WithActorEvents(t *testing.T) { {Flags: 0x03, Codec: uint64(multicodec.Cbor), Key: "provider", Value: must.One(ipld.Encode(basicnode.NewInt(int64(minerId)), dagcbor.Encode))}, {Flags: 0x03, Codec: uint64(multicodec.Cbor), Key: "piece-cid", Value: must.One(ipld.Encode(basicnode.NewLink(cidlink.Link{Cid: dc.PieceCID}), dagcbor.Encode))}, {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "piece-size", Value: must.One(ipld.Encode(basicnode.NewInt(int64(pieceSize.Padded())), dagcbor.Encode))}, - {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "term-min", Value: must.One(ipld.Encode(basicnode.NewInt(verifregtypes13.MinimumVerifiedAllocationTerm), dagcbor.Encode))}, - {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "term-max", Value: must.One(ipld.Encode(basicnode.NewInt(verifregtypes13.MaximumVerifiedAllocationTerm), dagcbor.Encode))}, + {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "term-min", Value: must.One(ipld.Encode(basicnode.NewInt(verifreg.MinimumVerifiedAllocationTerm), dagcbor.Encode))}, + {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "term-max", Value: must.One(ipld.Encode(basicnode.NewInt(verifreg.MaximumVerifiedAllocationTerm), dagcbor.Encode))}, {Flags: 0x01, Codec: uint64(multicodec.Cbor), Key: "term-start", Value: must.One(ipld.Encode(basicnode.NewInt(int64(claimEvents[0].Height)), dagcbor.Encode))}, {Flags: 0x03, Codec: uint64(multicodec.Cbor), Key: "sector", Value: must.One(ipld.Encode(basicnode.NewInt(int64(si.SectorID)), dagcbor.Encode))}, } @@ -300,14 +298,14 @@ func TestOnboardRawPieceVerified_WithActorEvents(t *testing.T) { fmt.Printf("Claim\n", p, c, claim.Data, claim.Size, claim.TermMin, claim.TermMax, claim.TermStart, claim.Sector) } - require.Equal(t, []*verifregtypes9.Claim{ + require.Equal(t, []*verifreg.Claim{ { Provider: abi.ActorID(minerId), Client: clientId, Data: dc.PieceCID, Size: dc.Size, - TermMin: verifregtypes13.MinimumVerifiedAllocationTerm, - TermMax: verifregtypes13.MaximumVerifiedAllocationTerm, + TermMin: verifreg.MinimumVerifiedAllocationTerm, + TermMax: verifreg.MaximumVerifiedAllocationTerm, TermStart: si.Activation, Sector: so.Sector, }, @@ -429,35 +427,35 @@ func ddoVerifiedSetupAllocations( tmax abi.ChainEpoch, ) (clientID abi.ActorID, allocationID verifregtypes13.AllocationId) { if tmax == 0 { - tmax = verifregtypes13.MaximumVerifiedAllocationTerm + tmax = verifreg.MaximumVerifiedAllocationTerm } - var requests []verifregtypes13.AllocationRequest + var requests []verifreg.AllocationRequest if bogusAllocExpiration != 0 { // design this one to expire so we can observe allocation-removed - allocationRequestBogus := verifregtypes13.AllocationRequest{ + allocationRequestBogus := verifreg.AllocationRequest{ Provider: abi.ActorID(minerId), Data: bogusPieceCid, Size: dc.Size, - TermMin: verifregtypes13.MinimumVerifiedAllocationTerm, + TermMin: verifreg.MinimumVerifiedAllocationTerm, TermMax: tmax, Expiration: bogusAllocExpiration, } requests = append(requests, allocationRequestBogus) } - allocationRequest := verifregtypes13.AllocationRequest{ + allocationRequest := verifreg.AllocationRequest{ Provider: abi.ActorID(minerId), Data: dc.PieceCID, Size: dc.Size, - TermMin: verifregtypes13.MinimumVerifiedAllocationTerm, + TermMin: verifreg.MinimumVerifiedAllocationTerm, TermMax: tmax, - Expiration: verifregtypes13.MaximumVerifiedAllocationExpiration, + Expiration: verifreg.MaximumVerifiedAllocationExpiration, } requests = append(requests, allocationRequest) - allocationRequests := verifregtypes13.AllocationRequests{ + allocationRequests := verifreg.AllocationRequests{ Allocations: requests, } @@ -508,7 +506,7 @@ func ddoVerifiedSetupAllocations( break } } - require.NotEqual(t, verifregtypes13.AllocationId(0), allocationID) // found it in there + require.NotEqual(t, verifreg.AllocationId(0), allocationID) // found it in there return clientID, allocationID } @@ -528,7 +526,7 @@ func ddoVerifiedOnboardPiece(ctx context.Context, t *testing.T, miner *kit.TestM PieceActivationManifest: &minertypes.PieceActivationManifest{ CID: dc.PieceCID, Size: dc.Size, - VerifiedAllocationKey: &minertypes13.VerifiedAllocationKey{Client: clientId, ID: allocationId}, + VerifiedAllocationKey: &minertypes.VerifiedAllocationKey{Client: clientId, ID: allocationId}, Notify: nil, }, }) @@ -553,7 +551,7 @@ func ddoVerifiedOnboardPiece(ctx context.Context, t *testing.T, miner *kit.TestM func ddoVerifiedRemoveAllocations(ctx context.Context, t *testing.T, node v1api.FullNode, verifiedClientAddr address.Address, clientId abi.ActorID) { // trigger an allocation removal - removalParams, aerr := actors.SerializeParams(&verifregtypes13.RemoveExpiredAllocationsParams{Client: clientId}) + removalParams, aerr := actors.SerializeParams(&verifreg.RemoveExpiredAllocationsParams{Client: clientId}) require.NoError(t, aerr) msg := &types.Message{ @@ -572,9 +570,9 @@ func ddoVerifiedRemoveAllocations(ctx context.Context, t *testing.T, node v1api. require.EqualValues(t, 0, res.Receipt.ExitCode) } -func ddoVerifiedBuildClaimsFromMessages(ctx context.Context, t *testing.T, eventsFromMessages []*types.ActorEvent, node v1api.FullNode) []*verifregtypes9.Claim { +func ddoVerifiedBuildClaimsFromMessages(ctx context.Context, t *testing.T, eventsFromMessages []*types.ActorEvent, node v1api.FullNode) []*verifreg.Claim { claimKeyCbor := must.One(ipld.Encode(basicnode.NewString("claim"), dagcbor.Encode)) - claims := make([]*verifregtypes9.Claim, 0) + claims := make([]*verifreg.Claim, 0) for _, event := range eventsFromMessages { var isClaim bool var claimId int64 = -1 @@ -595,7 +593,7 @@ func ddoVerifiedBuildClaimsFromMessages(ctx context.Context, t *testing.T, event if isClaim && claimId != -1 && providerId != -1 { provider, err := address.NewIDAddress(uint64(providerId)) require.NoError(t, err) - claim, err := node.StateGetClaim(ctx, provider, verifregtypes9.ClaimId(claimId), types.EmptyTSK) + claim, err := node.StateGetClaim(ctx, provider, verifreg.ClaimId(claimId), types.EmptyTSK) require.NoError(t, err) claims = append(claims, claim) } @@ -667,7 +665,7 @@ func ddoVerifiedSetupVerifiedClient(ctx context.Context, t *testing.T, client *k } allowance := big.NewInt(100000000000) - params, aerr := actors.SerializeParams(&verifregtypes13.AddVerifierParams{Address: verifierAddr, Allowance: allowance}) + params, aerr := actors.SerializeParams(&verifreg.AddVerifierParams{Address: verifierAddr, Allowance: allowance}) require.NoError(t, aerr) msg := &types.Message{ @@ -693,7 +691,7 @@ func ddoVerifiedSetupVerifiedClient(ctx context.Context, t *testing.T, client *k for _, ad := range ret { initialDatacap := big.NewInt(10000) - params, aerr = actors.SerializeParams(&verifregtypes13.AddVerifiedClientParams{Address: ad, Allowance: initialDatacap}) + params, aerr = actors.SerializeParams(&verifreg.AddVerifiedClientParams{Address: ad, Allowance: initialDatacap}) require.NoError(t, aerr) msg = &types.Message{ @@ -858,11 +856,11 @@ func TestVerifiedDDOExtendClaim(t *testing.T) { require.EqualValues(t, newclaim.TermMax-oldclaim.TermMax, 3000) // Extend claim with non-verified client | should fail - _, err = cli.CreateExtendClaimMsg(ctx, client.FullNode, pcm, []string{}, unverifiedClient.Address, verifregtypes13.MaximumVerifiedAllocationTerm, false, true, 100) + _, err = cli.CreateExtendClaimMsg(ctx, client.FullNode, pcm, []string{}, unverifiedClient.Address, verifreg.MaximumVerifiedAllocationTerm, false, true, 100) require.ErrorContains(t, err, "does not have any datacap") // Extend all claim with verified client - msgs, err = cli.CreateExtendClaimMsg(ctx, client.FullNode, nil, []string{miner.ActorAddr.String()}, verifiedClientAddr2, verifregtypes13.MaximumVerifiedAllocationTerm, true, true, 100) + msgs, err = cli.CreateExtendClaimMsg(ctx, client.FullNode, nil, []string{miner.ActorAddr.String()}, verifiedClientAddr2, verifreg.MaximumVerifiedAllocationTerm, true, true, 100) require.NoError(t, err) require.Len(t, msgs, 1) smsg, err = client.MpoolPushMessage(ctx, msgs[0], nil) @@ -882,5 +880,5 @@ func TestVerifiedDDOExtendClaim(t *testing.T) { // TODO: check "claim-updated" event // New TermMax should be more than 5 years - require.Greater(t, int(newclaim.TermMax), verifregtypes13.MaximumVerifiedAllocationTerm) + require.Greater(t, int(newclaim.TermMax), verifreg.MaximumVerifiedAllocationTerm) } diff --git a/itests/sector_miner_collateral_test.go b/itests/sector_miner_collateral_test.go index 579b4e535a1..a4df47dbd1c 100644 --- a/itests/sector_miner_collateral_test.go +++ b/itests/sector_miner_collateral_test.go @@ -3,17 +3,38 @@ package itests import ( "context" + "crypto/rand" "strings" "testing" "time" + "github.com/ipfs/go-cid" "github.com/stretchr/testify/require" + "github.com/filecoin-project/go-address" + commcid "github.com/filecoin-project/go-fil-commcid" + "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/big" + "github.com/filecoin-project/go-state-types/builtin" + verifregtypes13 "github.com/filecoin-project/go-state-types/builtin/v13/verifreg" + datacap2 "github.com/filecoin-project/go-state-types/builtin/v9/datacap" + markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market" + "github.com/filecoin-project/go-state-types/exitcode" "github.com/filecoin-project/lotus/api" + lapi "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/build" + "github.com/filecoin-project/lotus/chain/actors" + "github.com/filecoin-project/lotus/chain/actors/builtin/datacap" + "github.com/filecoin-project/lotus/chain/actors/builtin/market" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" + "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" + "github.com/filecoin-project/lotus/chain/proofs" + "github.com/filecoin-project/lotus/chain/stmgr" + "github.com/filecoin-project/lotus/chain/types" + "github.com/filecoin-project/lotus/chain/wallet/key" "github.com/filecoin-project/lotus/itests/kit" + "github.com/filecoin-project/lotus/lib/must" "github.com/filecoin-project/lotus/node" "github.com/filecoin-project/lotus/node/config" "github.com/filecoin-project/lotus/node/modules" @@ -143,3 +164,333 @@ func TestMinerBalanceCollateral(t *testing.T) { runTest(t, false, 4, true) }) } + +// TestPledgeCalculations tests the pledge calculations for sectors with different piece combinations +// and verified deals. +// We first verify that the deprecated pledge calculation (StateMinerInitialPledgeCollateral) that +// uses PreCommit with Deal information matches the new one (StateMinerInitialPledgeForSector) that +// just uses sector size, duration and a simple verified size. Post-DDO, we no longer use or need +// the DealIDs field in SectorPreCommitInfo, so the deprecated calculation method can't rely on it +// to determine verified size. In this test, we intentionally build DealIDs so the deprecated method +// still works as expected. +// Then we compare the pledge calculations for sectors with different piece combinations and +// verified deals according to expected rules about verified pieces requiring 10x pledge. +// Most of the complication in this test is for setting up verified deals and allocations so we can +// run the deprecated pledge calculation on a valid precommit. +func TestPledgeCalculations(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + kit.QuietMiningLogs() + + blockTime := 5 * time.Millisecond + rootKey := must.One(key.GenerateKey(types.KTSecp256k1)) + verifierKey := must.One(key.GenerateKey(types.KTSecp256k1)) + verifiedClientKey := must.One(key.GenerateKey(types.KTBLS)) + oneMFil := must.One(types.ParseFIL("1000000fil")) + sectorSize := must.One(kit.TestSpt.SectorSize()) + + client, testMiner, ens := kit.EnsembleMinimal( + t, + kit.MockProofs(), + kit.RootVerifier(rootKey, abi.NewTokenAmount(oneMFil.Int64())), + kit.Account(verifierKey, abi.NewTokenAmount(oneMFil.Int64())), + kit.Account(verifiedClientKey, abi.NewTokenAmount(oneMFil.Int64())), + ) + ens.Start().InterconnectAll().BeginMining(blockTime) + + testMinerAddr := must.One(testMiner.ActorAddress(ctx)) + testMinerId := abi.ActorID(must.One(address.IDFromAddress(testMinerAddr))) + testMinerInfo := must.One(client.StateMinerInfo(ctx, testMinerAddr, types.EmptyTSK)) + var verifiedClientAddr address.Address + + // setup verified client + { + // import the root key. + rootAddr, err := client.WalletImport(ctx, &rootKey.KeyInfo) + require.NoError(t, err) + + // import the verifiers' keys. + verifierAddr, err := client.WalletImport(ctx, &verifierKey.KeyInfo) + require.NoError(t, err) + + // import the verified client's key. + verifiedClientAddr, err = client.WalletImport(ctx, &verifiedClientKey.KeyInfo) + require.NoError(t, err) + + // fund the verifier + allowance := big.NewInt(100000000000000) + params := must.One(actors.SerializeParams(&verifreg.AddVerifierParams{Address: verifierAddr, Allowance: allowance})) + sm, err := client.MpoolPushMessage(ctx, &types.Message{ + From: rootAddr, + To: verifreg.Address, + Method: verifreg.Methods.AddVerifier, + Params: params, + Value: big.Zero(), + }, nil) + require.NoError(t, err, "AddVerifier failed") + + res, err := client.StateWaitMsg(ctx, sm.Cid(), 1, lapi.LookbackNoLimit, true) + require.NoError(t, err) + require.EqualValues(t, 0, res.Receipt.ExitCode) + + verifierAllowance, err := client.StateVerifierStatus(ctx, verifierAddr, types.EmptyTSK) + require.NoError(t, err) + require.Equal(t, allowance, *verifierAllowance) + + // assign datacap to client + params = must.One(actors.SerializeParams(&verifreg.AddVerifiedClientParams{Address: verifiedClientAddr, Allowance: big.NewInt(10000000)})) + + sm, err = client.MpoolPushMessage(ctx, &types.Message{ + From: verifierAddr, + To: verifreg.Address, + Method: verifreg.Methods.AddVerifiedClient, + Params: params, + Value: big.Zero(), + }, nil) + require.NoError(t, err) + + res, err = client.StateWaitMsg(ctx, sm.Cid(), 1, lapi.LookbackNoLimit, true) + require.NoError(t, err) + require.EqualValues(t, 0, res.Receipt.ExitCode) + } + + // we're using mock proofs, so we just need a PieceCID to look like one + randPieceCid := func() cid.Cid { + b := make([]byte, 32) + _, _ = rand.Read(b) + return must.One(commcid.DataCommitmentV1ToCID(b)) + } + + // for verified deals, we need an actual on-chain allocation + setupAllocation := func(dc abi.PieceInfo) (clientID abi.ActorID, allocationID verifregtypes13.AllocationId) { + allocationRequest := verifreg.AllocationRequest{ + Provider: testMinerId, + Data: dc.PieceCID, + Size: dc.Size, + TermMin: verifreg.MinimumVerifiedAllocationTerm, + TermMax: verifreg.MaximumVerifiedAllocationTerm, + Expiration: verifreg.MaximumVerifiedAllocationExpiration, + } + + receiverParams := must.One(actors.SerializeParams(&verifreg.AllocationRequests{Allocations: []verifreg.AllocationRequest{allocationRequest}})) + + transferParams := must.One(actors.SerializeParams(&datacap2.TransferParams{ + To: builtin.VerifiedRegistryActorAddr, + Amount: big.Mul(big.NewInt(int64(dc.Size)), builtin.TokenPrecision), + OperatorData: receiverParams, + })) + + sm, err := client.MpoolPushMessage(ctx, &types.Message{ + To: builtin.DatacapActorAddr, + From: verifiedClientAddr, + Method: datacap.Methods.TransferExported, + Params: transferParams, + Value: big.Zero(), + }, nil) + require.NoError(t, err) + + res, err := client.StateWaitMsg(ctx, sm.Cid(), 1, lapi.LookbackNoLimit, true) + require.NoError(t, err) + require.EqualValues(t, 0, res.Receipt.ExitCode) + + // check that we have an allocation + allocations, err := client.StateGetAllocations(ctx, verifiedClientAddr, types.EmptyTSK) + require.NoError(t, err) + + for key, value := range allocations { + if value.Data == dc.PieceCID { + allocationID = verifregtypes13.AllocationId(key) + clientID = value.Client + break + } + } + require.NotEqual(t, verifreg.AllocationId(0), allocationID) // found it in there + return clientID, allocationID + } + + head := must.One(client.ChainHead(ctx)) + + makeMarketDealProposal := func(data cid.Cid, ps abi.PaddedPieceSize, verified bool) markettypes.ClientDealProposal { + dp := markettypes.DealProposal{ + PieceCID: data, + PieceSize: ps, + VerifiedDeal: verified, + Client: verifiedClientAddr, + Provider: testMinerAddr, + Label: must.One(markettypes.NewLabelFromString("wat")), + StartEpoch: head.Height() + 2880*2, + EndEpoch: head.Height() + 2880*400, + StoragePricePerEpoch: big.Zero(), + ProviderCollateral: big.Zero(), + ClientCollateral: big.Zero(), + } + + buf := must.One(actors.SerializeParams(&dp)) + sig, err := client.WalletSign(ctx, verifiedClientAddr, buf) + require.NoError(t, err) + + return markettypes.ClientDealProposal{Proposal: dp, ClientSignature: *sig} + } + + // make a deal of a given size that may or may not be be verified (and require an allocation) + makeDealOfSize := func(paddedSize int, verified bool) (abi.PieceInfo, abi.DealID) { + marketPieceSize := abi.PaddedPieceSize(paddedSize) + pieceData := make([]byte, marketPieceSize) + _, _ = rand.Read(pieceData) + pieceCid := randPieceCid() + pieceInfo := abi.PieceInfo{Size: marketPieceSize, PieceCID: pieceCid} + + if verified { + setupAllocation(pieceInfo) + } + + dealProposal := makeMarketDealProposal(pieceCid, marketPieceSize, verified) + + params := must.One(actors.SerializeParams(&markettypes.PublishStorageDealsParams{Deals: []markettypes.ClientDealProposal{dealProposal}})) + smsg, err := client.MpoolPushMessage(ctx, &types.Message{ + To: market.Address, + From: testMinerInfo.Worker, + Value: big.Zero(), + Method: market.Methods.PublishStorageDeals, + Params: params, + }, nil) + require.NoError(t, err) + + r, err := client.StateWaitMsg(ctx, smsg.Cid(), 1, stmgr.LookbackNoLimit, true) + require.NoError(t, err) + require.Equal(t, exitcode.Ok, r.Receipt.ExitCode) + + nv, err := client.StateNetworkVersion(ctx, types.EmptyTSK) + require.NoError(t, err) + res, err := market.DecodePublishStorageDealsReturn(r.Receipt.Return, nv) + require.NoError(t, err) + dealId := must.One(res.DealIDs())[0] + return pieceInfo, dealId + } + + // Setup some sectors with different piece combinations + + type pieceSpec struct { + size int + verified bool + } + nextSectorNumber := 22 + + sectors := make(map[string]miner.SectorPreCommitInfo) + pcsb2Params := &miner.PreCommitSectorBatchParams2{Sectors: []miner.SectorPreCommitInfo{}} + + makeSector := func(desc string, pieces []pieceSpec) { + pieceInfos := make([]abi.PieceInfo, len(pieces)) + dealIds := make([]abi.DealID, len(pieces)) + for i, p := range pieces { + pieceInfo, deal := makeDealOfSize(p.size, p.verified) + pieceInfos[i] = pieceInfo + dealIds[i] = deal + } + + sector := miner.SectorPreCommitInfo{ + Expiration: 2880 * 800, + SectorNumber: abi.SectorNumber(nextSectorNumber), + SealProof: kit.TestSpt, + SealedCID: cid.MustParse("bagboea4b5abcatlxechwbp7kjpjguna6r6q7ejrhe6mdp3lf34pmswn27pkkiekz"), + SealRandEpoch: head.Height() - 200, + } + nextSectorNumber++ + + if len(pieces) > 0 { + unsealedCid, err := proofs.GenerateUnsealedCID(kit.TestSpt, pieceInfos) + require.NoError(t, err) + sector.UnsealedCid = &unsealedCid + sector.DealIDs = dealIds + } + + sectors[desc] = sector + pcsb2Params.Sectors = append(pcsb2Params.Sectors, sector) + } + + const ( + CC = "CC" + FullPiece = "FullPiece" + HalfPiece = "HalfPiece" + TwoHalfPieces = "TwoHalfPieces" + FullPieceVerified = "FullPieceVerified" + HalfPieceVerified = "HalfPieceVerified" + TwoHalfPiecesVerified = "TwoHalfPiecesVerified" + HalfPieceUnverifiedHalfPieceVerified = "HalfPieceUnverifiedHalfPieceVerified" + ) + makeSector(CC, nil) + makeSector(FullPiece, []pieceSpec{{int(sectorSize), false}}) + makeSector(HalfPiece, []pieceSpec{{int(sectorSize) / 2, false}}) + makeSector(TwoHalfPieces, []pieceSpec{{int(sectorSize) / 2, false}, {int(sectorSize) / 2, false}}) + makeSector(FullPieceVerified, []pieceSpec{{int(sectorSize), true}}) + makeSector(HalfPieceVerified, []pieceSpec{{int(sectorSize) / 2, true}}) + makeSector(TwoHalfPiecesVerified, []pieceSpec{{int(sectorSize) / 2, true}, {int(sectorSize) / 2, true}}) + makeSector(HalfPieceUnverifiedHalfPieceVerified, []pieceSpec{{int(sectorSize) / 2, true}, {int(sectorSize) / 2, false}}) + + // Submit precommit for all sectors so they are on-chain for our on-chain pledge calculation to access + + params := must.One(actors.SerializeParams(pcsb2Params)) + m, err := client.MpoolPushMessage(ctx, &types.Message{ + To: testMinerAddr, + From: testMiner.OwnerKey.Address, + Value: types.FromFil(1), + Method: builtin.MethodsMiner.PreCommitSectorBatch2, + Params: params, + }, nil) + require.NoError(t, err) + + r, err := client.StateWaitMsg(ctx, m.Cid(), 2, api.LookbackNoLimit, true) + require.NoError(t, err) + require.Equal(t, exitcode.Ok, r.Receipt.ExitCode) + + tsk := r.TipSet // we're going to perform all pledge calculations at this tipset so we have consistent power, pledge, reward outputs + + verifyPledge := func(sectorNumber abi.SectorNumber, verifiedSize uint64) big.Int { + // Compare deprecated pledge calculation that uses PreCommit with Deal information with the + // new one that just uses sector size, duration and a simple verified size. They should be + // the same. + + precommit, err := client.FullNode.StateSectorPreCommitInfo(ctx, testMinerAddr, sectorNumber, tsk) + require.NoError(t, err) + + // nolint:staticcheck // SA1019 intentionally using a deprecated method + pledgeFromPrecommitCC, err := client.FullNode.StateMinerInitialPledgeCollateral(ctx, testMinerAddr, precommit.Info, tsk) + require.NoError(t, err) + t.Logf("Pledge from precommit: %s", pledgeFromPrecommitCC) + + pledge, err := client.FullNode.StateMinerInitialPledgeForSector(ctx, precommit.Info.Expiration-r.Height, sectorSize, verifiedSize, tsk) + require.NoError(t, err) + t.Logf("Pledge from duration, size and verified: %s", pledge) + + require.Equal(t, pledgeFromPrecommitCC, pledge) + + return pledge + } + + pledgeCC := verifyPledge(sectors[CC].SectorNumber, 0) + pledgeFullPiece := verifyPledge(sectors[FullPiece].SectorNumber, 0) + pledgeHalfPiece := verifyPledge(sectors[HalfPiece].SectorNumber, 0) + pledgeTwoHalfPieces := verifyPledge(sectors[TwoHalfPieces].SectorNumber, 0) + pledgeFullPieceVerified := verifyPledge(sectors[FullPieceVerified].SectorNumber, uint64(sectorSize)) + pledgeHalfPieceVerified := verifyPledge(sectors[HalfPieceVerified].SectorNumber, uint64(sectorSize/2)) + pledgeTwoHalfPiecesVerified := verifyPledge(sectors[TwoHalfPiecesVerified].SectorNumber, uint64(sectorSize)) + pledgeHalfPieceUnverifiedHalfPieceVerified := verifyPledge(sectors[HalfPieceUnverifiedHalfPieceVerified].SectorNumber, uint64(sectorSize/2)) + + // all sectors without verified pieces should have the same pledge + require.Equal(t, pledgeCC, pledgeFullPiece) + require.Equal(t, pledgeCC, pledgeHalfPiece) + require.Equal(t, pledgeCC, pledgeTwoHalfPieces) + + // fully verified sectors should have the same pledge + require.Equal(t, pledgeFullPieceVerified, pledgeTwoHalfPiecesVerified) + + // half verified sectors should have the same pledge + require.Equal(t, pledgeHalfPieceVerified, pledgeHalfPieceUnverifiedHalfPieceVerified) + + // full verified sectors should be 10x CC + require.Equal(t, big.Mul(big.NewInt(10), pledgeCC), pledgeFullPieceVerified) + + // half verified sectors should be 5x CC + 1/2 CC + require.Equal(t, big.Add(big.Mul(big.NewInt(5), pledgeCC), big.Div(pledgeCC, big.NewInt(2))), pledgeHalfPieceVerified) +} diff --git a/node/impl/full/state.go b/node/impl/full/state.go index 7f56c14912d..5660cbe3dd4 100644 --- a/node/impl/full/state.go +++ b/node/impl/full/state.go @@ -1436,72 +1436,93 @@ func (m *StateModule) MsigGetPending(ctx context.Context, addr address.Address, var initialPledgeNum = types.NewInt(110) var initialPledgeDen = types.NewInt(100) -func (a *StateAPI) StateMinerPreCommitDepositForPower(ctx context.Context, maddr address.Address, pci miner.SectorPreCommitInfo, tsk types.TipSetKey) (types.BigInt, error) { - ts, err := a.Chain.GetTipSetFromKey(ctx, tsk) - if err != nil { - return types.EmptyInt, xerrors.Errorf("loading tipset %s: %w", tsk, err) - } - - state, err := a.StateManager.ParentState(ts) - if err != nil { - return types.EmptyInt, xerrors.Errorf("loading state %s: %w", tsk, err) - } - +func (a *StateAPI) calculateSectorWeight(ctx context.Context, maddr address.Address, pci miner.SectorPreCommitInfo, height abi.ChainEpoch, state *state.StateTree) (abi.StoragePower, error) { ssize, err := pci.SealProof.SectorSize() if err != nil { - return types.EmptyInt, xerrors.Errorf("failed to get resolve size: %w", err) + return types.EmptyInt, xerrors.Errorf("failed to resolve sector size for seal proof: %w", err) } store := a.Chain.ActorStore(ctx) var sectorWeight abi.StoragePower - if a.StateManager.GetNetworkVersion(ctx, ts.Height()) <= network.Version16 { - if act, err := state.GetActor(market.Address); err != nil { - return types.EmptyInt, xerrors.Errorf("loading market actor %s: %w", maddr, err) - } else if s, err := market.Load(store, act); err != nil { - return types.EmptyInt, xerrors.Errorf("loading market actor state %s: %w", maddr, err) - } else if w, vw, err := s.VerifyDealsForActivation(maddr, pci.DealIDs, ts.Height(), pci.Expiration); err != nil { - return types.EmptyInt, xerrors.Errorf("verifying deals for activation: %w", err) - } else { - // NB: not exactly accurate, but should always lead us to *over* estimate, not under - duration := pci.Expiration - ts.Height() - sectorWeight = builtin.QAPowerForWeight(ssize, duration, w, vw) - } + if act, err := state.GetActor(market.Address); err != nil { + return types.EmptyInt, xerrors.Errorf("loading market actor: %w", err) + } else if s, err := market.Load(store, act); err != nil { + return types.EmptyInt, xerrors.Errorf("loading market actor state: %w", err) + } else if w, vw, err := s.VerifyDealsForActivation(maddr, pci.DealIDs, height, pci.Expiration); err != nil { + return types.EmptyInt, xerrors.Errorf("verifying deals for activation: %w", err) } else { - sectorWeight = miner.QAPowerMax(ssize) + // NB: not exactly accurate, but should always lead us to *over* estimate, not under + duration := pci.Expiration - height + sectorWeight = builtin.QAPowerForWeight(ssize, duration, w, vw) } - var powerSmoothed builtin.FilterEstimate + return sectorWeight, nil +} + +func (a *StateAPI) pledgeCalculationInputs(ctx context.Context, state *state.StateTree) (abi.TokenAmount, *builtin.FilterEstimate, error) { + store := a.Chain.ActorStore(ctx) + + var ( + powerSmoothed builtin.FilterEstimate + pledgeCollateral abi.TokenAmount + ) if act, err := state.GetActor(power.Address); err != nil { - return types.EmptyInt, xerrors.Errorf("loading power actor: %w", err) + return types.EmptyInt, nil, xerrors.Errorf("loading power actor: %w", err) } else if s, err := power.Load(store, act); err != nil { - return types.EmptyInt, xerrors.Errorf("loading power actor state: %w", err) + return types.EmptyInt, nil, xerrors.Errorf("loading power actor state: %w", err) } else if p, err := s.TotalPowerSmoothed(); err != nil { - return types.EmptyInt, xerrors.Errorf("failed to determine total power: %w", err) + return types.EmptyInt, nil, xerrors.Errorf("failed to determine total power: %w", err) + } else if c, err := s.TotalLocked(); err != nil { + return types.EmptyInt, nil, xerrors.Errorf("failed to determine pledge collateral: %w", err) } else { powerSmoothed = p + pledgeCollateral = c + } + + return pledgeCollateral, &powerSmoothed, nil +} + +func (a *StateAPI) StateMinerPreCommitDepositForPower(ctx context.Context, maddr address.Address, pci miner.SectorPreCommitInfo, tsk types.TipSetKey) (types.BigInt, error) { + ts, err := a.Chain.GetTipSetFromKey(ctx, tsk) + if err != nil { + return types.EmptyInt, xerrors.Errorf("loading tipset %s: %w", tsk, err) + } + + state, err := a.StateManager.ParentState(ts) + if err != nil { + return types.EmptyInt, xerrors.Errorf("loading state %s: %w", tsk, err) } rewardActor, err := state.GetActor(reward.Address) if err != nil { - return types.EmptyInt, xerrors.Errorf("loading miner actor: %w", err) + return types.EmptyInt, xerrors.Errorf("loading reward actor: %w", err) } - rewardState, err := reward.Load(store, rewardActor) + rewardState, err := reward.Load(a.Chain.ActorStore(ctx), rewardActor) if err != nil { return types.EmptyInt, xerrors.Errorf("loading reward actor state: %w", err) } - deposit, err := rewardState.PreCommitDepositForPower(powerSmoothed, sectorWeight) + sectorWeight, err := a.calculateSectorWeight(ctx, maddr, pci, ts.Height(), state) if err != nil { - return big.Zero(), xerrors.Errorf("calculating precommit deposit: %w", err) + return types.EmptyInt, err + } + + _, powerSmoothed, err := a.pledgeCalculationInputs(ctx, state) + if err != nil { + return types.EmptyInt, err + } + + deposit, err := rewardState.PreCommitDepositForPower(*powerSmoothed, sectorWeight) + if err != nil { + return types.EmptyInt, xerrors.Errorf("calculating precommit deposit: %w", err) } return types.BigDiv(types.BigMul(deposit, initialPledgeNum), initialPledgeDen), nil } func (a *StateAPI) StateMinerInitialPledgeCollateral(ctx context.Context, maddr address.Address, pci miner.SectorPreCommitInfo, tsk types.TipSetKey) (types.BigInt, error) { - // TODO: this repeats a lot of the previous function. Fix that. ts, err := a.Chain.GetTipSetFromKey(ctx, tsk) if err != nil { return types.EmptyInt, xerrors.Errorf("loading tipset %s: %w", tsk, err) @@ -1512,41 +1533,63 @@ func (a *StateAPI) StateMinerInitialPledgeCollateral(ctx context.Context, maddr return types.EmptyInt, xerrors.Errorf("loading state %s: %w", tsk, err) } - ssize, err := pci.SealProof.SectorSize() + rewardActor, err := state.GetActor(reward.Address) if err != nil { - return types.EmptyInt, xerrors.Errorf("failed to get resolve size: %w", err) + return types.EmptyInt, xerrors.Errorf("loading reward actor: %w", err) } - store := a.Chain.ActorStore(ctx) + rewardState, err := reward.Load(a.Chain.ActorStore(ctx), rewardActor) + if err != nil { + return types.EmptyInt, xerrors.Errorf("loading reward actor state: %w", err) + } - var sectorWeight abi.StoragePower - if act, err := state.GetActor(market.Address); err != nil { - return types.EmptyInt, xerrors.Errorf("loading market actor: %w", err) - } else if s, err := market.Load(store, act); err != nil { - return types.EmptyInt, xerrors.Errorf("loading market actor state: %w", err) - } else if w, vw, err := s.VerifyDealsForActivation(maddr, pci.DealIDs, ts.Height(), pci.Expiration); err != nil { - return types.EmptyInt, xerrors.Errorf("verifying deals for activation: %w", err) - } else { - // NB: not exactly accurate, but should always lead us to *over* estimate, not under - duration := pci.Expiration - ts.Height() - sectorWeight = builtin.QAPowerForWeight(ssize, duration, w, vw) + sectorWeight, err := a.calculateSectorWeight(ctx, maddr, pci, ts.Height(), state) + if err != nil { + return types.EmptyInt, err } - var ( - powerSmoothed builtin.FilterEstimate - pledgeCollateral abi.TokenAmount + pledgeCollateral, powerSmoothed, err := a.pledgeCalculationInputs(ctx, state) + if err != nil { + return types.EmptyInt, err + } + + circSupply, err := a.StateVMCirculatingSupplyInternal(ctx, ts.Key()) + if err != nil { + return types.EmptyInt, xerrors.Errorf("getting circulating supply: %w", err) + } + + initialPledge, err := rewardState.InitialPledgeForPower( + sectorWeight, + pledgeCollateral, + powerSmoothed, + circSupply.FilCirculating, ) - if act, err := state.GetActor(power.Address); err != nil { - return types.EmptyInt, xerrors.Errorf("loading power actor: %w", err) - } else if s, err := power.Load(store, act); err != nil { - return types.EmptyInt, xerrors.Errorf("loading power actor state: %w", err) - } else if p, err := s.TotalPowerSmoothed(); err != nil { - return types.EmptyInt, xerrors.Errorf("failed to determine total power: %w", err) - } else if c, err := s.TotalLocked(); err != nil { - return types.EmptyInt, xerrors.Errorf("failed to determine pledge collateral: %w", err) - } else { - powerSmoothed = p - pledgeCollateral = c + if err != nil { + return types.EmptyInt, xerrors.Errorf("calculating initial pledge: %w", err) + } + + return types.BigDiv(types.BigMul(initialPledge, initialPledgeNum), initialPledgeDen), nil +} + +func (a *StateAPI) StateMinerInitialPledgeForSector(ctx context.Context, sectorDuration abi.ChainEpoch, sectorSize abi.SectorSize, verifiedSize uint64, tsk types.TipSetKey) (types.BigInt, error) { + if sectorDuration <= 0 { + return types.EmptyInt, xerrors.Errorf("sector duration must greater than 0") + } + if sectorSize == 0 { + return types.EmptyInt, xerrors.Errorf("sector size must be non-zero") + } + if verifiedSize > uint64(sectorSize) { + return types.EmptyInt, xerrors.Errorf("verified size must be less than or equal to sector size") + } + + ts, err := a.Chain.GetTipSetFromKey(ctx, tsk) + if err != nil { + return types.EmptyInt, xerrors.Errorf("loading tipset %s: %w", tsk, err) + } + + state, err := a.StateManager.ParentState(ts) + if err != nil { + return types.EmptyInt, xerrors.Errorf("loading state %s: %w", tsk, err) } rewardActor, err := state.GetActor(reward.Address) @@ -1554,27 +1597,36 @@ func (a *StateAPI) StateMinerInitialPledgeCollateral(ctx context.Context, maddr return types.EmptyInt, xerrors.Errorf("loading reward actor: %w", err) } - rewardState, err := reward.Load(store, rewardActor) + rewardState, err := reward.Load(a.Chain.ActorStore(ctx), rewardActor) if err != nil { return types.EmptyInt, xerrors.Errorf("loading reward actor state: %w", err) } circSupply, err := a.StateVMCirculatingSupplyInternal(ctx, ts.Key()) if err != nil { - return big.Zero(), xerrors.Errorf("getting circulating supply: %w", err) + return types.EmptyInt, xerrors.Errorf("getting circulating supply: %w", err) } + pledgeCollateral, powerSmoothed, err := a.pledgeCalculationInputs(ctx, state) + if err != nil { + return types.EmptyInt, err + } + + verifiedWeight := big.Mul(big.NewIntUnsigned(verifiedSize), big.NewInt(int64(sectorDuration))) + sectorWeight := builtin.QAPowerForWeight(sectorSize, sectorDuration, big.Zero(), verifiedWeight) + initialPledge, err := rewardState.InitialPledgeForPower( sectorWeight, pledgeCollateral, - &powerSmoothed, + powerSmoothed, circSupply.FilCirculating, ) if err != nil { - return big.Zero(), xerrors.Errorf("calculating initial pledge: %w", err) + return types.EmptyInt, xerrors.Errorf("calculating initial pledge: %w", err) } return types.BigDiv(types.BigMul(initialPledge, initialPledgeNum), initialPledgeDen), nil + } func (a *StateAPI) StateMinerAvailableBalance(ctx context.Context, maddr address.Address, tsk types.TipSetKey) (types.BigInt, error) { diff --git a/storage/pipeline/commit_batch.go b/storage/pipeline/commit_batch.go index 6d752cfe7ad..cf3d2e8e57a 100644 --- a/storage/pipeline/commit_batch.go +++ b/storage/pipeline/commit_batch.go @@ -40,6 +40,7 @@ type CommitBatcherApi interface { ChainHead(ctx context.Context) (*types.TipSet, error) StateSectorPreCommitInfo(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tsk types.TipSetKey) (*miner.SectorPreCommitOnChainInfo, error) + StateMinerInitialPledgeForSector(ctx context.Context, sectorDuration abi.ChainEpoch, sectorSize abi.SectorSize, verifiedSize uint64, tsk types.TipSetKey) (types.BigInt, error) StateNetworkVersion(ctx context.Context, tsk types.TipSetKey) (network.Version, error) StateMinerAvailableBalance(context.Context, address.Address, types.TipSetKey) (big.Int, error) StateGetAllocation(ctx context.Context, clientAddr address.Address, allocationId verifregtypes.AllocationId, tsk types.TipSetKey) (*verifregtypes.Allocation, error) @@ -51,16 +52,10 @@ type CommitBatcherApi interface { StateLookupID(context.Context, address.Address, types.TipSetKey) (address.Address, error) } -type PledgeApi interface { - sectorWeight(ctx context.Context, sector SectorInfo, expiration abi.ChainEpoch) (abi.StoragePower, error) - pledgeForPower(ctx context.Context, addedPower abi.StoragePower) (abi.TokenAmount, error) -} - type AggregateInput struct { - Spt abi.RegisteredSealProof - Info proof.AggregateSealVerifyInfo - Proof []byte - Weight abi.StoragePower + Spt abi.RegisteredSealProof + Info proof.AggregateSealVerifyInfo + Proof []byte ActivationManifest miner.SectorActivationManifest DealIDPrecommit bool @@ -68,7 +63,6 @@ type AggregateInput struct { type CommitBatcher struct { api CommitBatcherApi - pledgeApi PledgeApi maddr address.Address mctx context.Context addrSel AddressSelector @@ -85,7 +79,7 @@ type CommitBatcher struct { lk sync.Mutex } -func NewCommitBatcher(mctx context.Context, maddr address.Address, api CommitBatcherApi, addrSel AddressSelector, feeCfg config.MinerFeeConfig, getConfig dtypes.GetSealingConfigFunc, prov storiface.Prover, pa PledgeApi) (*CommitBatcher, error) { +func NewCommitBatcher(mctx context.Context, maddr address.Address, api CommitBatcherApi, addrSel AddressSelector, feeCfg config.MinerFeeConfig, getConfig dtypes.GetSealingConfigFunc, prov storiface.Prover) (*CommitBatcher, error) { b := &CommitBatcher{ api: api, maddr: maddr, @@ -94,7 +88,6 @@ func NewCommitBatcher(mctx context.Context, maddr address.Address, api CommitBat feeCfg: feeCfg, getConfig: getConfig, prover: prov, - pledgeApi: pa, cutoffs: map[abi.SectorNumber]time.Time{}, todo: map[abi.SectorNumber]AggregateInput{}, @@ -325,8 +318,9 @@ func (b *CommitBatcher) processBatchV2(cfg sealiface.Config, sectors []abi.Secto } res.Sectors = append(res.Sectors, sector) + manifest := b.todo[sector].ActivationManifest - sc, err := b.getSectorCollateral(sector, ts.Key()) + sc, err := b.getSectorCollateral(sector, manifest.Pieces, ts) if err != nil { res.FailedSectors[sector] = err.Error() continue @@ -334,7 +328,6 @@ func (b *CommitBatcher) processBatchV2(cfg sealiface.Config, sectors []abi.Secto collateral = big.Add(collateral, sc) - manifest := b.todo[sector].ActivationManifest if len(manifest.Pieces) > 0 { precomitInfo, err := b.api.StateSectorPreCommitInfo(b.mctx, b.maddr, sector, ts.Key()) if err != nil { @@ -602,8 +595,8 @@ func (b *CommitBatcher) getCommitCutoff(si SectorInfo) (time.Time, error) { return time.Now().Add(time.Duration(cutoffEpoch-ts.Height()) * time.Duration(buildconstants.BlockDelaySecs) * time.Second), nil } -func (b *CommitBatcher) getSectorCollateral(sn abi.SectorNumber, tsk types.TipSetKey) (abi.TokenAmount, error) { - pci, err := b.api.StateSectorPreCommitInfo(b.mctx, b.maddr, sn, tsk) +func (b *CommitBatcher) getSectorCollateral(sn abi.SectorNumber, pieces []miner.PieceActivationManifest, ts *types.TipSet) (abi.TokenAmount, error) { + pci, err := b.api.StateSectorPreCommitInfo(b.mctx, b.maddr, sn, ts.Key()) if err != nil { return big.Zero(), xerrors.Errorf("getting precommit info: %w", err) } @@ -611,7 +604,21 @@ func (b *CommitBatcher) getSectorCollateral(sn abi.SectorNumber, tsk types.TipSe return big.Zero(), xerrors.Errorf("precommit info not found on chain") } - collateral, err := b.pledgeApi.pledgeForPower(b.mctx, b.todo[sn].Weight) // b.maddr, pci.Info, tsk + duration := pci.Info.Expiration - ts.Height() + + ssize, err := pci.Info.SealProof.SectorSize() + if err != nil { + return big.Zero(), xerrors.Errorf("failed to resolve sector size for seal proof: %w", err) + } + + var verifiedSize uint64 + for _, piece := range pieces { + if piece.VerifiedAllocationKey != nil { + verifiedSize += uint64(piece.Size) + } + } + + collateral, err := b.api.StateMinerInitialPledgeForSector(b.mctx, duration, ssize, verifiedSize, ts.Key()) if err != nil { return big.Zero(), xerrors.Errorf("getting initial pledge collateral: %w", err) } @@ -621,7 +628,7 @@ func (b *CommitBatcher) getSectorCollateral(sn abi.SectorNumber, tsk types.TipSe collateral = big.Zero() } - log.Infow("getSectorCollateral", "collateral", types.FIL(collateral), "sn", sn, "precommit", types.FIL(pci.PreCommitDeposit), "pledge", types.FIL(collateral), "weight", b.todo[sn].Weight) + log.Infow("getSectorCollateral", "collateral", types.FIL(collateral), "sn", sn, "precommit", types.FIL(pci.PreCommitDeposit), "pledge", types.FIL(collateral), "verifiedSize", verifiedSize) return collateral, nil } diff --git a/storage/pipeline/mocks/mocks.go b/storage/pipeline/mocks/mocks.go index b6be57f208e..e1d7f8d6e87 100644 --- a/storage/pipeline/mocks/mocks.go +++ b/storage/pipeline/mocks/mocks.go @@ -171,6 +171,21 @@ func (mr *MockCommitBatcherApiMockRecorder) StateMinerInfo(arg0, arg1, arg2 inte return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateMinerInfo", reflect.TypeOf((*MockCommitBatcherApi)(nil).StateMinerInfo), arg0, arg1, arg2) } +// StateMinerInitialPledgeForSector mocks base method. +func (m *MockCommitBatcherApi) StateMinerInitialPledgeForSector(arg0 context.Context, arg1 abi.ChainEpoch, arg2 abi.SectorSize, arg3 uint64, arg4 types.TipSetKey) (big.Int, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "StateMinerInitialPledgeForSector", arg0, arg1, arg2, arg3, arg4) + ret0, _ := ret[0].(big.Int) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// StateMinerInitialPledgeForSector indicates an expected call of StateMinerInitialPledgeForSector. +func (mr *MockCommitBatcherApiMockRecorder) StateMinerInitialPledgeForSector(arg0, arg1, arg2, arg3, arg4 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateMinerInitialPledgeForSector", reflect.TypeOf((*MockCommitBatcherApi)(nil).StateMinerInitialPledgeForSector), arg0, arg1, arg2, arg3, arg4) +} + // StateNetworkVersion mocks base method. func (m *MockCommitBatcherApi) StateNetworkVersion(arg0 context.Context, arg1 types.TipSetKey) (network.Version, error) { m.ctrl.T.Helper() @@ -756,19 +771,19 @@ func (mr *MockSealingAPIMockRecorder) StateMinerInfo(arg0, arg1, arg2 interface{ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateMinerInfo", reflect.TypeOf((*MockSealingAPI)(nil).StateMinerInfo), arg0, arg1, arg2) } -// StateMinerInitialPledgeCollateral mocks base method. -func (m *MockSealingAPI) StateMinerInitialPledgeCollateral(arg0 context.Context, arg1 address.Address, arg2 miner0.SectorPreCommitInfo, arg3 types.TipSetKey) (big.Int, error) { +// StateMinerInitialPledgeForSector mocks base method. +func (m *MockSealingAPI) StateMinerInitialPledgeForSector(arg0 context.Context, arg1 abi.ChainEpoch, arg2 abi.SectorSize, arg3 uint64, arg4 types.TipSetKey) (big.Int, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "StateMinerInitialPledgeCollateral", arg0, arg1, arg2, arg3) + ret := m.ctrl.Call(m, "StateMinerInitialPledgeForSector", arg0, arg1, arg2, arg3, arg4) ret0, _ := ret[0].(big.Int) ret1, _ := ret[1].(error) return ret0, ret1 } -// StateMinerInitialPledgeCollateral indicates an expected call of StateMinerInitialPledgeCollateral. -func (mr *MockSealingAPIMockRecorder) StateMinerInitialPledgeCollateral(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { +// StateMinerInitialPledgeForSector indicates an expected call of StateMinerInitialPledgeForSector. +func (mr *MockSealingAPIMockRecorder) StateMinerInitialPledgeForSector(arg0, arg1, arg2, arg3, arg4 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateMinerInitialPledgeCollateral", reflect.TypeOf((*MockSealingAPI)(nil).StateMinerInitialPledgeCollateral), arg0, arg1, arg2, arg3) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateMinerInitialPledgeForSector", reflect.TypeOf((*MockSealingAPI)(nil).StateMinerInitialPledgeForSector), arg0, arg1, arg2, arg3, arg4) } // StateMinerPartitions mocks base method. diff --git a/storage/pipeline/pledge.go b/storage/pipeline/pledge.go deleted file mode 100644 index 890b4e7248e..00000000000 --- a/storage/pipeline/pledge.go +++ /dev/null @@ -1,121 +0,0 @@ -package sealing - -import ( - "context" - - cbor "github.com/ipfs/go-ipld-cbor" - "golang.org/x/xerrors" - - "github.com/filecoin-project/go-state-types/abi" - "github.com/filecoin-project/go-state-types/big" - - bstore "github.com/filecoin-project/lotus/blockstore" - "github.com/filecoin-project/lotus/chain/actors/adt" - "github.com/filecoin-project/lotus/chain/actors/builtin" - "github.com/filecoin-project/lotus/chain/actors/builtin/power" - "github.com/filecoin-project/lotus/chain/actors/builtin/reward" - "github.com/filecoin-project/lotus/chain/types" -) - -var initialPledgeNum = types.NewInt(110) -var initialPledgeDen = types.NewInt(100) - -func (m *Sealing) pledgeForPower(ctx context.Context, addedPower abi.StoragePower) (abi.TokenAmount, error) { - store := adt.WrapStore(ctx, cbor.NewCborStore(bstore.NewAPIBlockstore(m.Api))) - - // load power actor - var ( - powerSmoothed builtin.FilterEstimate - pledgeCollateral abi.TokenAmount - ) - if act, err := m.Api.StateGetActor(ctx, power.Address, types.EmptyTSK); err != nil { - return types.EmptyInt, xerrors.Errorf("loading power actor: %w", err) - } else if s, err := power.Load(store, act); err != nil { - return types.EmptyInt, xerrors.Errorf("loading power actor state: %w", err) - } else if p, err := s.TotalPowerSmoothed(); err != nil { - return types.EmptyInt, xerrors.Errorf("failed to determine total power: %w", err) - } else if c, err := s.TotalLocked(); err != nil { - return types.EmptyInt, xerrors.Errorf("failed to determine pledge collateral: %w", err) - } else { - powerSmoothed = p - pledgeCollateral = c - } - - // load reward actor - rewardActor, err := m.Api.StateGetActor(ctx, reward.Address, types.EmptyTSK) - if err != nil { - return types.EmptyInt, xerrors.Errorf("loading reward actor: %w", err) - } - - rewardState, err := reward.Load(store, rewardActor) - if err != nil { - return types.EmptyInt, xerrors.Errorf("loading reward actor state: %w", err) - } - - // get circulating supply - circSupply, err := m.Api.StateVMCirculatingSupplyInternal(ctx, types.EmptyTSK) - if err != nil { - return big.Zero(), xerrors.Errorf("getting circulating supply: %w", err) - } - - // do the calculation - initialPledge, err := rewardState.InitialPledgeForPower( - addedPower, - pledgeCollateral, - &powerSmoothed, - circSupply.FilCirculating, - ) - if err != nil { - return big.Zero(), xerrors.Errorf("calculating initial pledge: %w", err) - } - - return types.BigDiv(types.BigMul(initialPledge, initialPledgeNum), initialPledgeDen), nil -} - -func (m *Sealing) sectorWeight(ctx context.Context, sector SectorInfo, expiration abi.ChainEpoch) (abi.StoragePower, error) { - spt, err := m.currentSealProof(ctx) - if err != nil { - return types.EmptyInt, xerrors.Errorf("getting seal proof type: %w", err) - } - - ssize, err := spt.SectorSize() - if err != nil { - return types.EmptyInt, xerrors.Errorf("getting sector size: %w", err) - } - - ts, err := m.Api.ChainHead(ctx) - if err != nil { - return types.EmptyInt, xerrors.Errorf("getting chain head: %w", err) - } - - // get verified deal infos - var w, vw = big.Zero(), big.Zero() - - now, err := m.Api.ChainHead(ctx) - if err != nil { - return abi.NewStoragePower(0), err - } - sectorDuration := big.NewInt(int64(expiration - now.Height())) - for _, piece := range sector.Pieces { - if !piece.HasDealInfo() { - // todo StateMinerInitialPledgeCollateral doesn't add cc/padding to non-verified weight, is that correct? - continue - } - - alloc, err := piece.GetAllocation(ctx, m.Api, ts.Key()) - if err != nil || alloc == nil { - if err != nil { - log.Errorw("failed to get allocation", "error", err) - } - w = big.Add(w, big.Mul(sectorDuration, abi.NewStoragePower(int64(piece.Piece().Size)))) - continue - } - - vw = big.Add(vw, big.Mul(sectorDuration, abi.NewStoragePower(int64(piece.Piece().Size)))) - } - - duration := expiration - ts.Height() - sectorWeight := builtin.QAPowerForWeight(ssize, duration, w, vw) - - return sectorWeight, nil -} diff --git a/storage/pipeline/sealing.go b/storage/pipeline/sealing.go index c9927d172e8..3c6b1be55a6 100644 --- a/storage/pipeline/sealing.go +++ b/storage/pipeline/sealing.go @@ -25,7 +25,6 @@ import ( "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/chain/actors/builtin/miner" - lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" "github.com/filecoin-project/lotus/chain/events" "github.com/filecoin-project/lotus/chain/types" @@ -52,10 +51,10 @@ type SealingAPI interface { StateSectorPreCommitInfo(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tsk types.TipSetKey) (*miner.SectorPreCommitOnChainInfo, error) StateSectorGetInfo(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tsk types.TipSetKey) (*miner.SectorOnChainInfo, error) - StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tsk types.TipSetKey) (*lminer.SectorLocation, error) + StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tsk types.TipSetKey) (*miner.SectorLocation, error) StateLookupID(context.Context, address.Address, types.TipSetKey) (address.Address, error) StateMinerPreCommitDepositForPower(context.Context, address.Address, miner.SectorPreCommitInfo, types.TipSetKey) (big.Int, error) - StateMinerInitialPledgeCollateral(context.Context, address.Address, miner.SectorPreCommitInfo, types.TipSetKey) (big.Int, error) + StateMinerInitialPledgeForSector(ctx context.Context, sectorDuration abi.ChainEpoch, sectorSize abi.SectorSize, verifiedSize uint64, tsk types.TipSetKey) (types.BigInt, error) StateMinerInfo(context.Context, address.Address, types.TipSetKey) (api.MinerInfo, error) StateMinerAvailableBalance(context.Context, address.Address, types.TipSetKey) (big.Int, error) StateMinerSectorAllocated(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (bool, error) @@ -271,7 +270,7 @@ func New(mctx context.Context, sapi SealingAPI, fc config.MinerFeeConfig, events } s.precommiter = pc - cc, err := NewCommitBatcher(mctx, maddr, sapi, addrSel, fc, gc, prov, s) + cc, err := NewCommitBatcher(mctx, maddr, sapi, addrSel, fc, gc, prov) if err != nil { return nil, err } @@ -379,7 +378,7 @@ func (m *Sealing) currentSealProof(ctx context.Context) (abi.RegisteredSealProof return 0, err } - return lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType, c.UseSyntheticPoRep) + return miner.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType, c.UseSyntheticPoRep) } func (m *Sealing) minerSector(spt abi.RegisteredSealProof, num abi.SectorNumber) storiface.SectorRef { diff --git a/storage/pipeline/states_replica_update.go b/storage/pipeline/states_replica_update.go index dd445b28bdc..1cc4a616205 100644 --- a/storage/pipeline/states_replica_update.go +++ b/storage/pipeline/states_replica_update.go @@ -131,21 +131,34 @@ func (m *Sealing) handleSubmitReplicaUpdate(ctx statemachine.Context, sector Sec return ctx.Send(SectorSubmitReplicaUpdateFailed{}) } - weightUpdate, err := m.sectorWeight(ctx.Context(), sector, onChainInfo.Expiration) + duration := onChainInfo.Expiration - ts.Height() + + ssize, err := sector.SectorType.SectorSize() if err != nil { - log.Errorf("failed to get sector weight: %+v", err) - return ctx.Send(SectorSubmitReplicaUpdateFailed{}) + return xerrors.Errorf("failed to resolve sector size for seal proof: %w", err) + } + + var verifiedSize uint64 + for _, piece := range sector.Pieces { + if piece.HasDealInfo() { + alloc, err := piece.GetAllocation(ctx.Context(), m.Api, ts.Key()) + if err != nil || alloc == nil { + if err != nil { + log.Errorw("failed to get allocation", "error", err) + } + verifiedSize += uint64(piece.Piece().Size) + } + } } - collateral, err := m.pledgeForPower(ctx.Context(), weightUpdate) + collateral, err := m.Api.StateMinerInitialPledgeForSector(ctx.Context(), duration, ssize, verifiedSize, ts.Key()) if err != nil { - log.Errorf("failed to get pledge for power: %+v", err) - return ctx.Send(SectorSubmitReplicaUpdateFailed{}) + return xerrors.Errorf("getting initial pledge collateral: %w", err) } log.Infow("submitting replica update", "sector", sector.SectorNumber, - "weight", types.FIL(weightUpdate), + "verifiedSize", verifiedSize, "totalPledge", types.FIL(collateral), "initialPledge", types.FIL(onChainInfo.InitialPledge), "toPledge", types.FIL(big.Sub(collateral, onChainInfo.InitialPledge))) diff --git a/storage/pipeline/states_sealing.go b/storage/pipeline/states_sealing.go index bffd003c2d7..a7b894035b7 100644 --- a/storage/pipeline/states_sealing.go +++ b/storage/pipeline/states_sealing.go @@ -780,16 +780,6 @@ func (m *Sealing) handleSubmitCommitAggregate(ctx statemachine.Context, sector S return err } - pci, err := m.Api.StateSectorPreCommitInfo(ctx.Context(), m.maddr, sector.SectorNumber, types.EmptyTSK) - if err != nil { - return xerrors.Errorf("getting precommit info: %w", err) - } - - weight, err := m.sectorWeight(ctx.Context(), sector, pci.Info.Expiration) - if err != nil { - return xerrors.Errorf("getting sector weight: %w", err) - } - res, err := m.commiter.AddCommit(ctx.Context(), sector, AggregateInput{ Info: proof.AggregateSealVerifyInfo{ Number: sector.SectorNumber, @@ -798,9 +788,8 @@ func (m *Sealing) handleSubmitCommitAggregate(ctx statemachine.Context, sector S SealedCID: *sector.CommR, UnsealedCID: *sector.CommD, }, - Proof: sector.Proof, - Spt: sector.SectorType, - Weight: weight, + Proof: sector.Proof, + Spt: sector.SectorType, ActivationManifest: miner2.SectorActivationManifest{ SectorNumber: sector.SectorNumber,