github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/ibc-go/modules/apps/transfer/simulation/genesis.go (about)

     1  package simulation
     2  
     3  import (
     4  	"encoding/json"
     5  	"fmt"
     6  	"math/rand"
     7  	"strings"
     8  
     9  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types/module"
    10  	simtypes "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/simulation"
    11  	"github.com/fibonacci-chain/fbc/libs/ibc-go/modules/apps/transfer/types"
    12  )
    13  
    14  // Simulation parameter constants
    15  const port = "port_id"
    16  
    17  // RadomEnabled randomized send or receive enabled param with 75% prob of being true.
    18  func RadomEnabled(r *rand.Rand) bool {
    19  	return r.Int63n(101) <= 75
    20  }
    21  
    22  // RandomizedGenState generates a random GenesisState for transfer.
    23  func RandomizedGenState(simState *module.SimulationState) {
    24  	var portID string
    25  	simState.AppParams.GetOrGenerate(
    26  		simState.Cdc, port, &portID, simState.Rand,
    27  		func(r *rand.Rand) { portID = strings.ToLower(simtypes.RandStringOfLength(r, 20)) },
    28  	)
    29  
    30  	var sendEnabled bool
    31  	simState.AppParams.GetOrGenerate(
    32  		simState.Cdc, string(types.KeySendEnabled), &sendEnabled, simState.Rand,
    33  		func(r *rand.Rand) { sendEnabled = RadomEnabled(r) },
    34  	)
    35  
    36  	var receiveEnabled bool
    37  	simState.AppParams.GetOrGenerate(
    38  		simState.Cdc, string(types.KeyReceiveEnabled), &receiveEnabled, simState.Rand,
    39  		func(r *rand.Rand) { receiveEnabled = RadomEnabled(r) },
    40  	)
    41  
    42  	transferGenesis := types.GenesisState{
    43  		PortId:      portID,
    44  		DenomTraces: types.Traces{},
    45  		Params:      types.NewParams(sendEnabled, receiveEnabled),
    46  	}
    47  
    48  	bz, err := json.MarshalIndent(&transferGenesis, "", " ")
    49  	if err != nil {
    50  		panic(err)
    51  	}
    52  	fmt.Printf("Selected randomly generated %s parameters:\n%s\n", types.ModuleName, bz)
    53  	simState.GenState[types.ModuleName] = simState.Cdc.MustMarshalJSON(&transferGenesis)
    54  }