github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/bank/simulation/genesis.go (about)

     1  package simulation
     2  
     3  // DONTCOVER
     4  
     5  import (
     6  	"fmt"
     7  	"math/rand"
     8  
     9  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec"
    10  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types/module"
    11  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/bank/internal/types"
    12  )
    13  
    14  // Simulation parameter constants
    15  const (
    16  	SendEnabled = "send_enabled"
    17  )
    18  
    19  // GenSendEnabled randomized SendEnabled
    20  func GenSendEnabled(r *rand.Rand) bool {
    21  	return r.Int63n(101) <= 95 // 95% chance of transfers being enabled
    22  }
    23  
    24  // RandomizedGenState generates a random GenesisState for bank
    25  func RandomizedGenState(simState *module.SimulationState) {
    26  	var sendEnabled bool
    27  	simState.AppParams.GetOrGenerate(
    28  		simState.Cdc, SendEnabled, &sendEnabled, simState.Rand,
    29  		func(r *rand.Rand) { sendEnabled = GenSendEnabled(r) },
    30  	)
    31  
    32  	bankGenesis := types.NewGenesisState(sendEnabled)
    33  
    34  	fmt.Printf("Selected randomly generated bank parameters:\n%s\n", codec.MustMarshalJSONIndent(simState.Cdc, bankGenesis))
    35  	simState.GenState[types.ModuleName] = simState.Cdc.MustMarshalJSON(bankGenesis)
    36  }