Skip to content

Commit

Permalink
Verify genesis import data
Browse files Browse the repository at this point in the history
  • Loading branch information
alpe committed Jul 20, 2020
1 parent 5792826 commit 16f6a28
Showing 1 changed file with 44 additions and 10 deletions.
54 changes: 44 additions & 10 deletions x/wasm/internal/keeper/genesis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -438,24 +438,58 @@ func TestImportContractWithCodeHistoryReset(t *testing.T) {
keeper, ctx, _, dstCleanup := setupKeeper(t)
defer dstCleanup()

ctx = ctx.WithBlockHeight(0).WithGasMeter(sdk.NewInfiniteGasMeter())
var importState wasmTypes.GenesisState
err = json.Unmarshal([]byte(fmt.Sprintf(genesis, base64.StdEncoding.EncodeToString(wasmCode))), &importState)
require.NoError(t, err)
require.NoError(t, importState.ValidateBasic())

// when
InitGenesis(ctx, keeper, importState)

contractAddr, err := sdk.AccAddressFromBech32("cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5")
// verify wasm code
gotWasmCode, err := keeper.GetByteCode(ctx, 1)
require.NoError(t, err)
contractInfo := keeper.GetContractInfo(ctx, contractAddr)
require.NotNil(t, contractInfo)
require.Len(t, contractInfo.ContractCodeHistory, 1)
exp := []types.ContractCodeHistoryEntry{{
Operation: types.GenesisContractCodeHistoryType,
CodeID: 1,
Updated: types.NewAbsoluteTxPosition(ctx),
},
assert.Equal(t, wasmCode, gotWasmCode)

// verify code info
gotCodeInfo := keeper.GetCodeInfo(ctx, 1)
require.NotNil(t, gotCodeInfo)
codeCreatorAddr, _ := sdk.AccAddressFromBech32("cosmos1qtu5n0cnhfkjj6l2rq97hmky9fd89gwca9yarx")
codeHash := sha256.Sum256(wasmCode)
expCodeInfo := types.CodeInfo{
CodeHash: codeHash[:],
Creator: codeCreatorAddr,
Source: "https://example.com",
Builder: "foo/bar:tag",
InstantiateConfig: wasmTypes.AccessConfig{
Type: types.OnlyAddress,
Address: codeCreatorAddr,
},
}
assert.Equal(t, expCodeInfo, *gotCodeInfo)

// verify contract
contractAddr, _ := sdk.AccAddressFromBech32("cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5")
gotContractInfo := keeper.GetContractInfo(ctx, contractAddr)
require.NotNil(t, gotContractInfo)
contractCreatorAddr, _ := sdk.AccAddressFromBech32("cosmos13x849jzd03vne42ynpj25hn8npjecxqrjghd8x")
adminAddr, _ := sdk.AccAddressFromBech32("cosmos1h5t8zxmjr30e9dqghtlpl40f2zz5cgey6esxtn")

expContractInfo := types.ContractInfo{
CodeID: 1,
Creator: contractCreatorAddr,
Admin: adminAddr,
Label: "ȀĴnZV芢毤",
Created: &types.AbsoluteTxPosition{BlockHeight: 0, TxIndex: 0},
ContractCodeHistory: []types.ContractCodeHistoryEntry{{
Operation: types.GenesisContractCodeHistoryType,
CodeID: 1,
Updated: types.NewAbsoluteTxPosition(ctx),
},
},
}
assert.Equal(t, exp, contractInfo.ContractCodeHistory)
assert.Equal(t, expContractInfo, *gotContractInfo)
}

func setupKeeper(t *testing.T) (Keeper, sdk.Context, []sdk.StoreKey, func()) {
Expand Down

0 comments on commit 16f6a28

Please sign in to comment.