diff --git a/package.json b/package.json index b5e3b92e087..2d23e1afb56 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "@polkadot/types-codec": "10.10.1", "@polkadot/util": "^12.6.2", "@polkadot/util-crypto": "^12.6.2", - "@subwallet/chain-list": "0.2.68-beta.1", + "@subwallet/chain-list": "0.2.70-beta.6", "@subwallet/keyring": "file:./local-libs/keyring", "@subwallet/ui-keyring": "file:./local-libs/ui-keyring", "babel-core": "^7.0.0-bridge.0", diff --git a/packages/extension-base/src/services/chain-service/constants.ts b/packages/extension-base/src/services/chain-service/constants.ts index ce659b2971a..95c65aaac0f 100644 --- a/packages/extension-base/src/services/chain-service/constants.ts +++ b/packages/extension-base/src/services/chain-service/constants.ts @@ -259,7 +259,8 @@ export const _ALWAYS_ACTIVE_CHAINS: string[] = [ export const EVM_PASS_CONNECT_STATUS: Record = { arbitrum_one: ['*'], okxTest: ['*'], - merlinEvm: ['*'] + merlinEvm: ['*'], + layerEdge_testnet: ['*'] }; export const EVM_REFORMAT_DECIMALS = { diff --git a/packages/extension-base/src/services/chain-service/index.ts b/packages/extension-base/src/services/chain-service/index.ts index a098d6d532c..29a02104ef5 100644 --- a/packages/extension-base/src/services/chain-service/index.ts +++ b/packages/extension-base/src/services/chain-service/index.ts @@ -55,7 +55,9 @@ const openbitChainInfoMap = (() => { 'bobMainnet', 'merlinEvm', 'botanixEvmTest', - 'bounceBitEvm' + 'bounceBitEvm', + 'bounceBitEvmTest', + 'layerEdge_testnet' ]; const enableList = nativeList.concat(bitcoinL2List); diff --git a/packages/extension-koni-ui/src/Popup/Home/Nfts/NftCollectionDetail.tsx b/packages/extension-koni-ui/src/Popup/Home/Nfts/NftCollectionDetail.tsx index fe2ed03d367..d82fbef4c67 100644 --- a/packages/extension-koni-ui/src/Popup/Home/Nfts/NftCollectionDetail.tsx +++ b/packages/extension-koni-ui/src/Popup/Home/Nfts/NftCollectionDetail.tsx @@ -11,7 +11,7 @@ import useTranslation from '@subwallet/extension-koni-ui/hooks/common/useTransla import { loadMoreInscription } from '@subwallet/extension-koni-ui/messaging'; import { InscriptionGalleryWrapper } from '@subwallet/extension-koni-ui/Popup/Home/Nfts/component/InscriptionGalleryWrapper'; import { NftGalleryWrapper } from '@subwallet/extension-koni-ui/Popup/Home/Nfts/component/NftGalleryWrapper'; -import { getTotalCollectionItems, INftCollectionDetail, INftItemDetail } from '@subwallet/extension-koni-ui/Popup/Home/Nfts/utils'; +import { getTotalCollectionItems, INftCollectionDetail, INftItemDetail, isValidJson } from '@subwallet/extension-koni-ui/Popup/Home/Nfts/utils'; import { RootState } from '@subwallet/extension-koni-ui/stores'; import { ThemeProps } from '@subwallet/extension-koni-ui/types'; import { Input, SwList } from '@subwallet/react-ui'; @@ -102,7 +102,7 @@ function Component ({ className = '' }: Props): React.ReactElement { const renderNft = useCallback((nftItem: NftItem) => { const routingParams = { collectionInfo, nftItem } as INftItemDetail; - if (nftItem.description) { + if (nftItem.description && isValidJson(nftItem.description)) { const ordinalNftItem = JSON.parse(nftItem.description) as OrdinalRemarkData; if ('p' in ordinalNftItem && 'op' in ordinalNftItem && 'tick' in ordinalNftItem && 'amt' in ordinalNftItem) { diff --git a/packages/extension-koni-ui/src/Popup/Home/Nfts/NftItemDetail.tsx b/packages/extension-koni-ui/src/Popup/Home/Nfts/NftItemDetail.tsx index bd9f5557b71..68e6dcaa25d 100644 --- a/packages/extension-koni-ui/src/Popup/Home/Nfts/NftItemDetail.tsx +++ b/packages/extension-koni-ui/src/Popup/Home/Nfts/NftItemDetail.tsx @@ -13,7 +13,7 @@ import useDefaultNavigate from '@subwallet/extension-koni-ui/hooks/router/useDef import useGetChainInfo from '@subwallet/extension-koni-ui/hooks/screen/common/useFetchChainInfo'; import useGetAccountInfoByAddress from '@subwallet/extension-koni-ui/hooks/screen/common/useGetAccountInfoByAddress'; import InscriptionImage from '@subwallet/extension-koni-ui/Popup/Home/Nfts/component/InscriptionImage'; -import { INftItemDetail } from '@subwallet/extension-koni-ui/Popup/Home/Nfts/utils'; +import { INftItemDetail, isValidJson } from '@subwallet/extension-koni-ui/Popup/Home/Nfts/utils'; import { RootState } from '@subwallet/extension-koni-ui/stores'; import { Theme, ThemeProps } from '@subwallet/extension-koni-ui/types'; import { BackgroundIcon, Field, Icon, Image, Logo, ModalContext, SwModal } from '@subwallet/react-ui'; @@ -137,7 +137,7 @@ function Component ({ className = '' }: Props): React.ReactElement { }, [nftItem.externalUrl]); const show3DModel = SHOW_3D_MODELS_CHAIN.includes(nftItem.chain); - const ordinalNftItem = nftItem.description && JSON.parse(nftItem.description) as OrdinalRemarkData; + const ordinalNftItem = nftItem.description && isValidJson(nftItem.description) && JSON.parse(nftItem.description) as OrdinalRemarkData; const isInscription = useMemo(() => { if (ordinalNftItem && 'p' in ordinalNftItem && 'op' in ordinalNftItem && 'tick' in ordinalNftItem && 'amt' in ordinalNftItem) { return true; diff --git a/packages/extension-koni-ui/src/Popup/Home/Nfts/utils.ts b/packages/extension-koni-ui/src/Popup/Home/Nfts/utils.ts index 946e0e243df..5e13c300b2a 100644 --- a/packages/extension-koni-ui/src/Popup/Home/Nfts/utils.ts +++ b/packages/extension-koni-ui/src/Popup/Home/Nfts/utils.ts @@ -63,3 +63,13 @@ export function getTotalCollectionItems ( return itemsLength; } + +export const isValidJson = (str: string): boolean => { + try { + JSON.parse(str); + + return true; + } catch { + return false; + } +}; diff --git a/yarn.lock b/yarn.lock index 387f1fe60dd..111477e1890 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6241,14 +6241,14 @@ __metadata: languageName: node linkType: hard -"@subwallet/chain-list@npm:0.2.68-beta.1": - version: 0.2.68-beta.1 - resolution: "@subwallet/chain-list@npm:0.2.68-beta.1" +"@subwallet/chain-list@npm:0.2.70-beta.6": + version: 0.2.70-beta.6 + resolution: "@subwallet/chain-list@npm:0.2.70-beta.6" dependencies: "@polkadot/dev": 0.67.167 "@polkadot/util": ^12.5.1 eventemitter3: ^5.0.1 - checksum: d34f43df3a6ebd3b83bde7d4bcf73966b156c1b5d166c1cceae415c1c1363e4c4a0b933d9c9649907ae2c2aadb612cc52ed4f966a01cd75164e115c8c3cc41d0 + checksum: d4e5085eb6501555202879233cdbc23c37e4926fb0488ab3691c7b5e0354e763f6e34c3029918944346cc3f1eaa3e201a3e9eec78f01d1332c41a8d10c2331e2 languageName: node linkType: hard