+
+ {isLoading
+ ? "Waiting for blocks..."
+ : "DS Blocks"}
+
+
+ {"View All"}
+
+
+);
+
+export default memo(RecentDSNavBar);
diff --git a/src/search/search.ts b/src/search/search.ts
index 702d4c0a..b6c4b3a3 100644
--- a/src/search/search.ts
+++ b/src/search/search.ts
@@ -241,6 +241,15 @@ const doSearch = async (q: string, navigate: NavigateFunction) => {
return;
}
+ // DS Block number?
+ if(q.charAt(0) === "#"){
+ const dsBlockNumber = parseInt(q.substring(1));
+ if(!isNaN(dsBlockNumber)) {
+ navigate(`/dsblock/${dsBlockNumber}`);
+ return;
+ }
+ }
+
// Epoch?
if (q.startsWith("epoch:")) {
const mayBeEpoch = q.substring(6);
diff --git a/src/url.ts b/src/url.ts
index 30dd8387..87f5d0de 100644
--- a/src/url.ts
+++ b/src/url.ts
@@ -30,6 +30,8 @@ export const slotAttestationsURL = (slotNumber: number) =>
export const validatorURL = (validatorIndex: number) =>
`/validator/${validatorIndex}`;
+export const dsBlockURL = (blockNum: BlockTag) => `/dsblock/${blockNum}`;
+
export const blockURL = (blockNum: BlockTag) => `/block/${blockNum}`;
export const blockTxsURL = (blockNum: BlockTag) => `/block/${blockNum}/txs`;
diff --git a/src/useErigonHooks.ts b/src/useErigonHooks.ts
index bd522e0a..63a41e72 100644
--- a/src/useErigonHooks.ts
+++ b/src/useErigonHooks.ts
@@ -24,6 +24,8 @@ import {
TokenMeta,
} from "./types";
import erc20 from "./erc20.json";
+import { DsBlockObj } from '@zilliqa-js/core/dist/types/src/types'
+import { Zilliqa } from "@zilliqa-js/zilliqa";
const TRANSFER_TOPIC =
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef";
diff --git a/src/useLatestBlock.ts b/src/useLatestBlock.ts
index ef26cdea..579cb606 100644
--- a/src/useLatestBlock.ts
+++ b/src/useLatestBlock.ts
@@ -1,6 +1,11 @@
import { useState, useEffect } from "react";
import { Block } from "@ethersproject/abstract-provider";
import { JsonRpcProvider } from "@ethersproject/providers";
+import { Zilliqa } from "@zilliqa-js/zilliqa";
+import { BlockchainInfo } from '@zilliqa-js/core/dist/types/src/types'
+import { useBlockChainInfo } from "./useZilliqaHooks";
+
+const refreshRate = 30000 // In milliseconds
/**
* Returns the latest block header AND hook an internal listener
@@ -77,3 +82,39 @@ export const useLatestBlockNumber = (provider?: JsonRpcProvider) => {
return latestBlock;
};
+
+/**
+ * Returns the latest chain information AND hoook an internal listener
+ * that'll update and trigger a component reder as a side effect every
+ * the poll returns a different value
+ */
+
+export const useLatestBlockChainInfo = (zilliqa?: Zilliqa)
+: BlockchainInfo | undefined => {
+ const [latestBlockChainInfo, setLatestBlockChainInfo] = useState