forked from cerc-io/laconicd-deprecated
e90b21bc8e
1. add bond,auction, nameserivce module 2. update to v0.12.2 ethermint version 3. fix the test cases 4. add gql server
80 lines
2.3 KiB
Go
80 lines
2.3 KiB
Go
package app
|
|
|
|
import (
|
|
"encoding/json"
|
|
"time"
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
|
|
"github.com/cosmos/cosmos-sdk/simapp"
|
|
"github.com/tharsis/ethermint/encoding"
|
|
|
|
abci "github.com/tendermint/tendermint/abci/types"
|
|
"github.com/tendermint/tendermint/crypto/ed25519"
|
|
"github.com/tendermint/tendermint/libs/log"
|
|
tmproto "github.com/tendermint/tendermint/proto/tendermint/types"
|
|
tmtypes "github.com/tendermint/tendermint/types"
|
|
dbm "github.com/tendermint/tm-db"
|
|
)
|
|
|
|
// DefaultConsensusParams defines the default Tendermint consensus params used in
|
|
// EthermintApp testing.
|
|
var DefaultConsensusParams = &abci.ConsensusParams{
|
|
Block: &abci.BlockParams{
|
|
MaxBytes: 200000,
|
|
MaxGas: -1, // no limit
|
|
},
|
|
Evidence: &tmproto.EvidenceParams{
|
|
MaxAgeNumBlocks: 302400,
|
|
MaxAgeDuration: 504 * time.Hour, // 3 weeks is the max duration
|
|
MaxBytes: 10000,
|
|
},
|
|
Validator: &tmproto.ValidatorParams{
|
|
PubKeyTypes: []string{
|
|
tmtypes.ABCIPubKeyTypeEd25519,
|
|
},
|
|
},
|
|
}
|
|
|
|
// Setup initializes a new EthermintApp. A Nop logger is set in EthermintApp.
|
|
func Setup(isCheckTx bool, patchGenesis func(*EthermintApp, simapp.GenesisState) simapp.GenesisState) *EthermintApp {
|
|
db := dbm.NewMemDB()
|
|
app := NewEthermintApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, DefaultNodeHome, 5, encoding.MakeConfig(ModuleBasics), simapp.EmptyAppOptions{})
|
|
if !isCheckTx {
|
|
// init chain must be called to stop deliverState from being nil
|
|
genesisState := NewDefaultGenesisState()
|
|
if patchGenesis != nil {
|
|
genesisState = patchGenesis(app, genesisState)
|
|
}
|
|
|
|
stateBytes, err := json.MarshalIndent(genesisState, "", " ")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
// Initialize the chain
|
|
app.InitChain(
|
|
abci.RequestInitChain{
|
|
ChainId: "ethermint_9000-1",
|
|
Validators: []abci.ValidatorUpdate{},
|
|
ConsensusParams: DefaultConsensusParams,
|
|
AppStateBytes: stateBytes,
|
|
},
|
|
)
|
|
}
|
|
|
|
return app
|
|
}
|
|
|
|
// CreateRandomAccounts will generate random accounts
|
|
func CreateRandomAccounts(accNum int) []sdk.AccAddress {
|
|
// createRandomAccounts is a strategy used by addTestAddrs() in order to generated addresses in random order.
|
|
testAddrs := make([]sdk.AccAddress, accNum)
|
|
for i := 0; i < accNum; i++ {
|
|
pk := ed25519.GenPrivKey().PubKey()
|
|
testAddrs[i] = sdk.AccAddress(pk.Address())
|
|
}
|
|
|
|
return testAddrs
|
|
}
|