Skip to content

Commit 09c9820

Browse files
committed
feat(docs): added request and fixed bug
1 parent 947fcb4 commit 09c9820

File tree

4 files changed

+46
-22
lines changed

4 files changed

+46
-22
lines changed

src/components/ParserOpenRPC/ProjectsBox/index.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,7 @@ const ProjectsBox = () => {
5858
if (options?.length > 0) {
5959
setUserAPIKey(options[0].value);
6060
}
61-
if (!walletLinked) {
62-
setUserAPIKey("");
63-
}
64-
}, [options.length, walletLinked]);
61+
}, [options.length]);
6562

6663
useEffect(() => {
6764
if (walletLinked) {

src/components/ParserOpenRPC/RequestBox/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import React, {useContext, useMemo} from "react";
1+
import React, { useContext, useMemo } from "react";
22
import clsx from "clsx";
33
import CodeBlock from "@theme/CodeBlock";
44
import { MethodParam } from "@site/src/components/ParserOpenRPC/interfaces";
55
import styles from "./styles.module.css";
66
import global from "../global.module.css";
77
import { Tooltip } from "@site/src/components/Tooltip";
8-
import {MetamaskProviderContext} from "@site/src/theme/Root";
8+
import { MetamaskProviderContext } from "@site/src/theme/Root";
99

1010
interface RequestBoxProps {
1111
isMetamaskInstalled: boolean;

src/components/ParserOpenRPC/index.tsx

Lines changed: 42 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,18 @@ export default function ParserOpenRPC({
5151
const [isDrawerContentFixed, setIsDrawerContentFixed] = useState(false);
5252
const [drawerLabel, setDrawerLabel] = useState(null);
5353
const [isComplexTypeView, setIsComplexTypeView] = useState(false);
54-
const { metaMaskAccount, metaMaskProvider } = useContext(
54+
const { metaMaskAccount, metaMaskProvider, userAPIKey } = useContext(
5555
MetamaskProviderContext
5656
);
5757
const { colorMode } = useColorMode();
58+
const trackAnalyticsForRequest = (response) => {
59+
trackClickForSegment({
60+
eventName: "Request Sent",
61+
clickType: "Request Sent",
62+
userExperience: "B",
63+
...(response?.code && { responseStatus: response.code }),
64+
});
65+
}
5866
const openModal = () => {
5967
setModalOpen(true);
6068
trackClickForSegment({
@@ -147,21 +155,39 @@ export default function ParserOpenRPC({
147155
};
148156

149157
const onSubmitRequestHandle = async () => {
150-
if (!metaMaskProvider) return;
151-
try {
152-
const response = await metaMaskProvider?.request({
153-
method: method,
154-
params: paramsData,
155-
});
156-
setReqResult(response);
157-
trackClickForSegment({
158-
eventName: "Request Sent",
159-
clickType: "Request Sent",
160-
userExperience: "B",
161-
...(response?.code && { responseStatus: response.code }),
162-
});
163-
} catch (e) {
164-
setReqResult(e);
158+
if (isMetamaskNetwork) {
159+
if (!metaMaskProvider) return
160+
try {
161+
const response = await metaMaskProvider?.request({
162+
method: method,
163+
params: paramsData
164+
})
165+
setReqResult(response);
166+
trackAnalyticsForRequest(response);
167+
} catch (e) {
168+
setReqResult(e);
169+
}
170+
} else {
171+
const NETWORK_URL = "https://linea-mainnet.infura.io";
172+
const URL = `${NETWORK_URL}/v3/${userAPIKey}`;
173+
let params = {
174+
method: "POST",
175+
"Content-Type": "application/json",
176+
body: JSON.stringify({
177+
jsonrpc: "2.0",
178+
method,
179+
params: paramsData,
180+
id: 1,
181+
}),
182+
};
183+
const res = await fetch(URL, params);
184+
if (res.ok) {
185+
const response = await res.json();
186+
setReqResult(response.result);
187+
trackAnalyticsForRequest(response.result);
188+
} else {
189+
console.error("error");
190+
}
165191
}
166192
};
167193

src/theme/Root.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ export const LoginProvider = ({ children }) => {
202202
setMetaMaskAccount(undefined);
203203
setProjects({});
204204
setWalletLinked(undefined);
205+
setUserAPIKey("");
205206
clearStorage();
206207
} catch (err) {
207208
console.warn("failed to disconnect..", err);

0 commit comments

Comments
 (0)