-
Notifications
You must be signed in to change notification settings - Fork 0
/
sim_utils.go
53 lines (52 loc) · 2.08 KB
/
sim_utils.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package simulation
//import (
// "github.com/evoblockchain/evochain/libs/cosmos-sdk/simapp/helpers"
// sdk "github.com/evoblockchain/evochain/libs/cosmos-sdk/types"
// simtypes "github.com/evoblockchain/evochain/libs/cosmos-sdk/types/simulation"
// "github.com/evoblockchain/evochain/libs/cosmos-sdk/x/simulation"
//)
//
//// GenAndDeliverTxWithRandFees generates a transaction with a random fee and delivers it.
//func GenAndDeliverTxWithRandFees(txCtx simulation.OperationInput, gas uint64) (simtypes.OperationMsg, []simtypes.FutureOperation, error) {
// account := txCtx.AccountKeeper.GetAccount(txCtx.Context, txCtx.SimAccount.Address)
// spendable := txCtx.Bankkeeper.SpendableCoins(txCtx.Context, account.GetAddress())
//
// var fees sdk.Coins
// var err error
//
// coins, hasNeg := spendable.SafeSub(txCtx.CoinsSpentInMsg)
// if hasNeg {
// return simtypes.NoOpMsg(txCtx.ModuleName, txCtx.MsgType, "message doesn't leave room for fees"), nil, err
// }
//
// fees, err = simtypes.RandomFees(txCtx.R, txCtx.Context, coins)
// if err != nil {
// return simtypes.NoOpMsg(txCtx.ModuleName, txCtx.MsgType, "unable to generate fees"), nil, err
// }
// return GenAndDeliverTx(txCtx, fees, gas)
//}
//
//// GenAndDeliverTx generates a transactions and delivers it.
//func GenAndDeliverTx(txCtx simulation.OperationInput, fees sdk.Coins, gas uint64) (simtypes.OperationMsg, []simtypes.FutureOperation, error) {
// account := txCtx.AccountKeeper.GetAccount(txCtx.Context, txCtx.SimAccount.Address)
// tx, err := helpers.GenTx(
// txCtx.TxGen,
// []sdk.Msg{txCtx.Msg},
// fees,
// gas,
// txCtx.Context.ChainID(),
// []uint64{account.GetAccountNumber()},
// []uint64{account.GetSequence()},
// txCtx.SimAccount.PrivKey,
// )
// if err != nil {
// return simtypes.NoOpMsg(txCtx.ModuleName, txCtx.MsgType, "unable to generate mock tx"), nil, err
// }
//
// _, _, err = txCtx.App.Deliver(txCtx.TxGen.TxEncoder(), tx)
// if err != nil {
// return simtypes.NoOpMsg(txCtx.ModuleName, txCtx.MsgType, "unable to deliver tx"), nil, err
// }
//
// return simtypes.NewOperationMsg(txCtx.Msg, true, "", txCtx.Cdc), nil, nil
//}