Merge pull request #1529 from filecoin-project/asr/type

Sever the API's dependency on VM
This commit is contained in:
Whyrusleeping 2020-04-08 16:25:00 -07:00 committed by GitHub
commit 4bf784b44f
6 changed files with 14 additions and 43 deletions

View File

@ -20,7 +20,6 @@ import (
"github.com/filecoin-project/lotus/chain/store" "github.com/filecoin-project/lotus/chain/store"
"github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/chain/types"
"github.com/filecoin-project/lotus/chain/vm"
"github.com/filecoin-project/lotus/node/modules/dtypes" "github.com/filecoin-project/lotus/node/modules/dtypes"
) )
@ -313,7 +312,7 @@ type RetrievalOrder struct {
type InvocResult struct { type InvocResult struct {
Msg *types.Message Msg *types.Message
MsgRct *types.MessageReceipt MsgRct *types.MessageReceipt
InternalExecutions []*vm.ExecutionResult InternalExecutions []*types.ExecutionResult
Error string Error string
Duration time.Duration Duration time.Duration
} }

View File

@ -0,0 +1,9 @@
package types
type ExecutionResult struct {
Msg *Message
MsgRct *MessageReceipt
Error string
Subcalls []*ExecutionResult
}

View File

@ -1,6 +0,0 @@
package types
type InvokeRet struct {
Result []byte
ReturnCode byte
}

View File

@ -48,7 +48,7 @@ type Runtime struct {
origin address.Address origin address.Address
originNonce uint64 originNonce uint64
internalExecutions []*ExecutionResult internalExecutions []*types.ExecutionResult
numActorsCreated uint64 numActorsCreated uint64
} }
@ -337,7 +337,7 @@ func (rt *Runtime) internalSend(from, to address.Address, method abi.MethodNum,
GasUsed: 0, GasUsed: 0,
} }
er := ExecutionResult{ er := types.ExecutionResult{
Msg: msg, Msg: msg,
MsgRct: &mr, MsgRct: &mr,
} }

View File

@ -36,36 +36,6 @@ import (
var log = logging.Logger("vm") var log = logging.Logger("vm")
const (
gasFundTransfer = 10
gasInvoke = 5
gasGetObj = 10
gasGetPerByte = 1
gasPutObj = 20
gasPutPerByte = 2
gasCommit = 50
gasPerMessageByte = 2
)
const (
outOfGasErrCode = 200
)
type ExecutionResult struct {
Msg *types.Message
MsgRct *types.MessageReceipt
Error string
Subcalls []*ExecutionResult
}
// Storage interface
// End of storage interface
// Send allows the current execution context to invoke methods on other actors in the system
// ResolveToKeyAddr returns the public key type of address (`BLS`/`SECP256K1`) of an account actor identified by `addr`. // ResolveToKeyAddr returns the public key type of address (`BLS`/`SECP256K1`) of an account actor identified by `addr`.
func ResolveToKeyAddr(state types.StateTree, cst cbor.IpldStore, addr address.Address) (address.Address, aerrors.ActorError) { func ResolveToKeyAddr(state types.StateTree, cst cbor.IpldStore, addr address.Address) (address.Address, aerrors.ActorError) {
if addr.Protocol() == address.BLS || addr.Protocol() == address.SECP256K1 { if addr.Protocol() == address.BLS || addr.Protocol() == address.SECP256K1 {
@ -195,7 +165,7 @@ type ApplyRet struct {
types.MessageReceipt types.MessageReceipt
ActorErr aerrors.ActorError ActorErr aerrors.ActorError
Penalty types.BigInt Penalty types.BigInt
InternalExecutions []*ExecutionResult InternalExecutions []*types.ExecutionResult
Duration time.Duration Duration time.Duration
} }

View File

@ -23,7 +23,6 @@ import (
"github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/api"
"github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/chain/types"
"github.com/filecoin-project/lotus/chain/vm"
"github.com/filecoin-project/lotus/miner" "github.com/filecoin-project/lotus/miner"
"github.com/docker/go-units" "github.com/docker/go-units"
@ -808,7 +807,7 @@ var stateComputeStateCmd = &cli.Command{
}, },
} }
func printInternalExecutions(prefix string, trace []*vm.ExecutionResult) { func printInternalExecutions(prefix string, trace []*types.ExecutionResult) {
for _, im := range trace { for _, im := range trace {
fmt.Printf("%s%s\t%s\t%s\t%d\t%x\t%d\t%x\n", prefix, im.Msg.From, im.Msg.To, im.Msg.Value, im.Msg.Method, im.Msg.Params, im.MsgRct.ExitCode, im.MsgRct.Return) fmt.Printf("%s%s\t%s\t%s\t%d\t%x\t%d\t%x\n", prefix, im.Msg.From, im.Msg.To, im.Msg.Value, im.Msg.Method, im.Msg.Params, im.MsgRct.ExitCode, im.MsgRct.Return)
printInternalExecutions(prefix+"\t", im.Subcalls) printInternalExecutions(prefix+"\t", im.Subcalls)