From 4e1dc3662ec958a1afee996ab5dccad814dc7f29 Mon Sep 17 00:00:00 2001 From: Marina Terentii <125751323+Artentii@users.noreply.github.com> Date: Wed, 18 Oct 2023 13:58:45 +0200 Subject: [PATCH 01/40] Updated slot page --- .../client/pages/[network]/block/[id].tsx | 625 ++++++++++++++++++ packages/client/pages/[network]/slot/[id].tsx | 111 +--- 2 files changed, 661 insertions(+), 75 deletions(-) create mode 100644 packages/client/pages/[network]/block/[id].tsx diff --git a/packages/client/pages/[network]/block/[id].tsx b/packages/client/pages/[network]/block/[id].tsx new file mode 100644 index 00000000..e609f4ee --- /dev/null +++ b/packages/client/pages/[network]/block/[id].tsx @@ -0,0 +1,625 @@ +import React, { useEffect, useState, useRef, useCallback, useContext } from 'react'; +import { useRouter } from 'next/router'; +import Head from 'next/head'; + +// Axios +import axiosClient from '../../../config/axios'; + +// Contexts +import ThemeModeContext from '../../../contexts/theme-mode/ThemeModeContext'; + +// Components +import Layout from '../../../components/layouts/Layout'; +import TabHeader from '../../../components/ui/TabHeader'; +import Loader from '../../../components/ui/Loader'; +import LinkValidator from '../../../components/ui/LinkValidator'; +import LinkSlot from '../../../components/ui/LinkSlot'; +import Arrow from '../../../components/ui/Arrow'; +import LinkEpoch from '../../../components/ui/LinkEpoch'; +import LinkEntity from '../../../components/ui/LinkEntity'; + +// Types +import { Block, Withdrawal } from '../../../types'; + +// Constants +import { ADDRESS_ZERO, ADDRESS_ZERO_SHORT } from '../../../constants'; + +type CardProps = { + title: string; + text?: string; + content?: React.ReactNode; +}; + +const Card = ({ title, text, content }: CardProps) => { + // Theme Mode Context + const { themeMode } = React.useContext(ThemeModeContext) ?? {}; + return ( + <> +
+ {title}: +
++ {text} +
+ )} + + {content && <>{content}>} +Validator
+Address
+Amount
+{getShortAddress(element?.f_address)}
+{(element.f_amount / 10 ** 9).toLocaleString()} ETH
+No withdrawals
++ Validator +
++ Address +
+{getShortAddress(element?.f_address)}
++ Amount +
+{(element.f_amount / 10 ** 9).toLocaleString()} ETH
+No withdrawals
+No withdrawals
+No withdrawals
Validator
-Address
-Amount
+Txn Hash
+Method
+Age
+From
+To
+Value
+Txn Fee
+{getShortAddress(element?.f_address)}
{getShortAddress(element?.f_address)}
+{'9hrs 51mins ago'}
+ +{getShortAddress(element?.f_address)}
+{getShortAddress(element?.f_address)}
+{(element.f_amount / 10 ** 9).toLocaleString()} ETH
+{(element.f_amount / 10 ** 9).toLocaleString()}
{getShortAddress(element?.f_address)}
++ Method
{ color: themeMode?.darkMode ? 'var(--white)' : 'var(--darkGray)', }} > - Address + Age
-{getShortAddress(element?.f_address)}
+{'9hrs 51mins ago'}
++ From +
++ To +
+{getShortAddress(element?.f_address)}
+{getShortAddress(element?.f_address)}
+{ color: themeMode?.darkMode ? 'var(--white)' : 'var(--darkGray)', }} > - Amount + Value
{(element.f_amount / 10 ** 9).toLocaleString()} ETH
+ Txn Fee +
+{(element.f_amount / 10 ** 9).toLocaleString()}
+No withdrawals
+No withdrawals
{block?.toLocaleString()}
+No withdrawals
+No transactions
No withdrawals
+No transactions
+ {title} +
+ ))} ++ {new Date(blockGenesis + Number(element.f_proposer_slot) * 12000).toLocaleString( + 'ja-JP' + )} +
+ +{(element.withdrawals / 10 ** 9).toLocaleString()}
+No blocks
++ Block number: +
++ Slot: +
++ Datetime: +
++ {new Date( + blockGenesis + Number(slot.f_proposer_slot) * 12000 + ).toLocaleDateString('ja-JP', { + year: 'numeric', + month: 'numeric', + day: 'numeric', + })} +
++ {new Date( + blockGenesis + Number(slot.f_proposer_slot) * 12000 + ).toLocaleTimeString('ja-JP', { + hour: 'numeric', + minute: 'numeric', + second: 'numeric', + })} +
++ Transactions: +
+{(slot.withdrawals / 10 ** 9).toLocaleString()}
+No slots
++ This is a card example with the entity information you'll find: +
+{getShortAddress(element?.f_address)}
+{getShortAddress(element?.f_hash)}
{element.f_tx_type}
{'9hrs 51mins ago'}
+{timeSince(element.f_timestamp *1000)}
-{getShortAddress(element?.f_address)}
+{getShortAddress(element.f_from)}
{getShortAddress(element?.f_address)}
+{getShortAddress(element.f_to)}
-{(element.f_amount / 10 ** 9).toLocaleString()} ETH
-{(element.f_amount / 10 ** 9).toLocaleString()}
+{(element.f_value / 10 ** 18).toLocaleString()} ETH
+{(element.f_gas_fee_cap / 10 ** 18).toLocaleString()}
No transactions
{ > Txn Hash
-{getShortAddress(element?.f_address)}
+{getShortAddress(element?.f_hash)}
{ > Method
-{element.f_tx_type}
{ > Age
-{'9hrs 51mins ago'}
+{timeSince(element.f_timestamp*1000)}
{
{getShortAddress(element?.f_address)}
+{getShortAddress(element?.f_from)}
{getShortAddress(element?.f_address)}
+{getShortAddress(element?.f_to)}
{(element.f_amount / 10 ** 9).toLocaleString()} ETH
+{(element.f_value / 10 ** 18).toLocaleString()} ETH
{ > Txn Fee
-{(element.f_amount / 10 ** 9).toLocaleString()}
+{(element.f_gas_fee_cap / 10 ** 18).toLocaleString()}
Txn Hash
+Txn Hash
To
Value
-Txn Fee
@@ -488,14 +460,12 @@ const BlockPage = () => { />{getShortAddress(element?.f_hash)}
{element.f_tx_type}
+{element.f_tx_type}
{timeSince(element.f_timestamp *1000)}
+{timeSince(element.f_timestamp * 1000)}
{getShortAddress(element.f_from)}
{timeSince(element.f_timestamp*1000)}
++ {timeSince(element.f_timestamp * 1000)} +
Date: Fri, 10 Nov 2023 11:09:56 +0100
Subject: [PATCH 11/40] Changed send icon color
---
packages/client/pages/[network]/block/[id].tsx | 4 ++--
.../public/static/images/icons/send_dark.webp | Bin 980 -> 924 bytes
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/client/pages/[network]/block/[id].tsx b/packages/client/pages/[network]/block/[id].tsx
index bc1882ec..62a90e5b 100644
--- a/packages/client/pages/[network]/block/[id].tsx
+++ b/packages/client/pages/[network]/block/[id].tsx
@@ -504,8 +504,8 @@ const BlockPage = () => {
{getShortAddress(element.f_to)}
diff --git a/packages/client/public/static/images/icons/send_dark.webp b/packages/client/public/static/images/icons/send_dark.webp index c8952d9a81ec4796c949864337b367048e62f1ef..6301d1e0503c36e606f87533695f520786d81de4 100644 GIT binary patch literal 924 zcmV;N17rMBNk&GL0{{S5MM6+kP&iD80{{RoSHKkzH=&?yBgZ%RvpI4mdv~E-z {getShortAddress(element?.f_hash)} {getShortAddress(element?.f_hash)}
+ {timeSince(element.f_timestamp * 1000)} {getShortAddress(element.f_from)} {getShortAddress(element.f_from)}
+ {getShortAddress(element.f_to)} {getShortAddress(element.f_to)}
+ {(element.f_value / 10 ** 18).toLocaleString()} ETH {(element.f_gas_fee_cap / 10 ** 18).toLocaleString()} {getShortAddress(element?.f_hash)}
+ {getShortAddress(element?.f_hash)} {element.f_tx_type} {element.f_tx_type} {timeSince(element.f_timestamp * 1000)} {timeSince(element.f_timestamp * 1000)} {getShortAddress(element.f_from)}
- {getShortAddress(element.f_from)} {getShortAddress(element.f_to)}
- {getShortAddress(element.f_to)} {(element.f_value / 10 ** 18).toLocaleString()} ETH {(element.f_gas_fee_cap / 10 ** 18).toLocaleString()}
- {timeSince(element.f_timestamp * 1000)}
- {timeSince(element.f_timestamp * 1000)} {
>
From
{getShortAddress(element?.f_from)} {
>
To
{getShortAddress(element?.f_from)} {getShortAddress(element?.f_to)} {getShortAddress(element?.f_to)}
Date: Wed, 22 Nov 2023 13:33:56 +0100
Subject: [PATCH 15/40] add queries for blocks page
---
.../components/layouts/BlocksLayout.tsx | 43 +++++++++----------
.../client/pages/[network]/block/[id].tsx | 4 +-
packages/client/pages/[network]/blocks.tsx | 26 +++++------
packages/server/controllers/blocks.ts | 36 ++++++++++++++++
packages/server/routes/blocks.ts | 8 +++-
5 files changed, 80 insertions(+), 37 deletions(-)
diff --git a/packages/client/components/layouts/BlocksLayout.tsx b/packages/client/components/layouts/BlocksLayout.tsx
index fe308558..bb9de57f 100644
--- a/packages/client/components/layouts/BlocksLayout.tsx
+++ b/packages/client/components/layouts/BlocksLayout.tsx
@@ -3,22 +3,21 @@ import React, { useState, useRef, useContext, useEffect } from 'react';
// Contexts
import ThemeModeContext from '../../contexts/theme-mode/ThemeModeContext';
-// Components
-import LinkValidator from '../ui/LinkValidator';
-import LinkSlot from '../ui/LinkSlot';
// Types
-import { Slot } from '../../types';
+import { BlockEL } from '../../types';
import axiosClient from '../../config/axios';
import { useRouter } from 'next/router';
+import LinkBlock from '../ui/LinkBlock';
+import LinkSlot from '../ui/LinkSlot';
// Props
type Props = {
- slots: Slot[];
+ blocks: BlockEL[];
};
-const Blocks = ({ slots }: Props) => {
+const Blocks = ({ blocks }: Props) => {
// Theme Mode Context
const { themeMode } = useContext(ThemeModeContext) ?? {};
@@ -93,7 +92,7 @@ const Blocks = ({ slots }: Props) => {
))}
- {new Date(blockGenesis + Number(element.f_proposer_slot) * 12000).toLocaleString(
+ {new Date(blockGenesis + Number(element.f_slot) * 12000).toLocaleString(
'ja-JP'
)}
{(element.withdrawals / 10 ** 9).toLocaleString()} {(element.f_el_transactions ?? 0).toLocaleString()} No blocks
{new Date(
- blockGenesis + Number(slot.f_proposer_slot) * 12000
+ blockGenesis + Number(block.f_slot) * 12000
).toLocaleDateString('ja-JP', {
year: 'numeric',
month: 'numeric',
@@ -205,7 +204,7 @@ const Blocks = ({ slots }: Props) => {
{new Date(
- blockGenesis + Number(slot.f_proposer_slot) * 12000
+ blockGenesis + Number(block.f_slot) * 12000
).toLocaleTimeString('ja-JP', {
hour: 'numeric',
minute: 'numeric',
@@ -224,15 +223,15 @@ const Blocks = ({ slots }: Props) => {
>
Transactions:
{(slot.withdrawals / 10 ** 9).toLocaleString()} {(block.f_el_transactions ?? 0).toLocaleString()} No slots No blocks Method {getShortAddress(element?.f_hash)} {element.f_tx_type} {timeSince(element.f_timestamp *1000)} {getShortAddress(element.f_from)} {getShortAddress(element.f_to)} {(element.f_value / 10 ** 18).toLocaleString()} ETH {(element.f_gas_fee_cap / 10 ** 18).toLocaleString()} {(element.f_gas_fee_cap / 10 ** 12).toLocaleString()} GWEI
{(element.f_gas_fee_cap / 10 ** 18).toLocaleString()}
+{(element.f_gas_fee_cap / 10 ** 12).toLocaleString()} GWEI
{getShortAddress(element?.f_hash)}
+{getShortAddress(element.f_from)}
{getShortAddress(element.f_to)}
{(element.f_value / 10 ** 18).toLocaleString()} ETH
{(element.f_gas_fee_cap / 10 ** 18).toLocaleString()}
diff --git a/packages/client/public/static/images/icons/copied_dark.webp b/packages/client/public/static/images/icons/copied_dark.webp new file mode 100644 index 0000000000000000000000000000000000000000..c3ff6df3a087fa4d9b5a14aef652da302dd3147f GIT binary patch literal 1078 zcmV-61j+kSNk&F41ONb6MM6+kP&iB>1ONapUVs-6hr+0BBuTF2k9J>uNYgYJw{7Hz zoBA*GzPEe%?6{F6Mao+C-%h$$?Qt?>BuP*$!8gLGzsaLK!WvwFi?>$^W|aW-x}iYL z>RF0rmf+uZDA2PGX4b4iJ*#K+ETmxO4Q21y|3A-=0X|;FB>8}QmBWC{getShortAddress(element?.f_hash)}
+{getShortAddress(element?.f_hash)}
{timeSince(element.f_timestamp * 1000)}
-{getShortAddress(element.f_from)}
+{getShortAddress(element.f_from)}
{getShortAddress(element.f_to)}
+{getShortAddress(element.f_to)}
{(element.f_value / 10 ** 18).toLocaleString()} ETH
From a7b420deb4076f2d13d2e22ac7ea2903bfab1278 Mon Sep 17 00:00:00 2001 From: Marina Terentii <125751323+Artentii@users.noreply.github.com> Date: Wed, 29 Nov 2023 10:07:33 +0100 Subject: [PATCH 21/40] Run format --- .../client/pages/[network]/block/[id].tsx | 88 +++++++++++++------ 1 file changed, 62 insertions(+), 26 deletions(-) diff --git a/packages/client/pages/[network]/block/[id].tsx b/packages/client/pages/[network]/block/[id].tsx index 145c7b4c..f567ebd9 100644 --- a/packages/client/pages/[network]/block/[id].tsx +++ b/packages/client/pages/[network]/block/[id].tsx @@ -357,18 +357,20 @@ const BlockPage = () => { }; //CopyAddress - const [copied, setCopied] = useState(null) + const [copied, setCopied] = useState(null); useEffect(() => { if (copied) { - setTimeout(() => {setCopied(null)}, 250) + setTimeout(() => { + setCopied(null); + }, 250); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [copied]); - const handleCopyClick = async (id : string, text : string) => { - await navigator.clipboard.writeText(text) - setCopied(id as any) + const handleCopyClick = async (id: string, text: string) => { + await navigator.clipboard.writeText(text); + setCopied(id as any); }; //Transactions tab - table desktop @@ -495,25 +497,39 @@ const BlockPage = () => {{getShortAddress(element?.f_hash)}
- ++ {getShortAddress(element?.f_hash)} +
+{timeSince(element.f_timestamp * 1000)}
-{getShortAddress(element.f_from)}
++ {getShortAddress(element.f_from)} +
{getShortAddress(element.f_to)}
++ {getShortAddress(element.f_to)} +
{(element.f_value / 10 ** 18).toLocaleString()} ETH
{(element.f_gas_fee_cap / 10 ** 18).toLocaleString()}
From a1f16f3ecd082c89b3b7c9fb2f67872210fc6e75 Mon Sep 17 00:00:00 2001 From: IuriTxn Hash
+Age
+From
+To
+Value
+Txn Fee
+{getShortAddress(transaction.f_hash)}
+ +{getAge(transaction.f_timestamp)}
+ +{getShortAddress(transaction.f_from)}
+ +{getShortAddress(transaction.f_to)}
+ +{(transaction.f_value / 10 ** 18).toLocaleString()} ETH
+ +{(transaction.f_gas_fee_cap / 10 ** 12).toLocaleString()} GWEI
++ Txn Hash +
+{getShortAddress(transaction.f_hash)}
++ Age +
+{transaction.f_timestamp}
++ From +
+{getShortAddress(transaction.f_from)}
++ To +
+{getShortAddress(transaction.f_to)}
++ Value +
+{(transaction.f_value / 10 ** 18).toLocaleString()} ETH
++ Txn Fee +
+{(transaction.f_gas_fee_cap / 10 ** 12).toLocaleString()} GWEI
+Txn Hash
-Age
-From
-To
-Value
-Txn Fee
+Txn Hash
+Age
+From
+To
+Value
+Txn Fee
{getShortAddress(transaction.f_hash)}
+{getShortAddress(transaction.f_hash)}
-{getAge(transaction.f_timestamp)}
+{getAge(transaction.f_timestamp)}
-{getShortAddress(transaction.f_from)}
+{getShortAddress(transaction.f_from)}
-{getShortAddress(transaction.f_to)}
+{getShortAddress(transaction.f_to)}
-{(transaction.f_value / 10 ** 18).toLocaleString()} ETH
+{(transaction.f_value / 10 ** 18).toLocaleString()} ETH
-{(transaction.f_gas_fee_cap / 10 ** 12).toLocaleString()} GWEI
+{(transaction.f_gas_fee_cap / 10 ** 12).toLocaleString()} GWEI
{transaction.f_timestamp}
+{getAge(transaction.f_timestamp)}
Txn Hash
+Age
+From
+ +To
+Value
+Txn Fee
+{getShortAddress(element?.f_hash)}
+{getTimeAgo(element.f_timestamp * 1000)}
+ +{getShortAddress(element.f_from)}
+ +{getShortAddress(element.f_to)}
+ ++ {(element.f_value / 10 ** 18).toLocaleString()} ETH +
++ {(element.f_gas_fee_cap / 10 ** 12).toLocaleString()} GWEI +
+No transactions
++ Txn Hash +
+{getShortAddress(element?.f_hash)}
++ Method +
+{element.f_tx_type}
++ Age +
+{getTimeAgo(element.f_timestamp * 1000)}
++ From +
++ To +
+{getShortAddress(element?.f_from)}
+{getShortAddress(element?.f_to)}
++ Value +
+{(element.f_value / 10 ** 18).toLocaleString()} ETH
++ Txn Fee +
+{(element.f_gas_fee_cap / 10 ** 12).toLocaleString()} GWEI
+No transactions
+- {title}: -
-- {text} -
- )} ++ {title}: +
++ {text} +
+ )} - {content && <>{content}>} -Txn Hash
-Age
-From
-To
-Value
-Txn Fee
-{getShortAddress(element?.f_hash)}
-{timeSince(element.f_timestamp * 1000)}
- -{getShortAddress(element.f_from)}
-{getShortAddress(element.f_to)}
- -{(element.f_value / 10 ** 18).toLocaleString()} ETH
-{(element.f_gas_fee_cap / 10 ** 12).toLocaleString()} GWEI
-No transactions
-- Txn Hash -
-{getShortAddress(element?.f_hash)}
-- Method -
-{element.f_tx_type}
-- Age -
-- {timeSince(element.f_timestamp * 1000)} -
-- From -
-- To -
-{getShortAddress(element?.f_from)}
-{getShortAddress(element?.f_to)}
-- Value -
-{(element.f_value / 10 ** 18).toLocaleString()} ETH
-- Txn Fee -
-{(element.f_gas_fee_cap / 10 ** 12).toLocaleString()} GWEI
-No transactions
-Txn Hash
-Age
-From
-To
-Value
-Txn Fee
-{getShortAddress(transaction.f_hash)}
- -{getAge(transaction.f_timestamp)}
- -{getShortAddress(transaction.f_from)}
- -{getShortAddress(transaction.f_to)}
- -{(transaction.f_value / 10 ** 18).toLocaleString()} ETH
- -{(transaction.f_gas_fee_cap / 10 ** 12).toLocaleString()} GWEI
-- Txn Hash -
-{getShortAddress(transaction.f_hash)}
-- Age -
-{getAge(transaction.f_timestamp)}
-- From -
-{getShortAddress(transaction.f_from)}
-- To -
-{getShortAddress(transaction.f_to)}
-- Value -
-{(transaction.f_value / 10 ** 18).toLocaleString()} ETH
-- Txn Fee -
-{(transaction.f_gas_fee_cap / 10 ** 12).toLocaleString()} GWEI
-+ {title}: +
++ {text} +
+ )} + + {content && <>{content}>} +{getShortAddress(element?.f_hash)}
- Method -
-{element.f_tx_type}
-
Date: Fri, 1 Dec 2023 19:47:29 +0100
Subject: [PATCH 29/40] Create a hook for large view flag
---
.../components/layouts/Transactions.tsx | 17 +++++++----------
packages/client/hooks/useLargeView.ts | 19 +++++++++++++++++++
packages/client/pages/transaction/[hash].tsx | 7 +------
3 files changed, 27 insertions(+), 16 deletions(-)
create mode 100644 packages/client/hooks/useLargeView.ts
diff --git a/packages/client/components/layouts/Transactions.tsx b/packages/client/components/layouts/Transactions.tsx
index d34c6bf1..f1771cf7 100644
--- a/packages/client/components/layouts/Transactions.tsx
+++ b/packages/client/components/layouts/Transactions.tsx
@@ -1,8 +1,11 @@
-import React, { useState, useEffect, useContext, useRef } from 'react';
+import React, { useContext, useRef } from 'react';
// Contexts
import ThemeModeContext from '../../contexts/theme-mode/ThemeModeContext';
+// Hooks
+import useLargeView from '../../hooks/useLargeView';
+
// Components
import TooltipContainer from '../../components/ui/TooltipContainer';
import TooltipResponsive from '../../components/ui/TooltipResponsive';
@@ -29,14 +32,8 @@ const Transactions = ({ transactions, loadingTransactions }: Props) => {
// Refs
const containerRef = useRef
- {title}: -
-- {text} -
- )} - - {content && <>{content}>} -+ {title}: +
++ {text} +
+ )} + + {content && <>{content}>}{getShortAddress(element?.f_hash)}
+{getTimeAgo(element.f_timestamp * 1000)}
@@ -254,7 +255,7 @@ const Transactions = ({ transactions, loadingTransactions }: Props) => { > Txn Hash -{getShortAddress(element?.f_hash)}
+ {
+ // Theme Mode Context
+ const { themeMode } = useContext(ThemeModeContext) ?? {};
+
+ const baseStyle = {
+ color: themeMode?.darkMode ? 'var(--purple)' : 'var(--darkPurple)',
+ };
+
+ return (
+
Method
-Age
To
Value
-<<<<<<< HEAD:packages/client/pages/[network]/block/[id].tsx -=======Txn Fee
@@ -514,12 +472,7 @@ const BlockPage = () => { colorLetter='black' content={ <> -<<<<<<< HEAD:packages/client/pages/[network]/block/[id].tsx (Gas price*Gas used by Txns) in Ether -======= - The fee - the transaction cost ->>>>>>> a8feff1f3bbd544207455605cc83597c805108c1:packages/client/pages/block/[id].tsx > } top='34px' @@ -536,7 +489,6 @@ const BlockPage = () => { ) : ({element.f_tx_type}
{timeSince(element.f_timestamp * 1000)}
-======= -{getShortAddress(element?.f_hash)}
-{timeSince(element.f_timestamp * 1000)}
->>>>>>> a8feff1f3bbd544207455605cc83597c805108c1:packages/client/pages/block/[id].tsx{timeSince(element.f_timestamp * 1000)}
-======= -- {timeSince(element.f_timestamp * 1000)} -
->>>>>>> a8feff1f3bbd544207455605cc83597c805108c1:packages/client/pages/block/[id].tsx
Date: Mon, 4 Dec 2023 16:52:22 +0100
Subject: [PATCH 34/40] improve queries speed
---
packages/client/pages/transactions.tsx | 2 +-
packages/server/controllers/transactions.ts | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/packages/client/pages/transactions.tsx b/packages/client/pages/transactions.tsx
index 0cd2e7fe..cc12bb61 100644
--- a/packages/client/pages/transactions.tsx
+++ b/packages/client/pages/transactions.tsx
@@ -48,7 +48,7 @@ const Transactions = () => {
params: {
network,
page,
- limit: 1,
+ limit: 20,
},
});
diff --git a/packages/server/controllers/transactions.ts b/packages/server/controllers/transactions.ts
index 58667a44..6f7a9c03 100644
--- a/packages/server/controllers/transactions.ts
+++ b/packages/server/controllers/transactions.ts
@@ -13,9 +13,9 @@ export const getTransactions = async (req: Request, res: Response) => {
const transactions =
await pgPool.query(`
- SELECT f_tx_idx, f_gas_fee_cap, f_value, f_to, f_hash, f_timestamp, f_from
+ SELECT f_tx_idx, f_gas_fee_cap, f_value, f_to, f_hash, f_timestamp, f_from, f_el_block_number
FROM t_transactions
- ORDER BY f_timestamp DESC
+ ORDER by f_el_block_number desc, f_timestamp desc
OFFSET ${skip}
LIMIT ${Number(limit)}
`);
@@ -46,7 +46,7 @@ export const getTransactionByHash = async (req: Request, res: Response) => {
await pgPool.query(`
SELECT f_tx_idx, f_gas_fee_cap, f_value, f_to, f_hash, f_timestamp, f_from, f_el_block_number
FROM t_transactions
- WHERE LOWER(f_hash) = '${hash.toLowerCase()}'
+ WHERE f_hash = '${hash}'
`);
res.json({
From 3d336e55bd645a1d0e40ea1fb5f9ad52af1223e4 Mon Sep 17 00:00:00 2001
From: Iuri
{
// States
const [transaction, setTransaction] = useState
- {(element.f_gas_fee_cap / 10 ** 12).toLocaleString()} GWEI + {(element.f_gas_fee_cap / 10 ** 9).toLocaleString()} GWEI
{(element.f_gas_fee_cap / 10 ** 12).toLocaleString()} GWEI
+{(element.f_gas_fee_cap / 10 ** 9).toLocaleString()} GWEI