diff --git a/package.json b/package.json
index 996f37e..f930064 100644
--- a/package.json
+++ b/package.json
@@ -3,29 +3,6 @@
"version": "0.1.0",
"private": true,
"license": "Apache-2.0",
- "dependencies": {
- "@cosmjs/cosmwasm": "^0.24.0-alpha.22",
- "@cosmjs/encoding": "^0.24.0-alpha.22",
- "@cosmjs/launchpad": "^0.24.0-alpha.22",
- "@cosmjs/math": "^0.24.0-alpha.22",
- "@cosmjs/stargate": "^0.24.0-alpha.22",
- "@cosmjs/tendermint-rpc": "^0.24.0-alpha.22",
- "@cosmjs/utils": "^0.24.0-alpha.22",
- "@testing-library/jest-dom": "^5.11.4",
- "@testing-library/react": "^11.1.0",
- "@testing-library/user-event": "^12.1.10",
- "@types/jest": "^26.0.15",
- "@types/node": "^12.0.0",
- "@types/react": "^16.9.53",
- "@types/react-dom": "^16.9.8",
- "react": "^17.0.1",
- "react-dom": "^17.0.1",
- "react-router-dom": "^5.2.0",
- "react-scripts": "4.0.0",
- "tailwindcss": "^1.9.6",
- "typescript": "^4.0.3",
- "web-vitals": "^0.2.4"
- },
"scripts": {
"build:tailwind": "tailwindcss build src/index.css -o src/tailwind.output.css",
"prebuild": "NODE_ENV=production yarn build:tailwind",
@@ -36,6 +13,7 @@
"start:base": "react-scripts start",
"start": "yarn start:musselnet",
"start:musselnet": "REACT_APP_NETWORK=musselnet yarn start:base",
+ "start:oysternet": "REACT_APP_NETWORK=oysternet yarn start:base",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
@@ -54,6 +32,30 @@
"last 1 safari version"
]
},
+ "dependencies": {
+ "@cosmjs/cosmwasm": "^0.25.4",
+ "@cosmjs/encoding": "^0.25.4",
+ "@cosmjs/launchpad": "^0.25.4",
+ "@cosmjs/math": "^0.25.4",
+ "@cosmjs/stargate": "^0.25.4",
+ "@cosmjs/tendermint-rpc": "^0.25.4",
+ "@cosmjs/utils": "^0.25.4",
+ "@testing-library/jest-dom": "^5.11.4",
+ "@testing-library/react": "^11.1.0",
+ "@testing-library/user-event": "^12.1.10",
+ "@types/jest": "^26.0.15",
+ "@types/node": "^12.0.0",
+ "@types/react": "^16.9.53",
+ "@types/react-dom": "^16.9.8",
+ "long": "^4.0.0",
+ "react": "^17.0.1",
+ "react-dom": "^17.0.1",
+ "react-router-dom": "^5.2.0",
+ "react-scripts": "4.0.0",
+ "tailwindcss": "^1.9.6",
+ "typescript": "^4.0.3",
+ "web-vitals": "^0.2.4"
+ },
"devDependencies": {
"@types/react-router-dom": "^5.1.6",
"@typescript-eslint/eslint-plugin": "^4.7.0",
diff --git a/src/App/components/ChannelCounterpartyData.tsx b/src/App/components/ChannelCounterpartyData.tsx
new file mode 100644
index 0000000..e4455ed
--- /dev/null
+++ b/src/App/components/ChannelCounterpartyData.tsx
@@ -0,0 +1,18 @@
+import React from "react";
+
+import { IbcChannelCounterparty } from "../../types/ibc";
+import { style } from "../style";
+
+interface CounterpartyDataProps {
+ readonly counterparty?: IbcChannelCounterparty | null;
+}
+
+export function CounterpartyData({ counterparty }: CounterpartyDataProps): JSX.Element {
+ return (
+
+ Counterparty
+ {counterparty?.portId && Port ID: {counterparty.portId}}
+ {counterparty?.channelId && Channel ID: {counterparty.channelId}}
+
+ );
+}
diff --git a/src/App/components/ConnectionCounterpartyData.tsx b/src/App/components/ConnectionCounterpartyData.tsx
new file mode 100644
index 0000000..5e45de0
--- /dev/null
+++ b/src/App/components/ConnectionCounterpartyData.tsx
@@ -0,0 +1,22 @@
+import { toHex } from "@cosmjs/encoding";
+import React from "react";
+
+import { IbcConnectionCounterparty } from "../../types/ibc";
+import { style } from "../style";
+
+interface CounterpartyDataProps {
+ readonly counterparty?: IbcConnectionCounterparty | null;
+}
+
+export function CounterpartyData({ counterparty }: CounterpartyDataProps): JSX.Element {
+ return (
+
+ Counterparty
+ {counterparty?.clientId && Client ID: {counterparty.clientId}}
+ {counterparty?.connectionId && Connection ID: {counterparty.connectionId}}
+ {counterparty?.prefix?.keyPrefix?.length ? (
+ Prefix: {toHex(counterparty?.prefix?.keyPrefix)}
+ ) : null}
+
+ );
+}
diff --git a/src/App/components/CounterpartyData.tsx b/src/App/components/CounterpartyData.tsx
deleted file mode 100644
index 34e660e..0000000
--- a/src/App/components/CounterpartyData.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import { toHex } from "@cosmjs/encoding";
-import React from "react";
-
-import { IbcChannelCounterparty, IbcConnectionCounterparty } from "../../types/ibc";
-import { style } from "../style";
-
-interface CounterpartyDataProps {
- readonly counterparty?: (IbcConnectionCounterparty & IbcChannelCounterparty) | null;
-}
-
-export function CounterpartyData({ counterparty }: CounterpartyDataProps): JSX.Element {
- return (
-
- Counterparty
- {counterparty?.clientId ? Client ID: {counterparty.clientId} : null}
- {counterparty?.connectionId ? Connection ID: {counterparty.connectionId} : null}
- {counterparty?.prefix?.keyPrefix?.length ? (
- Prefix: {toHex(counterparty?.prefix?.keyPrefix)}
- ) : null}
- {counterparty?.portId ? Port ID: {counterparty.portId} : null}
- {counterparty?.channelId ? Channel ID: {counterparty.channelId} : null}
-
- );
-}
diff --git a/src/App/routes/Acknowledgement/index.tsx b/src/App/routes/Acknowledgement/index.tsx
index b6d7fc6..33f6b66 100644
--- a/src/App/routes/Acknowledgement/index.tsx
+++ b/src/App/routes/Acknowledgement/index.tsx
@@ -25,7 +25,7 @@ export function Acknowledgement(): JSX.Element {
const sequenceNumber = Number.parseInt(sequence, 10);
(async function updateAckResponse() {
- const ackResponse = await getClient().ibc.unverified.packetAcknowledgement(
+ const ackResponse = await getClient().ibc.channel.packetAcknowledgement(
portId,
channelId,
sequenceNumber,
@@ -38,9 +38,9 @@ export function Acknowledgement(): JSX.Element {
Data
- {portId ?
Port ID: {portId} : null}
- {channelId ?
Channel ID: {channelId} : null}
- {sequence ?
Sequence: {sequence} : null}
+ {portId &&
Port ID: {portId}}
+ {channelId &&
Channel ID: {channelId}}
+ {sequence &&
Sequence: {sequence}}
{ackResponse?.acknowledgement ? (
Proof: {ackResponse.proof?.length ? toHex(ackResponse.proof) : "–"}
diff --git a/src/App/routes/Channel/AcknowledgementsList.tsx b/src/App/routes/Channel/AcknowledgementsList.tsx
index 474130e..ed09736 100644
--- a/src/App/routes/Channel/AcknowledgementsList.tsx
+++ b/src/App/routes/Channel/AcknowledgementsList.tsx
@@ -27,11 +27,11 @@ export function AcknowledgementsList({
useEffect(() => {
(async function updatePacketAcknowledgementsResponse() {
- const acketAcknowledgementsResponse = await getClient().ibc.unverified.packetAcknowledgements(
+ const packetAcknowledgementsResponse = await getClient().ibc.channel.packetAcknowledgements(
portId,
channelId,
);
- setPacketAcknowledgementsResponse(acketAcknowledgementsResponse);
+ setPacketAcknowledgementsResponse(packetAcknowledgementsResponse);
})();
}, [getClient, portId, channelId]);
diff --git a/src/App/routes/Channel/ChannelData.tsx b/src/App/routes/Channel/ChannelData.tsx
index 182da9e..858929c 100644
--- a/src/App/routes/Channel/ChannelData.tsx
+++ b/src/App/routes/Channel/ChannelData.tsx
@@ -4,7 +4,7 @@ import React, { useEffect, useState } from "react";
import { useClient } from "../../../contexts/ClientContext";
import { IbcChannelResponse } from "../../../types/ibc";
import { printIbcChannelState, printIbcOrder } from "../../../utils/ibc";
-import { CounterpartyData } from "../../components/CounterpartyData";
+import { CounterpartyData } from "../../components/ChannelCounterpartyData";
import { HeightData } from "../../components/HeightData";
import { style } from "../../style";
@@ -19,7 +19,7 @@ export function ChannelData({ portId, channelId }: ChannelDataProps): JSX.Elemen
useEffect(() => {
(async function updateChannelResponse() {
- const channelResponse = await getClient().ibc.unverified.channel(portId, channelId);
+ const channelResponse = await getClient().ibc.channel.channel(portId, channelId);
setChannelResponse(channelResponse);
})();
}, [getClient, portId, channelId]);
@@ -27,8 +27,8 @@ export function ChannelData({ portId, channelId }: ChannelDataProps): JSX.Elemen
return channelResponse?.channel ? (
Data
- {portId ?
Port ID: {portId}
: null}
- {channelId ?
Channel ID: {channelId}
: null}
+ {portId &&
Port ID: {portId}
}
+ {channelId &&
Channel ID: {channelId}
}
Proof: {channelResponse.proof?.length ? toHex(channelResponse.proof) : "–"}
@@ -39,7 +39,7 @@ export function ChannelData({ portId, channelId }: ChannelDataProps): JSX.Elemen
Ordering: {channelResponse.channel.ordering ? printIbcOrder(channelResponse.channel.ordering) : "–"}
-
+
Connection hops:{" "}
{channelResponse.channel.connectionHops ? channelResponse.channel.connectionHops.join(", ") : "–"}
diff --git a/src/App/routes/Channel/CommitmentsList.tsx b/src/App/routes/Channel/CommitmentsList.tsx
index 84a775d..e1ffd7f 100644
--- a/src/App/routes/Channel/CommitmentsList.tsx
+++ b/src/App/routes/Channel/CommitmentsList.tsx
@@ -21,7 +21,7 @@ export function CommitmentsList({ connectionId, portId, channelId }: Commitments
useEffect(() => {
(async function updatePacketCommitmentsResponse() {
- const packetCommitmentsResponse = await getClient().ibc.unverified.packetCommitments(portId, channelId);
+ const packetCommitmentsResponse = await getClient().ibc.channel.packetCommitments(portId, channelId);
setPacketCommitmentsResponse(packetCommitmentsResponse);
})();
}, [getClient, portId, channelId]);
diff --git a/src/App/routes/Channel/NextSequenceReceiveData.tsx b/src/App/routes/Channel/NextSequenceReceiveData.tsx
index 4d4caad..f9c5429 100644
--- a/src/App/routes/Channel/NextSequenceReceiveData.tsx
+++ b/src/App/routes/Channel/NextSequenceReceiveData.tsx
@@ -17,7 +17,7 @@ export function NextSequenceReceiveData({ portId, channelId }: NextSequenceRecei
useEffect(() => {
(async function updateNextSequenceReceiveResponse() {
- const nextSequenceReceiveResponse = await getClient().ibc.unverified.nextSequenceReceive(
+ const nextSequenceReceiveResponse = await getClient().ibc.channel.nextSequenceReceive(
portId,
channelId,
);
diff --git a/src/App/routes/Channel/UnreceivedAcksList.tsx b/src/App/routes/Channel/UnreceivedAcksList.tsx
index d62120d..7a94102 100644
--- a/src/App/routes/Channel/UnreceivedAcksList.tsx
+++ b/src/App/routes/Channel/UnreceivedAcksList.tsx
@@ -16,7 +16,7 @@ export function UnreceivedAcksList({ portId, channelId, sequence }: UnreceivedAc
useEffect(() => {
(async function updateUnreceivedAcksResponse() {
- const unreceivedAcksResponse = await getClient().ibc.unverified.unreceivedAcks(portId, channelId, [
+ const unreceivedAcksResponse = await getClient().ibc.channel.unreceivedAcks(portId, channelId, [
sequence,
]);
setUnreceivedAcksResponse(unreceivedAcksResponse);
diff --git a/src/App/routes/Channel/UnreceivedPacketsList.tsx b/src/App/routes/Channel/UnreceivedPacketsList.tsx
index 7888472..66562d1 100644
--- a/src/App/routes/Channel/UnreceivedPacketsList.tsx
+++ b/src/App/routes/Channel/UnreceivedPacketsList.tsx
@@ -20,11 +20,9 @@ export function UnreceivedPacketsList({
useEffect(() => {
(async function updateUnreceivedPacketsResponse() {
- const unreceivedPacketsResponse = await getClient().ibc.unverified.unreceivedPackets(
- portId,
- channelId,
- [sequence],
- );
+ const unreceivedPacketsResponse = await getClient().ibc.channel.unreceivedPackets(portId, channelId, [
+ sequence,
+ ]);
setUnreceivedPacketsResponse(unreceivedPacketsResponse);
})();
}, [getClient, portId, channelId, sequence]);
diff --git a/src/App/routes/Commitment/index.tsx b/src/App/routes/Commitment/index.tsx
index 8d6310f..61225bb 100644
--- a/src/App/routes/Commitment/index.tsx
+++ b/src/App/routes/Commitment/index.tsx
@@ -1,4 +1,5 @@
import { toHex } from "@cosmjs/encoding";
+import Long from "long";
import React, { useEffect, useState } from "react";
import { useParams } from "react-router-dom";
@@ -25,10 +26,10 @@ export function Commitment(): JSX.Element {
const sequenceNumber = Number.parseInt(sequence, 10);
(async function updateCommitmentResponse() {
- const commitmentResponse = await getClient().ibc.unverified.packetCommitment(
+ const commitmentResponse = await getClient().ibc.channel.packetCommitment(
portId,
channelId,
- sequenceNumber,
+ Long.fromNumber(sequenceNumber),
);
setCommitmentResponse(commitmentResponse);
})();
@@ -38,9 +39,9 @@ export function Commitment(): JSX.Element {
Data
- {portId ?
Port ID: {portId} : null}
- {channelId ?
Channel ID: {channelId} : null}
- {sequence ?
Sequence: {sequence} : null}
+ {portId &&
Port ID: {portId}}
+ {channelId &&
Channel ID: {channelId}}
+ {sequence &&
Sequence: {sequence}}
{commitmentResponse?.commitment ? (
Proof: {commitmentResponse.proof?.length ? toHex(commitmentResponse.proof) : "–"}
diff --git a/src/App/routes/Connection/ChannelsList.tsx b/src/App/routes/Connection/ChannelsList.tsx
index 38bad3f..affe4cf 100644
--- a/src/App/routes/Connection/ChannelsList.tsx
+++ b/src/App/routes/Connection/ChannelsList.tsx
@@ -22,7 +22,7 @@ export function ChannelsList({ connectionId }: ChannelsListProps): JSX.Element {
useEffect(() => {
(async function updateChannelsResponse() {
- const channelsResponse = await getClient().ibc.unverified.connectionChannels(connectionId);
+ const channelsResponse = await getClient().ibc.channel.connectionChannels(connectionId);
setChannelsResponse(channelsResponse);
})();
}, [connectionId, getClient]);
@@ -30,7 +30,7 @@ export function ChannelsList({ connectionId }: ChannelsListProps): JSX.Element {
async function loadMoreChannels(): Promise
{
if (!channelsResponse?.pagination?.nextKey?.length) return;
- const newChannelsResponse = await getClient().ibc.unverified.connectionChannels(
+ const newChannelsResponse = await getClient().ibc.channel.connectionChannels(
connectionId,
channelsResponse.pagination.nextKey,
);
diff --git a/src/App/routes/Connection/ConnectionData.tsx b/src/App/routes/Connection/ConnectionData.tsx
index 27a8dbd..4caffdb 100644
--- a/src/App/routes/Connection/ConnectionData.tsx
+++ b/src/App/routes/Connection/ConnectionData.tsx
@@ -4,7 +4,7 @@ import React, { useEffect, useState } from "react";
import { useClient } from "../../../contexts/ClientContext";
import { IbcConnectionResponse } from "../../../types/ibc";
import { printIbcConnectionState } from "../../../utils/ibc";
-import { CounterpartyData } from "../../components/CounterpartyData";
+import { CounterpartyData } from "../../components/ConnectionCounterpartyData";
import { HeightData } from "../../components/HeightData";
import { style } from "../../style";
@@ -18,7 +18,7 @@ export function ConnectionData({ connectionId }: ConnectionDataProps): JSX.Eleme
useEffect(() => {
(async function updateConnectionResponse() {
- const connectionResponse = await getClient().ibc.unverified.connection(connectionId);
+ const connectionResponse = await getClient().ibc.connection.connection(connectionId);
setConnectionResponse(connectionResponse);
})();
}, [getClient, connectionId]);
@@ -26,7 +26,7 @@ export function ConnectionData({ connectionId }: ConnectionDataProps): JSX.Eleme
return connectionResponse?.connection ? (
Data
- {connectionId ?
Connection ID: {connectionId}
: null}
+ {connectionId &&
Connection ID: {connectionId}
}
Proof: {connectionResponse.proof?.length ? toHex(connectionResponse.proof) : "–"}
@@ -50,7 +50,7 @@ export function ConnectionData({ connectionId }: ConnectionDataProps): JSX.Eleme
) : (
No versions found
)}
-
+
) : (
diff --git a/src/App/routes/Connections/index.tsx b/src/App/routes/Connections/index.tsx
index fdeff7e..eae0b7f 100644
--- a/src/App/routes/Connections/index.tsx
+++ b/src/App/routes/Connections/index.tsx
@@ -30,7 +30,7 @@ export function Connections(): JSX.Element {
useEffect(() => {
(async function updateConnectionsResponse() {
- const connectionsResponse = await getClient().ibc.unverified.connections();
+ const connectionsResponse = await getClient().ibc.connection.connections();
setConnectionsResponse(connectionsResponse);
const nonEmptyClientIds =
@@ -48,7 +48,7 @@ export function Connections(): JSX.Element {
async function loadMoreConnections(): Promise {
if (!connectionsResponse?.pagination?.nextKey?.length) return;
- const newConnectionsResponse = await getClient().ibc.unverified.connections(
+ const newConnectionsResponse = await getClient().ibc.connection.connections(
connectionsResponse.pagination.nextKey,
);
diff --git a/src/config.ts b/src/config.ts
index 9d24d6e..6ea5c43 100644
--- a/src/config.ts
+++ b/src/config.ts
@@ -15,7 +15,11 @@ const musselnet: AppConfig = {
rpcUrl: "https://rpc.musselnet.cosmwasm.com",
};
-const configs: NetworkConfigs = { local, musselnet };
+const oysternet: AppConfig = {
+ rpcUrl: "rpc.oysternet.cosmwasm.com",
+};
+
+const configs: NetworkConfigs = { local, musselnet, oysternet };
function getAppConfig(): AppConfig {
const network = process.env.REACT_APP_NETWORK;
diff --git a/src/contexts/ClientContext.tsx b/src/contexts/ClientContext.tsx
index 26fa069..733b508 100644
--- a/src/contexts/ClientContext.tsx
+++ b/src/contexts/ClientContext.tsx
@@ -1,5 +1,5 @@
import { IbcExtension, QueryClient, setupIbcExtension } from "@cosmjs/stargate";
-import { adaptor34, Client as TendermintClient } from "@cosmjs/tendermint-rpc";
+import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
import React, { useEffect } from "react";
import { config } from "../config";
@@ -21,14 +21,14 @@ const ClientContext = React.createContext(defaultClientContex
export const useClient = (): ClientContextType => React.useContext(ClientContext);
export function ClientProvider({ children }: React.HTMLAttributes): JSX.Element {
- const [tmClient, setTmClient] = React.useState();
+ const [tmClient, setTmClient] = React.useState();
const [ibcClient, setIbcClient] = React.useState();
const [value, setValue] = React.useState(defaultClientContext);
const [clientsAvailable, setClientsAvailable] = React.useState(false);
useEffect(() => {
(async function updateTmClient() {
- const tmClient = await TendermintClient.connect(config.rpcUrl, adaptor34);
+ const tmClient = await Tendermint34Client.connect(config.rpcUrl);
setTmClient(tmClient);
})();
}, []);
diff --git a/src/types/ibc.ts b/src/types/ibc.ts
index fd568f3..e41dc9f 100644
--- a/src/types/ibc.ts
+++ b/src/types/ibc.ts
@@ -1,31 +1,27 @@
-import { codec } from "@cosmjs/stargate";
-
-// IBC common types
-export type IbcConnectionState = codec.ibc.core.connection.v1.State;
-export const IbcConnectionState = codec.ibc.core.connection.v1.State;
-export type IbcConnectionCounterparty = codec.ibc.core.connection.v1.ICounterparty;
-export type IbcChannelState = codec.ibc.core.channel.v1.State;
-export const IbcChannelState = codec.ibc.core.channel.v1.State;
-export type IbcChannelCounterparty = codec.ibc.core.channel.v1.ICounterparty;
-export type IbcOrder = codec.ibc.core.channel.v1.Order;
-export const IbcOrder = codec.ibc.core.channel.v1.Order;
-export type IbcHeight = codec.ibc.core.client.v1.IHeight;
-
-// IBC connection responses
-export type IbcConnectionsResponse = codec.ibc.core.connection.v1.IQueryConnectionsResponse;
-export type IbcClientConnectionsResponse = codec.ibc.core.connection.v1.IQueryClientConnectionsResponse;
-export type IbcConnectionResponse = codec.ibc.core.connection.v1.IQueryConnectionResponse;
-
-// IBC channel responses
-export type IbcChannelsResponse = codec.ibc.core.channel.v1.IQueryChannelsResponse;
-export type IbcConnectionChannelsResponse = codec.ibc.core.channel.v1.IQueryConnectionChannelsResponse;
-export type IbcChannelResponse = codec.ibc.core.channel.v1.IQueryChannelResponse;
-
-// IBC packet responses
-export type IbcNextSequenceReceiveResponse = codec.ibc.core.channel.v1.IQueryNextSequenceReceiveResponse;
-export type IbcPacketCommitmentsResponse = codec.ibc.core.channel.v1.IQueryPacketCommitmentsResponse;
-export type IbcPacketCommitmentResponse = codec.ibc.core.channel.v1.IQueryPacketCommitmentResponse;
-export type IbcPacketAcknowledgementsResponse = codec.ibc.core.channel.v1.IQueryPacketAcknowledgementsResponse;
-export type IbcPacketAcknowledgementResponse = codec.ibc.core.channel.v1.IQueryPacketAcknowledgementResponse;
-export type IbcUnreceivedPacketsResponse = codec.ibc.core.channel.v1.IQueryUnreceivedPacketsResponse;
-export type IbcUnreceivedAcksResponse = codec.ibc.core.channel.v1.IQueryUnreceivedAcksResponse;
+export {
+ Counterparty as IbcChannelCounterparty,
+ Order as IbcOrder,
+ State as IbcChannelState,
+} from "@cosmjs/stargate/build/codec/ibc/core/channel/v1/channel";
+export {
+ QueryChannelResponse as IbcChannelResponse,
+ QueryChannelsResponse as IbcChannelsResponse,
+ QueryConnectionChannelsResponse as IbcConnectionChannelsResponse,
+ QueryNextSequenceReceiveResponse as IbcNextSequenceReceiveResponse,
+ QueryPacketAcknowledgementResponse as IbcPacketAcknowledgementResponse,
+ QueryPacketAcknowledgementsResponse as IbcPacketAcknowledgementsResponse,
+ QueryPacketCommitmentResponse as IbcPacketCommitmentResponse,
+ QueryPacketCommitmentsResponse as IbcPacketCommitmentsResponse,
+ QueryUnreceivedAcksResponse as IbcUnreceivedAcksResponse,
+ QueryUnreceivedPacketsResponse as IbcUnreceivedPacketsResponse,
+} from "@cosmjs/stargate/build/codec/ibc/core/channel/v1/query";
+export { Height as IbcHeight } from "@cosmjs/stargate/build/codec/ibc/core/client/v1/client";
+export {
+ Counterparty as IbcConnectionCounterparty,
+ State as IbcConnectionState,
+} from "@cosmjs/stargate/build/codec/ibc/core/connection/v1/connection";
+export {
+ QueryClientConnectionsResponse as IbcClientConnectionsResponse,
+ QueryConnectionResponse as IbcConnectionResponse,
+ QueryConnectionsResponse as IbcConnectionsResponse,
+} from "@cosmjs/stargate/build/codec/ibc/core/connection/v1/query";
diff --git a/yarn.lock b/yarn.lock
index 5496389..b95e086 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1032,140 +1032,149 @@
ripemd160 "^2.0.2"
sha.js "^2.4.11"
-"@cosmjs/cosmwasm-launchpad@^0.24.0-alpha.22":
- version "0.24.0-alpha.22"
- resolved "https://registry.yarnpkg.com/@cosmjs/cosmwasm-launchpad/-/cosmwasm-launchpad-0.24.0-alpha.22.tgz#5c984daeee950173de2cc2ab0fed45c6fd7949ef"
- integrity sha512-AfugGhIa0tmWYxwBLk2IZlPJgHL/J/tudhQz9w/A+nazamRJhzaEi5KSUx6I7KpfH4yTO5YiM4yyQyO3IRJo5Q==
- dependencies:
- "@cosmjs/crypto" "^0.24.0-alpha.22"
- "@cosmjs/encoding" "^0.24.0-alpha.22"
- "@cosmjs/launchpad" "^0.24.0-alpha.22"
- "@cosmjs/math" "^0.24.0-alpha.22"
- "@cosmjs/utils" "^0.24.0-alpha.22"
+"@cosmjs/amino@^0.25.4":
+ version "0.25.4"
+ resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.25.4.tgz#478da0e5933b50d22e412e17dcf6784eeeb7d937"
+ integrity sha512-S22PlzC/VoJirv5UpDYe4XIVtOHKHxGLYgpgBkv10P4vpEhD872R0G7dRfiZZ35lMbu0+vvJxn3e/pEOEVGcuA==
+ dependencies:
+ "@cosmjs/crypto" "^0.25.4"
+ "@cosmjs/encoding" "^0.25.4"
+ "@cosmjs/math" "^0.25.4"
+ "@cosmjs/utils" "^0.25.4"
+
+"@cosmjs/cosmwasm-launchpad@^0.25.4":
+ version "0.25.4"
+ resolved "https://registry.yarnpkg.com/@cosmjs/cosmwasm-launchpad/-/cosmwasm-launchpad-0.25.4.tgz#7a16ecc7101afbeb7ef9406e50d2220c4ceaab57"
+ integrity sha512-5gw3T6U1Q1DJqV8Xgmp4Q+5oTUZh1FFYHua0cLM+zVabFFgIBVaJIR4LsqiDI/acK3iacJxyEuDe7wlDf/fnEw==
+ dependencies:
+ "@cosmjs/crypto" "^0.25.4"
+ "@cosmjs/encoding" "^0.25.4"
+ "@cosmjs/launchpad" "^0.25.4"
+ "@cosmjs/math" "^0.25.4"
+ "@cosmjs/utils" "^0.25.4"
pako "^2.0.2"
-"@cosmjs/cosmwasm@^0.24.0-alpha.22":
- version "0.24.0-alpha.22"
- resolved "https://registry.yarnpkg.com/@cosmjs/cosmwasm/-/cosmwasm-0.24.0-alpha.22.tgz#0565ce361295b954c531ac8622589c3f69bfc358"
- integrity sha512-G7NAmh//kP2rP9o2T+abD/yDBRsySMo3EyoXhbYeYIVEUONtQ4tVyyfv5cKt11cBTS52tdw7lyjucwCNXKgblw==
+"@cosmjs/cosmwasm@^0.25.4":
+ version "0.25.4"
+ resolved "https://registry.yarnpkg.com/@cosmjs/cosmwasm/-/cosmwasm-0.25.4.tgz#f2b4be95c6dd9c503d0bba3bbde510329d5828d8"
+ integrity sha512-bTxoKkLOJ10v5cWcE2A7Rbkq2DYB7E7h1kTA+WSluhxTaowrJoMHQbH7tUwrs4pWs8jcODuzRerRvyVqz0eR6A==
dependencies:
- "@cosmjs/cosmwasm-launchpad" "^0.24.0-alpha.22"
+ "@cosmjs/cosmwasm-launchpad" "^0.25.4"
-"@cosmjs/crypto@^0.24.0-alpha.22":
- version "0.24.0-alpha.22"
- resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.24.0-alpha.22.tgz#5a725d9c8d1ec89a14a580469427d79d8a1a9061"
- integrity sha512-EWfVBRT4a7/ZbkclK4YSb1vOhvaXMGgLB1QXUZJdj9blKCOaKcqA6g8BnI6Xo64188LAnqh5hAl0mu9srQBJjQ==
+"@cosmjs/crypto@^0.25.4":
+ version "0.25.4"
+ resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.25.4.tgz#0e526a8939773b43799bd013252642e08e389f75"
+ integrity sha512-xm7o2xMQIERFjG+hBa/5f+l1CNdXrXzGqhICo3VJuKsuFRtOtEw3w0dbV+3DOp2oxaUQvLBkLqdYXNBL+lmHlQ==
dependencies:
- "@cosmjs/encoding" "^0.24.0-alpha.22"
- "@cosmjs/math" "^0.24.0-alpha.22"
- "@cosmjs/utils" "^0.24.0-alpha.22"
+ "@cosmjs/encoding" "^0.25.4"
+ "@cosmjs/math" "^0.25.4"
+ "@cosmjs/utils" "^0.25.4"
bip39 "^3.0.2"
bn.js "^4.11.8"
elliptic "^6.5.3"
js-sha3 "^0.8.0"
libsodium-wrappers "^0.7.6"
- pbkdf2 "^3.1.1"
ripemd160 "^2.0.2"
sha.js "^2.4.11"
- unorm "^1.5.0"
-"@cosmjs/encoding@^0.24.0-alpha.22":
- version "0.24.0-alpha.22"
- resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.24.0-alpha.22.tgz#637eb145724df11aa2d87f08e4b470b62ac62fb0"
- integrity sha512-0KjyejdUnkURXSSC1DEowp2dNMWGzuU93Q4KxBbuMYnQ+b4+A0S4XqboFDM48K4bDxpI2mtUa9AWZ8Y32+MaxQ==
+"@cosmjs/encoding@^0.25.4":
+ version "0.25.4"
+ resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.25.4.tgz#7589f350410e91728f8377fef782117382873da6"
+ integrity sha512-wYwYYbCGwDyhaROX6EyZBaiMqpTME8oo7KaRChS6O/6w5hZcfWAyo0NVaHCv8atxt/h0lYroazEXxOVKY+uo6A==
dependencies:
base64-js "^1.3.0"
bech32 "^1.1.4"
readonly-date "^1.0.0"
-"@cosmjs/json-rpc@^0.24.0-alpha.22":
- version "0.24.0-alpha.22"
- resolved "https://registry.yarnpkg.com/@cosmjs/json-rpc/-/json-rpc-0.24.0-alpha.22.tgz#25c7d6ee37b8b556a68a516446742ec645693b34"
- integrity sha512-xQS9G0b62xoo6hb9dChjO4iYjsQRqJkBv6SmibsTy4RJoo8xHUUCeaojVWfZpsqNrdsVhDAQjOynU7Vy9o9Obg==
+"@cosmjs/json-rpc@^0.25.4":
+ version "0.25.4"
+ resolved "https://registry.yarnpkg.com/@cosmjs/json-rpc/-/json-rpc-0.25.4.tgz#4109ebe5f6ab21561767c25e13ad7734dee94526"
+ integrity sha512-X3BzvzUpThD2o9+Ak2+icAqm8AAdWhCGB6Hl229DvKG1NUnXEKdwSxlI/VNw0IKT7ljy47Jv56syQiK5nFdXRQ==
dependencies:
- "@cosmjs/stream" "^0.24.0-alpha.22"
+ "@cosmjs/stream" "^0.25.4"
xstream "^11.14.0"
-"@cosmjs/launchpad@^0.24.0-alpha.22":
- version "0.24.0-alpha.22"
- resolved "https://registry.yarnpkg.com/@cosmjs/launchpad/-/launchpad-0.24.0-alpha.22.tgz#450a8742e319040f76857107d5126cddb4aef576"
- integrity sha512-QJUibJvb9V5cRg23YcuV/Ns6osC4t/HqYLPZAtWp8Jtg+9mHtteap+DgallxGfep8kWOIWyzquH0xYbOfKE3SA==
+"@cosmjs/launchpad@^0.25.4":
+ version "0.25.4"
+ resolved "https://registry.yarnpkg.com/@cosmjs/launchpad/-/launchpad-0.25.4.tgz#287a724a77fd7e82829cbfd3d47c67078b7a7a56"
+ integrity sha512-WjhGMXgzR/y7/KmOYEgSQe5wJxpPby4A/ZahQ4+CZpYx4EcwVAx92odOfd9g1FcOQjIvKJ88edGYPf8fQdvOVA==
dependencies:
- "@cosmjs/crypto" "^0.24.0-alpha.22"
- "@cosmjs/encoding" "^0.24.0-alpha.22"
- "@cosmjs/math" "^0.24.0-alpha.22"
- "@cosmjs/utils" "^0.24.0-alpha.22"
+ "@cosmjs/amino" "^0.25.4"
+ "@cosmjs/crypto" "^0.25.4"
+ "@cosmjs/encoding" "^0.25.4"
+ "@cosmjs/math" "^0.25.4"
+ "@cosmjs/utils" "^0.25.4"
axios "^0.21.1"
fast-deep-equal "^3.1.3"
-"@cosmjs/math@^0.24.0-alpha.22":
- version "0.24.0-alpha.22"
- resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.24.0-alpha.22.tgz#50d20250d08fdbc9ec7e47732bd5f480e1f73b48"
- integrity sha512-QEREFkjTYRh2ofTMvfe/ZgREAOhQhUz0cnp4dIkqiUT3pRWSOpVRdksdLEX8IytFiqhoB779r1FifDMuBoFWYA==
+"@cosmjs/math@^0.25.4":
+ version "0.25.4"
+ resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.25.4.tgz#1a70b26c18f990654dfd195a1a2b544b48269572"
+ integrity sha512-mnf5TgDObjx1yt1Vxkr3k/vncTL4FPRu3eSHjYM+EyQeNmy/Dld0fHFWxELeGqlQ09kVuqFY1jkKG2R96YRHww==
dependencies:
bn.js "^4.11.8"
-"@cosmjs/proto-signing@^0.24.0-alpha.22":
- version "0.24.0-alpha.22"
- resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.24.0-alpha.22.tgz#9313deffbfbda108bffdeaa51ebdc314b8f5c21a"
- integrity sha512-S66MMyCIXhspt2xXOsNoeqm0RKFQrg4tbkUk+s7GaajqcBh+gK1Sr6g830A4QR2YF0tdZNgJFGsLavhZzQ6ASw==
+"@cosmjs/proto-signing@^0.25.4":
+ version "0.25.4"
+ resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.25.4.tgz#82a2bdfc105f66c8d9cdf2cfbb86e6da960ab49a"
+ integrity sha512-W9qJTH0LkOY/WsCe/V2hv6px7gZZxwh8TpLEKSSh4XOUjtqKHcr2jhbdXfi1CQm5lgbvEsovdzVv8VgbtgJxDQ==
dependencies:
- "@cosmjs/launchpad" "^0.24.0-alpha.22"
+ "@cosmjs/amino" "^0.25.4"
long "^4.0.0"
protobufjs "~6.10.2"
-"@cosmjs/socket@^0.24.0-alpha.22":
- version "0.24.0-alpha.22"
- resolved "https://registry.yarnpkg.com/@cosmjs/socket/-/socket-0.24.0-alpha.22.tgz#040d841b357cfe455fff812800bbd75c7eee464c"
- integrity sha512-nRbYyyu4YVs9ZsXXH6ki7QgqPkPrtPPe7le2cpD7B9Ahdm9WxI/dK9Mm3zjVu0rTitMhVMH01YvtmRjEUNZPXQ==
+"@cosmjs/socket@^0.25.4":
+ version "0.25.4"
+ resolved "https://registry.yarnpkg.com/@cosmjs/socket/-/socket-0.25.4.tgz#f32bc7bb347ac26ee1be0c0a57614712bbb6c28c"
+ integrity sha512-hcL+2kISZ1qqgviNB8OFSzMyYGdiKsBp+j582WYJa+5h9rpZrNWJSm2BFe8hah5AvfYsVCZX1kn7jRu8dZpUnA==
dependencies:
- "@cosmjs/stream" "^0.24.0-alpha.22"
+ "@cosmjs/stream" "^0.25.4"
isomorphic-ws "^4.0.1"
- ws "^6.2.0"
+ ws "^7"
xstream "^11.14.0"
-"@cosmjs/stargate@^0.24.0-alpha.22":
- version "0.24.0-alpha.22"
- resolved "https://registry.yarnpkg.com/@cosmjs/stargate/-/stargate-0.24.0-alpha.22.tgz#10db834011c30fd176ea880bf3129bf0290a2d9a"
- integrity sha512-i3QAslKsUtq33FaMm+tBgGW9yJ+8TOvPzgcuyrWr/Z9CbEAg2Uce96F27zn39Onu1VUW1/1ejlBWxF/bO3XHFQ==
+"@cosmjs/stargate@^0.25.4":
+ version "0.25.4"
+ resolved "https://registry.yarnpkg.com/@cosmjs/stargate/-/stargate-0.25.4.tgz#49c0add61de229cfc725c35ec7f59e5077b04229"
+ integrity sha512-1VYPgkW9WysmcyiYEK26Z3q1ptcKfMG4wka5zVYfGIvM46NCCp2i6/M4TO4ZoSMAEU72TeBRiC1LzqFuji/cbA==
dependencies:
"@confio/ics23" "^0.6.3"
- "@cosmjs/encoding" "^0.24.0-alpha.22"
- "@cosmjs/launchpad" "^0.24.0-alpha.22"
- "@cosmjs/math" "^0.24.0-alpha.22"
- "@cosmjs/proto-signing" "^0.24.0-alpha.22"
- "@cosmjs/stream" "^0.24.0-alpha.22"
- "@cosmjs/tendermint-rpc" "^0.24.0-alpha.22"
- "@cosmjs/utils" "^0.24.0-alpha.22"
+ "@cosmjs/amino" "^0.25.4"
+ "@cosmjs/encoding" "^0.25.4"
+ "@cosmjs/math" "^0.25.4"
+ "@cosmjs/proto-signing" "^0.25.4"
+ "@cosmjs/stream" "^0.25.4"
+ "@cosmjs/tendermint-rpc" "^0.25.4"
+ "@cosmjs/utils" "^0.25.4"
long "^4.0.0"
protobufjs "~6.10.2"
-"@cosmjs/stream@^0.24.0-alpha.22":
- version "0.24.0-alpha.22"
- resolved "https://registry.yarnpkg.com/@cosmjs/stream/-/stream-0.24.0-alpha.22.tgz#9df54011efa737d21aec77e63929cf046b2998af"
- integrity sha512-+AtNbIRa2b6hVRCoPEcDaTUyZZX4MC8+WXdhbHcsQwAyLAPnNhJUOt1GimomvaN8uTk0XkVTexMvfu2qCHUi7w==
+"@cosmjs/stream@^0.25.4":
+ version "0.25.4"
+ resolved "https://registry.yarnpkg.com/@cosmjs/stream/-/stream-0.25.4.tgz#9b978ee27355d6d4268ebed7be6d6d701e6ccd50"
+ integrity sha512-Z/if46lnNyiGojzQgSi4ztaqDCJ4gljlmGw6hX/7MrPn5dtmaSqWjLep5CMh7moiR9ZaAeqRPTdUsb99CjiKMQ==
dependencies:
xstream "^11.14.0"
-"@cosmjs/tendermint-rpc@^0.24.0-alpha.22":
- version "0.24.0-alpha.22"
- resolved "https://registry.yarnpkg.com/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.24.0-alpha.22.tgz#67e388de37a81919671f0a5e7eabb6a018f26306"
- integrity sha512-WZO824f92eSbCmaIiCRMT+CnTdPsjnkkJc8GD03HHZXO1/52GB9IUvq0t6oYDR/I49gzZ3n3Ejj+y9lrkZbYvw==
- dependencies:
- "@cosmjs/crypto" "^0.24.0-alpha.22"
- "@cosmjs/encoding" "^0.24.0-alpha.22"
- "@cosmjs/json-rpc" "^0.24.0-alpha.22"
- "@cosmjs/math" "^0.24.0-alpha.22"
- "@cosmjs/socket" "^0.24.0-alpha.22"
- "@cosmjs/stream" "^0.24.0-alpha.22"
+"@cosmjs/tendermint-rpc@^0.25.4":
+ version "0.25.4"
+ resolved "https://registry.yarnpkg.com/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.25.4.tgz#8fcf8850ecbc4851a2763303bda8962779ee6d2b"
+ integrity sha512-F8qiSTtDcS7ZkfvX4RfodpoMG7C7kwLJ8P7umSeWe0wkLaO6NYoKcqxBGjc6E7XVy+XtJDyfF3gqNDJz5/Jtpg==
+ dependencies:
+ "@cosmjs/crypto" "^0.25.4"
+ "@cosmjs/encoding" "^0.25.4"
+ "@cosmjs/json-rpc" "^0.25.4"
+ "@cosmjs/math" "^0.25.4"
+ "@cosmjs/socket" "^0.25.4"
+ "@cosmjs/stream" "^0.25.4"
axios "^0.21.1"
readonly-date "^1.0.0"
xstream "^11.14.0"
-"@cosmjs/utils@^0.24.0-alpha.22":
- version "0.24.0-alpha.22"
- resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.24.0-alpha.22.tgz#b020e35527bfa681e1b3a6590b348d095faf6f84"
- integrity sha512-FuAqHnMLdU860hRpUA8+G4F2aFOTEbF3LiDfLU4+EyVBxZjNrfJKgrouxP+vvN3J7zifPZ3Eqq9M36QLb/exBg==
+"@cosmjs/utils@^0.25.4":
+ version "0.25.4"
+ resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.25.4.tgz#6e617543476e9e1f72bfcb6e263b273e01e4ba93"
+ integrity sha512-SRkE+Nc0hwuWdsUCQCF3HNWcxhm8UtTg2fIo8CJpecusYfKSGKzkeL1O/Ja/+xDpuTAXW2s2mfVyaAW5b5pHVQ==
"@csstools/convert-colors@^1.4.0":
version "1.4.0"
@@ -3317,15 +3326,10 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001135:
- version "1.0.30001150"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001150.tgz#6d0d829da654b0b233576de00335586bc2004df1"
- integrity sha512-kiNKvihW0m36UhAFnl7bOAv0i1K1f6wpfVtTF5O5O82XzgtBnb05V0XeV3oZ968vfg2sRNChsHw8ASH2hDfoYQ==
-
-caniuse-lite@^1.0.30001125:
- version "1.0.30001157"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001157.tgz#2d11aaeb239b340bc1aa730eca18a37fdb07a9ab"
- integrity sha512-gOerH9Wz2IRZ2ZPdMfBvyOi3cjaz4O4dgNwPGzx8EhqAs4+2IL/O+fJsbt+znSigujoZG8bVcIAUM/I/E5K3MA==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001135:
+ version "1.0.30001235"
+ resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001235.tgz"
+ integrity sha512-zWEwIVqnzPkSAXOUlQnPW2oKoYb2aLQ4Q5ejdjBcnH63rfypaW34CxaeBn1VMya2XaEU3P/R2qHpWyj+l0BT1A==
capture-exit@^2.0.0:
version "2.0.0"
@@ -8501,7 +8505,7 @@ path-type@^4.0.0:
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
-pbkdf2@^3.0.3, pbkdf2@^3.0.9, pbkdf2@^3.1.1:
+pbkdf2@^3.0.3, pbkdf2@^3.0.9:
version "3.1.1"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94"
integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==
@@ -11542,11 +11546,6 @@ universalify@^1.0.0:
resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d"
integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==
-unorm@^1.5.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.6.0.tgz#029b289661fba714f1a9af439eb51d9b16c205af"
- integrity sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==
-
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
@@ -12164,17 +12163,17 @@ write@1.0.3:
dependencies:
mkdirp "^0.5.1"
-ws@^6.2.0, ws@^6.2.1:
+ws@^6.2.1:
version "6.2.1"
resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
dependencies:
async-limiter "~1.0.0"
-ws@^7.2.3:
- version "7.3.1"
- resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8"
- integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==
+ws@^7, ws@^7.2.3:
+ version "7.4.6"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
+ integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
xml-name-validator@^3.0.0:
version "3.0.0"