Some checks failed
CodeQL / Analyze (push) Waiting to run
golangci-lint / lint (push) Waiting to run
Tests / Code Coverage / build (amd64) (push) Waiting to run
Tests / Code Coverage / build (arm64) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[additional-args:-tags="test_e2e" name:e2e path:./e2e]) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[name:08-wasm path:./modules/light-clients/08-wasm]) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[name:ibc-go path:.]) (push) Waiting to run
Docker Build & Push Simapp (main) / docker-build (push) Has been cancelled
52 lines
1.8 KiB
Go
52 lines
1.8 KiB
Go
package testing
|
|
|
|
import (
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/cosmos/ibc-go/modules/light-clients/08-wasm/v10/types"
|
|
clienttypes "git.cw.tr/mukan-network/mukan-ibc/modules/core/02-client/types"
|
|
ibctesting "git.cw.tr/mukan-network/mukan-ibc/testing"
|
|
)
|
|
|
|
// WasmEndpoint is a wrapper around the ibctesting pkg Endpoint struct.
|
|
// It will override any functions which require special handling for the wasm client.
|
|
type WasmEndpoint struct {
|
|
*ibctesting.Endpoint
|
|
}
|
|
|
|
// NewWasmEndpoint returns a wasm endpoint with the default ibctesting pkg
|
|
// Endpoint embedded.
|
|
func NewWasmEndpoint(chain *ibctesting.TestChain) *WasmEndpoint {
|
|
return &WasmEndpoint{
|
|
Endpoint: ibctesting.NewDefaultEndpoint(chain),
|
|
}
|
|
}
|
|
|
|
// CreateClient creates an wasm client on a mock cometbft chain.
|
|
// The client and consensus states are represented by byte slices
|
|
// and the starting height is 1.
|
|
func (endpoint *WasmEndpoint) CreateClient() error {
|
|
checksum, err := types.CreateChecksum(Code)
|
|
require.NoError(endpoint.Chain.TB, err)
|
|
|
|
wrappedClientStateBz := clienttypes.MustMarshalClientState(endpoint.Chain.App.AppCodec(), CreateMockTendermintClientState(clienttypes.NewHeight(1, 5)))
|
|
wrappedClientConsensusStateBz := clienttypes.MustMarshalConsensusState(endpoint.Chain.App.AppCodec(), MockTendermintClientConsensusState)
|
|
|
|
clientState := types.NewClientState(wrappedClientStateBz, checksum, clienttypes.NewHeight(0, 1))
|
|
consensusState := types.NewConsensusState(wrappedClientConsensusStateBz)
|
|
|
|
msg, err := clienttypes.NewMsgCreateClient(
|
|
clientState, consensusState, endpoint.Chain.SenderAccount.GetAddress().String(),
|
|
)
|
|
require.NoError(endpoint.Chain.TB, err)
|
|
|
|
res, err := endpoint.Chain.SendMsgs(msg)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
endpoint.ClientID, err = ibctesting.ParseClientIDFromEvents(res.Events)
|
|
require.NoError(endpoint.Chain.TB, err)
|
|
|
|
return nil
|
|
}
|