From b9ec22493b0269ff6595c71843f4f12fa833aabe Mon Sep 17 00:00:00 2001 From: vuonghuuhung Date: Wed, 12 Feb 2025 16:40:40 +0700 Subject: [PATCH 1/2] update orai-token-inspector to version 0.3.0 and enhance token inspector initialization --- package.json | 2 +- src/initTokenInspector.ts | 15 ++++++++++++-- src/reducer/onchainTokens.ts | 7 ++++++- yarn.lock | 39 +++++++++++++++++++++++++++++------- 4 files changed, 52 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 7cdbedee7..a847ae8c0 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "@oraichain/ethereum-multicall": "^1.0.2", "@oraichain/kawaiiverse-txs": "^0.0.3", "@oraichain/orai-bitcoin": "2.0.0", - "@oraichain/orai-token-inspector": "^0.2.14", + "@oraichain/orai-token-inspector": "^0.3.0", "@oraichain/oraidex-common": "2.0.6", "@oraichain/oraidex-common-ui": "1.0.11", "@oraichain/oraidex-contracts-sdk": "1.0.55", diff --git a/src/initTokenInspector.ts b/src/initTokenInspector.ts index 78db260dd..7d370747c 100644 --- a/src/initTokenInspector.ts +++ b/src/initTokenInspector.ts @@ -1,16 +1,27 @@ import { OraichainInspector, SolanaInspector, TokenInspector } from '@oraichain/orai-token-inspector'; +const COMMON = 'https://oraicommon-staging.oraidex.io'; + export const getTokenInspectorInstance = async () => { if (!window.tokenInspector) { + const [ibcRes, assetsRes] = await Promise.all([ + fetch(`${COMMON}/api/v1/chain-registry/ibc`), + fetch(`${COMMON}/api/v1/chain-registry/assets`) + ]); + const [ibc, assets] = await Promise.all([ibcRes.json(), assetsRes.json()]); + const oraichainInspector = await OraichainInspector.create( 'https://rpc.orai.io/', - 'https://mainnet.helius-rpc.com/?api-key=3b28a0fc-0ef6-48ef-b55c-c55ae74cb6a6' + 'https://mainnet.helius-rpc.com/?api-key=3b28a0fc-0ef6-48ef-b55c-c55ae74cb6a6', + COMMON, + ibc as any, + assets as any ); const solanaInspector = await SolanaInspector.create( 'https://mainnet.helius-rpc.com/?api-key=3b28a0fc-0ef6-48ef-b55c-c55ae74cb6a6' ); - window.tokenInspector = new TokenInspector({ + window.tokenInspector = TokenInspector.create({ Oraichain: oraichainInspector, 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp': solanaInspector }); diff --git a/src/reducer/onchainTokens.ts b/src/reducer/onchainTokens.ts index ae8a6a640..70c66d570 100644 --- a/src/reducer/onchainTokens.ts +++ b/src/reducer/onchainTokens.ts @@ -34,7 +34,12 @@ export const onchainTokensSlice = createSlice({ } }); -export const onChainTokenToTokenItem = (token: InspectedToken): TokenItemType => { +export const onChainTokenToTokenItem = ( + token: InspectedToken +): TokenItemType & { + tag: string; + bridgeInfoUrl: string; +} => { return { name: token.name, chainId: token.chainId, diff --git a/yarn.lock b/yarn.lock index 99cbe8c96..5434c35e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4003,10 +4003,10 @@ serialize-error "^8.1.0" varuint-bitcoin "^1.1.2" -"@oraichain/orai-token-inspector@^0.2.14": - version "0.2.14" - resolved "https://registry.yarnpkg.com/@oraichain/orai-token-inspector/-/orai-token-inspector-0.2.14.tgz#5b05cddb44198996408e525be83a3ecf42d89fd0" - integrity sha512-78Inp4LqsiDs+Op2NdF/G6Ju0ISgSJ3dDZo2/Qf+CcP+GwsLFZflizI42U+WZMyZ21YK7F3XwSY2f0+CphQZ+w== +"@oraichain/orai-token-inspector@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@oraichain/orai-token-inspector/-/orai-token-inspector-0.3.0.tgz#5ce671ad5cf213c9f02638c6c2f6e4a4cee72cbb" + integrity sha512-5qyZqzjgaU+e4USC01DLRmHIXB0z5fzcAfjDGyGckMD8r88ZBkyR7UJ07EbbOLmkQq/ZrrUK/gKNpANzSRa8tw== dependencies: "@keplr-wallet/types" "0.12.141" "@metaplex-foundation/mpl-token-metadata" "^3.3.0" @@ -17055,7 +17055,7 @@ string-env-interpolation@^1.0.1: resolved "https://registry.yarnpkg.com/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152" integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg== -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -17073,6 +17073,15 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" @@ -17101,7 +17110,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -17122,6 +17131,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -18533,7 +18549,7 @@ wordwrapjs@^5.1.0: resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-5.1.0.tgz#4c4d20446dcc670b14fa115ef4f8fd9947af2b3a" integrity sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -18560,6 +18576,15 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" From 07a2d491c2a0902b0a5fd2f04f78ca09a051f42d Mon Sep 17 00:00:00 2001 From: vuonghuuhung Date: Wed, 12 Feb 2025 16:58:08 +0700 Subject: [PATCH 2/2] fix: update COMMON URL and add error handling for token inspector initialization --- src/initTokenInspector.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/initTokenInspector.ts b/src/initTokenInspector.ts index 7d370747c..0804e2c82 100644 --- a/src/initTokenInspector.ts +++ b/src/initTokenInspector.ts @@ -1,14 +1,20 @@ import { OraichainInspector, SolanaInspector, TokenInspector } from '@oraichain/orai-token-inspector'; -const COMMON = 'https://oraicommon-staging.oraidex.io'; +const COMMON = 'https://oraicommon.oraidex.io'; export const getTokenInspectorInstance = async () => { if (!window.tokenInspector) { - const [ibcRes, assetsRes] = await Promise.all([ - fetch(`${COMMON}/api/v1/chain-registry/ibc`), - fetch(`${COMMON}/api/v1/chain-registry/assets`) - ]); - const [ibc, assets] = await Promise.all([ibcRes.json(), assetsRes.json()]); + let ibc = []; + let assets = []; + try { + const [ibcRes, assetsRes] = await Promise.all([ + fetch(`${COMMON}/api/v1/chain-registry/ibc`), + fetch(`${COMMON}/api/v1/chain-registry/assets`) + ]); + [ibc, assets] = await Promise.all([ibcRes.json(), assetsRes.json()]); + } catch (error) { + console.log(error); + } const oraichainInspector = await OraichainInspector.create( 'https://rpc.orai.io/',