take snapshot after gas transfer so its not reverted on method failure

This commit is contained in:
whyrusleeping 2020-03-17 22:55:05 -07:00 committed by Jeromy
parent badaa5fad1
commit 84fd969710

View File

@ -300,10 +300,6 @@ func (vm *VM) ApplyMessage(ctx context.Context, msg *types.Message) (*ApplyRet,
}
st := vm.cstate
if err := st.Snapshot(ctx); err != nil {
return nil, xerrors.Errorf("snapshot failed: %w", err)
}
defer st.ClearSnapshot()
fromActor, err := st.GetActor(msg.From)
if err != nil {
@ -345,6 +341,11 @@ func (vm *VM) ApplyMessage(ctx context.Context, msg *types.Message) (*ApplyRet,
fromActor.Nonce++
if err := st.Snapshot(ctx); err != nil {
return nil, xerrors.Errorf("snapshot failed: %w", err)
}
defer st.ClearSnapshot()
ret, actorErr, rt := vm.send(ctx, msg, nil, msgGasCost)
{