mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-11-15 04:25:27 +00:00
67 lines
2.0 KiB
Go
67 lines
2.0 KiB
Go
package simulation
|
|
|
|
// import (
|
|
// "fmt"
|
|
// "math/rand"
|
|
// "strings"
|
|
// "time"
|
|
|
|
// "github.com/cosmos/cosmos-sdk/codec"
|
|
// sdk "github.com/cosmos/cosmos-sdk/types"
|
|
// "github.com/cosmos/cosmos-sdk/types/module"
|
|
// "github.com/cosmos/cosmos-sdk/x/simulation"
|
|
|
|
// "github.com/0glabs/0g-chain/x/issuance/types"
|
|
// )
|
|
|
|
// var (
|
|
// accs []simulation.Account
|
|
// )
|
|
|
|
// // RandomizedGenState generates a random GenesisState for the module
|
|
// func RandomizedGenState(simState *module.SimulationState) {
|
|
// accs = simState.Accounts
|
|
// params := randomizedParams(simState.Rand)
|
|
// gs := types.NewGenesisState(params, types.AssetSupplies{})
|
|
// fmt.Printf("Selected randomly generated %s parameters:\n%s\n", types.ModuleName, codec.MustMarshalJSONIndent(simState.Cdc, gs))
|
|
// simState.GenState[types.ModuleName] = simState.Cdc.MustMarshalJSON(gs)
|
|
// }
|
|
|
|
// func randomizedParams(r *rand.Rand) types.Params {
|
|
// assets := randomizedAssets(r)
|
|
// return types.NewParams(assets)
|
|
// }
|
|
|
|
// func randomizedAssets(r *rand.Rand) types.Assets {
|
|
// randomAssets := types.Assets{}
|
|
// numAssets := Max(1, r.Intn(5))
|
|
// for i := 0; i < numAssets; i++ {
|
|
// denom := strings.ToLower(simulation.RandStringOfLength(r, (r.Intn(3) + 3)))
|
|
// owner := randomOwner(r)
|
|
// paused := r.Intn(2) == 0
|
|
// rateLimited := r.Intn(2) == 0
|
|
// rateLimit := types.NewRateLimit(false, sdk.ZeroInt(), time.Duration(0))
|
|
// if rateLimited {
|
|
// timeLimit := time.Duration(3600000000000 + (r.Intn(24) + 1))
|
|
// assetLimit := simulation.RandIntBetween(r, 100000000000, 1000000000000)
|
|
// rateLimit = types.NewRateLimit(true, sdkmath.NewInt(int64(assetLimit)), timeLimit)
|
|
// }
|
|
// randomAsset := types.NewAsset(owner.Address, denom, []sdk.AccAddress{}, paused, true, rateLimit)
|
|
// randomAssets = append(randomAssets, randomAsset)
|
|
// }
|
|
// return randomAssets
|
|
// }
|
|
|
|
// func randomOwner(r *rand.Rand) simulation.Account {
|
|
// acc, _ := simulation.RandomAcc(r, accs)
|
|
// return acc
|
|
// }
|
|
|
|
// // Max return max of two ints
|
|
// func Max(x, y int) int {
|
|
// if x > y {
|
|
// return x
|
|
// }
|
|
// return y
|
|
// }
|