forked from wormhole-foundation/wormhole
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
bcc1e67
commit 74b1a44
Showing
5 changed files
with
179 additions
and
24 deletions.
There are no files selected for viewing
127 changes: 127 additions & 0 deletions
127
wormchain/x/wormhole/keeper/msg_server_execute_gateway_governance_vaa_test.go
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
package keeper_test | ||
|
||
import ( | ||
"testing" | ||
|
||
sdk "github.com/cosmos/cosmos-sdk/types" | ||
"github.com/stretchr/testify/require" | ||
"github.com/wormhole-foundation/wormchain/x/wormhole/types" | ||
"github.com/wormhole-foundation/wormhole/sdk/vaa" | ||
) | ||
|
||
// TestExecuteGatewayGovernanceVaaUpgrades tests creating and cancelling upgrades | ||
func TestExecuteGatewayGovernanceVaaUpgrades(t *testing.T) { | ||
_, ctx, msgServer, privateKeys, signer, guardianSet := setupWormholeMessageServer(t) | ||
|
||
// Create upgrade payload | ||
payload, err := vaa.BodyGatewayScheduleUpgrade{ | ||
Name: "v5.0.0", | ||
Height: uint64(100), | ||
}.Serialize() | ||
require.NoError(t, err) | ||
|
||
// Generate VAA | ||
v := generateVaa(guardianSet.Index, privateKeys, vaa.ChainID(vaa.GovernanceChain), payload) | ||
vBz, err := v.Marshal() | ||
require.NoError(t, err) | ||
|
||
// Submit upgrade governance VAA | ||
res, err := msgServer.ExecuteGatewayGovernanceVaa(ctx, &types.MsgExecuteGatewayGovernanceVaa{ | ||
Signer: signer.String(), | ||
Vaa: vBz, | ||
}) | ||
require.NoError(t, err) | ||
require.NotNil(t, res) | ||
|
||
// Create cancel upgrade payload | ||
payload, err = vaa.EmptyPayloadVaa(vaa.GatewayModuleStr, vaa.ActionCancelUpgrade, vaa.ChainIDWormchain) | ||
require.NoError(t, err) | ||
|
||
// Generate VAA | ||
v = generateVaa(guardianSet.Index, privateKeys, vaa.ChainID(vaa.GovernanceChain), payload) | ||
vBz, err = v.Marshal() | ||
require.NoError(t, err) | ||
|
||
// Submit cancel upgrade governance VAA | ||
res, err = msgServer.ExecuteGatewayGovernanceVaa(ctx, &types.MsgExecuteGatewayGovernanceVaa{ | ||
Signer: signer.String(), | ||
Vaa: vBz, | ||
}) | ||
require.NoError(t, err) | ||
require.NotNil(t, res) | ||
} | ||
|
||
// TestExecuteGatewayGovernanceVaaSetIbcComposabilityMwContract tests setting the IBC composability contract | ||
func TestExecuteGatewayGovernanceVaaSetIbcComposabilityMwContract(t *testing.T) { | ||
k, ctx, msgServer, privateKeys, signer, guardianSet := setupWormholeMessageServer(t) | ||
|
||
// Get contract bytes | ||
contractAddr := "wormhole1466nf3zuxpya8q9emxukd7vftaf6h4psr0a07srl5zw74zh84yjq4lyjmh" | ||
contractAddrBz, err := sdk.AccAddressFromBech32(contractAddr) | ||
require.NoError(t, err) | ||
|
||
// Create payload | ||
payload, err := vaa.BodyGatewayIbcComposabilityMwContract{ | ||
ContractAddr: [32]byte(contractAddrBz), | ||
}.Serialize() | ||
require.NoError(t, err) | ||
|
||
// Generate VAA | ||
v := generateVaa(guardianSet.Index, privateKeys, vaa.ChainID(vaa.GovernanceChain), payload) | ||
vBz, err := v.Marshal() | ||
require.NoError(t, err) | ||
|
||
// Submit governance VAA | ||
res, err := msgServer.ExecuteGatewayGovernanceVaa(ctx, &types.MsgExecuteGatewayGovernanceVaa{ | ||
Signer: signer.String(), | ||
Vaa: vBz, | ||
}) | ||
require.NoError(t, err) | ||
require.NotNil(t, res) | ||
|
||
// Validate the contract was set | ||
contract := k.GetIbcComposabilityMwContract(ctx) | ||
require.Equal(t, contractAddr, contract.ContractAddress) | ||
} | ||
|
||
// TestExecuteGatewayGovernanceVaaUnknownAction tests submitting an unknown action | ||
func TestExecuteGatewayGovernanceVaaUnknownAction(t *testing.T) { | ||
_, ctx, msgServer, privateKeys, signer, guardianSet := setupWormholeMessageServer(t) | ||
|
||
// Create payload | ||
payload, err := vaa.EmptyPayloadVaa(vaa.GatewayModuleStr, vaa.GovernanceAction(100), vaa.ChainIDWormchain) | ||
require.NoError(t, err) | ||
|
||
// Generate VAA | ||
v := generateVaa(guardianSet.Index, privateKeys, vaa.ChainID(vaa.GovernanceChain), payload) | ||
vBz, err := v.Marshal() | ||
require.NoError(t, err) | ||
|
||
// Submit governance VAA | ||
_, err = msgServer.ExecuteGatewayGovernanceVaa(ctx, &types.MsgExecuteGatewayGovernanceVaa{ | ||
Signer: signer.String(), | ||
Vaa: vBz, | ||
}) | ||
require.Error(t, err) | ||
} | ||
|
||
// TestExecuteGatewayGovernanceVaaInvalidVAA tests submitting an invalid VAA | ||
func TestExecuteGatewayGovernanceVaaInvalidVAA(t *testing.T) { | ||
_, ctx, msgServer, _, signer, guardianSet := setupWormholeMessageServer(t) | ||
|
||
// Create payload | ||
payload, err := vaa.EmptyPayloadVaa(vaa.GatewayModuleStr, vaa.ActionCancelUpgrade, vaa.ChainIDWormchain) | ||
require.NoError(t, err) | ||
|
||
// Generate VAA | ||
v := generateVaa(guardianSet.Index, nil, vaa.ChainID(vaa.GovernanceChain), payload) | ||
vBz, err := v.Marshal() | ||
require.NoError(t, err) | ||
|
||
// Submit governance VAA | ||
_, err = msgServer.ExecuteGatewayGovernanceVaa(ctx, &types.MsgExecuteGatewayGovernanceVaa{ | ||
Signer: signer.String(), | ||
Vaa: vBz, | ||
}) | ||
require.Error(t, err) | ||
} |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
44 changes: 44 additions & 0 deletions
44
wormchain/x/wormhole/keeper/wasm_instantiate_allowlist_test.go
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
package keeper_test | ||
|
||
import ( | ||
"testing" | ||
|
||
"github.com/stretchr/testify/require" | ||
keepertest "github.com/wormhole-foundation/wormchain/testutil/keeper" | ||
"github.com/wormhole-foundation/wormchain/x/wormhole/types" | ||
) | ||
|
||
// TestWasmInstantiateAllowlist tests the setting, getting, and removing of allowed addresses | ||
func TestWasmInstantiateAllowlist(t *testing.T) { | ||
k, ctx := keepertest.WormholeKeeper(t) | ||
|
||
// Create entry | ||
entry := types.WasmInstantiateAllowedContractCodeId{ | ||
ContractAddress: "wormhole1du4amsmvx8yqr8whw7qc5m3c0zpwknmzelwqy6", | ||
CodeId: 1, | ||
} | ||
|
||
// Add contract to allow list | ||
k.SetWasmInstantiateAllowlist(ctx, entry) | ||
|
||
// Check if address exists | ||
hasAddr := k.HasWasmInstantiateAllowlist(ctx, entry.ContractAddress, entry.CodeId) | ||
require.True(t, hasAddr) | ||
|
||
// Check faulty address - does not exist | ||
hasAddr = k.HasWasmInstantiateAllowlist(ctx, "invalid", 0) | ||
require.False(t, hasAddr) | ||
|
||
// Get all allowed addresses | ||
addrList := k.GetAllWasmInstiateAllowedAddresses(ctx) | ||
require.Equal(t, 1, len(addrList)) | ||
require.Equal(t, entry.ContractAddress, addrList[0].ContractAddress) | ||
require.Equal(t, entry.CodeId, addrList[0].CodeId) | ||
|
||
// Remove address | ||
k.KeeperDeleteWasmInstantiateAllowlist(ctx, entry) | ||
|
||
// Check if address exists | ||
hasAddr = k.HasWasmInstantiateAllowlist(ctx, entry.ContractAddress, entry.CodeId) | ||
require.False(t, hasAddr) | ||
} |