Merge pull request #2586 from filecoin-project/asr/pledge-cc
Add CLI command to calculate pledge collateral of a CC sector
This commit is contained in:
commit
053fb3ac19
@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/filecoin-project/specs-actors/actors/builtin/miner"
|
||||
"os"
|
||||
"sort"
|
||||
"strconv"
|
||||
@ -31,6 +32,7 @@ var sectorsCmd = &cli.Command{
|
||||
sectorsMarkForUpgradeCmd,
|
||||
sectorsStartSealCmd,
|
||||
sectorsSealDelayCmd,
|
||||
sectorsCapacityCollateralCmd,
|
||||
},
|
||||
}
|
||||
|
||||
@ -321,6 +323,53 @@ var sectorsSealDelayCmd = &cli.Command{
|
||||
},
|
||||
}
|
||||
|
||||
var sectorsCapacityCollateralCmd = &cli.Command{
|
||||
Name: "get-cc-collateral",
|
||||
Usage: "Get the collateral required to pledge a committed capacity sector",
|
||||
Flags: []cli.Flag{
|
||||
&cli.Uint64Flag{
|
||||
Name: "expiration",
|
||||
Usage: "the epoch when the sector will expire",
|
||||
},
|
||||
},
|
||||
Action: func(cctx *cli.Context) error {
|
||||
|
||||
mApi, mCloser, err := lcli.GetStorageMinerAPI(cctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer mCloser()
|
||||
|
||||
nApi, nCloser, err := lcli.GetFullNodeAPI(cctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer nCloser()
|
||||
|
||||
ctx := lcli.ReqContext(cctx)
|
||||
|
||||
maddr, err := mApi.ActorAddress(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
pci := miner.SectorPreCommitInfo{
|
||||
Expiration: abi.ChainEpoch(cctx.Uint64("expiration")),
|
||||
}
|
||||
if pci.Expiration == 0 {
|
||||
pci.Expiration = miner.MaxSectorExpirationExtension
|
||||
}
|
||||
pc, err := nApi.StateMinerInitialPledgeCollateral(ctx, maddr, pci, types.EmptyTSK)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Printf("Estimated collateral: %s\n", types.FIL(pc))
|
||||
|
||||
return nil
|
||||
},
|
||||
}
|
||||
|
||||
var sectorsUpdateCmd = &cli.Command{
|
||||
Name: "update-state",
|
||||
Usage: "ADVANCED: manually update the state of a sector, this may aid in error recovery",
|
||||
|
@ -952,8 +952,12 @@ func (a *StateAPI) StateMinerInitialPledgeCollateral(ctx context.Context, maddr
|
||||
return types.EmptyInt, err
|
||||
}
|
||||
|
||||
var dealWeights market.VerifyDealsForActivationReturn
|
||||
{
|
||||
dealWeights := market.VerifyDealsForActivationReturn{
|
||||
DealWeight: big.Zero(),
|
||||
VerifiedDealWeight: big.Zero(),
|
||||
}
|
||||
|
||||
if len(pci.DealIDs) != 0 {
|
||||
var err error
|
||||
params, err := actors.SerializeParams(&market.VerifyDealsForActivationParams{
|
||||
DealIDs: pci.DealIDs,
|
||||
@ -980,11 +984,13 @@ func (a *StateAPI) StateMinerInitialPledgeCollateral(ctx context.Context, maddr
|
||||
}
|
||||
}
|
||||
|
||||
ssize, err := pci.SealProof.SectorSize()
|
||||
mi, err := a.StateMinerInfo(ctx, maddr, tsk)
|
||||
if err != nil {
|
||||
return types.EmptyInt, err
|
||||
}
|
||||
|
||||
ssize := mi.SectorSize
|
||||
|
||||
duration := pci.Expiration - ts.Height() // NB: not exactly accurate, but should always lead us to *over* estimate, not under
|
||||
|
||||
circSupply, err := a.StateManager.CirculatingSupply(ctx, ts)
|
||||
|
Loading…
Reference in New Issue
Block a user