diff --git a/x/execution/internal/keeper/keeper.go b/x/execution/internal/keeper/keeper.go index c17453dc2..1049c2c83 100644 --- a/x/execution/internal/keeper/keeper.go +++ b/x/execution/internal/keeper/keeper.go @@ -118,8 +118,12 @@ func (k *Keeper) Create(ctx sdk.Context, msg types.MsgCreateExecution) (*executi M.InProgress.Add(1) } + from := msg.Signer + if !msg.Request.ProcessHash.IsZero() { + from = sdk.AccAddress(crypto.AddressHash(msg.Request.ProcessHash)) + } execAddress := sdk.AccAddress(crypto.AddressHash(exec.Hash)) - if err := k.bankKeeper.SendCoins(ctx, msg.Signer, execAddress, price); err != nil { + if err := k.bankKeeper.SendCoins(ctx, from, execAddress, price); err != nil { return nil, err }