Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions x/tokenfactory/keeper/admins_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,14 @@ func (suite *KeeperTestSuite) TestAdminMsgs() {
queryRes, err := suite.queryClient.DenomAuthorityMetadata(suite.Ctx.Context(), &types.QueryDenomAuthorityMetadataRequest{
Denom: suite.defaultDenom,
})
suite.App.BankKeeper.WriteDeferredOperations(suite.Ctx)
suite.Require().NoError(err)
suite.Require().Equal(suite.TestAccs[0].String(), queryRes.AuthorityMetadata.Admin)

// Test minting to admins own account
_, err = suite.msgServer.Mint(sdk.WrapSDKContext(suite.Ctx), types.NewMsgMint(suite.TestAccs[0].String(), sdk.NewInt64Coin(suite.defaultDenom, 10)))
suite.App.BankKeeper.WriteDeferredOperations(suite.Ctx)

addr0bal += 10
suite.Require().NoError(err)
suite.Require().True(suite.App.BankKeeper.GetBalance(suite.Ctx, suite.TestAccs[0], suite.defaultDenom).Amount.Int64() == addr0bal, suite.App.BankKeeper.GetBalance(suite.Ctx, suite.TestAccs[0], suite.defaultDenom))
Expand All @@ -34,12 +37,16 @@ func (suite *KeeperTestSuite) TestAdminMsgs() {

// Test burning from own account
_, err = suite.msgServer.Burn(sdk.WrapSDKContext(suite.Ctx), types.NewMsgBurn(suite.TestAccs[0].String(), sdk.NewInt64Coin(suite.defaultDenom, 5)))
suite.App.BankKeeper.WriteDeferredOperations(suite.Ctx)

addr0bal -= 5
suite.Require().NoError(err)
suite.Require().True(suite.App.BankKeeper.GetBalance(suite.Ctx, suite.TestAccs[1], suite.defaultDenom).Amount.Int64() == addr1bal)

// Test Change Admin
_, err = suite.msgServer.ChangeAdmin(sdk.WrapSDKContext(suite.Ctx), types.NewMsgChangeAdmin(suite.TestAccs[0].String(), suite.defaultDenom, suite.TestAccs[1].String()))
suite.App.BankKeeper.WriteDeferredOperations(suite.Ctx)

queryRes, err = suite.queryClient.DenomAuthorityMetadata(suite.Ctx.Context(), &types.QueryDenomAuthorityMetadataRequest{
Denom: suite.defaultDenom,
})
Expand All @@ -48,16 +55,22 @@ func (suite *KeeperTestSuite) TestAdminMsgs() {

// Make sure old admin can no longer do actions
_, err = suite.msgServer.Burn(sdk.WrapSDKContext(suite.Ctx), types.NewMsgBurn(suite.TestAccs[0].String(), sdk.NewInt64Coin(suite.defaultDenom, 5)))
suite.App.BankKeeper.WriteDeferredOperations(suite.Ctx)

suite.Require().Error(err)

// Make sure the new admin works
_, err = suite.msgServer.Mint(sdk.WrapSDKContext(suite.Ctx), types.NewMsgMint(suite.TestAccs[1].String(), sdk.NewInt64Coin(suite.defaultDenom, 5)))
suite.App.BankKeeper.WriteDeferredOperations(suite.Ctx)

addr1bal += 5
suite.Require().NoError(err)
suite.Require().True(suite.App.BankKeeper.GetBalance(suite.Ctx, suite.TestAccs[1], suite.defaultDenom).Amount.Int64() == addr1bal)

// Try setting admin to empty
_, err = suite.msgServer.ChangeAdmin(sdk.WrapSDKContext(suite.Ctx), types.NewMsgChangeAdmin(suite.TestAccs[1].String(), suite.defaultDenom, ""))
suite.App.BankKeeper.WriteDeferredOperations(suite.Ctx)

suite.Require().NoError(err)
queryRes, err = suite.queryClient.DenomAuthorityMetadata(suite.Ctx.Context(), &types.QueryDenomAuthorityMetadataRequest{
Denom: suite.defaultDenom,
Expand Down Expand Up @@ -108,6 +121,8 @@ func (suite *KeeperTestSuite) TestMintDenom() {
suite.Run(fmt.Sprintf("Case %s", tc.desc), func() {
// Test minting to admins own account
_, err := suite.msgServer.Mint(sdk.WrapSDKContext(suite.Ctx), types.NewMsgMint(tc.admin, sdk.NewInt64Coin(tc.mintDenom, 10)))
suite.App.BankKeeper.WriteDeferredOperations(suite.Ctx)

if tc.valid {
addr0bal += 10
suite.Require().NoError(err)
Expand All @@ -127,6 +142,8 @@ func (suite *KeeperTestSuite) TestBurnDenom() {

// mint 10 default token for testAcc[0]
suite.msgServer.Mint(sdk.WrapSDKContext(suite.Ctx), types.NewMsgMint(suite.TestAccs[0].String(), sdk.NewInt64Coin(suite.defaultDenom, 10)))
suite.App.BankKeeper.WriteDeferredOperations(suite.Ctx)

addr0bal += 10

for _, tc := range []struct {
Expand Down Expand Up @@ -168,6 +185,8 @@ func (suite *KeeperTestSuite) TestBurnDenom() {
suite.Run(fmt.Sprintf("Case %s", tc.desc), func() {
// Test minting to admins own account
_, err := suite.msgServer.Burn(sdk.WrapSDKContext(suite.Ctx), types.NewMsgBurn(tc.admin, sdk.NewInt64Coin(tc.burnDenom, 10)))
suite.App.BankKeeper.WriteDeferredOperations(suite.Ctx)

if tc.valid {
addr0bal -= 10
suite.Require().NoError(err)
Expand Down Expand Up @@ -228,14 +247,19 @@ func (suite *KeeperTestSuite) TestChangeAdminDenom() {

// Create a denom and mint
res, err := suite.msgServer.CreateDenom(sdk.WrapSDKContext(suite.Ctx), types.NewMsgCreateDenom(suite.TestAccs[0].String(), "bitcoin"))
suite.App.BankKeeper.WriteDeferredOperations(suite.Ctx)
suite.Require().NoError(err)

testDenom := res.GetNewTokenDenom()

_, err = suite.msgServer.Mint(sdk.WrapSDKContext(suite.Ctx), types.NewMsgMint(suite.TestAccs[0].String(), sdk.NewInt64Coin(testDenom, 10)))
suite.App.BankKeeper.WriteDeferredOperations(suite.Ctx)

suite.Require().NoError(err)

_, err = suite.msgServer.ChangeAdmin(sdk.WrapSDKContext(suite.Ctx), tc.msgChangeAdmin(testDenom))
suite.App.BankKeeper.WriteDeferredOperations(suite.Ctx)

if tc.expectedChangeAdminPass {
suite.Require().NoError(err)
} else {
Expand All @@ -258,6 +282,8 @@ func (suite *KeeperTestSuite) TestChangeAdminDenom() {
// we test mint to test if admin authority is performed properly after admin change.
if tc.msgMint != nil {
_, err := suite.msgServer.Mint(sdk.WrapSDKContext(suite.Ctx), tc.msgMint(testDenom))
suite.App.BankKeeper.WriteDeferredOperations(suite.Ctx)

if tc.expectedMintPass {
suite.Require().NoError(err)
} else {
Expand Down