From 6b1d6b86d3b04c78cc7ba1c82dab5798b1d12364 Mon Sep 17 00:00:00 2001 From: M-Picco Date: Fri, 15 Mar 2024 17:45:20 -0300 Subject: [PATCH] Remove Neutron and Sei, add Terra Classic --- frontend/claim_sdk/testWallets.ts | 3 +- frontend/components/Ecosystem/index.tsx | 3 +- .../components/EcosystemConnectButton.tsx | 7 +- frontend/components/wallets/Cosmos.tsx | 2 +- frontend/components/wallets/Sei.tsx | 158 ---- frontend/hooks/useGetEcosystemIdentity.ts | 16 +- frontend/hooks/useSignMessage.tsx | 14 +- frontend/middleware.js | 12 +- frontend/pages/_app.tsx | 55 +- frontend/scripts/populate_from_csv.ts | 2 +- frontend/utils/chain-registry.ts | 688 ++++++++---------- frontend/utils/ecosystemEnumToEcosystem.ts | 4 +- frontend/utils/getEcosystemTableLabel.ts | 6 +- 13 files changed, 351 insertions(+), 619 deletions(-) delete mode 100644 frontend/components/wallets/Sei.tsx diff --git a/frontend/claim_sdk/testWallets.ts b/frontend/claim_sdk/testWallets.ts index 34a1475c..0207b890 100644 --- a/frontend/claim_sdk/testWallets.ts +++ b/frontend/claim_sdk/testWallets.ts @@ -90,9 +90,8 @@ export async function loadTestWallets(): Promise< result['sui'] = [TestSuiWallet.fromKeyfile(suiPrivateKeyPath)] result['aptos'] = [TestAptosWallet.fromKeyfile(aptosPrivateKeyPath)] result['cosmwasm'] = [ - await TestCosmWasmWallet.fromKeyFile(cosmosPrivateKeyPath, 'sei'), await TestCosmWasmWallet.fromKeyFile(cosmosPrivateKeyPath, 'osmo'), - await TestCosmWasmWallet.fromKeyFile(cosmosPrivateKeyPath, 'neutron'), + await TestCosmWasmWallet.fromKeyFile(cosmosPrivateKeyPath, 'terra'), ] result['injective'] = [TestEvmWallet.fromKeyfile(cosmosPrivateKeyPath, true)] diff --git a/frontend/components/Ecosystem/index.tsx b/frontend/components/Ecosystem/index.tsx index d10a98c0..8a595c63 100644 --- a/frontend/components/Ecosystem/index.tsx +++ b/frontend/components/Ecosystem/index.tsx @@ -10,8 +10,7 @@ export enum Ecosystem { SUI = 'Sui', INJECTIVE = 'Injective', OSMOSIS = 'Osmosis', - NEUTRON = 'Neutron', - SEI = 'Sei', + TERRA = 'Terra', DISCORD = 'Pyth Discord', } diff --git a/frontend/components/EcosystemConnectButton.tsx b/frontend/components/EcosystemConnectButton.tsx index 4352af6b..6c06e73c 100644 --- a/frontend/components/EcosystemConnectButton.tsx +++ b/frontend/components/EcosystemConnectButton.tsx @@ -3,7 +3,6 @@ import { Ecosystem } from './Ecosystem' import { AptosWalletButton } from './wallets/Aptos' import { CosmosWalletButton } from './wallets/Cosmos' import { EVMWalletButton } from './wallets/EVM' -import { SeiWalletButton } from './wallets/Sei' import { SolanaWalletButton } from './wallets/Solana' import { SuiWalletButton } from './wallets/Sui' @@ -29,10 +28,10 @@ export function EcosystemConnectButton({ isInjective={true} /> ) - case Ecosystem.NEUTRON: + case Ecosystem.TERRA: return ( ) @@ -43,8 +42,6 @@ export function EcosystemConnectButton({ disableOnConnect={disableOnConnect} /> ) - case Ecosystem.SEI: - return case Ecosystem.SOLANA: return case Ecosystem.SUI: diff --git a/frontend/components/wallets/Cosmos.tsx b/frontend/components/wallets/Cosmos.tsx index c01209cc..ea01843a 100644 --- a/frontend/components/wallets/Cosmos.tsx +++ b/frontend/components/wallets/Cosmos.tsx @@ -10,7 +10,7 @@ import keplr from '@images/keplr.svg' export const WALLET_NAME = 'keplr-extension' -export type ChainName = 'osmosis' | 'neutron' | 'sei' +export type ChainName = 'osmosis' | 'terra' type CosmosWalletProviderProps = { children: ReactNode diff --git a/frontend/components/wallets/Sei.tsx b/frontend/components/wallets/Sei.tsx deleted file mode 100644 index df43a0fa..00000000 --- a/frontend/components/wallets/Sei.tsx +++ /dev/null @@ -1,158 +0,0 @@ -import { - ReactNode, - createContext, - useCallback, - useContext, - useEffect, - useState, -} from 'react' -import { useChainWallet } from '@cosmos-kit/react-lite' -import { WalletButton, WalletConnectedButton } from './WalletButton' - -import keplr from '@images/keplr.svg' -import compass from '@images/compass.svg' - -type StoredWallet = 'keplr-extension' | 'compass-extension' | null - -type SeiContextType = { - connectedSeiWallet: StoredWallet - setConnectedSeiWallet: (wallet: StoredWallet) => void -} -const SeiContext = createContext(undefined) - -const LOCAL_STORAGE_SEI_WALLET_KEY = 'sei-local-storage-connection-key' -// we need a provider to be able to sync with local storage -export function SeiProvider({ children }: { children: ReactNode }) { - const [connectedWallet, setConnectedWallet] = useState(null) - - // On first render read the connected wallet name - useEffect(() => { - setConnectedWallet( - localStorage.getItem(LOCAL_STORAGE_SEI_WALLET_KEY) as StoredWallet - ) - }, []) - - const setConnectedSeiWallet = useCallback((wallet: StoredWallet) => { - if (typeof window === 'undefined') return null - if (wallet === null) { - localStorage.removeItem(LOCAL_STORAGE_SEI_WALLET_KEY) - return - } - localStorage.setItem(LOCAL_STORAGE_SEI_WALLET_KEY, wallet) - setConnectedWallet(wallet) - }, []) - - return ( - - {children} - - ) -} - -export function useSeiWalletContext() { - const ctx = useContext(SeiContext) - if (ctx === undefined) - throw new Error('Hook should be called under the provider') - - return ctx -} - -type SeiWalletButtonProps = { - disableOnConnect?: boolean -} -export function SeiWalletButton({ disableOnConnect }: SeiWalletButtonProps) { - const compassChainWalletctx = useChainWallet('sei', 'compass-extension') - const keplrChainWalletctx = useChainWallet('sei', 'keplr-extension') - const [icon, setIcon] = useState() - const { connectedSeiWallet, setConnectedSeiWallet } = useSeiWalletContext() - - // Cosmos wallets doesn't provide any autoconnect feature - // Implementing it here - // When this component will render, it will check a localStorage key - // to know if the wallet was previously connected. If it was, it will - // connect with it again. Else, will do nothing - // We only have to do this check once the component renders. - // See Line 84, 99 to know how we are storing the status locally - useEffect(() => { - if (connectedSeiWallet === 'keplr-extension') { - keplrChainWalletctx.connect() - } else if (connectedSeiWallet === 'compass-extension') { - compassChainWalletctx.connect() - } - }, []) - - useEffect(() => { - if ( - keplrChainWalletctx.isWalletConnected === true && - keplrChainWalletctx?.address !== undefined - ) { - setConnectedSeiWallet('keplr-extension') - setIcon(keplr) - } else if ( - compassChainWalletctx.isWalletConnected === true && - compassChainWalletctx?.address !== undefined - ) { - setConnectedSeiWallet('compass-extension') - setIcon(compass) - } - - if ( - keplrChainWalletctx.isWalletDisconnected && - compassChainWalletctx.isWalletDisconnected - ) { - setConnectedSeiWallet(null) - setIcon(undefined) - } - }, [keplrChainWalletctx, compassChainWalletctx, setConnectedSeiWallet]) - - return ( - { - if (keplrChainWalletctx.isWalletNotExist) { - window.open('https://www.keplr.app/download') - } else keplrChainWalletctx.connect() - }, - }, - { - name: 'compass', - icon: compass, - onSelect: () => { - if (compassChainWalletctx.isWalletNotExist) { - window.open( - 'https://chrome.google.com/webstore/detail/compass-wallet-for-sei/anokgmphncpekkhclmingpimjmcooifb' - ) - } else compassChainWalletctx.connect() - }, - }, - ]} - walletConnectedButton={(address: string) => ( - { - if (connectedSeiWallet === 'keplr-extension') - keplrChainWalletctx.disconnect() - else if (connectedSeiWallet === 'compass-extension') - compassChainWalletctx.disconnect() - }} - address={address} - disabled={disableOnConnect} - icon={icon} - /> - )} - /> - ) -} diff --git a/frontend/hooks/useGetEcosystemIdentity.ts b/frontend/hooks/useGetEcosystemIdentity.ts index d6469b45..06c6edc2 100644 --- a/frontend/hooks/useGetEcosystemIdentity.ts +++ b/frontend/hooks/useGetEcosystemIdentity.ts @@ -8,7 +8,6 @@ import { import { useSession } from 'next-auth/react' import { Ecosystem } from '@components/Ecosystem' import { useCallback } from 'react' -import { useSeiWalletContext } from '@components/wallets/Sei' import { getInjectiveAddress } from '../utils/getInjectiveAddress' // It will return a function that can be used to get the identity of a given ecosystem @@ -18,10 +17,7 @@ export function useGetEcosystemIdentity() { const aptosAddress = useAptosAddress() const evmAddress = useEVMAddress() const osmosisAddress = useCosmosAddress('osmosis') - const neutronAddress = useCosmosAddress('neutron') - - const { connectedSeiWallet } = useSeiWalletContext() - const seiAddress = useCosmosAddress('sei', connectedSeiWallet ?? undefined) + const terraAddress = useCosmosAddress('terra') const solanaAddress = useSolanaAddress() const suiAddress = useSuiAddress() const { data } = useSession() @@ -38,14 +34,11 @@ export function useGetEcosystemIdentity() { case Ecosystem.INJECTIVE: return evmAddress ? getInjectiveAddress(evmAddress) : undefined - case Ecosystem.NEUTRON: - return neutronAddress - case Ecosystem.OSMOSIS: return osmosisAddress - case Ecosystem.SEI: - return seiAddress + case Ecosystem.TERRA: + return terraAddress case Ecosystem.SOLANA: return solanaAddress @@ -61,9 +54,8 @@ export function useGetEcosystemIdentity() { aptosAddress, data?.user?.hashedUserId, evmAddress, - neutronAddress, osmosisAddress, - seiAddress, + terraAddress, solanaAddress, suiAddress, ] diff --git a/frontend/hooks/useSignMessage.tsx b/frontend/hooks/useSignMessage.tsx index 6af9e9ad..761425cb 100644 --- a/frontend/hooks/useSignMessage.tsx +++ b/frontend/hooks/useSignMessage.tsx @@ -15,7 +15,6 @@ import { Ecosystem } from '@components/Ecosystem' import { fetchDiscordSignedMessage } from 'utils/api' import { useTokenDispenserProvider } from './useTokenDispenserProvider' import { ChainName } from '@components/wallets/Cosmos' -import { useSeiWalletContext } from '@components/wallets/Sei' // SignMessageFn signs the message and returns it. // It will return undefined: @@ -188,12 +187,7 @@ export function useSignMessage(ecosystem: Ecosystem): SignMessageFn { const aptosSignMessageFn = useAptosSignMessage() const evmSignMessageFn = useEVMSignMessage() const osmosisSignMessageFn = useCosmosSignMessage('osmosis') - const neutronSignMessageFn = useCosmosSignMessage('neutron') - const { connectedSeiWallet } = useSeiWalletContext() - const seiSignMessageFn = useCosmosSignMessage( - 'sei', - connectedSeiWallet ?? undefined - ) + const terraSignMessageFn = useCosmosSignMessage('terra') const suiSignMessageFn = useSuiSignMessage() const solanaSignMessageFn = useSolanaSignMessage() const discordSignMessageFn = useDiscordSignMessage() @@ -205,12 +199,10 @@ export function useSignMessage(ecosystem: Ecosystem): SignMessageFn { return evmSignMessageFn case Ecosystem.INJECTIVE: return evmSignMessageFn - case Ecosystem.NEUTRON: - return neutronSignMessageFn + case Ecosystem.TERRA: + return terraSignMessageFn case Ecosystem.OSMOSIS: return osmosisSignMessageFn - case Ecosystem.SEI: - return seiSignMessageFn case Ecosystem.SOLANA: return solanaSignMessageFn case Ecosystem.SUI: diff --git a/frontend/middleware.js b/frontend/middleware.js index 24b16e3e..ae797312 100644 --- a/frontend/middleware.js +++ b/frontend/middleware.js @@ -48,10 +48,10 @@ export function middleware(req) { ` // NextResponse object does not have a body property so we use Response instead - return new Response(body, { - status: 200, - headers: { - 'Content-Type': 'text/html', - }, - }) + // return new Response(body, { + // status: 200, + // headers: { + // 'Content-Type': 'text/html', + // }, + // }) } diff --git a/frontend/pages/_app.tsx b/frontend/pages/_app.tsx index 7d1b06a0..af15a2b1 100644 --- a/frontend/pages/_app.tsx +++ b/frontend/pages/_app.tsx @@ -11,7 +11,6 @@ import { SessionProvider } from 'next-auth/react' import { EcosystemProviders } from '@components/Ecosystem' import '../styles/globals.css' -import { SeiProvider } from '@components/wallets/Sei' import { usePathname, useRouter, useSearchParams } from 'next/navigation' import { Layout } from '@components/Layout' import { Disclaimer } from '@components/modal/Disclaimer' @@ -104,35 +103,33 @@ const App: FC = ({ Component, pageProps }: AppProps) => { - - {/* WARN: EcosystemProviders might use wallet provider addresses and hence - They should be inside all those providers. */} - - - - - - + + - { - DisclaimerCheckStore.set('true') - setDisclaimerWasRead(true) - }} - /> - - + + + + { + DisclaimerCheckStore.set('true') + setDisclaimerWasRead(true) + }} + /> + diff --git a/frontend/scripts/populate_from_csv.ts b/frontend/scripts/populate_from_csv.ts index 1315df34..8cf12a2e 100644 --- a/frontend/scripts/populate_from_csv.ts +++ b/frontend/scripts/populate_from_csv.ts @@ -55,7 +55,7 @@ const DISCORD_DEV_CLAIMS = 'discord_dev.csv' const NFT_CLAIMS = 'nft.csv' -const COSMWASM_CHAIN_LIST = ['neutron', 'osmosis', 'sei'] +const COSMWASM_CHAIN_LIST = ['terra', 'osmosis'] function checkClaimsMatchEvmBreakdown( claimInfos: ClaimInfo[], diff --git a/frontend/utils/chain-registry.ts b/frontend/utils/chain-registry.ts index d211cfc7..06af451e 100644 --- a/frontend/utils/chain-registry.ts +++ b/frontend/utils/chain-registry.ts @@ -1,29 +1,48 @@ export const assets = [ { $schema: '../assetlist.schema.json', - chain_name: 'neutron', + chain_name: 'terra', assets: [ { - description: 'The native token of Neutron chain.', - denom_units: [ + "description": "The native staking token of Terra Classic.", + "denom_units": [ { - denom: 'untrn', - exponent: 0, + "denom": "uluna", + "exponent": 0, + "aliases": [ + "microluna" + ] }, { - denom: 'ntrn', - exponent: 6, + "denom": "mluna", + "exponent": 3, + "aliases": [ + "milliluna" + ] }, + { + "denom": "luna", + "exponent": 6, + "aliases": [ + "lunc" + ] + } ], - base: 'untrn', - name: 'Neutron', - display: 'ntrn', - symbol: 'NTRN', - logo_URIs: { - png: 'https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/ntrn.png', - svg: 'https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/ntrn.svg', - }, - coingecko_id: 'neutron', + "base": "uluna", + "name": "Luna Classic", + "display": "luna", + "symbol": "LUNC", + "logo_URIs": { + "png": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra/images/luna.png", + "svg": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra/images/luna.svg" + }, + "coingecko_id": "terra-luna", + "images": [ + { + "png": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra/images/luna.png", + "svg": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra/images/luna.svg" + } + ] }, ], }, @@ -56,469 +75,368 @@ export const assets = [ }, ], }, - { - $schema: '../assetlist.schema.json', - chain_name: 'sei', - assets: [ - { - description: 'The native staking token of Sei.', - denom_units: [ - { - denom: 'usei', - exponent: 0, - }, - { - denom: 'sei', - exponent: 6, - }, - ], - base: 'usei', - name: 'Sei', - display: 'sei', - symbol: 'SEI', - logo_URIs: { - png: 'https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/sei.png', - svg: 'https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/sei.svg', - }, - coingecko_id: 'sei-network', - }, - { - description: - 'OIN Token ($OIN) is a groundbreaking digital asset developed on the $SEI Blockchain. It transcends being merely a cryptocurrency; $OIN stands as a robust store of value, symbolizing the future of decentralized finance and its potential to reshape the crypto landscape.', - denom_units: [ - { - denom: 'factory/sei12q0zv3c4cd9jkupn0krazdycc5ftw9wzt9vmhu/OIN', - exponent: 0, - }, - { - denom: 'oin', - exponent: 6, - }, - ], - address: 'sei1thgp6wamxwqt7rthfkeehktmq0ujh5kspluw6w', - base: 'factory/sei1thgp6wamxwqt7rthfkeehktmq0ujh5kspluw6w/OIN', - name: 'OIN STORE OF VALUE', - display: 'oin', - symbol: 'OIN', - logo_URIs: { - png: 'https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/oin.png', - }, - coingecko_id: '', - }, - ], - }, ] export const chains = [ { - $schema: '../chain.schema.json', - chain_name: 'sei', - status: 'live', - website: 'https://www.sei.io/', - network_type: 'mainnet', - pretty_name: 'Sei', - chain_id: 'pacific-1', - bech32_prefix: 'sei', - daemon_name: 'seid', - node_home: '$HOME/.sei', - key_algos: ['secp256k1'], - slip44: 118, - fees: { - fee_tokens: [ + "$schema": "../chain.schema.json", + "chain_name": "terra", + "status": "live", + "network_type": "mainnet", + "pretty_name": "Terra Classic", + "chain_id": "columbus-5", + "daemon_name": "terrad", + "node_home": "$HOME/.terra", + "bech32_prefix": "terra", + "slip44": 330, + "fees": { + "fee_tokens": [ { - denom: 'usei', - fixed_min_gas_price: 0.1, - low_gas_price: 0.1, - average_gas_price: 0.1, - high_gas_price: 0.25, + "denom": "uluna", + "low_gas_price": 28.325, + "average_gas_price": 28.325, + "high_gas_price": 50 }, - ], - }, - staking: { - staking_tokens: [ { - denom: 'usei', + "denom": "usdr", + "low_gas_price": 0.52469, + "average_gas_price": 0.52469, + "high_gas_price": 0.52469 }, - ], - }, - codebase: { - git_repo: 'https://github.com/sei-protocol/sei-chain', - recommended_version: 'v3.0.9', - compatible_versions: ['v3.0.9'], - ibc_go_version: 'v3.1.0', - cosmos_sdk_version: 'v0.45.10', - cosmwasm_version: 'v0.27.0', - cosmwasm_enabled: true, - cosmwasm_path: '$HOME/.sei/wasm', - genesis: { - genesis_url: - 'https://raw.githubusercontent.com/sei-protocol/testnet/main/pacific-1/genesis.json', - }, - versions: [ { - name: '', - recommended_version: '3.0.8', - compatible_versions: ['3.0.8'], - ibc_go_version: 'v3.0.0', - cosmos_sdk_version: 'v0.45.10', - cosmwasm_version: 'v0.27.0', - cosmwasm_enabled: true, - cosmwasm_path: '$HOME/.sei/wasm', - next_version_name: 'v3.0.9', - }, - { - name: 'v3.0.9', - recommended_version: 'v3.0.9', - compatible_versions: ['v3.0.9'], - proposal: 24, - height: 25259000, - ibc_go_version: 'v3.1.0', - cosmos_sdk_version: 'v0.45.10', - cosmwasm_version: 'v0.27.0', - cosmwasm_enabled: true, - cosmwasm_path: '$HOME/.sei/wasm', - next_version_name: '', + "denom": "uusd", + "low_gas_price": 0.75, + "average_gas_price": 0.75, + "high_gas_price": 0.75 }, - ], - }, - logo_URIs: { - png: 'https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/sei.png', - svg: 'https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/sei.svg', - }, - peers: { - seeds: [ { - id: '20e1000e88125698264454a884812746c2eb4807', - address: 'seeds.lavenderfive.com:11956', - provider: 'Lavender.Five Nodes 🐝', + "denom": "ukrw", + "low_gas_price": 850, + "average_gas_price": 850, + "high_gas_price": 850 }, { - id: '7cbcea0b3041960d1d7b8a6a2eccce0e1f7add50', - address: 'seeds.whispernode.com:11956', - provider: 'WhisperNode 🤐', + "denom": "umnt", + "low_gas_price": 2142.855, + "average_gas_price": 2142.855, + "high_gas_price": 2142.855 }, - ], - persistent_peers: [ { - id: '20e1000e88125698264454a884812746c2eb4807', - address: 'seeds.lavenderfive.com:11956', - provider: 'Lavender.Five Nodes 🐝', + "denom": "ueur", + "low_gas_price": 0.625, + "average_gas_price": 0.625, + "high_gas_price": 0.625 }, - ], - }, - apis: { - rpc: [ { - address: 'https://sei-rpc.lavenderfive.com:443', - provider: 'Lavender.Five Nodes 🐝', + "denom": "ucny", + "low_gas_price": 4.9, + "average_gas_price": 4.9, + "high_gas_price": 4.9 }, { - address: 'https://sei-rpc.polkachu.com/', - provider: 'polkachu.com', + "denom": "ujpy", + "low_gas_price": 81.85, + "average_gas_price": 81.85, + "high_gas_price": 81.85 }, { - address: 'https://sei-rpc.brocha.in/', - provider: 'Brochain', + "denom": "ugbp", + "low_gas_price": 0.55, + "average_gas_price": 0.55, + "high_gas_price": 0.55 }, { - address: 'https://rpc-sei.stingray.plus/', - provider: 'StingRay', + "denom": "uinr", + "low_gas_price": 54.4, + "average_gas_price": 54.4, + "high_gas_price": 54.4 }, { - address: 'https://rpc-sei.rhinostake.com', - provider: 'RHINO', + "denom": "ucad", + "low_gas_price": 0.95, + "average_gas_price": 0.95, + "high_gas_price": 0.95 }, { - address: 'https://rpc-sei.whispernode.com:443', - provider: 'WhisperNode 🤐', + "denom": "uchf", + "low_gas_price": 0.7, + "average_gas_price": 0.7, + "high_gas_price": 0.7 }, - ], - rest: [ { - address: 'https://sei-api.lavenderfive.com:443', - provider: 'Lavender.Five Nodes 🐝', + "denom": "uaud", + "low_gas_price": 0.95, + "average_gas_price": 0.95, + "high_gas_price": 0.95 }, { - address: 'https://sei-api.polkachu.com/', - provider: 'polkachu.com', + "denom": "usgd", + "low_gas_price": 1, + "average_gas_price": 1, + "high_gas_price": 1 }, { - address: 'https://sei-rest.brocha.in/', - provider: 'Brochain', + "denom": "uthb", + "low_gas_price": 23.1, + "average_gas_price": 23.1, + "high_gas_price": 23.1 }, { - address: 'https://api-sei.stingray.plus/', - provider: 'StingRay', + "denom": "usek", + "low_gas_price": 6.25, + "average_gas_price": 6.25, + "high_gas_price": 6.25 }, { - address: 'https://rest-sei.rhinostake.com', - provider: 'RHINO', + "denom": "unok", + "low_gas_price": 6.25, + "average_gas_price": 6.25, + "high_gas_price": 6.25 }, { - address: 'https://lcd-sei.whispernode.com:443', - provider: 'WhisperNode 🤐', + "denom": "udkk", + "low_gas_price": 4.5, + "average_gas_price": 4.5, + "high_gas_price": 4.5 }, - ], - grpc: [ { - address: 'https://sei-grpc.lavenderfive.com:443', - provider: 'Lavender.Five Nodes 🐝', + "denom": "uidr", + "low_gas_price": 10900, + "average_gas_price": 10900, + "high_gas_price": 10900 }, { - address: 'https://sei-grpc.polkachu.com:11990/', - provider: 'polkachu.com', + "denom": "uphp", + "low_gas_price": 38, + "average_gas_price": 38, + "high_gas_price": 38 }, { - address: 'https://grpc-sei.whispernode.com:443', - provider: 'WhisperNode 🤐', + "denom": "uhkd", + "low_gas_price": 5.85, + "average_gas_price": 5.85, + "high_gas_price": 5.85 }, - ], - }, - explorers: [ - { - kind: 'ping.pub', - url: 'https://ping.pub/sei', - tx_page: 'https://ping.pub/sei/tx/${txHash}', - account_page: 'https://ping.pub/sei/account/${accountAddress}', - }, - { - kind: 'mintscan', - url: 'https://www.mintscan.io/sei', - tx_page: 'https://www.mintscan.io/sei/transactions/${txHash}', - account_page: 'https://www.mintscan.io/sei/accounts/${accountAddress}', - }, - { - kind: 'seiscan', - url: 'https://www.seiscan.app/pacific-1', - tx_page: 'https://www.seiscan.app/pacific-1/txs/${txHash}', - account_page: - 'https://www.seiscan.app/pacific-1/accounts/${accountAddress}', - }, - ], - }, - { - $schema: '../chain.schema.json', - chain_name: 'neutron', - status: 'live', - network_type: 'mainnet', - pretty_name: 'Neutron', - chain_id: 'neutron-1', - bech32_prefix: 'neutron', - daemon_name: 'neutrond', - node_home: '$HOME/.neutrond', - key_algos: ['secp256k1'], - slip44: 118, - fees: { - fee_tokens: [ { - denom: 'untrn', - low_gas_price: 0.01, - average_gas_price: 0.025, - high_gas_price: 0.05, + "denom": "umyr", + "low_gas_price": 3, + "average_gas_price": 3, + "high_gas_price": 3 }, - ], + { + "denom": "utwd", + "low_gas_price": 20, + "average_gas_price": 20, + "high_gas_price": 20 + } + ] }, - staking: { - staking_tokens: [ + "staking": { + "staking_tokens": [ { - denom: 'untrn', - }, - ], + "denom": "uluna" + } + ] }, - codebase: { - git_repo: 'https://github.com/neutron-org/neutron', - recommended_version: 'v1.0.4', - compatible_versions: ['v1.0.3', 'v1.0.4'], - cosmos_sdk_version: '0.45', - consensus: { - type: 'tendermint', - version: '0.34', - }, - cosmwasm_version: '0.31', - cosmwasm_enabled: true, - ibc_go_version: '4.3.0', - genesis: { - genesis_url: - 'https://raw.githubusercontent.com/neutron-org/mainnet-assets/main/neutron-1-genesis.json', + "codebase": { + "git_repo": "https://github.com/classic-terra/core", + "recommended_version": "v2.1.1", + "compatible_versions": [ + "v2.1.1" + ], + "genesis": { + "name": "1.0.5", + "genesis_url": "https://tfl-columbus-5.s3.amazonaws.com/genesis.json" }, - versions: [ - { - name: 'v1.0.1', - recommended_version: 'v1.0.4', - compatible_versions: ['v1.0.3', 'v1.0.4'], - cosmos_sdk_version: '0.45', - consensus: { - type: 'tendermint', - version: '0.34', + "versions": [ + { + "name": "1.0.5", + "tag": "v1.0.5-full-archive", + "height": 0, + "next_version_name": "1.1.0", + "binaries": { + "linux/amd64": "https://github.com/terra-money/classic-core/releases/download/v1.0.5-full-archive/terra_1.0.5_Linux_x86_64.tar.gz?checksum=sha256:af3ee3bd99bd719d6d9a93a40af9f0bc49bb3866c68e923e284876784126f38c" + } + }, + { + "name": "1.1.0", + "tag": "v1.1.0", + "height": 11734000, + "recommended_version": "v1.1.0", + "compatible_versions": [ + "v1.1.0" + ], + "next_version_name": "2.0.1", + "binaries": { + "linux/amd64": "https://github.com/terra-money/classic-core/releases/download/v1.1.0/terra_1.1.0_Linux_x86_64.tar.gz?checksum=sha256:fd83c14bcfadea36ad444c219ab557b9d65d2f74be0684498a5c41e3df7cb535" + } + }, + { + "name": "2.0.1", + "tag": "v2.0.1", + "height": 12815210, + "cosmos_sdk_version": "0.45.13", + "cosmwasm_enabled": true, + "cosmwasm_version": "0.16.7", + "ibc_go_version": "1.3.1", + "consensus": { + "type": "tendermint", + "version": "0.34.24" }, - cosmwasm_version: '0.31', - cosmwasm_enabled: true, - ibc_go_version: '4.3.0', - }, - ], + "binaries": { + "linux/amd64": "https://github.com/terra-money/classic-core/releases/download/v2.0.1/terra_2.0.1_Linux_x86_64.tar.gz?checksum=sha256:b9edfd51080c9c9ae16b30afd1b8490d7278e51d521ccc0f2afcbb7e3b389b8d" + } + }, + { + "name": "2.1.1", + "tag": "v2.1.1", + "height": 13215800, + "cosmos_sdk_version": "0.45.14", + "cosmwasm_enabled": true, + "cosmwasm_version": "0.30.0", + "ibc_go_version": "4.3.1", + "consensus": { + "type": "tendermint", + "version": "0.34.24" + }, + "binaries": { + "linux/amd64": "https://github.com/terra-money/classic-core/releases/download/v2.1.1/terra_2.1.1_Linux_x86_64.tar.gz?checksum=sha256:9bf91be244af95f1afcf7fc1ddb1852aa96651adf94e9668c16c7df5596100d6" + } + } + ] }, - logo_URIs: { - png: 'https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/neutron-black-logo.png', - svg: 'https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/neutron-black-logo.svg', + "logo_URIs": { + "png": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra/images/luna.png", + "svg": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra/images/luna.svg" }, - peers: { - seeds: [ + "peers": { + "seeds": [ { - id: '24f609fb5946ca3a979f40b7f54132c00104433e', - address: 'p2p-erheim.neutron-1.neutron.org:26656', - provider: 'Neutron', + "id": "ebc272824924ea1a27ea3183dd0b9ba713494f83", + "address": "terraclassic-mainnet-seed.autostake.com:26676", + "provider": "AutoStake 🛡️ Slash Protected" }, { - id: 'b1c6fa570a184c56d0d736d260b8065d887e717c', - address: 'p2p-kralum.neutron-1.neutron.org:26656', - provider: 'Neutron', + "id": "b1bdf6249fb58b4c8284aff8a9c5b2804d822261", + "address": "seed.terra.synergynodes.com:26656", + "provider": "www.synergynodes.com" }, { - id: '20e1000e88125698264454a884812746c2eb4807', - address: 'seeds.lavenderfive.com:19156', - provider: 'Lavender.Five Nodes 🐝', + "id": "65d86ab6024153286b823a3950e9055478effb04", + "address": "terra.inotel.ro:26656", + "provider": "www.inotel.ro" }, { - id: 'f4422e68f9a678838522d75fa8221985c723294d', - address: 'seeds.whispernode.com:19156', - provider: 'WhisperNode🤐', - }, - { - id: 'e1b058e5cfa2b836ddaa496b10911da62dcf182e', - address: 'neutron-seed-de.allnodes.me:26656', - provider: 'Allnodes.com ⚡️ Nodes & Staking', - }, - { - id: 'e726816f42831689eab9378d5d577f1d06d25716', - address: 'neutron-seed-us.allnodes.me:26656', - provider: 'Allnodes.com ⚡️ Nodes & Staking', - }, - ], - persistent_peers: [ - { - id: 'e5d2743d9a3de514e4f7b9461bf3f0c1500c58d9', - address: 'neutron.peer.stakewith.us:39956', - provider: 'StakeWithUs', - }, + "id": "8542cd7e6bf9d260fef543bc49e59be5a3fa9074", + "address": "seed.publicnode.com:26656", + "provider": "Allnodes ⚡️ Nodes & Staking" + } ], - }, - apis: { - rpc: [ + "persistent_peers": [ { - address: 'https://rpc-kralum.neutron-1.neutron.org', - provider: 'Neutron', + "id": "ebc272824924ea1a27ea3183dd0b9ba713494f83", + "address": "terraclassic-mainnet-peer.autostake.com:26676", + "provider": "AutoStake 🛡️ Slash Protected" }, { - address: 'https://rpc.novel.remedy.tm.p2p.org', - provider: 'P2P', + "id": "b1bdf6249fb58b4c8284aff8a9c5b2804d822261", + "address": "seed.terra.synergynodes.com:26656", + "provider": "www.synergynodes.com" }, { - address: 'https://neutron-rpc.lavenderfive.com', - provider: 'Lavender.Five Nodes 🐝', - }, - { - address: 'https://rpc-neutron.whispernode.com', - provider: 'WhisperNode🤐', - }, - { - address: 'https://rpc-neutron.cosmos-spaces.cloud', - provider: 'Cosmos Spaces', - }, + "id": "65d86ab6024153286b823a3950e9055478effb04", + "address": "terra.inotel.ro:26656", + "provider": "www.inotel.ro" + } + ] + }, + "apis": { + "rpc": [ { - address: 'http://posthuman-neutron-rpc.ingress.europlots.com', - provider: 'POSTHUMAN ꝏ DVS', + "address": "https://terra-classic-rpc.publicnode.com:443", + "provider": "Allnodes ⚡️ Nodes & Staking" }, { - address: 'http://rpc.neutron.nodestake.top', - provider: 'NodeStake', + "address": "https://rpc-terra-ia.cosmosia.notional.ventures/", + "provider": "Notional" }, { - address: 'https://neutron-rpc.publicnode.com', - provider: 'Allnodes.com ⚡️ Nodes & Staking', + "address": "https://terraclassic-mainnet-rpc.autostake.com:443", + "provider": "AutoStake 🛡️ Slash Protected" }, { - address: 'https://community.nuxian-node.ch:6797/neutron/trpc', - provider: 'PRO Delegators', - }, + "address": "https://terraclassic-rpc-server-01.stakely.io", + "provider": "Stakely" + } ], - rest: [ + "rest": [ { - address: 'https://rest-kralum.neutron-1.neutron.org', - provider: 'Neutron', + "address": "https://terra-classic-lcd.publicnode.com", + "provider": "Allnodes ⚡️ Nodes & Staking" }, { - address: 'https://api.novel.remedy.tm.p2p.org', - provider: 'P2P', + "address": "https://api-terra-ia.cosmosia.notional.ventures/", + "provider": "Notional" }, { - address: 'https://neutron-api.lavenderfive.com', - provider: 'Lavender.Five Nodes 🐝', + "address": "https://terraclassic-mainnet-lcd.autostake.com:443", + "provider": "AutoStake 🛡️ Slash Protected" }, { - address: 'https://lcd-neutron.whispernode.com', - provider: 'WhisperNode🤐', - }, - { - address: 'https://api-neutron.cosmos-spaces.cloud', - provider: 'Cosmos Spaces', - }, - { - address: 'http://api.neutron.nodestake.top', - provider: 'NodeStake', - }, - { - address: 'https://neutron-rest.publicnode.com', - provider: 'Allnodes.com ⚡️ Nodes & Staking', - }, - { - address: 'https://community.nuxian-node.ch:6797/neutron/crpc', - provider: 'PRO Delegators', - }, + "address": "https://terraclassic-lcd-server-01.stakely.io", + "provider": "Stakely" + } ], - grpc: [ - { - address: 'grpc-kralum.neutron-1.neutron.org:80', - provider: 'Neutron', - }, + "grpc": [ { - address: 'https://grpc.novel.remedy.tm.p2p.org', - provider: 'P2P', + "address": "grpc.terrarebels.net", + "provider": "Terra Rebels" }, { - address: 'https://grpc-web.novel.remedy.tm.p2p.org', - provider: 'P2P', - }, - { - address: 'neutron-grpc.lavenderfive.com:443', - provider: 'Lavender.Five Nodes 🐝', - }, - { - address: 'grpc-neutron.whispernode.com:443', - provider: 'WhisperNode🤐', - }, - { - address: 'grpc-neutron.cosmos-spaces.cloud:3090', - provider: 'Cosmos Spaces', + "address": "terra-classic-grpc.publicnode.com:443", + "provider": "Allnodes ⚡️ Nodes & Staking" }, { - address: 'grpc.neutron.nodestake.top:9090', - provider: 'NodeStake', + "address": "grpc-terra-ia.cosmosia.notional.ventures:443", + "provider": "Notional" }, { - address: 'neutron-grpc.publicnode.com:443', - provider: 'Allnodes.com ⚡️ Nodes & Staking', - }, - ], + "address": "terraclassic-mainnet-grpc.autostake.com:443", + "provider": "AutoStake 🛡️ Slash Protected" + } + ] }, - explorers: [ + "explorers": [ { - kind: 'Mintscan', - url: 'https://www.mintscan.io/neutron', - tx_page: 'https://www.mintscan.io/neutron/transactions/${txHash}', - account_page: - 'https://www.mintscan.io/neutron/accounts/${accountAddress}', + "kind": "ping.pub", + "url": "https://ping.pub/terra-luna", + "tx_page": "https://ping.pub/terra-luna/tx/${txHash}" + }, + { + "kind": "atomscan", + "url": "https://atomscan.com/terra", + "tx_page": "https://atomscan.com/terra/transactions/${txHash}", + "account_page": "https://atomscan.com/terra/accounts/${accountAddress}" + }, + { + "kind": "finder", + "url": "https://finder.terra.money/classic", + "tx_page": "https://finder.terra.money/classic/tx/${txHash}", + "account_page": "https://finder.terra.money/classic/address/${accountAddress}" }, + { + "kind": "finder", + "url": "https://finder.terrarebels.net/classic", + "tx_page": "https://finder.terrarebels.net/classic/tx/${txHash}", + "account_page": "https://finder.terrarebels.net/classic/address/${accountAddress}" + } ], + "images": [ + { + "png": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra/images/luna.png", + "svg": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra/images/luna.svg" + } + ] }, { $schema: '../chain.schema.json', @@ -1222,5 +1140,5 @@ export const chains = [ }, ], keywords: ['dex'], - }, + } ] diff --git a/frontend/utils/ecosystemEnumToEcosystem.ts b/frontend/utils/ecosystemEnumToEcosystem.ts index b871b4ec..8f248f23 100644 --- a/frontend/utils/ecosystemEnumToEcosystem.ts +++ b/frontend/utils/ecosystemEnumToEcosystem.ts @@ -9,12 +9,10 @@ export function enumToSdkEcosystem(ecosystem: EnumEcosystem): SdkEcosystem { return 'evm' case EnumEcosystem.INJECTIVE: return 'injective' - case EnumEcosystem.NEUTRON: + case EnumEcosystem.TERRA: return 'cosmwasm' case EnumEcosystem.OSMOSIS: return 'cosmwasm' - case EnumEcosystem.SEI: - return 'cosmwasm' case EnumEcosystem.SOLANA: return 'solana' case EnumEcosystem.SUI: diff --git a/frontend/utils/getEcosystemTableLabel.ts b/frontend/utils/getEcosystemTableLabel.ts index ef39ce2e..0d2eeba9 100644 --- a/frontend/utils/getEcosystemTableLabel.ts +++ b/frontend/utils/getEcosystemTableLabel.ts @@ -9,12 +9,10 @@ export function getEcosystemTableLabel(ecosystem: Ecosystem) { return 'EVM activity' case Ecosystem.INJECTIVE: return 'Injective activity' - case Ecosystem.NEUTRON: - return 'Neutron activity' + case Ecosystem.TERRA: + return 'Terra activity' case Ecosystem.OSMOSIS: return 'Osmosis activity' - case Ecosystem.SEI: - return 'Sei activity' case Ecosystem.SOLANA: return 'Solana activity' case Ecosystem.SUI: