github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/erc20/keeper/proposal_test.go (about) 1 package keeper_test 2 3 import ( 4 "math/big" 5 "time" 6 7 ethcmn "github.com/ethereum/go-ethereum/common" 8 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 9 "github.com/fibonacci-chain/fbc/x/erc20/types" 10 govtypes "github.com/fibonacci-chain/fbc/x/gov/types" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func (suite *KeeperTestSuite) TestProposal_TokenMappingProposal() { 15 denom1 := "testdenom1" 16 externalContract := ethcmn.BigToAddress(big.NewInt(2)) 17 addr1 := ethcmn.BytesToAddress([]byte{0x0}).Bytes() 18 19 proposal := types.NewTokenMappingProposal( 20 "default title", 21 "default description", 22 denom1, 23 &externalContract, 24 ) 25 26 minDeposit := suite.app.Erc20Keeper.GetMinDeposit(suite.ctx, proposal) 27 require.Equal(suite.T(), sdk.SysCoins{sdk.NewDecCoin(sdk.DefaultBondDenom, sdk.NewInt(100))}, minDeposit) 28 29 maxDepositPeriod := suite.app.Erc20Keeper.GetMaxDepositPeriod(suite.ctx, proposal) 30 require.Equal(suite.T(), time.Hour*24, maxDepositPeriod) 31 32 votingPeriod := suite.app.Erc20Keeper.GetVotingPeriod(suite.ctx, proposal) 33 require.Equal(suite.T(), time.Hour*72, votingPeriod) 34 35 testCases := []struct { 36 msg string 37 prepare func() 38 }{ 39 { 40 "pass check", 41 func() {}, 42 }, 43 } 44 45 for _, tc := range testCases { 46 suite.Run(tc.msg, func() { 47 //suite.SetupTest() 48 tc.prepare() 49 50 msg := govtypes.NewMsgSubmitProposal(proposal, minDeposit, addr1) 51 err := suite.app.Erc20Keeper.CheckMsgSubmitProposal(suite.ctx, msg) 52 suite.Require().NoError(err) 53 }) 54 } 55 } 56 57 func (suite *KeeperTestSuite) TestProposal_ProxyContractRedirect() { 58 denom1 := "testdenom1" 59 externalContract := ethcmn.BigToAddress(big.NewInt(2)) 60 addr1 := ethcmn.BytesToAddress([]byte{0x0}).Bytes() 61 62 proposal := types.NewProxyContractRedirectProposal( 63 "default title", 64 "default description", 65 denom1, 66 0, 67 &externalContract, 68 ) 69 70 minDeposit := suite.app.Erc20Keeper.GetMinDeposit(suite.ctx, proposal) 71 require.Equal(suite.T(), sdk.SysCoins{sdk.NewDecCoin(sdk.DefaultBondDenom, sdk.NewInt(100))}, minDeposit) 72 73 maxDepositPeriod := suite.app.Erc20Keeper.GetMaxDepositPeriod(suite.ctx, proposal) 74 require.Equal(suite.T(), time.Hour*24, maxDepositPeriod) 75 76 votingPeriod := suite.app.Erc20Keeper.GetVotingPeriod(suite.ctx, proposal) 77 require.Equal(suite.T(), time.Hour*72, votingPeriod) 78 79 testCases := []struct { 80 msg string 81 prepare func() 82 }{ 83 { 84 "pass check", 85 func() {}, 86 }, 87 } 88 89 for _, tc := range testCases { 90 suite.Run(tc.msg, func() { 91 //suite.SetupTest() 92 tc.prepare() 93 94 msg := govtypes.NewMsgSubmitProposal(proposal, minDeposit, addr1) 95 err := suite.app.Erc20Keeper.CheckMsgSubmitProposal(suite.ctx, msg) 96 suite.Require().NoError(err) 97 }) 98 } 99 } 100 101 func (suite *KeeperTestSuite) TestProposal_ContractTemplateProposal() { 102 addr1 := ethcmn.BytesToAddress([]byte{0x0}).Bytes() 103 proposal := types.NewContractTemplateProposal( 104 "default title", 105 "default description", 106 types.ProposalTypeContextTemplateImpl, 107 "empty", 108 ) 109 110 minDeposit := suite.app.Erc20Keeper.GetMinDeposit(suite.ctx, proposal) 111 require.Equal(suite.T(), sdk.SysCoins{sdk.NewDecCoin(sdk.DefaultBondDenom, sdk.NewInt(100))}, minDeposit) 112 113 maxDepositPeriod := suite.app.Erc20Keeper.GetMaxDepositPeriod(suite.ctx, proposal) 114 require.Equal(suite.T(), time.Hour*24, maxDepositPeriod) 115 116 votingPeriod := suite.app.Erc20Keeper.GetVotingPeriod(suite.ctx, proposal) 117 require.Equal(suite.T(), time.Hour*72, votingPeriod) 118 119 testCases := []struct { 120 msg string 121 prepare func() 122 }{ 123 { 124 "pass check", 125 func() {}, 126 }, 127 } 128 129 for _, tc := range testCases { 130 suite.Run(tc.msg, func() { 131 //suite.SetupTest() 132 tc.prepare() 133 134 msg := govtypes.NewMsgSubmitProposal(proposal, minDeposit, addr1) 135 err := suite.app.Erc20Keeper.CheckMsgSubmitProposal(suite.ctx, msg) 136 suite.Require().NoError(err) 137 }) 138 } 139 }