Skip to content

Commit

Permalink
add test
Browse files Browse the repository at this point in the history
  • Loading branch information
GNaD13 committed Dec 16, 2024
1 parent c120259 commit 933ac38
Showing 1 changed file with 81 additions and 0 deletions.
81 changes: 81 additions & 0 deletions x/wasm/keeper/msg_server_test.go
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
package keeper

import (
"encoding/json"
"os"
"testing"

tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
dbm "github.com/cosmos/cosmos-db"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"

"cosmossdk.io/log"
"cosmossdk.io/store"
storemetrics "cosmossdk.io/store/metrics"

sdk "github.com/cosmos/cosmos-sdk/types"
sdktx "github.com/cosmos/cosmos-sdk/types/tx"

"github.com/CosmWasm/wasmd/x/wasm/types"
)
Expand Down Expand Up @@ -57,3 +61,80 @@ func TestSelectAuthorizationPolicy(t *testing.T) {
})
}
}

func TestSetGaslessAndUnsetGasLessProposal(t *testing.T) {
ctx, keepers := CreateTestInput(t, false, AvailableCapabilities)
wasmKeeper := keepers.WasmKeeper
govKeeper := keepers.GovKeeper

myAddress := DeterministicAccountAddress(t, 1)

wasmKeeper.SetParams(ctx, types.Params{
CodeUploadAccess: types.AllowEverybody,
InstantiateDefaultPermission: types.AccessTypeEverybody,
})

wasmCode, err := os.ReadFile("./testdata/hackatom.wasm")
require.NoError(t, err)

codeInfo := types.CodeInfoFixture(types.WithSHA256CodeHash(wasmCode), func(codeInfo *types.CodeInfo) {
codeInfo.Creator = sdk.AccAddress(myAddress).String()
})
err = wasmKeeper.importCode(ctx, 1, codeInfo, wasmCode)
require.NoError(t, err)

// instantiate contract
_, bob := keyPubAddr()
initMsg := HackatomExampleInitMsg{
Verifier: myAddress,
Beneficiary: bob,
}
initMsgBz, err := json.Marshal(initMsg)
require.NoError(t, err)
contractAddress, _, err := wasmKeeper.instantiate(ctx, 1, myAddress, myAddress, initMsgBz, "labels", nil, wasmKeeper.ClassicAddressGenerator(), DefaultAuthorizationPolicy{})
require.NoError(t, err)

// Test SetGasLess
// store proposal
em := sdk.NewEventManager()
msgSetGasLessProposal := &types.MsgSetGaslessContracts{
Authority: wasmKeeper.GetAuthority(),
Contracts: []string{contractAddress.String()},
}
storedProposal, err := govKeeper.SubmitProposal(ctx, []sdk.Msg{msgSetGasLessProposal}, "metadata", "title", "sumary", myAddress, true)
require.NoError(t, err)

// execute proposal
msgs, err := sdktx.GetMsgs(storedProposal.Messages, "sdk.MsgProposal")
require.NoError(t, err)

handler := govKeeper.Router().Handler(msgs[0])
result, err := handler(ctx.WithEventManager(em), msgs[0])
require.NoError(t, err)
require.NotEmpty(t, result)

// check store
isGasLess := wasmKeeper.IsGasless(ctx, contractAddress)
require.True(t, isGasLess)

// Test UnsetGasLess
msgUnsetGasLessProposal := &types.MsgUnsetGaslessContracts{
Authority: wasmKeeper.GetAuthority(),
Contracts: []string{contractAddress.String()},
}
storedProposal, err = govKeeper.SubmitProposal(ctx, []sdk.Msg{msgUnsetGasLessProposal}, "metadata", "title", "sumary", myAddress, true)
require.NoError(t, err)

// execute proposal
msgs, err = sdktx.GetMsgs(storedProposal.Messages, "sdk.MsgProposal")
require.NoError(t, err)

handler = govKeeper.Router().Handler(msgs[0])
result, err = handler(ctx.WithEventManager(em), msgs[0])
require.NoError(t, err)
require.NotEmpty(t, result)

// check store
isGasLess = wasmKeeper.IsGasless(ctx, contractAddress)
require.False(t, isGasLess)
}

0 comments on commit 933ac38

Please sign in to comment.