take snapshot after gas transfer so its not reverted on method failure
This commit is contained in:
parent
badaa5fad1
commit
84fd969710
@ -300,10 +300,6 @@ func (vm *VM) ApplyMessage(ctx context.Context, msg *types.Message) (*ApplyRet,
|
|||||||
}
|
}
|
||||||
|
|
||||||
st := vm.cstate
|
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)
|
fromActor, err := st.GetActor(msg.From)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -345,6 +341,11 @@ func (vm *VM) ApplyMessage(ctx context.Context, msg *types.Message) (*ApplyRet,
|
|||||||
|
|
||||||
fromActor.Nonce++
|
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)
|
ret, actorErr, rt := vm.send(ctx, msg, nil, msgGasCost)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user