{"version":3,"sources":["webpack:///./src/subpages/list.tsx","webpack:///./src/misc/useQueryString.ts","webpack:///./src/generated/graphql.tsx","webpack:///./src/components/Timestamp.tsx","webpack:///./src/components/List.tsx","webpack:///./src/components/OffsetSwitch.tsx","webpack:///./src/misc/columns.tsx","webpack:///./src/misc/useOffset.ts","webpack:///./src/misc/useSearchParams.ts"],"names":["__webpack_require__","r","__webpack_exports__","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","n","gatsby__WEBPACK_IMPORTED_MODULE_1__","_fluentui_react__WEBPACK_IMPORTED_MODULE_2__","_generated_graphql__WEBPACK_IMPORTED_MODULE_3__","_misc_useOffset__WEBPACK_IMPORTED_MODULE_4__","_misc_columns__WEBPACK_IMPORTED_MODULE_5__","_components_List__WEBPACK_IMPORTED_MODULE_6__","_components_OffsetSwitch__WEBPACK_IMPORTED_MODULE_7__","ListPage","_ref","location","_useOffset","useOffset","offset","olderHandler","newerHandler","_useState","useState","excludeEmptyTxs","setExcludeEmptyTxs","a","createElement","label","checked","onChange","variables","limit","pollInterval","_ref2","data","loading","error","console","message","blocks","chainQuery","blockQuery","Fragment","SummaryCards","disable","older","newer","BlockList","columns","mainMineColumns","_ref3","Cards","interval","difficultyAverage","totalTxNumber","timestamps","map","block","Date","timestamp","i","length","difficulties","difficulty","reduce","d","sum","transactions","b","_ref4","className","key","toFixed","Math","floor","toLocaleString","_ref5","items","onItemInvoked","navigate","hash","useQueryString","useMemo","search","substr","useCallback","queryString","path","pathname","withPrefix","BlockCommonFragmentDoc","gql","_templateObject","TransactionCommonFragmentDoc","_templateObject2","BlockListDocument","_templateObject3","BlockListComponent","props","react__WEBPACK_IMPORTED_MODULE_2__","_apollo_react_components__WEBPACK_IMPORTED_MODULE_3__","Object","assign","query","BlockByHashDocument","_templateObject4","BlockByHashComponent","_templateObject5","TransactionByIdDocument","_templateObject6","TransactionByIdComponent","TransactionsByAccountDocument","_templateObject7","TransactionsByAccountComponent","formatOptions","hour","minute","year","month","day","Timestamp","date","now","getFullYear","getMonth","getDate","timeStyle","_objectWithoutPropertiesLoose","react__WEBPACK_IMPORTED_MODULE_4___default","dateTime","toISOString","title","undefined","_fluentui_react_lib_DetailsList__WEBPACK_IMPORTED_MODULE_1__","_fluentui_react_lib_DetailsList__WEBPACK_IMPORTED_MODULE_2__","_fluentui_react_lib_ShimmeredDetailsList__WEBPACK_IMPORTED_MODULE_3__","List","notFoundMessage","setKey","selectionMode","SelectionMode","none","layoutMode","DetailsListLayoutMode","justified","isHeaderVisible","enableShimmer","OffsetSwitch","onClick","disabled","css","commonProps","isRowHeader","isResizable","isSorted","name","fieldName","iconName","isIconOnly","minWidth","maxWidth","isSortedDescending","isPadded","onRender","index","react__WEBPACK_IMPORTED_MODULE_2___default","Number","_fluentui_react__WEBPACK_IMPORTED_MODULE_3__","href","_components_Timestamp__WEBPACK_IMPORTED_MODULE_4__","miner","_ref6","previousBlock","beforeTimestamp","parse","nowTimestamp","_ref7","accountMineColumns","_ref8","_ref9","_ref10","_ref11","_ref12","_ref13","_ref14","txColumns","_ref15","id","_ref16","signer","_ref17","keyName","_useSearchParams","_useQueryString","setQueryString","querystring","searchParams","stringify","useSearchParams","setSearchParams","setOffset"],"mappings":"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","file":"component---src-subpages-list-tsx-5a96de5ad0bae6822c97.js","sourcesContent":["import React, { useState } from 'react';\nimport { navigate } from 'gatsby';\n\nimport { Checkbox } from '@fluentui/react';\n\nimport { Block, BlockListComponent } from '../generated/graphql';\n\nimport useOffset, { limit } from '../misc/useOffset';\nimport { mainMineColumns } from '../misc/columns';\n\nimport List, { BlockListProps } from '../components/List';\nimport OffsetSwitch from '../components/OffsetSwitch';\n\nimport { IndexPageProps } from '../pages/index';\n\ntype ListPageProps = IndexPageProps;\n\nconst POLL_INTERVAL = 2000;\nconst ROUND_DIGITS = 4;\n\nconst ListPage: React.FC = ({ location }) => {\n const [offset, olderHandler, newerHandler] = useOffset(location);\n const [excludeEmptyTxs, setExcludeEmptyTxs] = useState(false);\n return (\n
\n setExcludeEmptyTxs(!excludeEmptyTxs)}\n />\n \n {({ data, loading, error }) => {\n if (error) {\n console.error(error);\n return

{error.message}

;\n }\n\n let blocks = null;\n if (!loading) {\n blocks =\n data && data.chainQuery.blockQuery && data.chainQuery.blockQuery.blocks\n ? (data.chainQuery.blockQuery.blocks as Block[])\n : null;\n }\n\n return (\n <>\n \n \n \n \n );\n }}\n \n
\n );\n};\n\nexport default ListPage;\n\nexport interface SummaryCardsProps {\n blocks: Block[] | null;\n}\n\nconst SummaryCards: React.FC = ({ blocks }) => {\n if (blocks === null)\n return ;\n\n const timestamps: Date[] = blocks.map(block => new Date(block.timestamp));\n\n let interval = 0;\n for (let i = 0; i < timestamps.length - 1; i++) {\n interval += +timestamps[i] - +timestamps[i + 1];\n }\n interval /= (timestamps.length - 1) * 1000;\n\n const difficulties = blocks.map(block => block.difficulty);\n const difficultyAverage =\n difficulties.reduce((d, sum) => d + sum, 0) / difficulties.length;\n\n const txNumbers = blocks.map(block => block.transactions.length);\n const totalTxNumber = txNumbers.reduce((a, b) => a + b, 0);\n return (\n \n );\n};\n\ninterface CardsProps {\n interval: number;\n difficultyAverage: number;\n totalTxNumber: number;\n}\n\nconst Cards: React.FC = ({\n interval,\n difficultyAverage,\n totalTxNumber,\n}) => (\n
\n
\n {interval.toFixed(ROUND_DIGITS)} sec\n

Average interval in this page

\n
\n
\n {Math.floor(difficultyAverage).toLocaleString()}\n

Average difficulty in this page

\n
\n
\n {Math.floor(totalTxNumber).toLocaleString()}\n

Total txs in this page

\n
\n
\n);\n\nconst BlockList: React.FC = ({ blocks, loading, columns }) => {\n return (\n navigate(`/search/?${block.hash}`)}\n />\n );\n};\n","import { useCallback, useMemo } from 'react';\nimport { navigate, withPrefix } from 'gatsby';\n\nexport default function useQueryString(location: Location) {\n const queryString = useMemo(() => location.search.substr(1), [location]);\n const setQueryString = useCallback(\n (queryString: string) => {\n const path = location.pathname.substr(withPrefix('/').length - 1);\n navigate(path + (queryString ? `?${queryString}` : ''));\n },\n [location, navigate]\n );\n return [queryString, setQueryString] as const;\n}\n","import gql from 'graphql-tag';\nimport * as React from 'react';\nimport * as ApolloReactCommon from '@apollo/react-common';\nimport * as ApolloReactComponents from '@apollo/react-components';\nimport * as ApolloReactHoc from '@apollo/react-hoc';\nexport type Maybe = T | null;\nexport type Omit = Pick>;\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: string,\n String: string,\n Boolean: boolean,\n Int: number,\n Float: number,\n Address: any,\n ByteString: any,\n DateTimeOffset: any,\n BigInt: BigInt,\n Date: any,\n DateTime: any,\n Decimal: any,\n Milliseconds: any,\n Seconds: any,\n};\n\nexport type Action = {\n __typename?: 'Action',\n inspection: Scalars['String'],\n raw: Scalars['String'],\n};\n\n\nexport type ActionRawArgs = {\n encode?: Maybe\n};\n\n\n\nexport type Block = {\n __typename?: 'Block',\n difficulty: Scalars['Int'],\n hash: Scalars['ID'],\n index: Scalars['Int'],\n miner: Scalars['Address'],\n nonce: Scalars['ByteString'],\n previousBlock?: Maybe,\n stateRootHash?: Maybe,\n timestamp: Scalars['DateTimeOffset'],\n totalDifficulty: Scalars['BigInt'],\n transactions: Array,\n};\n\nexport type BlockQuery = {\n __typename?: 'BlockQuery',\n block?: Maybe,\n blocks: Array,\n};\n\n\nexport type BlockQueryBlockArgs = {\n hash?: Maybe\n};\n\n\nexport type BlockQueryBlocksArgs = {\n desc?: Maybe,\n offset?: Maybe,\n limit?: Maybe,\n excludeEmptyTxs?: Maybe,\n miner?: Maybe\n};\n\n\nexport type ChainQuery = {\n __typename?: 'ChainQuery',\n blockQuery?: Maybe,\n transactionQuery?: Maybe,\n};\n\n\n\n\n\n\nexport type Query = {\n __typename?: 'Query',\n chainQuery: ChainQuery,\n};\n\n\nexport type Transaction = {\n __typename?: 'Transaction',\n actions: Array,\n id: Scalars['ID'],\n nonce: Scalars['Int'],\n publicKey: Scalars['ByteString'],\n signature: Scalars['ByteString'],\n signer: Scalars['Address'],\n timestamp: Scalars['DateTimeOffset'],\n updatedAddresses: Array,\n};\n\nexport type TransactionQuery = {\n __typename?: 'TransactionQuery',\n transaction?: Maybe,\n transactions: Array,\n};\n\n\nexport type TransactionQueryTransactionArgs = {\n id?: Maybe\n};\n\n\nexport type TransactionQueryTransactionsArgs = {\n signer?: Maybe,\n involvedAddress?: Maybe,\n desc?: Maybe,\n offset?: Maybe,\n limit?: Maybe\n};\nexport type BlockCommonFragment = ({ __typename?: 'Block' } & Pick);\n\nexport type TransactionCommonFragment = ({ __typename?: 'Transaction' } & Pick);\n\nexport type BlockListQueryVariables = {\n offset: Scalars['Int'],\n limit: Scalars['Int'],\n excludeEmptyTxs: Scalars['Boolean'],\n miner?: Maybe\n};\n\n\nexport type BlockListQuery = ({ __typename?: 'Query' } & { chainQuery: ({ __typename?: 'ChainQuery' } & { blockQuery: Maybe<({ __typename?: 'BlockQuery' } & { blocks: Array<({ __typename?: 'Block' } & Pick & { previousBlock: Maybe<({ __typename?: 'Block' } & Pick)>, transactions: Array<({ __typename?: 'Transaction' } & Pick)> } & BlockCommonFragment)> })> }) });\n\nexport type BlockByHashQueryVariables = {\n hash?: Maybe\n};\n\n\nexport type BlockByHashQuery = ({ __typename?: 'Query' } & { chainQuery: ({ __typename?: 'ChainQuery' } & { blockQuery: Maybe<({ __typename?: 'BlockQuery' } & { block: Maybe<({ __typename?: 'Block' } & Pick & { previousBlock: Maybe<({ __typename?: 'Block' } & Pick)>, transactions: Array<({ __typename?: 'Transaction' } & TransactionCommonFragment)> } & BlockCommonFragment)> })> }) });\n\nexport type TransactionListQueryVariables = {\n signer?: Maybe,\n involvedAddress?: Maybe,\n desc: Scalars['Boolean'],\n offset: Scalars['Int'],\n limit: Scalars['Int']\n};\n\n\nexport type TransactionListQuery = ({ __typename?: 'Query' } & { chainQuery: ({ __typename?: 'ChainQuery' } & { transactionQuery: Maybe<({ __typename?: 'TransactionQuery' } & { transactions: Array<({ __typename?: 'Transaction' } & TransactionCommonFragment)> })> }) });\n\nexport type TransactionByIdQueryVariables = {\n id?: Maybe\n};\n\n\nexport type TransactionByIdQuery = ({ __typename?: 'Query' } & { chainQuery: ({ __typename?: 'ChainQuery' } & { transactionQuery: Maybe<({ __typename?: 'TransactionQuery' } & { transaction: Maybe<({ __typename?: 'Transaction' } & { actions: Array<({ __typename?: 'Action' } & Pick)> } & TransactionCommonFragment)> })> }) });\n\nexport type TransactionsByAccountQueryVariables = {\n involvedAddress: Scalars['Address'],\n offset?: Maybe,\n limit?: Maybe\n};\n\n\nexport type TransactionsByAccountQuery = ({ __typename?: 'Query' } & { chainQuery: ({ __typename?: 'ChainQuery' } & { transactionQuery: Maybe<({ __typename?: 'TransactionQuery' } & { transactions: Array<({ __typename?: 'Transaction' } & TransactionCommonFragment)> })> }) });\nexport const BlockCommonFragmentDoc = gql`\n fragment BlockCommon on Block {\n hash\n index\n difficulty\n timestamp\n totalDifficulty\n}\n `;\nexport const TransactionCommonFragmentDoc = gql`\n fragment TransactionCommon on Transaction {\n id\n nonce\n publicKey\n signature\n signer\n timestamp\n updatedAddresses\n}\n `;\nexport const BlockListDocument = gql`\n query BlockList($offset: Int!, $limit: Int!, $excludeEmptyTxs: Boolean!, $miner: Address) {\n chainQuery {\n blockQuery {\n blocks(desc: true, offset: $offset, limit: $limit, excludeEmptyTxs: $excludeEmptyTxs, miner: $miner) {\n ...BlockCommon\n miner\n previousBlock {\n timestamp\n }\n transactions {\n id\n }\n }\n }\n }\n}\n ${BlockCommonFragmentDoc}`;\nexport type BlockListComponentProps = Omit, 'query'> & ({ variables: BlockListQueryVariables; skip?: boolean; } | { skip: boolean; });\n\n export const BlockListComponent = (props: BlockListComponentProps) => (\n query={BlockListDocument} {...props} />\n );\n \nexport type BlockListProps = ApolloReactHoc.DataProps & TChildProps;\nexport function withBlockList(operationOptions?: ApolloReactHoc.OperationOption<\n TProps,\n BlockListQuery,\n BlockListQueryVariables,\n BlockListProps>) {\n return ApolloReactHoc.withQuery>(BlockListDocument, {\n alias: 'withBlockList',\n ...operationOptions\n });\n};\nexport type BlockListQueryResult = ApolloReactCommon.QueryResult;\nexport const BlockByHashDocument = gql`\n query BlockByHash($hash: ID) {\n chainQuery {\n blockQuery {\n block(hash: $hash) {\n ...BlockCommon\n miner\n nonce\n stateRootHash\n previousBlock {\n hash\n }\n transactions {\n ...TransactionCommon\n }\n }\n }\n }\n}\n ${BlockCommonFragmentDoc}\n${TransactionCommonFragmentDoc}`;\nexport type BlockByHashComponentProps = Omit, 'query'>;\n\n export const BlockByHashComponent = (props: BlockByHashComponentProps) => (\n query={BlockByHashDocument} {...props} />\n );\n \nexport type BlockByHashProps = ApolloReactHoc.DataProps & TChildProps;\nexport function withBlockByHash(operationOptions?: ApolloReactHoc.OperationOption<\n TProps,\n BlockByHashQuery,\n BlockByHashQueryVariables,\n BlockByHashProps>) {\n return ApolloReactHoc.withQuery>(BlockByHashDocument, {\n alias: 'withBlockByHash',\n ...operationOptions\n });\n};\nexport type BlockByHashQueryResult = ApolloReactCommon.QueryResult;\nexport const TransactionListDocument = gql`\n query TransactionList($signer: Address, $involvedAddress: Address, $desc: Boolean!, $offset: Int!, $limit: Int!) {\n chainQuery {\n transactionQuery {\n transactions(signer: $signer, involvedAddress: $involvedAddress, desc: $desc, offset: $offset, limit: $limit) {\n ...TransactionCommon\n }\n }\n }\n}\n ${TransactionCommonFragmentDoc}`;\nexport type TransactionListComponentProps = Omit, 'query'> & ({ variables: TransactionListQueryVariables; skip?: boolean; } | { skip: boolean; });\n\n export const TransactionListComponent = (props: TransactionListComponentProps) => (\n query={TransactionListDocument} {...props} />\n );\n \nexport type TransactionListProps = ApolloReactHoc.DataProps & TChildProps;\nexport function withTransactionList(operationOptions?: ApolloReactHoc.OperationOption<\n TProps,\n TransactionListQuery,\n TransactionListQueryVariables,\n TransactionListProps>) {\n return ApolloReactHoc.withQuery>(TransactionListDocument, {\n alias: 'withTransactionList',\n ...operationOptions\n });\n};\nexport type TransactionListQueryResult = ApolloReactCommon.QueryResult;\nexport const TransactionByIdDocument = gql`\n query TransactionById($id: ID) {\n chainQuery {\n transactionQuery {\n transaction(id: $id) {\n ...TransactionCommon\n actions {\n raw(encode: \"base64\")\n }\n }\n }\n }\n}\n ${TransactionCommonFragmentDoc}`;\nexport type TransactionByIdComponentProps = Omit, 'query'>;\n\n export const TransactionByIdComponent = (props: TransactionByIdComponentProps) => (\n query={TransactionByIdDocument} {...props} />\n );\n \nexport type TransactionByIdProps = ApolloReactHoc.DataProps & TChildProps;\nexport function withTransactionById(operationOptions?: ApolloReactHoc.OperationOption<\n TProps,\n TransactionByIdQuery,\n TransactionByIdQueryVariables,\n TransactionByIdProps>) {\n return ApolloReactHoc.withQuery>(TransactionByIdDocument, {\n alias: 'withTransactionById',\n ...operationOptions\n });\n};\nexport type TransactionByIdQueryResult = ApolloReactCommon.QueryResult;\nexport const TransactionsByAccountDocument = gql`\n query TransactionsByAccount($involvedAddress: Address!, $offset: Int, $limit: Int) {\n chainQuery {\n transactionQuery {\n transactions(involvedAddress: $involvedAddress, desc: true, offset: $offset, limit: $limit) {\n ...TransactionCommon\n }\n }\n }\n}\n ${TransactionCommonFragmentDoc}`;\nexport type TransactionsByAccountComponentProps = Omit, 'query'> & ({ variables: TransactionsByAccountQueryVariables; skip?: boolean; } | { skip: boolean; });\n\n export const TransactionsByAccountComponent = (props: TransactionsByAccountComponentProps) => (\n query={TransactionsByAccountDocument} {...props} />\n );\n \nexport type TransactionsByAccountProps = ApolloReactHoc.DataProps & TChildProps;\nexport function withTransactionsByAccount(operationOptions?: ApolloReactHoc.OperationOption<\n TProps,\n TransactionsByAccountQuery,\n TransactionsByAccountQueryVariables,\n TransactionsByAccountProps>) {\n return ApolloReactHoc.withQuery>(TransactionsByAccountDocument, {\n alias: 'withTransactionsByAccount',\n ...operationOptions\n });\n};\nexport type TransactionsByAccountQueryResult = ApolloReactCommon.QueryResult;","import { Scalars } from '../generated/graphql';\nimport React from 'react';\n\ninterface TimestampProps {\n timestamp: Scalars['DateTimeOffset'];\n}\n\nconst formatOptions: Intl.DateTimeFormatOptions = {\n hour: '2-digit',\n minute: '2-digit',\n year: '2-digit',\n month: 'numeric',\n day: 'numeric',\n};\n\nconst Timestamp: React.FC = ({ timestamp }) => {\n const date = new Date(timestamp);\n const now = new Date();\n if (\n now.getFullYear() == date.getFullYear() &&\n now.getMonth() == date.getMonth() &&\n now.getDate() == date.getDate()\n ) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { year, month, day, ...timeStyle } = formatOptions;\n return (\n \n );\n }\n return (\n \n );\n};\n\nexport default Timestamp;\n","import React from 'react';\nimport {\n DetailsListLayoutMode,\n SelectionMode,\n IColumn,\n} from '@fluentui/react/lib/DetailsList';\nimport { ShimmeredDetailsList } from '@fluentui/react/lib/ShimmeredDetailsList';\nimport { Block } from '../generated/graphql';\n\ninterface ListProps {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n items: any[] | null;\n loading: boolean;\n columns: IColumn[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onItemInvoked: (item: any) => void;\n notFoundMessage?: string;\n}\n\nconst List: React.FC = ({\n items,\n loading,\n columns,\n onItemInvoked,\n notFoundMessage,\n}) => {\n if (!loading && notFoundMessage && items && items.length === 0)\n return

{notFoundMessage}

;\n return (\n \n );\n};\n\nexport default List;\n\nexport type OmitListProps = Omit;\n\nexport interface BlockListProps extends OmitListProps {\n blocks: Block[] | null;\n}\n","import React from 'react';\n\nimport { css } from 'emotion';\nimport { DefaultButton } from '@fluentui/react';\n\ninterface OffsetSwitchProps {\n newerHandler?: () => void;\n olderHandler?: () => void;\n disable: { older: boolean; newer: boolean };\n}\n\nconst OffsetSwitch: React.FC = ({\n newerHandler,\n olderHandler,\n disable,\n}) => (\n
\n \n ← Newer\n \n \n Older →\n \n
\n);\n\nexport default OffsetSwitch;\n","import React from 'react';\nimport { Link } from '@fluentui/react';\n\nimport Timestamp from '../components/Timestamp';\nimport { Block, Transaction } from '../generated/graphql';\n\nexport const commonProps = {\n isRowHeader: true,\n isResizable: true,\n isSorted: false,\n};\n\nexport const mainMineColumns = [\n {\n key: 'columnIndex',\n name: 'Index',\n fieldName: 'index',\n iconName: 'NumberSymbol',\n isIconOnly: true,\n minWidth: 60,\n maxWidth: 60,\n ...commonProps,\n isSortedDescending: true,\n data: 'string',\n isPadded: true,\n onRender: ({ index }: Block) => <>{Number(index).toLocaleString()},\n },\n {\n key: 'columnHash',\n name: 'Block Hash',\n fieldName: 'hash',\n minWidth: 5,\n maxWidth: 450,\n ...commonProps,\n isSortedDescending: false,\n data: 'string',\n isPadded: true,\n onRender: ({ hash }: Block) => (\n {hash}\n ),\n },\n {\n key: 'columnTimestamp',\n name: 'Timestamp',\n fieldName: 'timestamp',\n minWidth: 60,\n maxWidth: 200,\n ...commonProps,\n isSortedDescending: true,\n data: 'string',\n isPadded: true,\n onRender: ({ timestamp }: Block) => ,\n },\n {\n key: 'columnMiner',\n name: 'Miner',\n fieldName: 'miner',\n minWidth: 100,\n maxWidth: 450,\n ...commonProps,\n isSortedDescending: true,\n data: 'string',\n isPadded: true,\n onRender: ({ miner }: Block) => (\n {miner}\n ),\n },\n {\n key: 'columnDifficulty',\n name: 'Difficulty',\n minWidth: 80,\n maxWidth: 200,\n ...commonProps,\n isSortedDescending: true,\n data: 'string',\n isPadded: true,\n onRender: ({ difficulty }: Block) => (\n <>{Math.floor(difficulty).toLocaleString()}\n ),\n },\n {\n key: 'columnTimeTaken',\n name: 'Time Taken',\n minWidth: 50,\n maxWidth: 200,\n ...commonProps,\n data: 'string',\n isPadded: true,\n onRender: ({ timestamp, previousBlock }: Block) => {\n if (previousBlock === null || previousBlock === undefined) {\n return <>{0};\n }\n const beforeTimestamp = Date.parse(previousBlock.timestamp);\n const nowTimestamp = Date.parse(timestamp);\n return <>{(nowTimestamp - beforeTimestamp) / 1000};\n },\n },\n {\n key: 'columnTxNumber',\n name: 'Tx #',\n minWidth: 30,\n maxWidth: 40,\n ...commonProps,\n isSortedDescending: false,\n data: 'number',\n isPadded: true,\n onRender: ({ transactions }: Block) => <>{transactions.length},\n },\n];\n\nexport const accountMineColumns = [\n {\n key: 'columnIndex',\n name: 'Index',\n fieldName: 'index',\n iconName: 'NumberSymbol',\n isIconOnly: true,\n minWidth: 40,\n maxWidth: 60,\n ...commonProps,\n isSortedDescending: true,\n data: 'string',\n isPadded: true,\n onRender: ({ index }: Block) => <>{Number(index).toLocaleString()},\n },\n {\n key: 'columnHash',\n name: 'Block Hash',\n fieldName: 'hash',\n minWidth: 5,\n maxWidth: 450,\n ...commonProps,\n isSortedDescending: false,\n data: 'string',\n isPadded: true,\n onRender: ({ hash }: Block) => (\n {hash}\n ),\n },\n {\n key: 'columnTimestamp',\n name: 'Timestamp',\n fieldName: 'timestamp',\n minWidth: 100,\n maxWidth: 200,\n ...commonProps,\n isSortedDescending: true,\n data: 'string',\n isPadded: true,\n onRender: ({ timestamp }: Block) => ,\n },\n {\n key: 'columnMiner',\n name: 'Miner',\n fieldName: 'miner',\n minWidth: 123,\n maxWidth: 450,\n ...commonProps,\n isSortedDescending: true,\n data: 'string',\n isPadded: true,\n onRender: ({ miner }: Block) => (\n {miner}\n ),\n },\n {\n key: 'columnDifficulty',\n name: 'Difficulty',\n minWidth: 50,\n maxWidth: 200,\n ...commonProps,\n isSortedDescending: true,\n data: 'string',\n isPadded: true,\n onRender: ({ difficulty }: Block) => (\n <>{Math.floor(difficulty).toLocaleString()}\n ),\n },\n {\n key: 'columnTimeTaken',\n name: 'Time Taken',\n minWidth: 50,\n maxWidth: 200,\n ...commonProps,\n data: 'string',\n isPadded: true,\n onRender: ({ timestamp, previousBlock }: Block) => {\n if (previousBlock === null || previousBlock === undefined) {\n return <>{0};\n }\n const beforeTimestamp = Date.parse(previousBlock.timestamp);\n const nowTimestamp = Date.parse(timestamp);\n return <>{(nowTimestamp - beforeTimestamp) / 1000};\n },\n },\n {\n key: 'columnTxNumber',\n name: 'Tx #',\n minWidth: 30,\n maxWidth: 40,\n ...commonProps,\n isSortedDescending: false,\n data: 'number',\n isPadded: true,\n onRender: ({ transactions }: Block) => <>{transactions.length},\n },\n];\n\nexport const txColumns = [\n {\n key: 'columnNonce',\n name: 'Nonce',\n fieldName: 'nonce',\n minWidth: 5,\n maxWidth: 50,\n ...commonProps,\n isSortedDescending: true,\n data: 'string',\n isPadded: true,\n },\n {\n key: 'columnId',\n name: 'ID',\n fieldName: 'id',\n minWidth: 100,\n maxWidth: 200,\n ...commonProps,\n isSortedDescending: true,\n data: 'number',\n isPadded: true,\n // FIXME: We'd better to use absolute paths and make Gatsby automatically\n // to rebase these absolute paths on the PATH_PREFIX configuration.\n onRender: ({ id }: Transaction) => (\n {id}\n ),\n },\n {\n key: 'columnSignature',\n name: 'Signature',\n fieldName: 'signature',\n minWidth: 100,\n maxWidth: 200,\n ...commonProps,\n isSortedDescending: true,\n data: 'number',\n isPadded: true,\n },\n {\n key: 'columnSigner',\n name: 'Signer',\n fieldName: 'signer',\n minWidth: 100,\n maxWidth: 200,\n ...commonProps,\n isSortedDescending: true,\n data: 'number',\n isPadded: true,\n onRender: ({ signer }: Transaction) => (\n // FIXME: We'd better to use absolute paths and make Gatsby automatically\n // to rebase these absolute paths on the PATH_PREFIX configuration.\n {signer}\n ),\n },\n {\n key: 'columnTimestamp',\n name: 'Timestamp',\n fieldName: 'timestamp',\n minWidth: 100,\n maxWidth: 200,\n ...commonProps,\n isSortedDescending: true,\n data: 'number',\n isPadded: true,\n onRender: ({ timestamp }: Transaction) => (\n \n ),\n },\n];\n","import useSearchParams from './useSearchParams';\n\nexport const limit = 50;\nexport default function useOffset(location: Location, keyName = 'offset') {\n const [searchParams, setSearchParams] = useSearchParams(location);\n const offset = keyName in searchParams ? searchParams[keyName] : 0;\n const setOffset = (offset: number) => {\n if (offset < 1) {\n delete searchParams[keyName];\n setSearchParams(searchParams);\n } else {\n searchParams[keyName] = offset;\n setSearchParams(searchParams);\n }\n };\n const olderHandler = () => {\n setOffset(+offset + limit);\n };\n const newerHandler = () => {\n setOffset(+offset - limit);\n };\n return [offset, olderHandler, newerHandler] as const;\n}\n","import querystring from 'querystring';\nimport useQueryString from './useQueryString';\n\nexport default function useSearchParams(location: Location) {\n const [queryString, setQueryString] = useQueryString(location);\n const searchParams = querystring.parse(queryString);\n const setSearchParams = (searchParams: object) =>\n setQueryString(querystring.stringify(searchParams));\n return [searchParams, setSearchParams] as const;\n}\n"],"sourceRoot":""}