forked from terra-money/classic-core
/
test_common.go
108 lines (85 loc) · 3.77 KB
/
test_common.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
package market
// import (
// "terra/types/assets"
// "terra/x/oracle"
// "terra/x/treasury"
// "testing"
// "time"
// sdk "github.com/cosmos/cosmos-sdk/types"
// "github.com/cosmos/cosmos-sdk/x/auth"
// "github.com/cosmos/cosmos-sdk/x/mock"
// "github.com/cosmos/cosmos-sdk/x/params"
// "github.com/stretchr/testify/require"
// "github.com/tendermint/tendermint/crypto"
// abci "github.com/tendermint/tendermint/abci/types"
// )
// // initialize the mock application for this module
// func getMockApp(t *testing.T, numGenAccs int) (*mock.App, Keeper, oracle.Keeper, []sdk.AccAddress, []crypto.PubKey, []crypto.PrivKey) {
// mapp := mock.NewApp()
// stake.RegisterCodec(mapp.Cdc)
// keyGlobalParams := sdk.NewKVStoreKey("params")
// tkeyGlobalParams := sdk.NewTransientStoreKey("transient_params")
// keyStake := sdk.NewKVStoreKey("stake")
// tkeyStake := sdk.NewTransientStoreKey("transient_stake")
// keyTreasury := sdk.NewKVStoreKey("treasury")
// keyOracle := sdk.NewKVStoreKey("oracle")
// keyBank := sdk.NewKVStoreKey("bank")
// keyMarket := sdk.NewKVStoreKey("market")
// keyFeeCollection := sdk.NewKVStoreKey("fee")
// pk := params.NewKeeper(mapp.Cdc, keyGlobalParams, tkeyGlobalParams)
// fck := auth.NewFeeCollectionKeeper(mapp.Cdc, keyFeeCollection)
// ck := tax.NewBaseKeeper(keyBank, mapp.Cdc, mapp.AccountKeeper, fck)
// sk := stake.NewKeeper(mapp.Cdc, keyStake, tkeyStake, ck, pk.Subspace(stake.DefaultParamspace), stake.DefaultCodespace)
// tk := treasury.NewKeeper(keyTreasury, mapp.Cdc, ck)
// ok := oracle.NewKeeper(keyOracle, mapp.Cdc, tk, sk.GetValidatorSet(), pk.Subspace(oracle.DefaultParamspace))
// keeper := NewKeeper(ok, tk, ck)
// mapp.Router().AddRoute("market", NewHandler(keeper))
// genAccs, addrs, pubKeys, privKeys := mock.CreateGenAccounts(numGenAccs, sdk.Coins{sdk.NewInt64Coin(assets.LunaDenom, 42)})
// mapp.SetEndBlocker(getEndBlocker(keeper))
// mapp.SetInitChainer(getInitChainer(mapp, keeper, sk, ok, addrs, pubKeys))
// require.NoError(t, mapp.CompleteSetup(keyStake, tkeyStake,
// keyTreasury,
// keyOracle, keyBank, keyMarket, keyFeeCollection,
// keyGlobalParams, tkeyGlobalParams))
// mock.SetGenesis(mapp, genAccs)
// return mapp, keeper, ok, addrs, pubKeys, privKeys
// }
// // oracle and stake endblocker
// func getEndBlocker(keeper Keeper) sdk.EndBlocker {
// return func(ctx sdk.Context, req abci.RequestEndBlock) abci.ResponseEndBlock {
// return abci.ResponseEndBlock{}
// }
// }
// // oracle and stake initchainer
// func getInitChainer(mapp *mock.App, keeper Keeper, sk stake.Keeper, ok oracle.Keeper, addrs []sdk.AccAddress, pubKeys []crypto.PubKey) sdk.InitChainer {
// return func(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain {
// mapp.InitChainer(ctx, req)
// data := oracle.DefaultGenesisState()
// oracle.InitGenesis(ctx, ok, data)
// stakeGenesis := stake.GenesisState{
// Pool: stake.InitialPool(),
// Params: stake.Params{
// UnbondingTime: 60 * 60 * 24 * 3 * time.Second,
// MaxValidators: 100,
// BondDenom: assets.LunaDenom,
// },
// }
// stakeGenesis.Pool.LooseTokens = sdk.NewDec(100000)
// validators, err := stake.InitGenesis(ctx, sk, stakeGenesis)
// if err != nil {
// panic(err)
// }
// trashDescription := stake.NewDescription("", "", "", "")
// trashCommission := stake.NewCommissionMsg(sdk.ZeroDec(), sdk.ZeroDec(), sdk.ZeroDec())
// stakeHandler := stake.NewHandler(sk)
// valCreateMsg := stake.NewMsgCreateValidator(
// sdk.ValAddress(addrs[0].Bytes()), pubKeys[0],
// sdk.NewInt64Coin(assets.LunaDenom, 10), trashDescription, trashCommission,
// )
// stakeHandler(ctx, valCreateMsg)
// _ = sk.ApplyAndReturnValidatorSetUpdates(ctx)
// return abci.ResponseInitChain{
// Validators: validators,
// }
// }
// }