From d9fad5fad09764504320e6aa82a7030b42b26a18 Mon Sep 17 00:00:00 2001 From: Aayush Rajasekaran Date: Tue, 6 Oct 2020 01:25:55 -0400 Subject: [PATCH] Move rt.Message fixes behind fork logic --- chain/vm/runtime.go | 2 +- chain/vm/vm.go | 33 +++++++++++++++++++++------------ 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/chain/vm/runtime.go b/chain/vm/runtime.go index 4c6bf1848..530adfe95 100644 --- a/chain/vm/runtime.go +++ b/chain/vm/runtime.go @@ -50,7 +50,7 @@ func (m *Message) ValueReceived() abi.TokenAmount { } type Runtime struct { - Message + rt0.Message rt0.Syscalls ctx context.Context diff --git a/chain/vm/vm.go b/chain/vm/vm.go index a5072f8c5..bb20c14e9 100644 --- a/chain/vm/vm.go +++ b/chain/vm/vm.go @@ -131,10 +131,15 @@ func (vm *VM) makeRuntime(ctx context.Context, msg *types.Message, origin addres rt.Abortf(exitcode.SysErrInvalidReceiver, "resolve msg.From address failed") } vmm.From = resF - resT, _ := rt.ResolveAddress(msg.To) - // may be set to undef if recipient doesn't exist yet - vmm.To = resT - rt.Message = Message{msg: vmm} + + if vm.ntwkVersion(ctx, vm.blockHeight) <= network.Version3 { + rt.Message = &vmm + } else { + resT, _ := rt.ResolveAddress(msg.To) + // may be set to undef if recipient doesn't exist yet + vmm.To = resT + rt.Message = &Message{msg: vmm} + } return rt } @@ -265,15 +270,19 @@ func (vm *VM) send(ctx context.Context, msg *types.Message, parent *Runtime, return nil, aerrors.Wrapf(err, "could not create account") } toActor = a - nmsg := Message{ - msg: types.Message{ - To: aid, - From: rt.Message.Caller(), - Value: rt.Message.ValueReceived(), - }, - } + if vm.ntwkVersion(ctx, vm.blockHeight) <= network.Version3 { + // Leave the rt.Message as is + } else { + nmsg := Message{ + msg: types.Message{ + To: aid, + From: rt.Message.Caller(), + Value: rt.Message.ValueReceived(), + }, + } - rt.Message = nmsg + rt.Message = &nmsg + } } else { return nil, aerrors.Escalate(err, "getting actor") }