refactor: re-enables session ping
This commit is contained in:
parent
7c03646e39
commit
5a4835281f
@ -1,4 +1,4 @@
|
|||||||
import React, { useEffect, useState } from "react";
|
import React, { useState } from "react";
|
||||||
import { version } from "@walletconnect/client/package.json";
|
import { version } from "@walletconnect/client/package.json";
|
||||||
import * as encoding from "@walletconnect/encoding";
|
import * as encoding from "@walletconnect/encoding";
|
||||||
|
|
||||||
@ -45,11 +45,12 @@ export default function App() {
|
|||||||
const [selectedChainId, setSelectedChainId] = useState<string>();
|
const [selectedChainId, setSelectedChainId] = useState<string>();
|
||||||
|
|
||||||
const closeModal = () => setModal("");
|
const closeModal = () => setModal("");
|
||||||
// const openPingModal = () => setModal("ping");
|
const openPingModal = () => setModal("ping");
|
||||||
const openRequestModal = () => setModal("request");
|
const openRequestModal = () => setModal("request");
|
||||||
|
|
||||||
// Initialize the WalletConnect client.
|
// Initialize the WalletConnect client.
|
||||||
const {
|
const {
|
||||||
|
client,
|
||||||
session,
|
session,
|
||||||
disconnect,
|
disconnect,
|
||||||
chain,
|
chain,
|
||||||
@ -62,18 +63,32 @@ export default function App() {
|
|||||||
web3Provider,
|
web3Provider,
|
||||||
} = useWalletConnectClient();
|
} = useWalletConnectClient();
|
||||||
|
|
||||||
// Close the pairing modal after a session is established.
|
const ping = async () => {
|
||||||
useEffect(() => {
|
if (typeof client === "undefined") {
|
||||||
if (session && modal === "pairing") {
|
throw new Error("WalletConnect Client is not initialized");
|
||||||
closeModal();
|
|
||||||
}
|
}
|
||||||
}, [session, modal]);
|
|
||||||
|
|
||||||
// TODO:
|
try {
|
||||||
// const onPing = async () => {
|
setIsRpcRequestPending(true);
|
||||||
// openPingModal();
|
const _session = await client.session.get(client.session.topics[0]);
|
||||||
// await ping();
|
await client.session.ping(_session.topic);
|
||||||
// };
|
setRpcResult({
|
||||||
|
address: "",
|
||||||
|
method: "ping",
|
||||||
|
valid: true,
|
||||||
|
result: "success",
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
console.error("RPC request failed:", error);
|
||||||
|
} finally {
|
||||||
|
setIsRpcRequestPending(false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const onPing = async () => {
|
||||||
|
openPingModal();
|
||||||
|
await ping();
|
||||||
|
};
|
||||||
|
|
||||||
const testSignTransaction: () => Promise<IFormattedRpcResponse> = async () => {
|
const testSignTransaction: () => Promise<IFormattedRpcResponse> = async () => {
|
||||||
if (!web3Provider) {
|
if (!web3Provider) {
|
||||||
@ -286,7 +301,7 @@ export default function App() {
|
|||||||
return (
|
return (
|
||||||
<SLayout>
|
<SLayout>
|
||||||
<Column maxWidth={1000} spanHeight>
|
<Column maxWidth={1000} spanHeight>
|
||||||
<Header ping={() => Promise.resolve()} disconnect={disconnect} session={session} />
|
<Header ping={onPing} disconnect={disconnect} session={session} />
|
||||||
<SContent>{isInitializing ? "Loading..." : renderContent()}</SContent>
|
<SContent>{isInitializing ? "Loading..." : renderContent()}</SContent>
|
||||||
</Column>
|
</Column>
|
||||||
<Modal show={!!modal} closeModal={closeModal}>
|
<Modal show={!!modal} closeModal={closeModal}>
|
||||||
|
@ -165,8 +165,6 @@ export function ClientContextProvider({ children }: { children: ReactNode | Reac
|
|||||||
infuraId: DEFAULT_INFURA_ID,
|
infuraId: DEFAULT_INFURA_ID,
|
||||||
custom: customRpcs,
|
custom: customRpcs,
|
||||||
},
|
},
|
||||||
// FIXME: `signer-connection` sub-dep is already specifying beta.23 -> typings mismatch.
|
|
||||||
// @ts-ignore
|
|
||||||
client,
|
client,
|
||||||
});
|
});
|
||||||
const web3Provider = new providers.Web3Provider(ethereumProvider);
|
const web3Provider = new providers.Web3Provider(ethereumProvider);
|
||||||
|
Loading…
Reference in New Issue
Block a user