diff --git a/lite2/provider/http/http.go b/lite2/provider/http/http.go index dff5e4d1d..a7d8534b4 100644 --- a/lite2/provider/http/http.go +++ b/lite2/provider/http/http.go @@ -26,13 +26,19 @@ type http struct { chainID string } -// New creates a HTTP provider, which is using the rpchttp.HTTP -// client under the hood. +// New creates a HTTP provider, which is using the rpchttp.HTTP client under the +// hood. If no scheme is provided in the remote URL, http will be used by default. func New(chainID, remote string) (provider.Provider, error) { + // ensure URL scheme is set (default HTTP) when not provided + if !strings.Contains(remote, "://") { + remote = "http://" + remote + } + httpClient, err := rpchttp.New(remote, "/websocket") if err != nil { return nil, err } + return NewWithClient(chainID, httpClient), nil } diff --git a/lite2/provider/http/http_test.go b/lite2/provider/http/http_test.go index 73706434b..b07dbb9ff 100644 --- a/lite2/provider/http/http_test.go +++ b/lite2/provider/http/http_test.go @@ -1,6 +1,7 @@ package http_test import ( + "fmt" "os" "testing" @@ -8,12 +9,27 @@ import ( "github.com/stretchr/testify/require" "github.com/tendermint/tendermint/abci/example/kvstore" + "github.com/tendermint/tendermint/lite2/provider/http" litehttp "github.com/tendermint/tendermint/lite2/provider/http" rpcclient "github.com/tendermint/tendermint/rpc/client" rpctest "github.com/tendermint/tendermint/rpc/test" "github.com/tendermint/tendermint/types" ) +func TestNewProvider(t *testing.T) { + c, err := http.New("chain-test", "192.168.0.1:26657") + require.NoError(t, err) + require.Equal(t, fmt.Sprintf("%s", c), "http{http://192.168.0.1:26657}") + + c, err = http.New("chain-test", "http://153.200.0.1:26657") + require.NoError(t, err) + require.Equal(t, fmt.Sprintf("%s", c), "http{http://153.200.0.1:26657}") + + c, err = http.New("chain-test", "153.200.0.1") + require.NoError(t, err) + require.Equal(t, fmt.Sprintf("%s", c), "http{http://153.200.0.1}") +} + func TestMain(m *testing.M) { app := kvstore.NewApplication() node := rpctest.StartTendermint(app)