bridge_ui: support Luna and UST migration
Change-Id: Id29b26ed73105df581a97ddd5d1c2fce95c928a9
This commit is contained in:
parent
350244e8e4
commit
deb91554bf
|
@ -24,7 +24,7 @@ export default function SendPreview() {
|
|||
const sourceChain = useSelector(selectTransferSourceChain);
|
||||
const transferTx = useSelector(selectTransferTransferTx);
|
||||
|
||||
const explainerString = "The tokens have been sent!";
|
||||
const explainerString = "The tokens have entered the bridge!";
|
||||
|
||||
return (
|
||||
<>
|
||||
|
|
|
@ -349,6 +349,17 @@ const getSolanaParsedTokenAccounts = async (
|
|||
);
|
||||
});
|
||||
|
||||
// uncomment to test token account in picker, useful for debugging
|
||||
// splParsedTokenAccounts.push({
|
||||
// amount: "1",
|
||||
// decimals: 8,
|
||||
// mintKey: "2Xf2yAXJfg82sWwdLUo2x9mZXy6JCdszdMZkcF1Hf4KV",
|
||||
// publicKey: "2Xf2yAXJfg82sWwdLUo2x9mZXy6JCdszdMZkcF1Hf4KV",
|
||||
// uiAmount: 1,
|
||||
// uiAmountString: "1",
|
||||
// isNativeAsset: false,
|
||||
// });
|
||||
|
||||
if (nft) {
|
||||
//In the case of NFTs, we are done, and we set the accounts in redux
|
||||
dispatch(receiveSourceParsedTokenAccountsNFT(splParsedTokenAccounts));
|
||||
|
|
|
@ -109,7 +109,7 @@ export default function useMetadata(
|
|||
chainId: ChainId,
|
||||
addresses: string[]
|
||||
): DataWrapper<Map<string, GenericMetadata>> {
|
||||
const terraTokenMap = useTerraTokenMap();
|
||||
const terraTokenMap = useTerraTokenMap(chainId === CHAIN_ID_TERRA);
|
||||
const solanaTokenMap = useSolanaTokenMap();
|
||||
|
||||
const solanaAddresses = useMemo(() => {
|
||||
|
|
|
@ -25,18 +25,19 @@ export type TerraTokenMap = {
|
|||
};
|
||||
};
|
||||
|
||||
const useTerraTokenMap = (): DataWrapper<TerraTokenMap> => {
|
||||
const useTerraTokenMap = (shouldFire: boolean): DataWrapper<TerraTokenMap> => {
|
||||
const terraTokenMap = useSelector(selectTerraTokenMap);
|
||||
const dispatch = useDispatch();
|
||||
const shouldFire =
|
||||
terraTokenMap.data === undefined ||
|
||||
(terraTokenMap.data === null && !terraTokenMap.isFetching);
|
||||
const internalShouldFire =
|
||||
shouldFire &&
|
||||
(terraTokenMap.data === undefined ||
|
||||
(terraTokenMap.data === null && !terraTokenMap.isFetching));
|
||||
|
||||
useEffect(() => {
|
||||
if (shouldFire) {
|
||||
if (internalShouldFire) {
|
||||
getTerraTokenMap(dispatch);
|
||||
}
|
||||
}, [shouldFire, dispatch]);
|
||||
}, [internalShouldFire, dispatch]);
|
||||
|
||||
return terraTokenMap;
|
||||
};
|
||||
|
|
|
@ -5,7 +5,6 @@ import {
|
|||
CHAIN_ID_SOLANA,
|
||||
CHAIN_ID_TERRA,
|
||||
} from "@certusone/wormhole-sdk";
|
||||
import { ChainID } from "@certusone/wormhole-sdk/lib/proto/publicrpc/v1/publicrpc";
|
||||
import { clusterApiUrl } from "@solana/web3.js";
|
||||
import { getAddress } from "ethers/lib/utils";
|
||||
|
||||
|
@ -391,15 +390,25 @@ export const MIGRATION_ASSET_MAP = new Map<string, string>(
|
|||
"2kycGCD8tJbrjJJqWN2Qz5ysN9iB4Bth3Uic4mSB7uak",
|
||||
"43m2ewFV5nDepieFjT9EmAQnc1HRtAF247RBpLGFem5F",
|
||||
],
|
||||
// [
|
||||
// // UST
|
||||
// "CXLBjMMcwkc17GfJtBos6rQCo1ypeH6eDbB82Kby4MRm",
|
||||
// "5Un6AdG9GBjxVhTSvvt2x6X6vtN1zrDxkkDpDcShnHfF",
|
||||
// ],
|
||||
[
|
||||
// UST
|
||||
"CXLBjMMcwkc17GfJtBos6rQCo1ypeH6eDbB82Kby4MRm",
|
||||
"5Un6AdG9GBjxVhTSvvt2x6X6vtN1zrDxkkDpDcShnHfF",
|
||||
"9vMJfxuKxXBoEa7rM12mYLMwTacLMLDJqHozw96WQL8i",
|
||||
],
|
||||
// [
|
||||
// // Wrapped LUNA
|
||||
// "2Xf2yAXJfg82sWwdLUo2x9mZXy6JCdszdMZkcF1Hf4KV",
|
||||
// "EQTV1LW23Mgtjb5LXSg9NGw1J32oqTV4HCPmHCVSGmqD",
|
||||
// ],
|
||||
[
|
||||
// Wrapped LUNA
|
||||
"2Xf2yAXJfg82sWwdLUo2x9mZXy6JCdszdMZkcF1Hf4KV",
|
||||
"EQTV1LW23Mgtjb5LXSg9NGw1J32oqTV4HCPmHCVSGmqD",
|
||||
"F6v4wfAdJB8D8p77bMXZgYt8TDKsYxLYxH5AFhUkYx9W",
|
||||
],
|
||||
[
|
||||
// FTT
|
||||
|
@ -454,7 +463,18 @@ export const MIGRATION_ASSET_MAP = new Map<string, string>(
|
|||
|
||||
export const ETH_MIGRATION_ASSET_MAP = new Map<string, string>(
|
||||
CLUSTER === "mainnet"
|
||||
? []
|
||||
? [
|
||||
[
|
||||
// LUNA
|
||||
"0xd2877702675e6cEb975b4A1dFf9fb7BAF4C91ea9",
|
||||
"0xe76820F1DB773B1d62a3D22F47259705cC5fA4E6",
|
||||
],
|
||||
[
|
||||
// UST
|
||||
"0xa47c8bf37f92aBed4A126BDA807A7b7498661acD",
|
||||
"0xF39C29d8f6851d87c40c83b61078EB7384f7Cb51",
|
||||
],
|
||||
]
|
||||
: CLUSTER === "testnet"
|
||||
? []
|
||||
: [
|
||||
|
@ -467,22 +487,29 @@ export const ETH_MIGRATION_ASSET_MAP = new Map<string, string>(
|
|||
|
||||
export const BSC_MIGRATION_ASSET_MAP = new Map<string, string>(
|
||||
CLUSTER === "mainnet"
|
||||
? []
|
||||
? [
|
||||
[
|
||||
// LUNA
|
||||
"0xECCF35F941Ab67FfcAA9A1265C2fF88865caA005",
|
||||
"0x355A116ef1Cf566B12Ef3a8e409A64e303c53740",
|
||||
],
|
||||
[
|
||||
// UST
|
||||
"0x23396cF899Ca06c4472205fC903bDB4de249D6fC",
|
||||
"0x0F98AB919D04a291838B3b075c57181057D4CF75",
|
||||
],
|
||||
]
|
||||
: CLUSTER === "testnet"
|
||||
? []
|
||||
: [
|
||||
// [
|
||||
// "0x2D8BE6BF0baA74e0A907016679CaE9190e80dD0A",
|
||||
// "0x4bf3A7dFB3b76b5B3E169ACE65f888A4b4FCa5Ee",
|
||||
// ],
|
||||
// [
|
||||
// "0x68d1569d1a6968f194b4d93f8d0b416c123a599f",
|
||||
// "0xFcCeD5E997E7fb1D0594518D3eD57245bB8ed17E",
|
||||
// ],
|
||||
]
|
||||
);
|
||||
|
||||
export const getMigrationAssetMap = (chainId: ChainID) => {
|
||||
export const getMigrationAssetMap = (chainId: ChainId) => {
|
||||
if (chainId === CHAIN_ID_BSC) {
|
||||
return BSC_MIGRATION_ASSET_MAP;
|
||||
} else if (chainId === CHAIN_ID_ETH) {
|
||||
|
|
|
@ -1,13 +1,16 @@
|
|||
import { WalletDialogProvider } from "@solana/wallet-adapter-material-ui";
|
||||
import { useWallet, WalletProvider } from "@solana/wallet-adapter-react";
|
||||
import { getPhantomWallet } from "@solana/wallet-adapter-wallets";
|
||||
import {
|
||||
getPhantomWallet,
|
||||
getSolletWallet,
|
||||
} from "@solana/wallet-adapter-wallets";
|
||||
import React, { FC, useMemo } from "react";
|
||||
|
||||
export const SolanaWalletProvider: FC = (props) => {
|
||||
// @solana/wallet-adapter-wallets includes all the adapters but supports tree shaking --
|
||||
// Only the wallets you want to instantiate here will be compiled into your application
|
||||
const wallets = useMemo(() => {
|
||||
return [getPhantomWallet()];
|
||||
return [getPhantomWallet(), getSolletWallet()];
|
||||
}, []);
|
||||
|
||||
return (
|
||||
|
|
Loading…
Reference in New Issue