use abstract actor type methods
This commit is contained in:
parent
c91774be3b
commit
2967c4ec10
@ -7,13 +7,13 @@ import (
|
|||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
|
|
||||||
|
builtin0 "github.com/filecoin-project/specs-actors/actors/builtin"
|
||||||
miner0 "github.com/filecoin-project/specs-actors/actors/builtin/miner"
|
miner0 "github.com/filecoin-project/specs-actors/actors/builtin/miner"
|
||||||
power0 "github.com/filecoin-project/specs-actors/actors/builtin/power"
|
power0 "github.com/filecoin-project/specs-actors/actors/builtin/power"
|
||||||
adt0 "github.com/filecoin-project/specs-actors/actors/util/adt"
|
adt0 "github.com/filecoin-project/specs-actors/actors/util/adt"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/build"
|
"github.com/filecoin-project/lotus/build"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/specs-actors/actors/builtin"
|
|
||||||
cbor "github.com/ipfs/go-ipld-cbor"
|
cbor "github.com/ipfs/go-ipld-cbor"
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
)
|
)
|
||||||
@ -123,7 +123,7 @@ func UpgradeFaucetBurnRecovery(ctx context.Context, sm *StateManager, tree types
|
|||||||
// Take all excess funds away, put them into the reserve account
|
// Take all excess funds away, put them into the reserve account
|
||||||
err = fetree.ForEach(func(addr address.Address, act *types.Actor) error {
|
err = fetree.ForEach(func(addr address.Address, act *types.Actor) error {
|
||||||
switch act.Code {
|
switch act.Code {
|
||||||
case builtin.AccountActorCodeID, builtin.MultisigActorCodeID, builtin.PaymentChannelActorCodeID:
|
case builtin0.AccountActorCodeID, builtin0.MultisigActorCodeID, builtin0.PaymentChannelActorCodeID:
|
||||||
sysAcc, err := isSystemAccount(addr)
|
sysAcc, err := isSystemAccount(addr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return xerrors.Errorf("checking system account: %w", err)
|
return xerrors.Errorf("checking system account: %w", err)
|
||||||
@ -136,7 +136,7 @@ func UpgradeFaucetBurnRecovery(ctx context.Context, sm *StateManager, tree types
|
|||||||
Amt: act.Balance,
|
Amt: act.Balance,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
case builtin.StorageMinerActorCodeID:
|
case builtin0.StorageMinerActorCodeID:
|
||||||
var st miner0.State
|
var st miner0.State
|
||||||
if err := sm.ChainStore().Store(ctx).Get(ctx, act.Head, &st); err != nil {
|
if err := sm.ChainStore().Store(ctx).Get(ctx, act.Head, &st); err != nil {
|
||||||
return xerrors.Errorf("failed to load miner state: %w", err)
|
return xerrors.Errorf("failed to load miner state: %w", err)
|
||||||
@ -175,7 +175,7 @@ func UpgradeFaucetBurnRecovery(ctx context.Context, sm *StateManager, tree types
|
|||||||
|
|
||||||
// pull up power table to give miners back some funds proportional to their power
|
// pull up power table to give miners back some funds proportional to their power
|
||||||
var ps power0.State
|
var ps power0.State
|
||||||
powAct, err := tree.GetActor(builtin.StoragePowerActorAddr)
|
powAct, err := tree.GetActor(builtin0.StoragePowerActorAddr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return xerrors.Errorf("failed to load power actor: %w", err)
|
return xerrors.Errorf("failed to load power actor: %w", err)
|
||||||
}
|
}
|
||||||
@ -203,7 +203,7 @@ func UpgradeFaucetBurnRecovery(ctx context.Context, sm *StateManager, tree types
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch act.Code {
|
switch act.Code {
|
||||||
case builtin.AccountActorCodeID, builtin.MultisigActorCodeID, builtin.PaymentChannelActorCodeID:
|
case builtin0.AccountActorCodeID, builtin0.MultisigActorCodeID, builtin0.PaymentChannelActorCodeID:
|
||||||
nbalance := big.Min(prevBalance, AccountCap)
|
nbalance := big.Min(prevBalance, AccountCap)
|
||||||
if nbalance.Sign() != 0 {
|
if nbalance.Sign() != 0 {
|
||||||
transfersBack = append(transfersBack, transfer{
|
transfersBack = append(transfersBack, transfer{
|
||||||
@ -212,7 +212,7 @@ func UpgradeFaucetBurnRecovery(ctx context.Context, sm *StateManager, tree types
|
|||||||
Amt: nbalance,
|
Amt: nbalance,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
case builtin.StorageMinerActorCodeID:
|
case builtin0.StorageMinerActorCodeID:
|
||||||
var st miner0.State
|
var st miner0.State
|
||||||
if err := sm.ChainStore().Store(ctx).Get(ctx, act.Head, &st); err != nil {
|
if err := sm.ChainStore().Store(ctx).Get(ctx, act.Head, &st); err != nil {
|
||||||
return xerrors.Errorf("failed to load miner state: %w", err)
|
return xerrors.Errorf("failed to load miner state: %w", err)
|
||||||
@ -277,11 +277,11 @@ func UpgradeFaucetBurnRecovery(ctx context.Context, sm *StateManager, tree types
|
|||||||
}
|
}
|
||||||
|
|
||||||
// transfer all burnt funds back to the reserve account
|
// transfer all burnt funds back to the reserve account
|
||||||
burntAct, err := tree.GetActor(builtin.BurntFundsActorAddr)
|
burntAct, err := tree.GetActor(builtin0.BurntFundsActorAddr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return xerrors.Errorf("failed to load burnt funds actor: %w", err)
|
return xerrors.Errorf("failed to load burnt funds actor: %w", err)
|
||||||
}
|
}
|
||||||
if err := doTransfer(tree, builtin.BurntFundsActorAddr, ReserveAddress, burntAct.Balance); err != nil {
|
if err := doTransfer(tree, builtin0.BurntFundsActorAddr, ReserveAddress, burntAct.Balance); err != nil {
|
||||||
return xerrors.Errorf("failed to unburn funds: %w", err)
|
return xerrors.Errorf("failed to unburn funds: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -384,7 +384,7 @@ func (vm *VM) ApplyMessage(ctx context.Context, cmsg types.ChainMsg) (*ApplyRet,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// this should never happen, but is currently still exercised by some tests
|
// this should never happen, but is currently still exercised by some tests
|
||||||
if !fromActor.Code.Equals(builtin.AccountActorCodeID) {
|
if !fromActor.IsAccountActor() {
|
||||||
gasOutputs := ZeroGasOutputs()
|
gasOutputs := ZeroGasOutputs()
|
||||||
gasOutputs.MinerPenalty = minerPenaltyAmount
|
gasOutputs.MinerPenalty = minerPenaltyAmount
|
||||||
return &ApplyRet{
|
return &ApplyRet{
|
||||||
|
@ -16,7 +16,6 @@ import (
|
|||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
|
|
||||||
"github.com/filecoin-project/specs-actors/actors/builtin"
|
|
||||||
init0 "github.com/filecoin-project/specs-actors/actors/builtin/init"
|
init0 "github.com/filecoin-project/specs-actors/actors/builtin/init"
|
||||||
msig0 "github.com/filecoin-project/specs-actors/actors/builtin/multisig"
|
msig0 "github.com/filecoin-project/specs-actors/actors/builtin/multisig"
|
||||||
|
|
||||||
@ -330,7 +329,7 @@ var msigProposeCmd = &cli.Command{
|
|||||||
return fmt.Errorf("failed to look up multisig %s: %w", msig, err)
|
return fmt.Errorf("failed to look up multisig %s: %w", msig, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if act.Code != builtin.MultisigActorCodeID {
|
if !act.IsMultisigActor() {
|
||||||
return fmt.Errorf("actor %s is not a multisig actor", msig)
|
return fmt.Errorf("actor %s is not a multisig actor", msig)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,10 +12,10 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/filecoin-project/specs-actors/actors/builtin"
|
||||||
miner0 "github.com/filecoin-project/specs-actors/actors/builtin/miner"
|
miner0 "github.com/filecoin-project/specs-actors/actors/builtin/miner"
|
||||||
|
|
||||||
"github.com/filecoin-project/go-state-types/network"
|
"github.com/filecoin-project/go-state-types/network"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
|
||||||
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
logging "github.com/ipfs/go-log/v2"
|
logging "github.com/ipfs/go-log/v2"
|
||||||
@ -28,11 +28,11 @@ import (
|
|||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
"github.com/filecoin-project/go-state-types/exitcode"
|
"github.com/filecoin-project/go-state-types/exitcode"
|
||||||
"github.com/filecoin-project/specs-actors/actors/builtin"
|
|
||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
"github.com/filecoin-project/lotus/build"
|
"github.com/filecoin-project/lotus/build"
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/tools/stats"
|
"github.com/filecoin-project/lotus/tools/stats"
|
||||||
)
|
)
|
||||||
@ -375,7 +375,7 @@ func (r *refunder) ProcessTipset(ctx context.Context, tipset *types.TipSet, refu
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if a.Code != builtin.StorageMinerActorCodeID {
|
if !a.IsStorageMinerActor() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user