From a87a9c1958638eb81385cf23899f0c549f0d54d0 Mon Sep 17 00:00:00 2001 From: tom Date: Fri, 20 Dec 2024 09:44:20 +0100 Subject: [PATCH 01/16] txn withdrawals page stub --- lib/metadata/getPageOgType.ts | 1 + lib/metadata/templates/description.ts | 1 + lib/metadata/templates/title.ts | 1 + lib/mixpanel/getPageType.ts | 1 + nextjs/getServerSideProps.ts | 10 ++++++++++ nextjs/nextjs-routes.d.ts | 1 + pages/txn-withdrawals/index.tsx | 28 +++++++++++++++++++++++++++ ui/pages/ArbitrumL2TxnWithdrawals.tsx | 15 ++++++++++++++ 8 files changed, 58 insertions(+) create mode 100644 pages/txn-withdrawals/index.tsx create mode 100644 ui/pages/ArbitrumL2TxnWithdrawals.tsx diff --git a/lib/metadata/getPageOgType.ts b/lib/metadata/getPageOgType.ts index 4535257365..cf1fd92602 100644 --- a/lib/metadata/getPageOgType.ts +++ b/lib/metadata/getPageOgType.ts @@ -36,6 +36,7 @@ const OG_TYPE_DICT: Record = { '/account/verified-addresses': 'Root page', '/public-tags/submit': 'Regular page', '/withdrawals': 'Root page', + '/txn-withdrawals': 'Root page', '/visualize/sol2uml': 'Regular page', '/csv-export': 'Regular page', '/deposits': 'Root page', diff --git a/lib/metadata/templates/description.ts b/lib/metadata/templates/description.ts index a8069e0f28..b29e201a43 100644 --- a/lib/metadata/templates/description.ts +++ b/lib/metadata/templates/description.ts @@ -39,6 +39,7 @@ const TEMPLATE_MAP: Record = { '/account/verified-addresses': DEFAULT_TEMPLATE, '/public-tags/submit': 'Propose a new public tag for your address, contract or set of contracts for your dApp. Our team will review and approve your submission. Public tags are incredible tool which helps users identify contracts and addresses.', '/withdrawals': DEFAULT_TEMPLATE, + '/txn-withdrawals': DEFAULT_TEMPLATE, '/visualize/sol2uml': DEFAULT_TEMPLATE, '/csv-export': DEFAULT_TEMPLATE, '/deposits': DEFAULT_TEMPLATE, diff --git a/lib/metadata/templates/title.ts b/lib/metadata/templates/title.ts index 46eedf1d30..59ea30f90a 100644 --- a/lib/metadata/templates/title.ts +++ b/lib/metadata/templates/title.ts @@ -36,6 +36,7 @@ const TEMPLATE_MAP: Record = { '/account/verified-addresses': '%network_name% - my verified addresses', '/public-tags/submit': '%network_name% - public tag requests', '/withdrawals': '%network_name% withdrawals - track on %network_name% explorer', + '/txn-withdrawals': '%network_name% L2 to L1 message relayer', '/visualize/sol2uml': '%network_name% Solidity UML diagram', '/csv-export': '%network_name% export data to CSV', '/deposits': '%network_name% deposits (L1 > L2)', diff --git a/lib/mixpanel/getPageType.ts b/lib/mixpanel/getPageType.ts index e361248bbf..4adf99b1b7 100644 --- a/lib/mixpanel/getPageType.ts +++ b/lib/mixpanel/getPageType.ts @@ -34,6 +34,7 @@ export const PAGE_TYPE_DICT: Record = { '/account/verified-addresses': 'Verified addresses', '/public-tags/submit': 'Submit public tag', '/withdrawals': 'Withdrawals', + '/txn-withdrawals': 'Txn withdrawals', '/visualize/sol2uml': 'Solidity UML diagram', '/csv-export': 'Export data to CSV file', '/deposits': 'Deposits (L1 > L2)', diff --git a/nextjs/getServerSideProps.ts b/nextjs/getServerSideProps.ts index 3927590800..f71cca242d 100644 --- a/nextjs/getServerSideProps.ts +++ b/nextjs/getServerSideProps.ts @@ -92,6 +92,16 @@ export const withdrawals: GetServerSideProps = async(context) => { return base(context); }; +export const txnWithdrawals: GetServerSideProps = async(context) => { + if (!(rollupFeature.isEnabled && rollupFeature.type === 'arbitrum')) { + return { + notFound: true, + }; + } + + return base(context); +}; + export const rollup: GetServerSideProps = async(context) => { if (!config.features.rollup.isEnabled) { return { diff --git a/nextjs/nextjs-routes.d.ts b/nextjs/nextjs-routes.d.ts index 185a221d3c..a86790248e 100644 --- a/nextjs/nextjs-routes.d.ts +++ b/nextjs/nextjs-routes.d.ts @@ -64,6 +64,7 @@ declare module "nextjs-routes" { | StaticRoute<"/token-transfers"> | StaticRoute<"/tokens"> | DynamicRoute<"/tx/[hash]", { "hash": string }> + | StaticRoute<"/txn-withdrawals"> | StaticRoute<"/txs"> | DynamicRoute<"/txs/kettle/[hash]", { "hash": string }> | StaticRoute<"/validators"> diff --git a/pages/txn-withdrawals/index.tsx b/pages/txn-withdrawals/index.tsx new file mode 100644 index 0000000000..4389955137 --- /dev/null +++ b/pages/txn-withdrawals/index.tsx @@ -0,0 +1,28 @@ +import type { NextPage } from 'next'; +import dynamic from 'next/dynamic'; +import React from 'react'; + +import PageNextJs from 'nextjs/PageNextJs'; + +import config from 'configs/app'; +const rollupFeature = config.features.rollup; + +const Withdrawals = dynamic(() => { + if (rollupFeature.isEnabled && rollupFeature.type === 'arbitrum') { + return import('ui/pages/ArbitrumL2TxnWithdrawals'); + } + + throw new Error('Txn withdrawals feature is not enabled.'); +}, { ssr: false }); + +const Page: NextPage = () => { + return ( + + + + ); +}; + +export default Page; + +export { txnWithdrawals as getServerSideProps } from 'nextjs/getServerSideProps'; diff --git a/ui/pages/ArbitrumL2TxnWithdrawals.tsx b/ui/pages/ArbitrumL2TxnWithdrawals.tsx new file mode 100644 index 0000000000..0047995a68 --- /dev/null +++ b/ui/pages/ArbitrumL2TxnWithdrawals.tsx @@ -0,0 +1,15 @@ +import { Text } from '@chakra-ui/react'; +import React from 'react'; + +import PageTitle from 'ui/shared/Page/PageTitle'; + +const ArbitrumL2TxnWithdrawals = () => { + return ( + <> + + L2 to L1 message relayer: search for your L2 transaction to execute a manual withdrawal. + + ); +}; + +export default React.memo(ArbitrumL2TxnWithdrawals); From 02bd4d029880622ba026a6de973864b325174600 Mon Sep 17 00:00:00 2001 From: tom Date: Fri, 20 Dec 2024 14:08:20 +0100 Subject: [PATCH 02/16] add base page layout --- lib/api/resources.ts | 8 ++ lib/hooks/useNavItems.tsx | 5 ++ stubs/arbitrumL2.ts | 15 +++- types/api/arbitrumL2.ts | 22 ++++- ui/pages/ArbitrumL2TxnWithdrawals.tsx | 80 ++++++++++++++++++- ui/shared/DataListDisplay.tsx | 2 +- ui/shared/filters/FilterInput.tsx | 6 +- .../ArbitrumL2TxnWithdrawalsList.tsx | 27 +++++++ .../ArbitrumL2TxnWithdrawalsListItem.tsx | 58 ++++++++++++++ .../ArbitrumL2TxnWithdrawalsTable.tsx | 36 +++++++++ .../ArbitrumL2TxnWithdrawalsTableItem.tsx | 38 +++++++++ 11 files changed, 292 insertions(+), 5 deletions(-) create mode 100644 ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsList.tsx create mode 100644 ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx create mode 100644 ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTable.tsx create mode 100644 ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx diff --git a/lib/api/resources.ts b/lib/api/resources.ts index b99d04846f..08d53b4445 100644 --- a/lib/api/resources.ts +++ b/lib/api/resources.ts @@ -51,6 +51,7 @@ import type { ArbitrumL2BatchBlocks, ArbitrumL2TxnBatchesItem, ArbitrumLatestDepositsResponse, + ArbitrumL2TxnWithdrawalsResponse, } from 'types/api/arbitrumL2'; import type { TxBlobs, Blob } from 'types/api/blobs'; import type { @@ -916,6 +917,12 @@ export const RESOURCES = { filterFields: [], }, + arbitrum_l2_txn_withdrawals: { + path: '/api/v2/arbitrum/messages/withdrawals/:hash', + pathParams: [ 'hash' as const ], + filterFields: [], + }, + // zkEvm L2 zkevm_l2_deposits: { path: '/api/v2/zkevm/deposits', @@ -1375,6 +1382,7 @@ Q extends 'arbitrum_l2_txn_batches_count' ? number : Q extends 'arbitrum_l2_txn_batch' ? ArbitrumL2TxnBatch : Q extends 'arbitrum_l2_txn_batch_txs' ? ArbitrumL2BatchTxs : Q extends 'arbitrum_l2_txn_batch_blocks' ? ArbitrumL2BatchBlocks : +Q extends 'arbitrum_l2_txn_withdrawals' ? ArbitrumL2TxnWithdrawalsResponse : Q extends 'zkevm_l2_deposits' ? ZkEvmL2DepositsResponse : Q extends 'zkevm_l2_deposits_count' ? number : Q extends 'zkevm_l2_withdrawals' ? ZkEvmL2WithdrawalsResponse : diff --git a/lib/hooks/useNavItems.tsx b/lib/hooks/useNavItems.tsx index bb7c48300f..ce183b2a23 100644 --- a/lib/hooks/useNavItems.tsx +++ b/lib/hooks/useNavItems.tsx @@ -246,6 +246,11 @@ export default function useNavItems(): ReturnType { nextRoute: { pathname: '/public-tags/submit' as const }, isActive: pathname.startsWith('/public-tags/submit'), }, + rollupFeature.isEnabled && rollupFeature.type === 'arbitrum' && { + text: 'Txn withdrawals', + nextRoute: { pathname: '/txn-withdrawals' as const }, + isActive: pathname.startsWith('/txn-withdrawals'), + }, ...config.UI.navigation.otherLinks, ].filter(Boolean); diff --git a/stubs/arbitrumL2.ts b/stubs/arbitrumL2.ts index a8e9ba0a1d..354fff0a54 100644 --- a/stubs/arbitrumL2.ts +++ b/stubs/arbitrumL2.ts @@ -1,4 +1,4 @@ -import type { ArbitrumL2TxnBatchesItem, ArbitrumL2TxnBatch, ArbitrumL2MessagesItem } from 'types/api/arbitrumL2'; +import type { ArbitrumL2TxnBatchesItem, ArbitrumL2TxnBatch, ArbitrumL2MessagesItem, ArbitrumL2TxnWithdrawalsItem } from 'types/api/arbitrumL2'; import { ADDRESS_HASH } from './addressParams'; import { TX_HASH } from './tx'; @@ -36,3 +36,16 @@ export const ARBITRUM_L2_TXN_BATCH: ArbitrumL2TxnBatch = { batch_data_container: 'in_blob4844', }, }; + +export const ARBITRUM_L2_TXN_WITHDRAWALS_ITEM: ArbitrumL2TxnWithdrawalsItem = { + arb_block_number: 70889261, + caller: '0x507f55d716340fc836ba52c1a8daebcfeedeef1a', + callvalue: 100000000000000, + data: '0x', + destination: '0x507f55d716340fc836ba52c1a8daebcfeedeef1a', + eth_block_number: 6494128, + id: 43685, + l2_timestamp: 1723578569, + status: 'relayed', + token: null, +}; diff --git a/types/api/arbitrumL2.ts b/types/api/arbitrumL2.ts index 4bf19ed35e..906a7b228f 100644 --- a/types/api/arbitrumL2.ts +++ b/types/api/arbitrumL2.ts @@ -12,6 +12,8 @@ export interface ArbitrumLatestDepositsResponse { items: Array; } +export type ArbitrumL2MessageStatus = 'initiated' | 'sent' | 'confirmed' | 'relayed'; + export type ArbitrumL2MessagesItem = { completion_transaction_hash: string | null; id: number; @@ -19,7 +21,7 @@ export type ArbitrumL2MessagesItem = { origination_timestamp: string | null; origination_transaction_block_number: number | null; origination_transaction_hash: string; - status: 'initiated' | 'sent' | 'confirmed' | 'relayed'; + status: ArbitrumL2MessageStatus; }; export type ArbitrumL2MessagesResponse = { @@ -108,6 +110,24 @@ export type ArbitrumL2BatchBlocks = { } | null; }; +export interface ArbitrumL2TxnWithdrawalsItem { + // TODO @tom2drum check if all fields are required + token not-null case + arb_block_number: number; + caller: string; + callvalue: number; + data: string; + destination: string; + eth_block_number: number; + id: number; + l2_timestamp: number; + status: ArbitrumL2MessageStatus; + token: null; +} + +export interface ArbitrumL2TxnWithdrawalsResponse { + items: Array; +} + export const ARBITRUM_L2_TX_BATCH_STATUSES = [ 'Processed on rollup' as const, 'Sent to base' as const, diff --git a/ui/pages/ArbitrumL2TxnWithdrawals.tsx b/ui/pages/ArbitrumL2TxnWithdrawals.tsx index 0047995a68..39c8fb6ccf 100644 --- a/ui/pages/ArbitrumL2TxnWithdrawals.tsx +++ b/ui/pages/ArbitrumL2TxnWithdrawals.tsx @@ -1,13 +1,91 @@ -import { Text } from '@chakra-ui/react'; +import { Box, Text } from '@chakra-ui/react'; +import { useRouter } from 'next/router'; import React from 'react'; +import useApiQuery from 'lib/api/useApiQuery'; +import { apos } from 'lib/html-entities'; +import getQueryParamString from 'lib/router/getQueryParamString'; +import { ARBITRUM_L2_TXN_WITHDRAWALS_ITEM } from 'stubs/arbitrumL2'; +import DataListDisplay from 'ui/shared/DataListDisplay'; +import FilterInput from 'ui/shared/filters/FilterInput'; +import FieldError from 'ui/shared/forms/components/FieldError'; +import { TRANSACTION_HASH_REGEXP } from 'ui/shared/forms/validators/transaction'; import PageTitle from 'ui/shared/Page/PageTitle'; +import ArbitrumL2TxnWithdrawalsList from 'ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsList'; +import ArbitrumL2TxnWithdrawalsTable from 'ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTable'; const ArbitrumL2TxnWithdrawals = () => { + const router = useRouter(); + + const [ searchTerm, setSearchTerm ] = React.useState(getQueryParamString(router.query.q) || undefined); + const [ error, setError ] = React.useState(null); + + const { data, isError, isPlaceholderData } = useApiQuery('arbitrum_l2_txn_withdrawals', { + pathParams: { + hash: searchTerm, + }, + queryOptions: { + enabled: Boolean(searchTerm), + placeholderData: { + items: [ ARBITRUM_L2_TXN_WITHDRAWALS_ITEM ], + }, + }, + }); + + const handleSearchTermChange = React.useCallback(() => { + setError(null); + }, [ ]); + + const handleSearchInputFocus = React.useCallback(() => {}, []); + + const handleSearchInputBlur = React.useCallback((event: React.FocusEvent) => { + const { value } = event.target; + + if (!value || TRANSACTION_HASH_REGEXP.test(value)) { + setSearchTerm(value); + setError(null); + } else { + setError('Invalid transaction hash'); + setSearchTerm(undefined); + } + }, []); + + const content = data?.items ? ( + <> + + + + + + + + ) : null; + return ( <> L2 to L1 message relayer: search for your L2 transaction to execute a manual withdrawal. + + { error && } + ); }; diff --git a/ui/shared/DataListDisplay.tsx b/ui/shared/DataListDisplay.tsx index 1094108572..98155b2cbc 100644 --- a/ui/shared/DataListDisplay.tsx +++ b/ui/shared/DataListDisplay.tsx @@ -13,7 +13,7 @@ type FilterProps = { type Props = { isError: boolean; items?: Array; - emptyText: React.ReactNode; + emptyText?: React.ReactNode; actionBar?: React.ReactNode; showActionBarIfEmpty?: boolean; content: React.ReactNode; diff --git a/ui/shared/filters/FilterInput.tsx b/ui/shared/filters/FilterInput.tsx index 00fcb05b52..c06a375ab4 100644 --- a/ui/shared/filters/FilterInput.tsx +++ b/ui/shared/filters/FilterInput.tsx @@ -7,6 +7,8 @@ import IconSvg from 'ui/shared/IconSvg'; type Props = { onChange?: (searchTerm: string) => void; + onFocus?: (event: React.FocusEvent) => void; + onBlur?: (event: React.FocusEvent) => void; className?: string; size?: 'xs' | 'sm' | 'md' | 'lg'; placeholder: string; @@ -16,7 +18,7 @@ type Props = { name?: string; }; -const FilterInput = ({ onChange, className, size = 'sm', placeholder, initialValue, isLoading, type, name }: Props) => { +const FilterInput = ({ onChange, className, size = 'sm', placeholder, initialValue, isLoading, type, name, onFocus, onBlur }: Props) => { const [ filterQuery, setFilterQuery ] = useState(initialValue || ''); const inputRef = React.useRef(null); const iconColor = useColorModeValue('blackAlpha.600', 'whiteAlpha.600'); @@ -61,6 +63,8 @@ const FilterInput = ({ onChange, className, size = 'sm', placeholder, initialVal whiteSpace="nowrap" type={ type } name={ name } + onFocus={ onFocus } + onBlur={ onBlur } /> { filterQuery ? ( diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsList.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsList.tsx new file mode 100644 index 0000000000..4942adb10a --- /dev/null +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsList.tsx @@ -0,0 +1,27 @@ +import { Box } from '@chakra-ui/react'; +import React from 'react'; + +import type { ArbitrumL2TxnWithdrawalsItem } from 'types/api/arbitrumL2'; + +import ArbitrumL2TxnWithdrawalsListItem from './ArbitrumL2TxnWithdrawalsListItem'; + +interface Props { + data: Array; + isLoading: boolean; +} + +const ArbitrumL2TxnWithdrawalsList = ({ data, isLoading }: Props) => { + return ( + + { data.map((item, index) => ( + + )) } + + ); +}; + +export default React.memo(ArbitrumL2TxnWithdrawalsList); diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx new file mode 100644 index 0000000000..e84845b180 --- /dev/null +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx @@ -0,0 +1,58 @@ +import { Button, Skeleton } from '@chakra-ui/react'; +import React from 'react'; + +import type { ArbitrumL2TxnWithdrawalsItem } from 'types/api/arbitrumL2'; + +import config from 'configs/app'; +import AddressEntityL1 from 'ui/shared/entities/address/AddressEntityL1'; +import ListItemMobileGrid from 'ui/shared/ListItemMobile/ListItemMobileGrid'; +import ArbitrumL2MessageStatus from 'ui/shared/statusTag/ArbitrumL2MessageStatus'; + +const rollupFeature = config.features.rollup; + +interface Props { + data: ArbitrumL2TxnWithdrawalsItem; + isLoading: boolean; +} + +const ArbitrumL2TxnWithdrawalsListItem = ({ data, isLoading }: Props) => { + if (!rollupFeature.isEnabled || rollupFeature.type !== 'arbitrum') { + return null; + } + + return ( + + + Message # + + { data.id } + + + Receiver + + + + + Value + + 333 + + + Status + + + + + + + ); +}; + +export default ArbitrumL2TxnWithdrawalsListItem; diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTable.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTable.tsx new file mode 100644 index 0000000000..172b878730 --- /dev/null +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTable.tsx @@ -0,0 +1,36 @@ +import { Tbody, Tr, Thead, Table, Th } from '@chakra-ui/react'; +import React from 'react'; + +import type { ArbitrumL2TxnWithdrawalsItem } from 'types/api/arbitrumL2'; + +import ArbitrumL2TxnWithdrawalsTableItem from './ArbitrumL2TxnWithdrawalsTableItem'; + +interface Props { + data: Array; + isLoading: boolean; +} + +const ArbitrumL2TxnWithdrawalsTable = ({ data, isLoading }: Props) => { + return ( + + + + + + + + + + + { data.map((item, index) => ( + + )) } + +
Message #ReceiverValueStatus
+ ); +}; + +export default React.memo(ArbitrumL2TxnWithdrawalsTable); diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx new file mode 100644 index 0000000000..b6d12166f1 --- /dev/null +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx @@ -0,0 +1,38 @@ +import { Tr, Td, Skeleton, Flex, Button } from '@chakra-ui/react'; +import React from 'react'; + +import type { ArbitrumL2TxnWithdrawalsItem } from 'types/api/arbitrumL2'; + +import AddressEntityL1 from 'ui/shared/entities/address/AddressEntityL1'; +import ArbitrumL2MessageStatus from 'ui/shared/statusTag/ArbitrumL2MessageStatus'; + +interface Props { + data: ArbitrumL2TxnWithdrawalsItem; + isLoading?: boolean; +} + +const ArbitrumL2TxnWithdrawalsTableItem = ({ data, isLoading }: Props) => { + return ( + + + { data.id } + + + + + + 333 + + + + + + + + + ); +}; + +export default React.memo(ArbitrumL2TxnWithdrawalsTableItem); From 9844332db146f9e2267767911558c25f5d441d2b Mon Sep 17 00:00:00 2001 From: tom Date: Fri, 20 Dec 2024 14:13:17 +0100 Subject: [PATCH 03/16] add ConnectWallet alert --- ui/address/contract/methods/ContractMethodsCustom.tsx | 4 ++-- ui/address/contract/methods/ContractMethodsMudSystem.tsx | 4 ++-- ui/address/contract/methods/ContractMethodsProxy.tsx | 4 ++-- ui/address/contract/methods/ContractMethodsRegular.tsx | 4 ++-- ui/pages/ArbitrumL2TxnWithdrawals.tsx | 6 ++++-- .../ConnectWalletAlert.tsx} | 4 ++-- 6 files changed, 14 insertions(+), 12 deletions(-) rename ui/{address/contract/methods/ContractConnectWallet.tsx => shared/ConnectWalletAlert.tsx} (94%) diff --git a/ui/address/contract/methods/ContractMethodsCustom.tsx b/ui/address/contract/methods/ContractMethodsCustom.tsx index 00203175c7..7e3ab4e25f 100644 --- a/ui/address/contract/methods/ContractMethodsCustom.tsx +++ b/ui/address/contract/methods/ContractMethodsCustom.tsx @@ -8,12 +8,12 @@ import type { SmartContract } from 'types/api/contract'; import useApiQuery, { getResourceKey } from 'lib/api/useApiQuery'; import getQueryParamString from 'lib/router/getQueryParamString'; import CustomAbiModal from 'ui/customAbi/CustomAbiModal/CustomAbiModal'; +import ConnectWalletAlert from 'ui/shared/ConnectWalletAlert'; import RawDataSnippet from 'ui/shared/RawDataSnippet'; import AuthGuard from 'ui/snippets/auth/AuthGuard'; import useIsAuth from 'ui/snippets/auth/useIsAuth'; import ContractAbi from './ContractAbi'; -import ContractConnectWallet from './ContractConnectWallet'; import ContractCustomAbiAlert from './ContractCustomAbiAlert'; import ContractMethodsContainer from './ContractMethodsContainer'; import ContractMethodsFilters from './ContractMethodsFilters'; @@ -74,7 +74,7 @@ const ContractMethodsCustom = ({ isLoading: isLoadingProp }: Props) => { { currentInfo ? ( <> - + { return ( - +
- +
{ return ( - + { const content = data?.items ? ( <> - + + - + diff --git a/ui/address/contract/methods/ContractConnectWallet.tsx b/ui/shared/ConnectWalletAlert.tsx similarity index 94% rename from ui/address/contract/methods/ContractConnectWallet.tsx rename to ui/shared/ConnectWalletAlert.tsx index 21c24193c3..cf4135f31e 100644 --- a/ui/address/contract/methods/ContractConnectWallet.tsx +++ b/ui/shared/ConnectWalletAlert.tsx @@ -10,7 +10,7 @@ interface Props { isLoading?: boolean; } -const ContractConnectWallet = ({ isLoading }: Props) => { +const ConnectWalletAlert = ({ isLoading }: Props) => { const web3Wallet = useWeb3Wallet({ source: 'Smart contracts' }); const isMobile = useIsMobile(); @@ -61,4 +61,4 @@ const ContractConnectWallet = ({ isLoading }: Props) => { const Fallback = () => null; -export default config.features.blockchainInteraction.isEnabled ? ContractConnectWallet : Fallback; +export default config.features.blockchainInteraction.isEnabled ? ConnectWalletAlert : Fallback; From 6a9dc54dae4a5e8b0e4436e72319ecdcd2d20620 Mon Sep 17 00:00:00 2001 From: tom Date: Fri, 20 Dec 2024 14:49:18 +0100 Subject: [PATCH 04/16] save search term in page query param --- ui/pages/ArbitrumL2TxnWithdrawals.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ui/pages/ArbitrumL2TxnWithdrawals.tsx b/ui/pages/ArbitrumL2TxnWithdrawals.tsx index 28316dc5b0..1b9447bdfa 100644 --- a/ui/pages/ArbitrumL2TxnWithdrawals.tsx +++ b/ui/pages/ArbitrumL2TxnWithdrawals.tsx @@ -45,11 +45,16 @@ const ArbitrumL2TxnWithdrawals = () => { if (!value || TRANSACTION_HASH_REGEXP.test(value)) { setSearchTerm(value); setError(null); + router.push( + { pathname: router.pathname, query: value ? { q: value } : undefined }, + undefined, + { shallow: true }, + ); } else { setError('Invalid transaction hash'); setSearchTerm(undefined); } - }, []); + }, [ router ]); const content = data?.items ? ( <> From 7acf7cf9cfc52f24ec0b277bce298bc964ff4ccb Mon Sep 17 00:00:00 2001 From: tom Date: Fri, 20 Dec 2024 19:23:25 +0100 Subject: [PATCH 05/16] add links to the new page --- lib/tx/arbitrumMessageStatusDescription.ts | 10 -- types/api/transaction.ts | 4 +- ui/messages/ArbitrumL2MessagesListItem.tsx | 7 +- ui/messages/ArbitrumL2MessagesTableItem.tsx | 7 +- .../verificationSteps/VerificationStep.tsx | 5 +- .../verificationSteps/VerificationSteps.tsx | 1 + .../TxDetailsWithdrawalStatusArbitrum.tsx | 100 ++++++++++++++++++ ...xDetailsWithdrawalStatusOptimistic.pw.tsx} | 4 +- ...> TxDetailsWithdrawalStatusOptimistic.tsx} | 4 +- ui/tx/details/TxInfo.tsx | 31 +----- ...Status.pw.tsx_default_status-Relayed-1.png | Bin 6574 -> 0 bytes ....tsx_default_status-Ready-for-relay-1.png} | Bin ...mistic.pw.tsx_default_status-Relayed-1.png | Bin 0 -> 6565 bytes ...fault_status-Waiting-for-state-root-1.png} | Bin 14 files changed, 126 insertions(+), 47 deletions(-) delete mode 100644 lib/tx/arbitrumMessageStatusDescription.ts create mode 100644 ui/tx/details/TxDetailsWithdrawalStatusArbitrum.tsx rename ui/tx/details/{TxDetailsWithdrawalStatus.pw.tsx => TxDetailsWithdrawalStatusOptimistic.pw.tsx} (73%) rename ui/tx/details/{TxDetailsWithdrawalStatus.tsx => TxDetailsWithdrawalStatusOptimistic.tsx} (94%) delete mode 100644 ui/tx/details/__screenshots__/TxDetailsWithdrawalStatus.pw.tsx_default_status-Relayed-1.png rename ui/tx/details/__screenshots__/{TxDetailsWithdrawalStatus.pw.tsx_default_status-Ready-for-relay-1.png => TxDetailsWithdrawalStatusOptimistic.pw.tsx_default_status-Ready-for-relay-1.png} (100%) create mode 100644 ui/tx/details/__screenshots__/TxDetailsWithdrawalStatusOptimistic.pw.tsx_default_status-Relayed-1.png rename ui/tx/details/__screenshots__/{TxDetailsWithdrawalStatus.pw.tsx_default_status-Waiting-for-state-root-1.png => TxDetailsWithdrawalStatusOptimistic.pw.tsx_default_status-Waiting-for-state-root-1.png} (100%) diff --git a/lib/tx/arbitrumMessageStatusDescription.ts b/lib/tx/arbitrumMessageStatusDescription.ts deleted file mode 100644 index 8f2a635a12..0000000000 --- a/lib/tx/arbitrumMessageStatusDescription.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* eslint-disable max-len */ -import type { ArbitrumMessageStatus } from 'types/api/transaction'; - -export const MESSAGE_DESCRIPTIONS: Record = { - 'Syncing with base layer': 'The incoming message was discovered on the rollup, but the corresponding message on L1 has not yet been found', - 'Settlement pending': 'The transaction with the message was included in a rollup block, but there is no batch on L1 containing the block yet', - 'Waiting for confirmation': 'The rollup block with the transaction containing the message was included in a batch on L1, but it is still waiting for the expiration of the fraud proof countdown', - 'Ready for relay': 'The rollup state was confirmed successfully, and the message can be executed—funds can be claimed on L1', - Relayed: '', -}; diff --git a/types/api/transaction.ts b/types/api/transaction.ts index 43c19110a2..4bf5ce3f30 100644 --- a/types/api/transaction.ts +++ b/types/api/transaction.ts @@ -119,11 +119,11 @@ type ArbitrumTransactionData = { status: ArbitrumBatchStatus; message_related_info: { associated_l1_transaction: string | null; - message_status: ArbitrumMessageStatus; + message_status: ArbitrumTransactionMessageStatus; }; }; -export type ArbitrumMessageStatus = 'Relayed' | 'Syncing with base layer' | 'Waiting for confirmation' | 'Ready for relay' | 'Settlement pending'; +export type ArbitrumTransactionMessageStatus = 'Relayed' | 'Syncing with base layer' | 'Waiting for confirmation' | 'Ready for relay' | 'Settlement pending'; export const ZKEVM_L2_TX_STATUSES = [ 'Confirmed by Sequencer', 'L1 Confirmed' ]; diff --git a/ui/messages/ArbitrumL2MessagesListItem.tsx b/ui/messages/ArbitrumL2MessagesListItem.tsx index d291efc9fe..69d0aaaf19 100644 --- a/ui/messages/ArbitrumL2MessagesListItem.tsx +++ b/ui/messages/ArbitrumL2MessagesListItem.tsx @@ -3,11 +3,14 @@ import React from 'react'; import type { ArbitrumL2MessagesItem } from 'types/api/arbitrumL2'; +import { route } from 'nextjs-routes'; + import config from 'configs/app'; import AddressEntity from 'ui/shared/entities/address/AddressEntity'; import BlockEntityL1 from 'ui/shared/entities/block/BlockEntityL1'; import TxEntity from 'ui/shared/entities/tx/TxEntity'; import TxEntityL1 from 'ui/shared/entities/tx/TxEntityL1'; +import LinkInternal from 'ui/shared/links/LinkInternal'; import ListItemMobileGrid from 'ui/shared/ListItemMobile/ListItemMobileGrid'; import ArbitrumL2MessageStatus from 'ui/shared/statusTag/ArbitrumL2MessageStatus'; import TimeAgoWithTooltip from 'ui/shared/TimeAgoWithTooltip'; @@ -101,7 +104,9 @@ const ArbitrumL2MessagesListItem = ({ item, isLoading, direction }: Props) => { Status - + { item.status === 'confirmed' && direction === 'from-rollup' ? + Ready for relay : + } L1 transaction diff --git a/ui/messages/ArbitrumL2MessagesTableItem.tsx b/ui/messages/ArbitrumL2MessagesTableItem.tsx index a59319ef31..2602ce76e4 100644 --- a/ui/messages/ArbitrumL2MessagesTableItem.tsx +++ b/ui/messages/ArbitrumL2MessagesTableItem.tsx @@ -3,11 +3,14 @@ import React from 'react'; import type { ArbitrumL2MessagesItem } from 'types/api/arbitrumL2'; +import { route } from 'nextjs-routes'; + import config from 'configs/app'; import AddressEntity from 'ui/shared/entities/address/AddressEntity'; import BlockEntityL1 from 'ui/shared/entities/block/BlockEntityL1'; import TxEntity from 'ui/shared/entities/tx/TxEntity'; import TxEntityL1 from 'ui/shared/entities/tx/TxEntityL1'; +import LinkInternal from 'ui/shared/links/LinkInternal'; import ArbitrumL2MessageStatus from 'ui/shared/statusTag/ArbitrumL2MessageStatus'; import TimeAgoWithTooltip from 'ui/shared/TimeAgoWithTooltip'; @@ -82,7 +85,9 @@ const ArbitrumL2MessagesTableItem = ({ item, direction, isLoading }: Props) => { /> - + { item.status === 'confirmed' && direction === 'from-rollup' ? + Ready for relay : + } { l1TxHash ? ( diff --git a/ui/shared/verificationSteps/VerificationStep.tsx b/ui/shared/verificationSteps/VerificationStep.tsx index 5efea2af37..99f50ac391 100644 --- a/ui/shared/verificationSteps/VerificationStep.tsx +++ b/ui/shared/verificationSteps/VerificationStep.tsx @@ -10,9 +10,10 @@ type Props = { isLast: boolean; isPassed: boolean; isPending?: boolean; + noIcon?: boolean; }; -const VerificationStep = ({ step, isLast, isPassed, isPending }: Props) => { +const VerificationStep = ({ step, isLast, isPassed, isPending, noIcon }: Props) => { let stepColor = 'text_secondary'; if (isPending) { stepColor = 'yellow.500'; @@ -22,7 +23,7 @@ const VerificationStep = ({ step, isLast, isPassed, isPending }: Props) => { return ( - + { !noIcon && } { typeof step === 'string' ? step : step.content } { !isLast && } diff --git a/ui/shared/verificationSteps/VerificationSteps.tsx b/ui/shared/verificationSteps/VerificationSteps.tsx index 889a09d370..8d56e409c2 100644 --- a/ui/shared/verificationSteps/VerificationSteps.tsx +++ b/ui/shared/verificationSteps/VerificationSteps.tsx @@ -36,6 +36,7 @@ const VerificationSteps = ({ currentStep, currentStepPending, steps, isLoading, isLast={ index === steps.length - 1 && !rightSlot } isPassed={ index <= currentStepIndex } isPending={ index === currentStepIndex && currentStepPending } + noIcon={ typeof step !== 'string' && index === currentStepIndex } /> )) } { rightSlot } diff --git a/ui/tx/details/TxDetailsWithdrawalStatusArbitrum.tsx b/ui/tx/details/TxDetailsWithdrawalStatusArbitrum.tsx new file mode 100644 index 0000000000..eda35e287a --- /dev/null +++ b/ui/tx/details/TxDetailsWithdrawalStatusArbitrum.tsx @@ -0,0 +1,100 @@ +import { Text } from '@chakra-ui/react'; +import React from 'react'; + +import type { ArbitrumTransactionMessageStatus, Transaction } from 'types/api/transaction'; + +import { route } from 'nextjs-routes'; + +import * as DetailsInfoItem from 'ui/shared/DetailsInfoItem'; +import TxEntityL1 from 'ui/shared/entities/tx/TxEntityL1'; +import LinkInternal from 'ui/shared/links/LinkInternal'; +import VerificationSteps from 'ui/shared/verificationSteps/VerificationSteps'; + +const WITHDRAWAL_STATUS_STEPS: Array = [ + 'Syncing with base layer', + 'Settlement pending', + 'Waiting for confirmation', + 'Ready for relay', + 'Relayed', +]; + +interface Props { + data: Transaction; +} + +const TxDetailsWithdrawalStatusArbitrum = ({ data }: Props) => { + + const steps = React.useMemo(() => { + if (!data.arbitrum?.message_related_info) { + return []; + } + + switch (data.arbitrum.message_related_info.message_status) { + case 'Ready for relay': + case 'Relayed': { + const lastElementIndex = data.arbitrum.message_related_info.message_status === 'Relayed' ? Infinity : -1; + + return WITHDRAWAL_STATUS_STEPS.slice(0, lastElementIndex).map((step, index, array) => { + if (index !== array.length - 1) { + return step; + } + + return { + content: ( + + { step } + + ), + label: step, + }; + }); + } + + default: + return WITHDRAWAL_STATUS_STEPS; + } + }, [ data.arbitrum?.message_related_info, data.hash ]); + + if (!data.arbitrum || !data.arbitrum?.contains_message || !data.arbitrum?.message_related_info) { + return null; + } + + if (data.arbitrum.contains_message === 'outcoming') { + return ( + <> + + Withdrawal status + + + { data.arbitrum.message_related_info.message_status ? ( + } + currentStep={ data.arbitrum.message_related_info.message_status } + /> + ) : Could not determine } + + + ); + } + return ( + <> + + Originating L1 txn hash + + + { data.arbitrum.message_related_info.associated_l1_transaction ? + : + Waiting for confirmation + } + + + ); +}; + +export default React.memo(TxDetailsWithdrawalStatusArbitrum); diff --git a/ui/tx/details/TxDetailsWithdrawalStatus.pw.tsx b/ui/tx/details/TxDetailsWithdrawalStatusOptimistic.pw.tsx similarity index 73% rename from ui/tx/details/TxDetailsWithdrawalStatus.pw.tsx rename to ui/tx/details/TxDetailsWithdrawalStatusOptimistic.pw.tsx index 4a3e58473f..8641b4437d 100644 --- a/ui/tx/details/TxDetailsWithdrawalStatus.pw.tsx +++ b/ui/tx/details/TxDetailsWithdrawalStatusOptimistic.pw.tsx @@ -6,7 +6,7 @@ import type { OptimisticL2WithdrawalStatus } from 'types/api/optimisticL2'; import { ENVS_MAP } from 'playwright/fixtures/mockEnvs'; import { test, expect } from 'playwright/lib'; -import TxDetailsWithdrawalStatus from './TxDetailsWithdrawalStatus'; +import TxDetailsWithdrawalStatusOptimistic from './TxDetailsWithdrawalStatusOptimistic'; const statuses: Array = [ 'Waiting for state root', @@ -19,7 +19,7 @@ statuses.forEach((status) => { await mockEnvs(ENVS_MAP.optimisticRollup); const component = await render( - + , ); diff --git a/ui/tx/details/TxDetailsWithdrawalStatus.tsx b/ui/tx/details/TxDetailsWithdrawalStatusOptimistic.tsx similarity index 94% rename from ui/tx/details/TxDetailsWithdrawalStatus.tsx rename to ui/tx/details/TxDetailsWithdrawalStatusOptimistic.tsx index 6e30e5a163..34baa451c1 100644 --- a/ui/tx/details/TxDetailsWithdrawalStatus.tsx +++ b/ui/tx/details/TxDetailsWithdrawalStatusOptimistic.tsx @@ -38,7 +38,7 @@ const WITHDRAWAL_STATUS_ORDER_GAME: Array = [ const rollupFeature = config.features.rollup; -const TxDetailsWithdrawalStatus = ({ status, l1TxHash }: Props) => { +const TxDetailsWithdrawalStatusOptimistic = ({ status, l1TxHash }: Props) => { if (!status || !rollupFeature.isEnabled || rollupFeature.type !== 'optimistic') { return null; } @@ -94,4 +94,4 @@ const TxDetailsWithdrawalStatus = ({ status, l1TxHash }: Props) => { ); }; -export default React.memo(TxDetailsWithdrawalStatus); +export default React.memo(TxDetailsWithdrawalStatusOptimistic); diff --git a/ui/tx/details/TxInfo.tsx b/ui/tx/details/TxInfo.tsx index af430c281e..7b5a1ddb89 100644 --- a/ui/tx/details/TxInfo.tsx +++ b/ui/tx/details/TxInfo.tsx @@ -10,7 +10,6 @@ import { chakra, useColorModeValue, Skeleton, - HStack, } from '@chakra-ui/react'; import BigNumber from 'bignumber.js'; import React from 'react'; @@ -27,7 +26,6 @@ import config from 'configs/app'; import { WEI, WEI_IN_GWEI } from 'lib/consts'; import getNetworkValidatorTitle from 'lib/networks/getNetworkValidatorTitle'; import * as arbitrum from 'lib/rollups/arbitrum'; -import { MESSAGE_DESCRIPTIONS } from 'lib/tx/arbitrumMessageStatusDescription'; import getConfirmationDuration from 'lib/tx/getConfirmationDuration'; import { currencyUnits } from 'lib/units'; import Tag from 'ui/shared/chakra/Tag'; @@ -42,7 +40,6 @@ import BatchEntityL2 from 'ui/shared/entities/block/BatchEntityL2'; import BlockEntity from 'ui/shared/entities/block/BlockEntity'; import TxEntityL1 from 'ui/shared/entities/tx/TxEntityL1'; import HashStringShortenDynamic from 'ui/shared/HashStringShortenDynamic'; -import Hint from 'ui/shared/Hint'; import IconSvg from 'ui/shared/IconSvg'; import LogDecodedInputData from 'ui/shared/logs/LogDecodedInputData'; import RawInputData from 'ui/shared/RawInputData'; @@ -58,12 +55,13 @@ import TxDetailsFeePerGas from 'ui/tx/details/TxDetailsFeePerGas'; import TxDetailsGasPrice from 'ui/tx/details/TxDetailsGasPrice'; import TxDetailsOther from 'ui/tx/details/TxDetailsOther'; import TxDetailsTokenTransfers from 'ui/tx/details/TxDetailsTokenTransfers'; -import TxDetailsWithdrawalStatus from 'ui/tx/details/TxDetailsWithdrawalStatus'; +import TxDetailsWithdrawalStatusOptimistic from 'ui/tx/details/TxDetailsWithdrawalStatusOptimistic'; import TxRevertReason from 'ui/tx/details/TxRevertReason'; import TxAllowedPeekers from 'ui/tx/TxAllowedPeekers'; import TxSocketAlert from 'ui/tx/TxSocketAlert'; import ZkSyncL2TxnBatchHashesInfo from 'ui/txnBatches/zkSyncL2/ZkSyncL2TxnBatchHashesInfo'; +import TxDetailsWithdrawalStatusArbitrum from './TxDetailsWithdrawalStatusArbitrum'; import TxInfoScrollFees from './TxInfoScrollFees'; const rollupFeature = config.features.rollup; @@ -207,7 +205,7 @@ const TxInfo = ({ data, isLoading, socketStatus }: Props) => { Nonce: { withdrawal.nonce } - @@ -813,28 +811,7 @@ const TxInfo = ({ data, isLoading, socketStatus }: Props) => { <> - { data.arbitrum?.contains_message && data.arbitrum?.message_related_info && ( - <> - - { data.arbitrum.contains_message === 'incoming' ? 'Originating L1 txn hash' : 'Completion L1 txn hash' } - - - { data.arbitrum.message_related_info.associated_l1_transaction ? - : ( - - { data.arbitrum.message_related_info.message_status } - - - ) - } - - - ) } + { (data.blob_gas_used || data.max_fee_per_blob_gas || data.blob_gas_price) && ( <> diff --git a/ui/tx/details/__screenshots__/TxDetailsWithdrawalStatus.pw.tsx_default_status-Relayed-1.png b/ui/tx/details/__screenshots__/TxDetailsWithdrawalStatus.pw.tsx_default_status-Relayed-1.png deleted file mode 100644 index d7cc9bd89c72d190d5a8725b06ee82117052be61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6574 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 literal 0 HcmV?d00001 diff --git a/ui/tx/details/__screenshots__/TxDetailsWithdrawalStatus.pw.tsx_default_status-Waiting-for-state-root-1.png b/ui/tx/details/__screenshots__/TxDetailsWithdrawalStatusOptimistic.pw.tsx_default_status-Waiting-for-state-root-1.png similarity index 100% rename from ui/tx/details/__screenshots__/TxDetailsWithdrawalStatus.pw.tsx_default_status-Waiting-for-state-root-1.png rename to ui/tx/details/__screenshots__/TxDetailsWithdrawalStatusOptimistic.pw.tsx_default_status-Waiting-for-state-root-1.png From 127c0f5f305643356080e16187170050d15a766e Mon Sep 17 00:00:00 2001 From: tom Date: Mon, 23 Dec 2024 13:45:33 +0100 Subject: [PATCH 06/16] add functionality to claim button --- lib/api/resources.ts | 8 ++ lib/errors/getErrorProp.ts | 8 ++ types/api/arbitrumL2.ts | 5 ++ .../statusTag/ArbitrumL2MessageStatus.tsx | 2 +- .../ArbitrumL2TxnWithdrawalsClaimButton.tsx | 79 +++++++++++++++++++ .../ArbitrumL2TxnWithdrawalsListItem.tsx | 11 ++- .../ArbitrumL2TxnWithdrawalsTable.tsx | 8 +- .../ArbitrumL2TxnWithdrawalsTableItem.tsx | 10 +-- 8 files changed, 117 insertions(+), 14 deletions(-) create mode 100644 lib/errors/getErrorProp.ts create mode 100644 ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx diff --git a/lib/api/resources.ts b/lib/api/resources.ts index 08d53b4445..46f5bd8205 100644 --- a/lib/api/resources.ts +++ b/lib/api/resources.ts @@ -52,6 +52,7 @@ import type { ArbitrumL2TxnBatchesItem, ArbitrumLatestDepositsResponse, ArbitrumL2TxnWithdrawalsResponse, + ArbitrumL2MessageClaimResponse, } from 'types/api/arbitrumL2'; import type { TxBlobs, Blob } from 'types/api/blobs'; import type { @@ -923,6 +924,12 @@ export const RESOURCES = { filterFields: [], }, + arbitrum_l2_message_claim: { + path: '/api/v2/arbitrum/messages/claim/:id', + pathParams: [ 'id' as const ], + filterFields: [], + }, + // zkEvm L2 zkevm_l2_deposits: { path: '/api/v2/zkevm/deposits', @@ -1383,6 +1390,7 @@ Q extends 'arbitrum_l2_txn_batch' ? ArbitrumL2TxnBatch : Q extends 'arbitrum_l2_txn_batch_txs' ? ArbitrumL2BatchTxs : Q extends 'arbitrum_l2_txn_batch_blocks' ? ArbitrumL2BatchBlocks : Q extends 'arbitrum_l2_txn_withdrawals' ? ArbitrumL2TxnWithdrawalsResponse : +Q extends 'arbitrum_l2_message_claim' ? ArbitrumL2MessageClaimResponse : Q extends 'zkevm_l2_deposits' ? ZkEvmL2DepositsResponse : Q extends 'zkevm_l2_deposits_count' ? number : Q extends 'zkevm_l2_withdrawals' ? ZkEvmL2WithdrawalsResponse : diff --git a/lib/errors/getErrorProp.ts b/lib/errors/getErrorProp.ts new file mode 100644 index 0000000000..1e60b06b92 --- /dev/null +++ b/lib/errors/getErrorProp.ts @@ -0,0 +1,8 @@ +import getErrorObj from './getErrorObj'; + +export default function getErrorProp(error: unknown, prop: string): T | undefined { + const errorObj = getErrorObj(error); + return errorObj && prop in errorObj ? + (errorObj[prop as keyof typeof errorObj] as T) : + undefined; +} diff --git a/types/api/arbitrumL2.ts b/types/api/arbitrumL2.ts index 906a7b228f..7fb9a704c9 100644 --- a/types/api/arbitrumL2.ts +++ b/types/api/arbitrumL2.ts @@ -128,6 +128,11 @@ export interface ArbitrumL2TxnWithdrawalsResponse { items: Array; } +export interface ArbitrumL2MessageClaimResponse { + calldata: string; + outbox_address: string; +} + export const ARBITRUM_L2_TX_BATCH_STATUSES = [ 'Processed on rollup' as const, 'Sent to base' as const, diff --git a/ui/shared/statusTag/ArbitrumL2MessageStatus.tsx b/ui/shared/statusTag/ArbitrumL2MessageStatus.tsx index 85bc6795ff..b8d74aae9a 100644 --- a/ui/shared/statusTag/ArbitrumL2MessageStatus.tsx +++ b/ui/shared/statusTag/ArbitrumL2MessageStatus.tsx @@ -21,7 +21,7 @@ const ArbitrumL2MessageStatus = ({ status, isLoading }: Props) => { break; } case 'confirmed': { - type = 'ok'; + type = 'pending'; text = 'Ready for relay'; break; } diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx new file mode 100644 index 0000000000..7c88fe0192 --- /dev/null +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx @@ -0,0 +1,79 @@ +import { Button } from '@chakra-ui/react'; +import React from 'react'; +import { useSendTransaction } from 'wagmi'; + +import type { ArbitrumL2MessageClaimResponse } from 'types/api/arbitrumL2'; + +import type { ResourceError } from 'lib/api/resources'; +import useApiFetch from 'lib/api/useApiFetch'; +import getErrorMessage from 'lib/errors/getErrorMessage'; +import getErrorObjPayload from 'lib/errors/getErrorObjPayload'; +import getErrorProp from 'lib/errors/getErrorProp'; +import useToast from 'lib/hooks/useToast'; +import useWallet from 'lib/web3/useWallet'; +import TxEntityL1 from 'ui/shared/entities/tx/TxEntityL1'; + +interface Props { + messageId: number; +} + +const ArbitrumL2TxnWithdrawalsClaimButton = ({ messageId }: Props) => { + const [ isPending, setIsPending ] = React.useState(false); + const [ txHash, setTxHash ] = React.useState<`0x${ string }` | undefined>(undefined); + const apiFetch = useApiFetch(); + const toast = useToast(); + const { address } = useWallet({ source: 'Smart contracts' }); + + const { sendTransactionAsync } = useSendTransaction(); + + const handleClaim = React.useCallback(async() => { + try { + if (!address) { + throw new Error('Wallet not connected'); + } + + setIsPending(true); + + const response = await apiFetch<'arbitrum_l2_message_claim', ArbitrumL2MessageClaimResponse, ResourceError>( + 'arbitrum_l2_message_claim', + { pathParams: { id: messageId.toString() }, + }); + + if ('calldata' in response) { + const hash = await sendTransactionAsync({ + data: response.calldata as `0x${ string }`, + to: response.outbox_address as `0x${ string }`, + }); + + setTxHash(hash); + } + } catch (error) { + const apiError = getErrorObjPayload<{ message: string }>(error); + toast({ + status: 'error', + title: 'Error', + description: apiError?.message || getErrorProp(error, 'shortMessage') || getErrorMessage(error) || 'Something went wrong', + }); + } finally { + setIsPending(false); + } + }, [ address, apiFetch, messageId, sendTransactionAsync, toast ]); + + if (txHash) { + return ; + } + + return ( + + ); +}; + +export default React.memo(ArbitrumL2TxnWithdrawalsClaimButton); diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx index e84845b180..7c558e2c9a 100644 --- a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx @@ -1,4 +1,4 @@ -import { Button, Skeleton } from '@chakra-ui/react'; +import { Skeleton } from '@chakra-ui/react'; import React from 'react'; import type { ArbitrumL2TxnWithdrawalsItem } from 'types/api/arbitrumL2'; @@ -8,6 +8,8 @@ import AddressEntityL1 from 'ui/shared/entities/address/AddressEntityL1'; import ListItemMobileGrid from 'ui/shared/ListItemMobile/ListItemMobileGrid'; import ArbitrumL2MessageStatus from 'ui/shared/statusTag/ArbitrumL2MessageStatus'; +import ArbitrumL2TxnWithdrawalsClaimButton from './ArbitrumL2TxnWithdrawalsClaimButton'; + const rollupFeature = config.features.rollup; interface Props { @@ -43,12 +45,13 @@ const ArbitrumL2TxnWithdrawalsListItem = ({ data, isLoading }: Props) => { display="flex" alignItems="center" justifyContent="space-between" + flexWrap="wrap" + rowGap={ 2 } + columnGap={ 3 } py={ 0 } > - + diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTable.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTable.tsx index 172b878730..04698d1c3a 100644 --- a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTable.tsx +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTable.tsx @@ -15,10 +15,10 @@ const ArbitrumL2TxnWithdrawalsTable = ({ data, isLoading }: Props) => { - - - - + + + + diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx index b6d12166f1..92dfd583a8 100644 --- a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx @@ -1,4 +1,4 @@ -import { Tr, Td, Skeleton, Flex, Button } from '@chakra-ui/react'; +import { Tr, Td, Skeleton, Flex } from '@chakra-ui/react'; import React from 'react'; import type { ArbitrumL2TxnWithdrawalsItem } from 'types/api/arbitrumL2'; @@ -6,6 +6,8 @@ import type { ArbitrumL2TxnWithdrawalsItem } from 'types/api/arbitrumL2'; import AddressEntityL1 from 'ui/shared/entities/address/AddressEntityL1'; import ArbitrumL2MessageStatus from 'ui/shared/statusTag/ArbitrumL2MessageStatus'; +import ArbitrumL2TxnWithdrawalsClaimButton from './ArbitrumL2TxnWithdrawalsClaimButton'; + interface Props { data: ArbitrumL2TxnWithdrawalsItem; isLoading?: boolean; @@ -24,11 +26,9 @@ const ArbitrumL2TxnWithdrawalsTableItem = ({ data, isLoading }: Props) => { 333 From 7d69814e1914023975532936df95172d0441e683 Mon Sep 17 00:00:00 2001 From: tom Date: Mon, 23 Dec 2024 15:54:48 +0100 Subject: [PATCH 07/16] combine "Connect wallet" and "Claim" buttons --- lib/web3/useWallet.ts | 6 +++-- ui/pages/ArbitrumL2TxnWithdrawals.tsx | 2 -- .../ArbitrumL2TxnWithdrawalsClaimButton.tsx | 25 ++++++++++++------- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/lib/web3/useWallet.ts b/lib/web3/useWallet.ts index ac026e3390..abc6267e29 100644 --- a/lib/web3/useWallet.ts +++ b/lib/web3/useWallet.ts @@ -7,9 +7,10 @@ import useAccount from 'lib/web3/useAccount'; interface Params { source: mixpanel.EventPayload['Source']; + onConnect?: () => void; } -export default function useWeb3Wallet({ source }: Params) { +export default function useWeb3Wallet({ source, onConnect }: Params) { const { open: openModal } = useAppKit(); const { open: isOpen } = useAppKitState(); const { disconnect } = useDisconnect(); @@ -35,9 +36,10 @@ export default function useWeb3Wallet({ source }: Params) { mixpanel.userProfile.setOnce({ 'With Connected Wallet': true, }); + onConnect?.(); } isConnectionStarted.current = false; - }, [ source ]); + }, [ source, onConnect ]); const handleDisconnect = React.useCallback(() => { disconnect(); diff --git a/ui/pages/ArbitrumL2TxnWithdrawals.tsx b/ui/pages/ArbitrumL2TxnWithdrawals.tsx index 1b9447bdfa..8c58de8ef7 100644 --- a/ui/pages/ArbitrumL2TxnWithdrawals.tsx +++ b/ui/pages/ArbitrumL2TxnWithdrawals.tsx @@ -6,7 +6,6 @@ import useApiQuery from 'lib/api/useApiQuery'; import { apos } from 'lib/html-entities'; import getQueryParamString from 'lib/router/getQueryParamString'; import { ARBITRUM_L2_TXN_WITHDRAWALS_ITEM } from 'stubs/arbitrumL2'; -import ConnectWalletAlert from 'ui/shared/ConnectWalletAlert'; import DataListDisplay from 'ui/shared/DataListDisplay'; import FilterInput from 'ui/shared/filters/FilterInput'; import FieldError from 'ui/shared/forms/components/FieldError'; @@ -58,7 +57,6 @@ const ArbitrumL2TxnWithdrawals = () => { const content = data?.items ? ( <> - diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx index 7c88fe0192..1e224e50aa 100644 --- a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx @@ -22,16 +22,11 @@ const ArbitrumL2TxnWithdrawalsClaimButton = ({ messageId }: Props) => { const [ txHash, setTxHash ] = React.useState<`0x${ string }` | undefined>(undefined); const apiFetch = useApiFetch(); const toast = useToast(); - const { address } = useWallet({ source: 'Smart contracts' }); const { sendTransactionAsync } = useSendTransaction(); - const handleClaim = React.useCallback(async() => { + const sendClaimTx = React.useCallback(async() => { try { - if (!address) { - throw new Error('Wallet not connected'); - } - setIsPending(true); const response = await apiFetch<'arbitrum_l2_message_claim', ArbitrumL2MessageClaimResponse, ResourceError>( @@ -57,18 +52,30 @@ const ArbitrumL2TxnWithdrawalsClaimButton = ({ messageId }: Props) => { } finally { setIsPending(false); } - }, [ address, apiFetch, messageId, sendTransactionAsync, toast ]); + }, [ apiFetch, messageId, sendTransactionAsync, toast ]); + + const web3Wallet = useWallet({ source: 'Smart contracts', onConnect: sendClaimTx }); + + const handleClaimClick = React.useCallback(async() => { + if (!web3Wallet.address) { + web3Wallet.connect(); + } else { + sendClaimTx(); + } + }, [ sendClaimTx, web3Wallet ]); if (txHash) { return ; } + const isLoading = isPending || web3Wallet.isOpen; + return (
Message #ReceiverValueStatusMessage #ReceiverValueStatus
- + - +
@@ -26,7 +27,8 @@ const ArbitrumL2TxnWithdrawalsTable = ({ data, isLoading }: Props) => { + isLoading={ isLoading } + txHash={ txHash }/> )) }
diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx index 92dfd583a8..16a578fd36 100644 --- a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx @@ -9,11 +9,12 @@ import ArbitrumL2MessageStatus from 'ui/shared/statusTag/ArbitrumL2MessageStatus import ArbitrumL2TxnWithdrawalsClaimButton from './ArbitrumL2TxnWithdrawalsClaimButton'; interface Props { + txHash: string | undefined; data: ArbitrumL2TxnWithdrawalsItem; isLoading?: boolean; } -const ArbitrumL2TxnWithdrawalsTableItem = ({ data, isLoading }: Props) => { +const ArbitrumL2TxnWithdrawalsTableItem = ({ data, isLoading, txHash }: Props) => { return ( @@ -28,7 +29,7 @@ const ArbitrumL2TxnWithdrawalsTableItem = ({ data, isLoading }: Props) => { - + From faa485c0f71de329f8d516274c8e0b89ae1bb995 Mon Sep 17 00:00:00 2001 From: tom Date: Fri, 24 Jan 2025 15:21:12 +0100 Subject: [PATCH 10/16] allow to pass array of RPC urls for parent chain config --- configs/envs/.env.arbitrum | 27 ++++++++++++++++--- configs/envs/.env.arbitrum_sepolia | 2 +- deploy/tools/envs-validator/schema.ts | 2 +- .../tools/envs-validator/test/.env.arbitrum | 2 +- docs/ENVS.md | 2 +- types/client/rollup.ts | 2 +- 6 files changed, 28 insertions(+), 9 deletions(-) diff --git a/configs/envs/.env.arbitrum b/configs/envs/.env.arbitrum index 1fc81ce901..733c2e44ba 100644 --- a/configs/envs/.env.arbitrum +++ b/configs/envs/.env.arbitrum @@ -9,6 +9,8 @@ NEXT_PUBLIC_APP_PORT=3000 NEXT_PUBLIC_APP_ENV=development NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=ws +NEXT_PUBLIC_ROLLUP_PARENT_CHAIN={'baseUrl':'https://eth.blockscout.com','currency':{'name':'Ether','symbol':'ETH','decimals':18},'isTestnet':false,'id':1,'name':'Ethereum mainnet','rpcUrls':['https://eth.drpc.org']} + # Instance ENVs NEXT_PUBLIC_ADMIN_SERVICE_API_HOST=https://admin-rs.services.blockscout.com NEXT_PUBLIC_API_BASE_PATH=/ @@ -16,13 +18,27 @@ NEXT_PUBLIC_API_HOST=arbitrum.blockscout.com NEXT_PUBLIC_API_SPEC_URL=https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml NEXT_PUBLIC_CONTRACT_CODE_IDES=[{'title':'Remix IDE','url':'https://remix.ethereum.org/?address={hash}&blockscout={domain}','icon_url':'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/ide-icons/remix.png'}] NEXT_PUBLIC_CONTRACT_INFO_API_HOST=https://contracts-info.services.blockscout.com +NEXT_PUBLIC_DEFI_DROPDOWN_ITEMS=[{'text':'Swap','icon':'swap','dappId':'swoop-exchange'},{'text':'Disperse','icon':'txn_batches_slim','dappId':'smol'},{'text':'Payment link','icon':'payment_link','dappId':'peanut-protocol'},{'text':'Get gas','icon':'gas','dappId':'smol-refuel'}] +NEXT_PUBLIC_DEX_POOLS_ENABLED=true +NEXT_PUBLIC_FEATURED_NETWORKS=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/featured-networks/arbitrum-one.json +NEXT_PUBLIC_GAME_BADGE_CLAIM_LINK=https://badges.blockscout.com/mint/sherblockHolmesBadge NEXT_PUBLIC_GRAPHIQL_TRANSACTION=0x37c798810d49ba132b40efe7f4fdf6806a8fc58226bb5e185ddc91f896577abf +NEXT_PUBLIC_HAS_CONTRACT_AUDIT_REPORTS=true +NEXT_PUBLIC_HAS_USER_OPS=true NEXT_PUBLIC_HOMEPAGE_CHARTS=['daily_txs'] -NEXT_PUBLIC_HOMEPAGE_PLATE_BACKGROUND=rgba(27, 74, 221, 1) +NEXT_PUBLIC_HOMEPAGE_HERO_BANNER_CONFIG={'background':['rgba(27, 74, 221, 1)']} NEXT_PUBLIC_IS_ACCOUNT_SUPPORTED=true NEXT_PUBLIC_LOGOUT_URL=https://blockscout-arbitrum.us.auth0.com/v2/logout -NEXT_PUBLIC_MARKETPLACE_ENABLED=false +NEXT_PUBLIC_MAINTENANCE_ALERT_MESSAGE=

Joined recent campaigns? Mint your Merit Badge here

+NEXT_PUBLIC_MARKETPLACE_BANNER_CONTENT_URL=https://gist.githubusercontent.com/maikReal/974c47f86a3158c1a86b092ae2f044b3/raw/abcc7e02150cd85d4974503a0357162c0a2c35a9/merits-banner.html +NEXT_PUBLIC_MARKETPLACE_BANNER_LINK_URL=https://swap.blockscout.com?utm_source=blockscout&utm_medium=arbitrum +NEXT_PUBLIC_MARKETPLACE_ENABLED=true +NEXT_PUBLIC_MARKETPLACE_RATING_AIRTABLE_BASE_ID=appGkvtmKI7fXE4Vs +NEXT_PUBLIC_MARKETPLACE_SUBMIT_FORM=https://airtable.com/appiy5yijZpMMSKjT/shr6uMGPKjj1DK7NL +NEXT_PUBLIC_MARKETPLACE_SUGGEST_IDEAS_FORM=https://airtable.com/appiy5yijZpMMSKjT/pag3t82DUCyhGRZZO/form NEXT_PUBLIC_METADATA_SERVICE_API_HOST=https://metadata.services.blockscout.com +NEXT_PUBLIC_MULTICHAIN_BALANCE_PROVIDER_CONFIG=[{'name': 'zerion', 'url_template': 'https://app.zerion.io/{address}/overview?utm_source=blockscout&utm_medium=address', 'logo': 'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-logos/zerion.svg'}] +NEXT_PUBLIC_NAVIGATION_HIGHLIGHTED_ROUTES=['/pools'] NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18 NEXT_PUBLIC_NETWORK_CURRENCY_NAME=ETH NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=ETH @@ -33,12 +49,15 @@ NEXT_PUBLIC_NETWORK_ID=42161 NEXT_PUBLIC_NETWORK_LOGO=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/arbitrum-one-logo-light.svg NEXT_PUBLIC_NETWORK_LOGO_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/arbitrum-one-logo-dark.svg NEXT_PUBLIC_NETWORK_NAME=Arbitrum One -NEXT_PUBLIC_NETWORK_RPC_URL=https://arbitrum.llamarpc.com +NEXT_PUBLIC_NETWORK_RPC_URL=https://arbitrum-one.publicnode.com NEXT_PUBLIC_NETWORK_SHORT_NAME=Arbitrum One NEXT_PUBLIC_OG_ENHANCED_DATA_ENABLED=true NEXT_PUBLIC_OG_IMAGE_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/og-images/arbitrum-one.png NEXT_PUBLIC_ROLLUP_L1_BASE_URL=https://eth.blockscout.com +NEXT_PUBLIC_ROLLUP_PARENT_CHAIN_NAME=Ethereum NEXT_PUBLIC_ROLLUP_TYPE=arbitrum +NEXT_PUBLIC_STATS_API_HOST=https://stats-arbitrum-one-nitro.k8s-prod-2.blockscout.com NEXT_PUBLIC_TRANSACTION_INTERPRETATION_PROVIDER=blockscout NEXT_PUBLIC_VIEWS_CONTRACT_SOLIDITYSCAN_ENABLED=true -NEXT_PUBLIC_VISUALIZE_API_HOST=https://visualizer.services.blockscout.com \ No newline at end of file +NEXT_PUBLIC_VISUALIZE_API_HOST=https://visualizer.services.blockscout.com +NEXT_PUBLIC_XSTAR_SCORE_URL=https://docs.xname.app/the-solution-adaptive-proof-of-humanity-on-blockchain/xhs-scoring-algorithm?utm_source=blockscout&utm_medium=address \ No newline at end of file diff --git a/configs/envs/.env.arbitrum_sepolia b/configs/envs/.env.arbitrum_sepolia index 933d40a1c6..150add416b 100644 --- a/configs/envs/.env.arbitrum_sepolia +++ b/configs/envs/.env.arbitrum_sepolia @@ -41,7 +41,7 @@ NEXT_PUBLIC_OG_ENHANCED_DATA_ENABLED=true NEXT_PUBLIC_OG_IMAGE_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/og-images/arbitrum-sepolia.png NEXT_PUBLIC_ROLLUP_L1_BASE_URL=https://eth-sepolia.blockscout.com NEXT_PUBLIC_ROLLUP_TYPE=arbitrum -NEXT_PUBLIC_ROLLUP_PARENT_CHAIN={'baseUrl':'https://eth-sepolia.blockscout.com','currency':{'name':'Ether','symbol':'ETH','decimals':18},'isTestnet':true,'id':11155111,'name':'Sepolia','rpcUrl':'https://eth-sepolia.public.blastapi.io'} +NEXT_PUBLIC_ROLLUP_PARENT_CHAIN={'baseUrl':'https://eth-sepolia.blockscout.com','currency':{'name':'Ether','symbol':'ETH','decimals':18},'isTestnet':true,'id':11155111,'name':'Sepolia','rpcUrls':['https://eth-sepolia.public.blastapi.io']} NEXT_PUBLIC_SENTRY_DSN=https://fdcd971162e04694bf03564c5be3d291@o1222505.ingest.sentry.io/4503902500421632 NEXT_PUBLIC_STATS_API_HOST=https://stats-arbitrum-sepolia.k8s-prod-2.blockscout.com NEXT_PUBLIC_TRANSACTION_INTERPRETATION_PROVIDER=blockscout diff --git a/deploy/tools/envs-validator/schema.ts b/deploy/tools/envs-validator/schema.ts index bb435c5b00..09ba910902 100644 --- a/deploy/tools/envs-validator/schema.ts +++ b/deploy/tools/envs-validator/schema.ts @@ -294,7 +294,7 @@ const parentChainSchema = yup id: yup.number(), name: yup.string(), baseUrl: yup.string().test(urlTest).required(), - rpcUrl: yup.string().test(urlTest), + rpcUrls: yup.array().of(yup.string().test(urlTest)), currency: yup .mixed() .test( diff --git a/deploy/tools/envs-validator/test/.env.arbitrum b/deploy/tools/envs-validator/test/.env.arbitrum index 0d416dd01e..4fdd5f6d03 100644 --- a/deploy/tools/envs-validator/test/.env.arbitrum +++ b/deploy/tools/envs-validator/test/.env.arbitrum @@ -2,4 +2,4 @@ NEXT_PUBLIC_ROLLUP_TYPE=arbitrum NEXT_PUBLIC_ROLLUP_L1_BASE_URL=https://example.com NEXT_PUBLIC_ROLLUP_HOMEPAGE_SHOW_LATEST_BLOCKS=true NEXT_PUBLIC_ROLLUP_PARENT_CHAIN_NAME=DuckChain -NEXT_PUBLIC_ROLLUP_PARENT_CHAIN={'baseUrl':'https://explorer.duckchain.io','currency':{'name':'Quack','symbol':'QUACK','decimals':18},'isTestnet':true,'id':42,'name':'DuckChain','rpcUrl':'https://rpc.duckchain.io'} +NEXT_PUBLIC_ROLLUP_PARENT_CHAIN={'baseUrl':'https://explorer.duckchain.io','currency':{'name':'Quack','symbol':'QUACK','decimals':18},'isTestnet':true,'id':42,'name':'DuckChain','rpcUrls':['https://rpc.duckchain.io']} diff --git a/docs/ENVS.md b/docs/ENVS.md index 6d51ba7f75..e1eb3802aa 100644 --- a/docs/ENVS.md +++ b/docs/ENVS.md @@ -466,7 +466,7 @@ This feature is **enabled by default** with the `coinzilla` ads provider. To swi | id | `number` | Chain id, see [https://chainlist.org](https://chainlist.org) for the reference. | - | - | `42` | | name | `string` | Displayed name of the chain. Set to customize L1 transaction status labels in the UI (e.g., "Sent to "). Currently, this setting is applicable only for Arbitrum-based chains. | - | - | `DuckChain` | | baseUrl | `string` | Base url of the chain explorer. | Required | - | `https://explorer.duckchain.io` | -| rpcUrl | `string` | Chain public RPC server url, see [https://chainlist.org](https://chainlist.org) for the reference. | - | - | `https://rpc.duckchain.io` | +| rpcUrls | `Array` | Chain public RPC server urls, see [https://chainlist.org](https://chainlist.org) for the reference. | - | - | `['https://rpc.duckchain.io']` | | currency | `{ name: string; symbol: string; decimals: number; }` | Chain currency config. | - | - | `{ name: Quack, symbol: QUA, decimals: 18 }` | | isTestnet | `boolean` | Set to true if network is testnet. | - | - | `true` | diff --git a/types/client/rollup.ts b/types/client/rollup.ts index 26d45c06bf..d260ec5be4 100644 --- a/types/client/rollup.ts +++ b/types/client/rollup.ts @@ -15,7 +15,7 @@ export interface ParentChain { id?: number; name?: string; baseUrl: string; - rpcUrl?: string; + rpcUrls?: Array; currency?: { name: string; symbol: string; From 68232d58ffbc2049c2bcc0420471aa5b33fd25f1 Mon Sep 17 00:00:00 2001 From: tom Date: Fri, 24 Jan 2025 16:01:24 +0100 Subject: [PATCH 11/16] display token value and completion tx hash --- lib/web3/chains.ts | 4 +- stubs/arbitrumL2.ts | 1 + types/api/arbitrumL2.ts | 11 ++++- ui/shared/entities/token/TokenEntityL1.tsx | 27 ++++++++++++ .../ArbitrumL2TxnWithdrawalsClaimButton.tsx | 28 ++++++------ .../ArbitrumL2TxnWithdrawalsClaimTx.tsx | 4 +- .../ArbitrumL2TxnWithdrawalsListItem.tsx | 14 ++++-- .../ArbitrumL2TxnWithdrawalsTableItem.tsx | 15 +++++-- .../ArbitrumL2TxnWithdrawalsToken.tsx | 43 +++++++++++++++++++ 9 files changed, 123 insertions(+), 24 deletions(-) create mode 100644 ui/shared/entities/token/TokenEntityL1.tsx create mode 100644 ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsToken.tsx diff --git a/lib/web3/chains.ts b/lib/web3/chains.ts index ae9b6e29e2..0342d620c1 100644 --- a/lib/web3/chains.ts +++ b/lib/web3/chains.ts @@ -33,7 +33,7 @@ export const parentChain: Chain | undefined = (() => { return; } - if (!parentChain.id || !parentChain.name || !parentChain.rpcUrl || !parentChain.baseUrl || !parentChain.currency) { + if (!parentChain.id || !parentChain.name || !parentChain.rpcUrls || !parentChain.baseUrl || !parentChain.currency) { return; } @@ -43,7 +43,7 @@ export const parentChain: Chain | undefined = (() => { nativeCurrency: parentChain.currency, rpcUrls: { 'default': { - http: [ parentChain.rpcUrl ], + http: parentChain.rpcUrls, }, }, blockExplorers: { diff --git a/stubs/arbitrumL2.ts b/stubs/arbitrumL2.ts index 354fff0a54..1ad0973eef 100644 --- a/stubs/arbitrumL2.ts +++ b/stubs/arbitrumL2.ts @@ -40,6 +40,7 @@ export const ARBITRUM_L2_TXN_BATCH: ArbitrumL2TxnBatch = { export const ARBITRUM_L2_TXN_WITHDRAWALS_ITEM: ArbitrumL2TxnWithdrawalsItem = { arb_block_number: 70889261, caller: '0x507f55d716340fc836ba52c1a8daebcfeedeef1a', + completion_transaction_hash: null, callvalue: 100000000000000, data: '0x', destination: '0x507f55d716340fc836ba52c1a8daebcfeedeef1a', diff --git a/types/api/arbitrumL2.ts b/types/api/arbitrumL2.ts index 7fb9a704c9..d4ab402982 100644 --- a/types/api/arbitrumL2.ts +++ b/types/api/arbitrumL2.ts @@ -111,17 +111,24 @@ export type ArbitrumL2BatchBlocks = { }; export interface ArbitrumL2TxnWithdrawalsItem { - // TODO @tom2drum check if all fields are required + token not-null case arb_block_number: number; caller: string; callvalue: number; + completion_transaction_hash: string | null; data: string; destination: string; eth_block_number: number; id: number; l2_timestamp: number; status: ArbitrumL2MessageStatus; - token: null; + token: { + address: string; + amount: string | null; + destination: string | null; + name: string | null; + symbol: string | null; + decimals: number | null; + } | null; } export interface ArbitrumL2TxnWithdrawalsResponse { diff --git a/ui/shared/entities/token/TokenEntityL1.tsx b/ui/shared/entities/token/TokenEntityL1.tsx new file mode 100644 index 0000000000..6228a22cab --- /dev/null +++ b/ui/shared/entities/token/TokenEntityL1.tsx @@ -0,0 +1,27 @@ +import { chakra } from '@chakra-ui/react'; +import React from 'react'; + +import { route } from 'nextjs-routes'; + +import config from 'configs/app'; + +import * as TokenEntity from './TokenEntity'; + +const rollupFeature = config.features.rollup; + +const TokenEntityL1 = (props: TokenEntity.EntityProps) => { + if (!rollupFeature.isEnabled) { + return null; + } + + const defaultHref = rollupFeature.parentChain.baseUrl + route({ + pathname: '/token/[hash]', + query: { hash: props.token.address }, + }); + + return ( + + ); +}; + +export default chakra(TokenEntityL1); diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx index 9ac9036aef..23909e430c 100644 --- a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx @@ -15,6 +15,7 @@ import getErrorObjPayload from 'lib/errors/getErrorObjPayload'; import getErrorProp from 'lib/errors/getErrorProp'; import useToast from 'lib/hooks/useToast'; import useWallet from 'lib/web3/useWallet'; +import Skeleton from 'ui/shared/chakra/Skeleton'; import ArbitrumL2TxnWithdrawalsClaimTx from './ArbitrumL2TxnWithdrawalsClaimTx'; @@ -23,12 +24,13 @@ const rollupFeature = config.features.rollup; interface Props { messageId: number; txHash: string | undefined; + completionTxHash?: string; + isLoading?: boolean; } -const ArbitrumL2TxnWithdrawalsClaimButton = ({ messageId, txHash }: Props) => { +const ArbitrumL2TxnWithdrawalsClaimButton = ({ messageId, txHash, completionTxHash, isLoading: isDataLoading }: Props) => { const [ isPending, setIsPending ] = React.useState(false); - // TODO @tom2drum set initial value for claimed txn - const [ claimTxHash, setClaimTxHash ] = React.useState<`0x${ string }` | undefined>(); + const [ claimTxHash, setClaimTxHash ] = React.useState(completionTxHash); const apiFetch = useApiFetch(); const toast = useToast(); @@ -123,15 +125,17 @@ const ArbitrumL2TxnWithdrawalsClaimButton = ({ messageId, txHash }: Props) => { const isLoading = isPending || web3Wallet.isOpen; return ( - + + + ); }; diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimTx.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimTx.tsx index 1dc3919522..e8e29a7329 100644 --- a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimTx.tsx +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimTx.tsx @@ -9,14 +9,14 @@ const rollupFeature = config.features.rollup; interface Props { isPending: boolean; - hash: `0x${ string }`; + hash: string; onSuccess: () => void; onError: (error: Error) => void; } const ArbitrumL2TxnWithdrawalsClaimTx = ({ isPending, hash, onSuccess, onError }: Props) => { const { status, error } = useWaitForTransactionReceipt({ - hash, + hash: hash as `0x${ string }`, chainId: rollupFeature.isEnabled ? Number(rollupFeature.parentChain.id) : undefined, query: { enabled: isPending }, }); diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx index d5729ef696..bdedaa4470 100644 --- a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx @@ -1,14 +1,15 @@ -import { Skeleton } from '@chakra-ui/react'; import React from 'react'; import type { ArbitrumL2TxnWithdrawalsItem } from 'types/api/arbitrumL2'; import config from 'configs/app'; +import Skeleton from 'ui/shared/chakra/Skeleton'; import AddressEntityL1 from 'ui/shared/entities/address/AddressEntityL1'; import ListItemMobileGrid from 'ui/shared/ListItemMobile/ListItemMobileGrid'; import ArbitrumL2MessageStatus from 'ui/shared/statusTag/ArbitrumL2MessageStatus'; import ArbitrumL2TxnWithdrawalsClaimButton from './ArbitrumL2TxnWithdrawalsClaimButton'; +import ArbitrumL2TxnWithdrawalsToken from './ArbitrumL2TxnWithdrawalsToken'; const rollupFeature = config.features.rollup; @@ -38,7 +39,9 @@ const ArbitrumL2TxnWithdrawalsListItem = ({ data, isLoading, txHash }: Props) => Value - 333 + + { data.token ? : '-' } + Status @@ -52,7 +55,12 @@ const ArbitrumL2TxnWithdrawalsListItem = ({ data, isLoading, txHash }: Props) => py={ 0 } > - + diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx index 16a578fd36..1d70ae05dc 100644 --- a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx @@ -1,12 +1,14 @@ -import { Tr, Td, Skeleton, Flex } from '@chakra-ui/react'; +import { Tr, Td, Flex } from '@chakra-ui/react'; import React from 'react'; import type { ArbitrumL2TxnWithdrawalsItem } from 'types/api/arbitrumL2'; +import Skeleton from 'ui/shared/chakra/Skeleton'; import AddressEntityL1 from 'ui/shared/entities/address/AddressEntityL1'; import ArbitrumL2MessageStatus from 'ui/shared/statusTag/ArbitrumL2MessageStatus'; import ArbitrumL2TxnWithdrawalsClaimButton from './ArbitrumL2TxnWithdrawalsClaimButton'; +import ArbitrumL2TxnWithdrawalsToken from './ArbitrumL2TxnWithdrawalsToken'; interface Props { txHash: string | undefined; @@ -24,12 +26,19 @@ const ArbitrumL2TxnWithdrawalsTableItem = ({ data, isLoading, txHash }: Props) = - 333 + + { data.token ? : '-' } + - + diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsToken.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsToken.tsx new file mode 100644 index 0000000000..28d6aee616 --- /dev/null +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsToken.tsx @@ -0,0 +1,43 @@ +import { Flex } from '@chakra-ui/react'; +import React from 'react'; + +import type { ArbitrumL2TxnWithdrawalsItem } from 'types/api/arbitrumL2'; +import type { TokenInfo } from 'types/api/token'; +import type { ExcludeNull } from 'types/utils'; + +import getCurrencyValue from 'lib/getCurrencyValue'; +import TokenEntityL1 from 'ui/shared/entities/token/TokenEntityL1'; + +interface Props { + data: ExcludeNull; +} + +const ArbitrumL2TxnWithdrawalsToken = ({ data }: Props) => { + const { valueStr } = getCurrencyValue({ + value: data.amount ?? '0', + accuracy: 8, + decimals: String(data.decimals), + }); + + const formattedData: TokenInfo | null = React.useMemo(() => { + return { + ...data, + decimals: String(data.decimals), + type: 'ERC-20', + holders: null, + exchange_rate: null, + total_supply: null, + circulating_market_cap: null, + icon_url: null, + }; + }, [ data ]); + + return ( + + { valueStr } + + + ); +}; + +export default React.memo(ArbitrumL2TxnWithdrawalsToken); From 6139612bd71c45c8012f61205af907fb2a1baf56 Mon Sep 17 00:00:00 2001 From: tom Date: Fri, 24 Jan 2025 18:55:41 +0100 Subject: [PATCH 12/16] fix csp --- nextjs/csp/policies/app.ts | 1 + .../arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/nextjs/csp/policies/app.ts b/nextjs/csp/policies/app.ts index ae0fbf7ca2..d1eda3a8ff 100644 --- a/nextjs/csp/policies/app.ts +++ b/nextjs/csp/policies/app.ts @@ -52,6 +52,7 @@ export function app(): CspDev.DirectiveDescriptor { // chain RPC server ...config.chain.rpcUrls, + ...(getFeaturePayload(config.features.rollup)?.parentChain?.rpcUrls ?? []), 'https://infragrid.v.network', // RPC providers // github (spec for api-docs page) diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx index 23909e430c..ab61cb4e35 100644 --- a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsClaimButton.tsx @@ -92,7 +92,7 @@ const ArbitrumL2TxnWithdrawalsClaimButton = ({ messageId, txHash, completionTxHa return; } - const newItems = prevData.items.map(item => item.id === messageId ? { ...item, status: 'claimed' } : item); + const newItems = prevData.items.map(item => item.id === messageId ? { ...item, status: 'relayed' } : item); return { ...prevData, From f216065699b5dcc28043846680777c40a7d5978f Mon Sep 17 00:00:00 2001 From: tom Date: Fri, 24 Jan 2025 19:11:53 +0100 Subject: [PATCH 13/16] write tests for arbitrum l2 txn withdrawals --- configs/app/features/rollup.ts | 2 +- mocks/arbitrum/txnWithdrawals.ts | 36 ++++++++++++++++++ types/api/arbitrumL2.ts | 2 +- ui/pages/ArbitrumL2TxnWithdrawals.pw.tsx | 29 ++++++++++++++ ...wals.pw.tsx_default_base-view-mobile-1.png | Bin 0 -> 41266 bytes ...awals.pw.tsx_mobile_base-view-mobile-1.png | Bin 0 -> 71218 bytes 6 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 mocks/arbitrum/txnWithdrawals.ts create mode 100644 ui/pages/ArbitrumL2TxnWithdrawals.pw.tsx create mode 100644 ui/pages/__screenshots__/ArbitrumL2TxnWithdrawals.pw.tsx_default_base-view-mobile-1.png create mode 100644 ui/pages/__screenshots__/ArbitrumL2TxnWithdrawals.pw.tsx_mobile_base-view-mobile-1.png diff --git a/configs/app/features/rollup.ts b/configs/app/features/rollup.ts index 5108818377..c4fcf9c2da 100644 --- a/configs/app/features/rollup.ts +++ b/configs/app/features/rollup.ts @@ -18,7 +18,7 @@ const parentChain: ParentChain | undefined = (() => { const baseUrl = stripTrailingSlash(getEnvValue('NEXT_PUBLIC_ROLLUP_L1_BASE_URL') || ''); const chainName = getEnvValue('NEXT_PUBLIC_ROLLUP_PARENT_CHAIN_NAME'); - if (!baseUrl || !envValue?.baseUrl) { + if (!baseUrl && !envValue?.baseUrl) { return; } diff --git a/mocks/arbitrum/txnWithdrawals.ts b/mocks/arbitrum/txnWithdrawals.ts new file mode 100644 index 0000000000..69edd4d52a --- /dev/null +++ b/mocks/arbitrum/txnWithdrawals.ts @@ -0,0 +1,36 @@ +import type { ArbitrumL2TxnWithdrawalsItem } from 'types/api/arbitrumL2'; + +export const unclaimed: ArbitrumL2TxnWithdrawalsItem = { + arb_block_number: 115114348, + caller: '0x07e1e36fe70cd58a05c00812d573dc39a127ee6d', + callvalue: '21000000000000000000', + completion_transaction_hash: null, + data: '0x', + destination: '0x07e1e36fe70cd58a05c00812d573dc39a127ee6d', + eth_block_number: 7503173, + id: 59874, + l2_timestamp: 1737020350, + status: 'confirmed', + token: null, +}; + +export const claimed: ArbitrumL2TxnWithdrawalsItem = { + arb_block_number: 115114348, + caller: '0x07e1e36fe70cd58a05c00812d573dc39a127ee6d', + callvalue: '21000000000000000000', + completion_transaction_hash: '0x215382498438cb6532a5e5fb07d664bbf912187866591470d47c3cfbce2dc4a8', + data: '0x', + destination: '0x07e1e36fe70cd58a05c00812d573dc39a127ee6d', + eth_block_number: 7503173, + id: 59875, + l2_timestamp: 1737020350, + status: 'relayed', + token: { + address: '0x0000000000000000000000000000000000000000', + symbol: 'USDC', + name: 'USDC Token', + decimals: 6, + amount: '10000000000', + destination: '0x07e1e36fe70cd58a05c00812d573dc39a127ee6d', + }, +}; diff --git a/types/api/arbitrumL2.ts b/types/api/arbitrumL2.ts index d4ab402982..a9686be392 100644 --- a/types/api/arbitrumL2.ts +++ b/types/api/arbitrumL2.ts @@ -113,7 +113,7 @@ export type ArbitrumL2BatchBlocks = { export interface ArbitrumL2TxnWithdrawalsItem { arb_block_number: number; caller: string; - callvalue: number; + callvalue: string; completion_transaction_hash: string | null; data: string; destination: string; diff --git a/ui/pages/ArbitrumL2TxnWithdrawals.pw.tsx b/ui/pages/ArbitrumL2TxnWithdrawals.pw.tsx new file mode 100644 index 0000000000..c6bc0eb082 --- /dev/null +++ b/ui/pages/ArbitrumL2TxnWithdrawals.pw.tsx @@ -0,0 +1,29 @@ +import React from 'react'; + +import * as txnWithdrawalsMock from 'mocks/arbitrum/txnWithdrawals'; +import { ENVS_MAP } from 'playwright/fixtures/mockEnvs'; +import { test, expect } from 'playwright/lib'; + +import ArbitrumL2TxnWithdrawals from './ArbitrumL2TxnWithdrawals'; + +const TX_HASH = '0x215382498438cb6532a5e5fb07d664bbf912187866591470d47c3cfbce2dc4a8'; + +const hooksConfig = { + router: { + query: { q: TX_HASH }, + }, +}; + +test('base view +@mobile', async({ render, mockApiResponse, mockEnvs, mockTextAd }) => { + await mockTextAd(); + await mockEnvs(ENVS_MAP.arbitrumRollup); + await mockApiResponse( + 'arbitrum_l2_txn_withdrawals', + { items: [ txnWithdrawalsMock.unclaimed, txnWithdrawalsMock.claimed ] }, + { pathParams: { hash: TX_HASH } }, + ); + + const component = await render(, { hooksConfig }); + + await expect(component).toHaveScreenshot(); +}); diff --git a/ui/pages/__screenshots__/ArbitrumL2TxnWithdrawals.pw.tsx_default_base-view-mobile-1.png b/ui/pages/__screenshots__/ArbitrumL2TxnWithdrawals.pw.tsx_default_base-view-mobile-1.png new file mode 100644 index 0000000000000000000000000000000000000000..2f76284894c4065a8fb78779628d4d0cacbc2010 GIT binary patch literal 41266 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 literal 0 HcmV?d00001 diff --git a/ui/pages/__screenshots__/ArbitrumL2TxnWithdrawals.pw.tsx_mobile_base-view-mobile-1.png b/ui/pages/__screenshots__/ArbitrumL2TxnWithdrawals.pw.tsx_mobile_base-view-mobile-1.png new file mode 100644 index 0000000000000000000000000000000000000000..7de46fd542c104bef256a2a78e4938bec09efc45 GIT binary patch literal 71218 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 ntr}9nmbk`|?l%D9#$Wdd+m?yixwYLx0KcTf Date: Fri, 24 Jan 2025 19:27:23 +0100 Subject: [PATCH 14/16] fix ts --- stubs/arbitrumL2.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/arbitrumL2.ts b/stubs/arbitrumL2.ts index 1ad0973eef..b821db4ab3 100644 --- a/stubs/arbitrumL2.ts +++ b/stubs/arbitrumL2.ts @@ -41,7 +41,7 @@ export const ARBITRUM_L2_TXN_WITHDRAWALS_ITEM: ArbitrumL2TxnWithdrawalsItem = { arb_block_number: 70889261, caller: '0x507f55d716340fc836ba52c1a8daebcfeedeef1a', completion_transaction_hash: null, - callvalue: 100000000000000, + callvalue: '100000000000000', data: '0x', destination: '0x507f55d716340fc836ba52c1a8daebcfeedeef1a', eth_block_number: 6494128, From 3362b277b04be004d9542044a42adfd43ddefa1e Mon Sep 17 00:00:00 2001 From: tom Date: Mon, 27 Jan 2025 13:54:27 +0100 Subject: [PATCH 15/16] review fixes --- ui/pages/ArbitrumL2TxnWithdrawals.tsx | 32 +++++--- ...wals.pw.tsx_default_base-view-mobile-1.png | Bin 41266 -> 41527 bytes ...awals.pw.tsx_mobile_base-view-mobile-1.png | Bin 71218 -> 71747 bytes .../ArbitrumL2TxnWithdrawalsListItem.tsx | 6 +- .../ArbitrumL2TxnWithdrawalsTableItem.tsx | 6 +- .../ArbitrumL2TxnWithdrawalsToken.tsx | 43 ----------- .../ArbitrumL2TxnWithdrawalsValue.tsx | 69 ++++++++++++++++++ 7 files changed, 96 insertions(+), 60 deletions(-) delete mode 100644 ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsToken.tsx create mode 100644 ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsValue.tsx diff --git a/ui/pages/ArbitrumL2TxnWithdrawals.tsx b/ui/pages/ArbitrumL2TxnWithdrawals.tsx index 037ae87792..05fac9a433 100644 --- a/ui/pages/ArbitrumL2TxnWithdrawals.tsx +++ b/ui/pages/ArbitrumL2TxnWithdrawals.tsx @@ -1,4 +1,4 @@ -import { Box, Text } from '@chakra-ui/react'; +import { Box, chakra, Text } from '@chakra-ui/react'; import { useRouter } from 'next/router'; import React from 'react'; @@ -55,6 +55,13 @@ const ArbitrumL2TxnWithdrawals = () => { } }, [ router ]); + const handleSubmit = React.useCallback((event: React.FormEvent) => { + event.preventDefault(); + const formData = new FormData(event.target as HTMLFormElement); + const searchTerm = formData.get('tx_hash') as string; + handleSearchInputBlur({ target: { value: searchTerm } } as React.FocusEvent); + }, [ handleSearchInputBlur ]); + const content = data?.items ? ( <> @@ -70,16 +77,19 @@ const ArbitrumL2TxnWithdrawals = () => { <> L2 to L1 message relayer: search for your L2 transaction to execute a manual withdrawal. - + + + { error && } I)b~q1PJc#?mD=;yE_cr$@6=j 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 ZknEO-wEav`^w*=QrgKBJRQW}~e*nR^DR%$> delta 21639 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 diff --git a/ui/pages/__screenshots__/ArbitrumL2TxnWithdrawals.pw.tsx_mobile_base-view-mobile-1.png b/ui/pages/__screenshots__/ArbitrumL2TxnWithdrawals.pw.tsx_mobile_base-view-mobile-1.png index 7de46fd542c104bef256a2a78e4938bec09efc45..683b66e428daf30866c5ce3db606240b41f2507c 100644 GIT binary patch delta 35315 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

+&XgiHbvHKCftt(2mZZ-~1otsNILl22JexYGz z;HEpsox7jer&qsIUYNK@O=|o`Iq|?dDzKtU5U0ju=;;t|1c|x> zBnwTsdph>_Hh&ywY{045y;ixh8RhR%9SI71>uMfX=59#tCpxcR;b}f4@aIWo=Sfp6 zss8+Ld6R)T2)!oA`5-@@i*fR#F)}CU5d^a&Paf-!5sYHGu2M6B;@LEq@c1dGq~7W3 zuAZ0UkcW}1C*MA4RYNE9MIJOXH_q=IhG!#>UgcYw%p4oe+Y0&K7&d!37QRQ_j`L}~ z%C~*V!I`Uba_w>pVN=V88!Z!=Z_MxcYQX>248;oEt z)vIBLXUl?-S(`siEAsYh?cY&h-b>xjvb!@j^VD8MC-PSYU|!VQ${^%n$CWC>m8(VGRD&=sMXS8Xy| z$$GVCQ$rGjQ!w9sKKmg*>DU^u6cWS}1oBe+&O56FY(Sl%gz%%z&I=cDn2knz8(Nkn) zGgMbqbaa(2Z8K9U9TaIB74El^VP+IKQ89RAfzji<9NAgHX^B7AkYR7{%N|ct*;nO% zuS)yN!JAjJlYQbcbvCndkJ9ZNf2xHoR*+B|T~Zssn3@u5T#@n^8NKW|c_X>y^KBtVJdL*{a=+*V1NuU_?9|7dmez!RO$7s2+eZ3P?fmk{kr2{3-QdnlSt-PGq?da!p(L}hS!A1wL#Pl&X<2O zG`)*YiSGtK6*yKP(YT(sSlm&YqS#zyh%bfo`hPC%??{^L8>~&)^6`+3@^LTiZ)|KM zYbLCDSF_atLEvMLhc{MRlfR(uvuf?4>0MW#VkcSyPRklgTe+z?-dH|2K5p*lISXH! zuMyq&G-7Ua!BpqCx+?E8FX#@&YB?V63)PO5|66vyHg9)_cIGK#nlzC?ogPBh-oK{*!8FV+b2xxt;n;q!K)4L!X|@ZWxc5%dYys60_Q zPxULFy_1-CxSWgW)lGzZu?5qT)sAI3Z^dD&CnZy#9V3MCT+}a_nPt~LK<8OAlKQfY zBhf~<<@_a?R#vVWd#(Pnk{hG{pznsmR?t=eC2KU_K^*q*@JvF%u!035l?+xn8L1p9 znlox*qp|1Tuu3d)4fe{PG(_I?k{P>}7I^f!IkL)_v(M~eMY-iU;7trUVKE3r74?ne zL-L;|#wdx7r=y&@#$Zp@A-QR2nA*)MGC$$>O-b=LBpS80_v^y@ZH!^woZl1n3iRojV@7w%h9nWn1 zin7`!EH*o%V#8Sd*zitAZf)x;f2nC=-nyey>P)CqF!`2#9Lld`;k}96HndN-+V`7~ z-($Ezbru-DYxO1rO%@Y<{6kRDbrw*uz7j8u7ok2KZ{7dR7jIH$GVt!yXTDWk`sPOL z4hKPA?T5j{CORinv@*=q0dt0KND29p(Ivz5>QuTF2E)%s@CY8Anqe_UU)#ZH}} znLuBUZf(r_woDcqx<(730iK;MR2xiI3?>Vq{$A~}tGBxVoeI+p5pnj;p@Skw_>S>M^<+JO;aULIW4^!jQ zzSH`8QeY6``yfBgYxA2U!3fTq@9FlPo|P?U{-9HFk{D#{E@Fw0czBE;eiJE z4lW_ulE5H@5JEwwl9O?`Fq7bpMIxrArsjvf1|ftHKO+AJ{d1+dJ(%3x00000NkvXX Hu0mjf4;sJx delta 34595 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�KIpT{gRpozLdd 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�mjmj-OV9wo+e_O z4_qwV1*Dyblisz`*`2Q#(!)b~X&o6$;CTrDVNadSeZP_=o5|@2rE6c~d-~Qfx7h6G zev`=}HFl`U-D=))JV-zo#5C6r46W0L?VsK*neCFfyA1>MA32O6jeFDdK{*On7S+4z zb*(>?IaF2!r7Ai?q*1!;?7LczjLa|Klz$vEzb`{4@s?L1oWJT{|A!&+w*!S!-;-FGD?c+HZK> z>RcUHgdlp_FK6Mii>6{0(b#KaE~}c5zY-B;3n!UNs&e(*?RkM7A~Dk^-HN8P{EX$} zzpTLP`>klTiBwsd4w`sV?Cz&No_gdr*+S~^>o5vjrwzqR)ahw5eYV}iJ|`xgy&Bb( z7V|B>VDMX~am{+(75NQ#%E2Qa8Z_%`cqe;s`|4d|_Cq$DE3f@c_vmNe1(o}aqc-;+ zRi-FmUnz#pm>=ve*Z+e7lAf461v^W|H~(upJ^LLwRDT|9ojqm#o~?EhKdZRZepzS1_1nHE}pJ-)Z*l*abXvA2=c&Fkzv} vZ0SG)@{an^LB{Ts5O#Sre diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx index bdedaa4470..aac253df59 100644 --- a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx @@ -9,7 +9,7 @@ import ListItemMobileGrid from 'ui/shared/ListItemMobile/ListItemMobileGrid'; import ArbitrumL2MessageStatus from 'ui/shared/statusTag/ArbitrumL2MessageStatus'; import ArbitrumL2TxnWithdrawalsClaimButton from './ArbitrumL2TxnWithdrawalsClaimButton'; -import ArbitrumL2TxnWithdrawalsToken from './ArbitrumL2TxnWithdrawalsToken'; +import ArbitrumL2TxnWithdrawalsValue from './ArbitrumL2TxnWithdrawalsValue'; const rollupFeature = config.features.rollup; @@ -34,13 +34,13 @@ const ArbitrumL2TxnWithdrawalsListItem = ({ data, isLoading, txHash }: Props) => Receiver - + Value - { data.token ? : '-' } + diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx index 1d70ae05dc..eb514fc280 100644 --- a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx @@ -8,7 +8,7 @@ import AddressEntityL1 from 'ui/shared/entities/address/AddressEntityL1'; import ArbitrumL2MessageStatus from 'ui/shared/statusTag/ArbitrumL2MessageStatus'; import ArbitrumL2TxnWithdrawalsClaimButton from './ArbitrumL2TxnWithdrawalsClaimButton'; -import ArbitrumL2TxnWithdrawalsToken from './ArbitrumL2TxnWithdrawalsToken'; +import ArbitrumL2TxnWithdrawalsValue from './ArbitrumL2TxnWithdrawalsValue'; interface Props { txHash: string | undefined; @@ -23,11 +23,11 @@ const ArbitrumL2TxnWithdrawalsTableItem = ({ data, isLoading, txHash }: Props) = { data.id } - + - { data.token ? : '-' } + diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsToken.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsToken.tsx deleted file mode 100644 index 28d6aee616..0000000000 --- a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsToken.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { Flex } from '@chakra-ui/react'; -import React from 'react'; - -import type { ArbitrumL2TxnWithdrawalsItem } from 'types/api/arbitrumL2'; -import type { TokenInfo } from 'types/api/token'; -import type { ExcludeNull } from 'types/utils'; - -import getCurrencyValue from 'lib/getCurrencyValue'; -import TokenEntityL1 from 'ui/shared/entities/token/TokenEntityL1'; - -interface Props { - data: ExcludeNull; -} - -const ArbitrumL2TxnWithdrawalsToken = ({ data }: Props) => { - const { valueStr } = getCurrencyValue({ - value: data.amount ?? '0', - accuracy: 8, - decimals: String(data.decimals), - }); - - const formattedData: TokenInfo | null = React.useMemo(() => { - return { - ...data, - decimals: String(data.decimals), - type: 'ERC-20', - holders: null, - exchange_rate: null, - total_supply: null, - circulating_market_cap: null, - icon_url: null, - }; - }, [ data ]); - - return ( - - { valueStr } - - - ); -}; - -export default React.memo(ArbitrumL2TxnWithdrawalsToken); diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsValue.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsValue.tsx new file mode 100644 index 0000000000..4e678822d9 --- /dev/null +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsValue.tsx @@ -0,0 +1,69 @@ +import { Flex } from '@chakra-ui/react'; +import React from 'react'; + +import type { ArbitrumL2TxnWithdrawalsItem } from 'types/api/arbitrumL2'; +import type { TokenInfo } from 'types/api/token'; + +import config from 'configs/app'; +import getCurrencyValue from 'lib/getCurrencyValue'; +import TokenEntityL1 from 'ui/shared/entities/token/TokenEntityL1'; + +interface Props { + data: ArbitrumL2TxnWithdrawalsItem; +} + +const ArbitrumL2TxnWithdrawalsValue = ({ data }: Props) => { + + const content = (() => { + if (data.token) { + const { valueStr } = data.token && getCurrencyValue({ + value: data.token.amount ?? '0', + accuracy: 8, + decimals: String(data.token.decimals), + }); + + const formattedData: TokenInfo | null = { + ...data.token, + decimals: String(data.token.decimals), + type: 'ERC-20', + holders: null, + exchange_rate: null, + total_supply: null, + circulating_market_cap: null, + icon_url: null, + }; + + return ( + <> + { valueStr } + + + ); + } + + if (data.callvalue && data.callvalue !== '0') { + const { valueStr } = getCurrencyValue({ + value: data.callvalue, + accuracy: 8, + decimals: String(config.chain.currency.decimals), + }); + + return ( + <> + { valueStr } + { config.chain.currency.symbol } + + ); + } + + return -; + })(); + + return ( + + { content } + + ); +}; + +export default React.memo(ArbitrumL2TxnWithdrawalsValue); From 8479e3a0a60db4fdc18b772e8500214979284cd8 Mon Sep 17 00:00:00 2001 From: tom Date: Mon, 27 Jan 2025 19:09:27 +0100 Subject: [PATCH 16/16] update screenshots and hide button if the txn is not confirmed yet --- ...wals.pw.tsx_default_base-view-mobile-1.png | Bin 39288 -> 38250 bytes ...awals.pw.tsx_mobile_base-view-mobile-1.png | Bin 69616 -> 69023 bytes ui/tx/details/TxDetailsOther.tsx | 4 ++-- .../ArbitrumL2TxnWithdrawalsListItem.tsx | 14 ++++++++------ .../ArbitrumL2TxnWithdrawalsTableItem.tsx | 14 ++++++++------ 5 files changed, 18 insertions(+), 14 deletions(-) diff --git a/ui/pages/__screenshots__/ArbitrumL2Withdrawals.pw.tsx_default_base-view-mobile-1.png b/ui/pages/__screenshots__/ArbitrumL2Withdrawals.pw.tsx_default_base-view-mobile-1.png index c4159aaf18f23161e2086df35244bdf8824ab1f1..cf9af5f976e2b9f2e56240fcff624ca3b14a0655 100644 GIT binary patch delta 21459 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

Sg@JIg@Qhmg2*WQ*ViO0pdmViN=5xbB;xqO8 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 H{>i@p!M-K; delta 22504 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 diff --git a/ui/pages/__screenshots__/ArbitrumL2Withdrawals.pw.tsx_mobile_base-view-mobile-1.png b/ui/pages/__screenshots__/ArbitrumL2Withdrawals.pw.tsx_mobile_base-view-mobile-1.png index aa3c5ca481f7e57c14fdafb22b4d52efe977c9c4..d418169d93c881d4f2d137c6f841f11f1942feda 100644 GIT binary patch delta 17563 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 delta 18160 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 XZPGdzY+nPbP0l+XkKJr;0{ diff --git a/ui/tx/details/TxDetailsOther.tsx b/ui/tx/details/TxDetailsOther.tsx index e06265867a..8dd6062f1e 100644 --- a/ui/tx/details/TxDetailsOther.tsx +++ b/ui/tx/details/TxDetailsOther.tsx @@ -47,10 +47,10 @@ const TxDetailsOther = ({ nonce, type, position, queueIndex }: Props) => { ] .filter(Boolean) .map((item, index) => ( - <> + { index !== 0 && } { item } - + )) } diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx index aac253df59..4a62f44306 100644 --- a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsListItem.tsx @@ -55,12 +55,14 @@ const ArbitrumL2TxnWithdrawalsListItem = ({ data, isLoading, txHash }: Props) => py={ 0 } > - + { (data.status === 'confirmed' || data.status === 'relayed') && ( + + ) } diff --git a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx index eb514fc280..fec71b48f5 100644 --- a/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx +++ b/ui/txnWithdrawals/arbitrumL2/ArbitrumL2TxnWithdrawalsTableItem.tsx @@ -33,12 +33,14 @@ const ArbitrumL2TxnWithdrawalsTableItem = ({ data, isLoading, txHash }: Props) = - + { (data.status === 'confirmed' || data.status === 'relayed') && ( + + ) }