From 2152eebb7d5453e8ab395a65812ca0721088e870 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Oct 2021 03:07:46 +0000 Subject: [PATCH 01/27] Bump @types/react from 17.0.26 to 17.0.27 (#83) --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 495f958..e1dcd96 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "@testing-library/user-event": "^12.1.10", "@types/jest": "^26.0.24", "@types/node": "^14.17.5", - "@types/react": "^17.0.26", + "@types/react": "^17.0.27", "@types/react-blockies": "^1.4.1", "@types/react-dom": "^17.0.9", "@types/react-highlight": "^0.12.4", @@ -3090,9 +3090,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "17.0.26", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.26.tgz", - "integrity": "sha512-MXxuXrH2xOcv5cp/su4oz69dNQnSA90JjFw5HBd5wifw6Ihi94j7dRJm7qNsB30tnruXSCPc9qmlhGop4nh9Hw==", + "version": "17.0.27", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.27.tgz", + "integrity": "sha512-zgiJwtsggVGtr53MndV7jfiUESTqrbxOcBvwfe6KS/9bzaVPCTDieTWnFNecVNx6EAaapg5xsLLWFfHHR437AA==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -21619,9 +21619,9 @@ "version": "1.5.4" }, "@types/react": { - "version": "17.0.26", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.26.tgz", - "integrity": "sha512-MXxuXrH2xOcv5cp/su4oz69dNQnSA90JjFw5HBd5wifw6Ihi94j7dRJm7qNsB30tnruXSCPc9qmlhGop4nh9Hw==", + "version": "17.0.27", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.27.tgz", + "integrity": "sha512-zgiJwtsggVGtr53MndV7jfiUESTqrbxOcBvwfe6KS/9bzaVPCTDieTWnFNecVNx6EAaapg5xsLLWFfHHR437AA==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", diff --git a/package.json b/package.json index ad60da8..aa2777e 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "@testing-library/user-event": "^12.1.10", "@types/jest": "^26.0.24", "@types/node": "^14.17.5", - "@types/react": "^17.0.26", + "@types/react": "^17.0.27", "@types/react-blockies": "^1.4.1", "@types/react-dom": "^17.0.9", "@types/react-highlight": "^0.12.4", From bf88ff0f0906d0c5738d52dfd84d98f00bf00a7d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Oct 2021 19:29:33 +0000 Subject: [PATCH 02/27] Bump postcss from 7.0.38 to 7.0.39 (#84) --- package-lock.json | 28 +++++++++++++++++++--------- package.json | 2 +- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index e1dcd96..b3b0545 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,7 @@ }, "devDependencies": { "autoprefixer": "^9.8.7", - "postcss": "^7.0.38", + "postcss": "^7.0.39", "source-map-explorer": "^2.5.2", "tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.6" } @@ -12728,6 +12728,11 @@ "version": "2.1.0", "license": "MIT" }, + "node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, "node_modules/picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", @@ -12896,11 +12901,11 @@ } }, "node_modules/postcss": { - "version": "7.0.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.38.tgz", - "integrity": "sha512-wNrSHWjHDQJR/IZL5IKGxRtFgrYNaAA/UrkW2WqbtZO6uxSLMxMN+s2iqUMwnAWm3fMROlDYZB41dr0Mt7vBwQ==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dependencies": { - "nanocolors": "^0.2.2", + "picocolors": "^0.2.1", "source-map": "^0.6.1" }, "engines": { @@ -28076,6 +28081,11 @@ "performance-now": { "version": "2.1.0" }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", @@ -28182,11 +28192,11 @@ "version": "0.1.1" }, "postcss": { - "version": "7.0.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.38.tgz", - "integrity": "sha512-wNrSHWjHDQJR/IZL5IKGxRtFgrYNaAA/UrkW2WqbtZO6uxSLMxMN+s2iqUMwnAWm3fMROlDYZB41dr0Mt7vBwQ==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "requires": { - "nanocolors": "^0.2.2", + "picocolors": "^0.2.1", "source-map": "^0.6.1" } }, diff --git a/package.json b/package.json index aa2777e..33da35e 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ }, "devDependencies": { "autoprefixer": "^9.8.7", - "postcss": "^7.0.38", + "postcss": "^7.0.39", "source-map-explorer": "^2.5.2", "tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.6" } From 16f49e23a27804ac345cff13f77fd38498bbcb33 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Oct 2021 19:32:21 +0000 Subject: [PATCH 03/27] Bump autoprefixer from 9.8.7 to 9.8.8 (#85) --- package-lock.json | 28 +++++++++------------------- package.json | 2 +- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index b3b0545..b6c27a2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52,7 +52,7 @@ "web-vitals": "^1.0.1" }, "devDependencies": { - "autoprefixer": "^9.8.7", + "autoprefixer": "^9.8.8", "postcss": "^7.0.39", "source-map-explorer": "^2.5.2", "tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.6" @@ -4163,15 +4163,15 @@ } }, "node_modules/autoprefixer": { - "version": "9.8.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.7.tgz", - "integrity": "sha512-7Hg99B1eTH5+LgmUBUSmov1Z3bsggQJS7v3IMGo6wcScnbRuvtMc871J9J+4bSbIqa9LSX/zypFXJ8sXHpMJeQ==", + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", "dependencies": { "browserslist": "^4.12.0", "caniuse-lite": "^1.0.30001109", - "nanocolors": "^0.2.8", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", "postcss": "^7.0.32", "postcss-value-parser": "^4.1.0" }, @@ -11883,11 +11883,6 @@ "license": "MIT", "optional": true }, - "node_modules/nanocolors": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.10.tgz", - "integrity": "sha512-i+EDWGsJClQwR/bhLIG/CObZZwaYaS5qt+yjxZbfV+77QiNHNzE9nj4d9Ut1TGZ0R0eSwPcQWzReASzXuw/7oA==" - }, "node_modules/nanoid": { "version": "3.1.23", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", @@ -22347,15 +22342,15 @@ "version": "2.1.2" }, "autoprefixer": { - "version": "9.8.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.7.tgz", - "integrity": "sha512-7Hg99B1eTH5+LgmUBUSmov1Z3bsggQJS7v3IMGo6wcScnbRuvtMc871J9J+4bSbIqa9LSX/zypFXJ8sXHpMJeQ==", + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", "requires": { "browserslist": "^4.12.0", "caniuse-lite": "^1.0.30001109", - "nanocolors": "^0.2.8", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", "postcss": "^7.0.32", "postcss-value-parser": "^4.1.0" }, @@ -27532,11 +27527,6 @@ "version": "2.14.2", "optional": true }, - "nanocolors": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.10.tgz", - "integrity": "sha512-i+EDWGsJClQwR/bhLIG/CObZZwaYaS5qt+yjxZbfV+77QiNHNzE9nj4d9Ut1TGZ0R0eSwPcQWzReASzXuw/7oA==" - }, "nanoid": { "version": "3.1.23", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", diff --git a/package.json b/package.json index 33da35e..a988320 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ ] }, "devDependencies": { - "autoprefixer": "^9.8.7", + "autoprefixer": "^9.8.8", "postcss": "^7.0.39", "source-map-explorer": "^2.5.2", "tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.6" From 252eb6a56482ae26d7698abdaf02f03aee806046 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Oct 2021 18:34:12 +0000 Subject: [PATCH 04/27] Bump @types/react-router-dom from 5.3.0 to 5.3.1 (#86) --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index b6c27a2..f95f380 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "@types/react-blockies": "^1.4.1", "@types/react-dom": "^17.0.9", "@types/react-highlight": "^0.12.4", - "@types/react-router-dom": "^5.3.0", + "@types/react-router-dom": "^5.3.1", "@types/react-syntax-highlighter": "^13.5.2", "chart.js": "^3.5.1", "ethers": "^5.4.7", @@ -3133,9 +3133,9 @@ } }, "node_modules/@types/react-router-dom": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.0.tgz", - "integrity": "sha512-svUzpEpKDwK8nmfV2vpZNSsiijFNKY8+gUqGqvGGOVrXvX58k1JIJubZa5igkwacbq/0umphO5SsQn/BQsnKpw==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.1.tgz", + "integrity": "sha512-UvyRy73318QI83haXlaMwmklHHzV9hjl3u71MmM6wYNu0hOVk9NLTa0vGukf8zXUqnwz4O06ig876YSPpeK28A==", "dependencies": { "@types/history": "*", "@types/react": "*", @@ -21662,9 +21662,9 @@ } }, "@types/react-router-dom": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.0.tgz", - "integrity": "sha512-svUzpEpKDwK8nmfV2vpZNSsiijFNKY8+gUqGqvGGOVrXvX58k1JIJubZa5igkwacbq/0umphO5SsQn/BQsnKpw==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.1.tgz", + "integrity": "sha512-UvyRy73318QI83haXlaMwmklHHzV9hjl3u71MmM6wYNu0hOVk9NLTa0vGukf8zXUqnwz4O06ig876YSPpeK28A==", "requires": { "@types/history": "*", "@types/react": "*", diff --git a/package.json b/package.json index a988320..ee371c8 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@types/react-blockies": "^1.4.1", "@types/react-dom": "^17.0.9", "@types/react-highlight": "^0.12.4", - "@types/react-router-dom": "^5.3.0", + "@types/react-router-dom": "^5.3.1", "@types/react-syntax-highlighter": "^13.5.2", "chart.js": "^3.5.1", "ethers": "^5.4.7", From 39ac3e7cf431814bbe381ff6c3557fa6a2980853 Mon Sep 17 00:00:00 2001 From: Willian Mitsuda Date: Thu, 7 Oct 2021 15:55:51 -0300 Subject: [PATCH 05/27] Add topic0 db --- .gitmodules | 3 +++ nginx.conf | 34 ++++++++++++++++++++++++++++++++++ package.json | 4 ++-- topic0 | 1 + 4 files changed, 40 insertions(+), 2 deletions(-) create mode 160000 topic0 diff --git a/.gitmodules b/.gitmodules index b1d1263..3ee2444 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "trustwallet"] path = trustwallet url = https://github.com/trustwallet/assets.git +[submodule "topic0"] + path = topic0 + url = https://github.com/wmitsuda/topic0.git diff --git a/nginx.conf b/nginx.conf index 55189ba..932cfeb 100644 --- a/nginx.conf +++ b/nginx.conf @@ -43,6 +43,40 @@ server { } } + location /topic0 { + root /usr/share/nginx/html; + expires 30d; + + # Base on: https://michielkalkman.com/snippets/nginx-cors-open-configuration/ + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + # + # Om nom nom cookies + # + add_header 'Access-Control-Allow-Credentials' 'true'; + add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS'; + + # + # Custom headers and headers various browsers *should* be OK with but aren't + # + add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; + + # + # Tell client that this pre-flight info is valid for 20 days + # + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + if ($request_method = 'GET') { + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always; + add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type' always; + } + } + location /assets { root /usr/share/nginx/html; expires 30d; diff --git a/package.json b/package.json index ee371c8..86bb040 100644 --- a/package.json +++ b/package.json @@ -52,8 +52,8 @@ "test": "craco test", "eject": "react-scripts eject", "source-map-explorer": "source-map-explorer build/static/js/*.js", - "assets-start": "docker run --rm -p 3001:80 --name otterscan-assets -d -v$(pwd)/4bytes/signatures:/usr/share/nginx/html/signatures/ -v$(pwd)/trustwallet/blockchains/ethereum/assets:/usr/share/nginx/html/assets -v$(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf nginx:1.21.1-alpine", - "assets-start-with-param-names": "docker run --rm -p 3001:80 --name otterscan-assets -d -v$(pwd)/4bytes/with_parameter_names:/usr/share/nginx/html/signatures/ -v$(pwd)/trustwallet/blockchains/ethereum/assets:/usr/share/nginx/html/assets -v$(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf nginx:1.21.1-alpine", + "assets-start": "docker run --rm -p 3001:80 --name otterscan-assets -d -v$(pwd)/4bytes/signatures:/usr/share/nginx/html/signatures/ -v$(pwd)/trustwallet/blockchains/ethereum/assets:/usr/share/nginx/html/assets -v$(pwd)/topic0/with_parameter_names:/usr/share/nginx/html/topic0/ -v$(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf nginx:1.21.1-alpine", + "assets-start-with-param-names": "docker run --rm -p 3001:80 --name otterscan-assets -d -v$(pwd)/4bytes/with_parameter_names:/usr/share/nginx/html/signatures/ -v$(pwd)/trustwallet/blockchains/ethereum/assets:/usr/share/nginx/html/assets -v$(pwd)/topic0/with_parameter_names:/usr/share/nginx/html/topic0/ -v$(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf nginx:1.21.1-alpine", "assets-stop": "docker stop otterscan-assets", "docker-build": "DOCKER_BUILDKIT=1 docker build -t otterscan -f Dockerfile .", "docker-start": "docker run --rm -p 5000:80 --name otterscan -d otterscan", diff --git a/topic0 b/topic0 new file mode 160000 index 0000000..0935568 --- /dev/null +++ b/topic0 @@ -0,0 +1 @@ +Subproject commit 09355687ff39648ae4a1b9729f605296a228c5e9 From 903d5eacdd95e597d9ca9ef3f721cfbac3d68195 Mon Sep 17 00:00:00 2001 From: Willian Mitsuda Date: Thu, 7 Oct 2021 20:31:36 -0300 Subject: [PATCH 06/27] Add topic0 db to production docker image --- Dockerfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Dockerfile b/Dockerfile index af322ed..e113ddb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,8 +19,13 @@ WORKDIR /signatures COPY 4bytes/signatures /signatures/ COPY 4bytes/with_parameter_names /signatures/ +FROM alpine:3.14.0 AS topic0builder +WORKDIR /topic0 +COPY topic0/with_parameter_names /topic0/ + FROM nginx:1.21.1-alpine RUN apk add jq +COPY --from=topic0builder /topic0 /usr/share/nginx/html/topic0/ COPY --from=fourbytesbuilder /signatures /usr/share/nginx/html/signatures/ COPY --from=logobuilder /assets /usr/share/nginx/html/assets/ COPY nginx.conf /etc/nginx/conf.d/default.conf From ccad1f123a9374bf6026de18585b4007d05ffa68 Mon Sep 17 00:00:00 2001 From: Willian Mitsuda Date: Fri, 8 Oct 2021 02:38:46 -0300 Subject: [PATCH 07/27] First working version of non-verified contract topic0 decoder --- src/transaction/LogEntry.tsx | 204 ++++++++++++++++++++--------------- src/url.ts | 3 + src/useTopic0.ts | 76 +++++++++++++ 3 files changed, 194 insertions(+), 89 deletions(-) create mode 100644 src/useTopic0.ts diff --git a/src/transaction/LogEntry.tsx b/src/transaction/LogEntry.tsx index e06c558..64ba207 100644 --- a/src/transaction/LogEntry.tsx +++ b/src/transaction/LogEntry.tsx @@ -1,6 +1,6 @@ -import React, { Fragment } from "react"; +import React, { useMemo } from "react"; import { Log } from "@ethersproject/abstract-provider"; -import { LogDescription } from "@ethersproject/abi"; +import { Fragment, Interface, LogDescription } from "@ethersproject/abi"; import { Tab } from "@headlessui/react"; import AddressHighlighter from "../components/AddressHighlighter"; import DecoratedAddressLink from "../components/DecoratedAddressLink"; @@ -9,6 +9,7 @@ import ModeTab from "../components/ModeTab"; import DecodedParamsTable from "./decoder/DecodedParamsTable"; import DecodedLogSignature from "./decoder/DecodedLogSignature"; import { TransactionData } from "../types"; +import { useTopic0 } from "../useTopic0"; type LogEntryProps = { txData: TransactionData; @@ -16,101 +17,126 @@ type LogEntryProps = { logDesc: LogDescription | null | undefined; }; -const LogEntry: React.FC = ({ txData, log, logDesc }) => ( -
-
- - {log.logIndex} - -
-
-
-
Address
-
-
- - - - +const LogEntry: React.FC = ({ txData, log, logDesc }) => { + const rawTopic0 = log.topics[0]; + const topic0 = useTopic0(rawTopic0); + + const topic0LogDesc = useMemo(() => { + if (!topic0?.signature) { + return undefined; + } + const sig = topic0.signature; + const logFragment = Fragment.fromString(`event ${sig}`); + const intf = new Interface([logFragment]); + try { + return intf.parseLog(log); + } catch (err) { + // TODO: try other indexed/non-indexed combinations? + console.error(err); + return undefined; + } + }, [topic0, log]); + + const resolvedLogDesc = logDesc ?? topic0LogDesc; + + return ( +
+
+ + {log.logIndex} + +
+
+
+
Address
+
+
+ + + + +
-
- - -
Parameters
-
- Decoded - Raw -
-
- - - {logDesc === undefined ? ( -
-
- Waiting for data... -
-
- ) : logDesc === null ? ( -
-
- No decoded data -
-
- ) : ( - <> -
-
- -
-
+ + +
Parameters
+
+ Decoded + Raw +
+
+ + + {resolvedLogDesc === undefined ? (
- + Waiting for data...
- - )} -
- - {log.topics.map((t, i) => ( -
-
{i === 0 && "Topics"}
-
- - {i} - - {t} + ) : resolvedLogDesc === null ? ( +
+
+ No decoded data +
+
+ ) : ( + <> +
+
+ +
+
+
+
+ +
+
+ + )} + + + {log.topics.map((t, i) => ( +
+
{i === 0 && "Topics"}
+
+ + {i} + + {t} +
+
+ ))} +
+
Data
+
+