func SimulateParamChangeProposalContent(paramChangePool []simulation.ParamChange) simulation.ContentSimulatorFn {
	return func(r *rand.Rand, _ sdk.Context, _ []simulation.Account) external.CosGovContent {
		lenParamChange := len(paramChangePool)
		if lenParamChange == 0 {
			panic("param changes array is empty")
		}
		numChanges := simulation.RandIntBetween(r, 1, lenParamChange)
		paramChanges := make([]proposal.ParamChange, numChanges)
		paramChangesKeys := make(map[string]struct{})
		for i := 0; i < numChanges; i++ {
			spc := paramChangePool[r.Intn(len(paramChangePool))]
			_, ok := paramChangesKeys[spc.ComposedKey()]
			for ok {
				spc = paramChangePool[r.Intn(len(paramChangePool))]
				_, ok = paramChangesKeys[spc.ComposedKey()]
			}
			paramChangesKeys[spc.ComposedKey()] = struct{}{}
			paramChanges[i] = proposal.NewParamChange(spc.Subspace, spc.Key, spc.SimValue(r))
		}
		return proposal.NewParameterChangeProposal(
			simulation.RandStringOfLength(r, 140),   
			simulation.RandStringOfLength(r, 5000),  
			paramChanges,                            
		)
	}
}
SimulateParamChangeProposalContent returns random parameter change content.
It will generate a ParameterChangeProposal object with anywhere between 1 and
the total amount of defined parameters changes, all of which have random valid values.
package simulation
import (
	"math/rand"
	"github.com/KuChainNetwork/kuchain/x/params/external"
	"github.com/KuChainNetwork/kuchain/x/params/types/proposal"
	sdk "github.com/cosmos/cosmos-sdk/types"
	"github.com/cosmos/cosmos-sdk/x/simulation"
)