fix: insufficient gas remaining to cover retval

proceed as in the case of method execution failure.
This commit is contained in:
frrist 2020-04-29 13:05:53 -07:00
parent 1e38e02456
commit c66415ae4c

View File

@ -365,9 +365,17 @@ func (vm *VM) ApplyMessage(ctx context.Context, cmsg types.ChainMsg) (*ApplyRet,
return nil, xerrors.Errorf("send returned nil runtime, send error was: %s", actorErr)
}
actorErr2 := rt.chargeGasSafe(rt.Pricelist().OnChainReturnValue(len(ret)))
if actorErr == nil {
//TODO: Ambigous what to do in this case
actorErr = actorErr2
if actorErr2 != nil {
return &ApplyRet{
MessageReceipt: types.MessageReceipt{
ExitCode: aerrors.RetCode(actorErr2),
GasUsed: rt.gasUsed,
},
ActorErr: actorErr2,
Penalty: types.NewInt(0),
Duration: time.Since(start),
}, nil
}
}