= (props) => {
+ const legacyAsset: string = props.match.params.legacyAsset;
+ const targetAsset: string | undefined = MIGRATION_ASSET_MAP.get(legacyAsset);
+
+ let fromMint: string | undefined = "";
+ let toMint: string | undefined = "";
+ try {
+ fromMint = legacyAsset && new PublicKey(legacyAsset).toString();
+ toMint = targetAsset && new PublicKey(targetAsset).toString();
+ } catch (e) {}
+
+ if (fromMint && toMint) {
+ return ;
+ } else {
+ return This asset is not eligible for migration.;
+ }
+};
+
+export default withRouter(MigrationRoot);
diff --git a/bridge_ui/src/components/ShowTx.tsx b/bridge_ui/src/components/ShowTx.tsx
index e0a919b6d..d1ad3cb56 100644
--- a/bridge_ui/src/components/ShowTx.tsx
+++ b/bridge_ui/src/components/ShowTx.tsx
@@ -40,7 +40,7 @@ export default function ShowTx({
return (
-
+
{tx.id}
{showExplorerLink && explorerAddress ? (
diff --git a/bridge_ui/src/components/SolanaCreateAssociatedAddress.tsx b/bridge_ui/src/components/SolanaCreateAssociatedAddress.tsx
index dcd17a21d..eead85112 100644
--- a/bridge_ui/src/components/SolanaCreateAssociatedAddress.tsx
+++ b/bridge_ui/src/components/SolanaCreateAssociatedAddress.tsx
@@ -15,7 +15,7 @@ import ButtonWithLoader from "./ButtonWithLoader";
export function useAssociatedAccountExistsState(
targetChain: ChainId,
mintAddress: string | null | undefined,
- readableTargetAddress: string
+ readableTargetAddress: string | undefined
) {
const [associatedAccountExists, setAssociatedAccountExists] = useState(true); // for now, assume it exists until we confirm it doesn't
const solanaWallet = useSolanaWallet();
diff --git a/bridge_ui/src/hooks/useMetaplexData.ts b/bridge_ui/src/hooks/useMetaplexData.ts
index 9d41f255d..f72103699 100644
--- a/bridge_ui/src/hooks/useMetaplexData.ts
+++ b/bridge_ui/src/hooks/useMetaplexData.ts
@@ -1,5 +1,5 @@
import { Connection } from "@solana/web3.js";
-import { useLayoutEffect, useState } from "react";
+import { useLayoutEffect, useMemo, useState } from "react";
import { DataWrapper } from "../store/helpers";
import { SOLANA_HOST } from "../utils/consts";
import {
@@ -97,12 +97,16 @@ const useMetaplexData = (
};
}, [addresses, setResults, setIsLoading, setError]);
- return {
- data: results,
- isFetching: isLoading,
- error,
- receivedAt,
- };
+ const output = useMemo(
+ () => ({
+ data: results,
+ isFetching: isLoading,
+ error,
+ receivedAt,
+ }),
+ [results, isLoading, error, receivedAt]
+ );
+ return output;
};
export default useMetaplexData;
diff --git a/bridge_ui/src/utils/consts.ts b/bridge_ui/src/utils/consts.ts
index 5006de8aa..c373eee93 100644
--- a/bridge_ui/src/utils/consts.ts
+++ b/bridge_ui/src/utils/consts.ts
@@ -210,3 +210,17 @@ export const ETH_TOKENS_THAT_EXIST_ELSEWHERE = [
getAddress("0x1c5db575e2ff833e46a2e9864c22f4b22e0b37c2"), // renZEC
getAddress("0xD5147bc8e386d91Cc5DBE72099DAC6C9b99276F5"), // renFIL
];
+
+export const MIGRATION_PROGRAM_ADDRESS =
+ process.env.REACT_APP_CLUSTER === "mainnet"
+ ? "whmRZnmyxdr2TkHXcZoFdtvNYRLQ5Jtbkf6ZbGkJjdk"
+ : process.env.REACT_APP_CLUSTER === "testnet"
+ ? ""
+ : "Ex9bCdVMSfx7EzB3pgSi2R4UHwJAXvTw18rBQm5YQ8gK";
+
+export const MIGRATION_ASSET_MAP = new Map([
+ [
+ "2WDq7wSs9zYrpx2kbHDA4RUTRch2CCTP6ZWaH4GNfnQQ",
+ "ApgUoB1467PXXofoLWFELH2Kz9DKB8WXdU2szGSsFKhX",
+ ],
+]);
diff --git a/lp_ui/src/utils/consts.ts b/lp_ui/src/utils/consts.ts
index ff13e7ea3..4e89525f9 100644
--- a/lp_ui/src/utils/consts.ts
+++ b/lp_ui/src/utils/consts.ts
@@ -2,7 +2,7 @@ import { clusterApiUrl } from "@solana/web3.js";
export const MIGRATION_PROGRAM_ADDRESS =
process.env.REACT_APP_CLUSTER === "mainnet"
- ? ""
+ ? "whmRZnmyxdr2TkHXcZoFdtvNYRLQ5Jtbkf6ZbGkJjdk"
: process.env.REACT_APP_CLUSTER === "testnet"
? ""
: "Ex9bCdVMSfx7EzB3pgSi2R4UHwJAXvTw18rBQm5YQ8gK";