Skip to content

Commit 83e542d

Browse files
authored
Merge pull request #16 from alephium/token-list-auto-update
Update token list automatically
2 parents de775cc + f037410 commit 83e542d

File tree

3 files changed

+30
-14
lines changed

3 files changed

+30
-14
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"preview": "vite preview"
1313
},
1414
"dependencies": {
15-
"@alephium/token-list": "^0.0.15",
15+
"@alephium/token-list": "0.0.16",
1616
"@alephium/web3": "0.30.0-beta.1",
1717
"@alephium/web3-react": "0.30.0-beta.1",
1818
"@emotion/react": "^11.11.1",

src/utils/utils.ts

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import {
22
TokenInfo,
33
TokenList,
4-
mainnetTokensMetadata,
5-
testnetTokensMetadata,
4+
getTokensURL,
5+
mainnet,
6+
testnet,
67
} from '@alephium/token-list'
78
import { ExplorerProvider, NetworkId, NodeProvider, web3 } from '@alephium/web3'
89
import { useWalletConfig } from '@alephium/web3-react'
9-
import { useEffect, useMemo } from 'react'
10+
import { useEffect, useMemo, useState } from 'react'
1011

1112
const mainnet_node_url = 'https://wallet-v20.mainnet.alephium.org'
1213
const testnet_node_url = 'https://wallet-v20.testnet.alephium.org'
@@ -95,15 +96,30 @@ export function useExplorerFE(): string {
9596

9697
export function useTokenList(): TokenInfo[] {
9798
const [network] = useNetworkId()
98-
return network === 'mainnet'
99-
? mainnetTokensMetadata.tokens
100-
: network === 'testnet'
101-
? testnetTokensMetadata.tokens
102-
: []
99+
const [tokens, setTokens] = useState<TokenInfo[]>(network === 'mainnet' ? mainnet.tokens : network === 'testnet' ? testnet.tokens : [])
100+
101+
useEffect(() => {
102+
const updateTokens = async () => {
103+
if (network === 'mainnet' || network === 'testnet') {
104+
const tokenURL = getTokensURL(network)
105+
const response = await fetch(tokenURL)
106+
if (!response.ok) {
107+
console.error('Failed to update token list')
108+
return
109+
}
110+
const data = await response.json() as TokenList
111+
setTokens(data.tokens)
112+
}
113+
}
114+
115+
void updateTokens()
116+
}, [network])
117+
118+
return tokens
103119
}
104120

105121
export function getTokenMetadata(network: 'mainnet' | 'testnet'): TokenList {
106-
return network === 'mainnet' ? mainnetTokensMetadata : testnetTokensMetadata
122+
return network === 'mainnet' ? mainnet : testnet
107123
}
108124

109125
function isObject(object: any): boolean {

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@
3333
"@alephium/web3" "^0.30.2"
3434
bowser "^2.11.0"
3535

36-
"@alephium/token-list@^0.0.15":
37-
version "0.0.15"
38-
resolved "https://registry.yarnpkg.com/@alephium/token-list/-/token-list-0.0.15.tgz#8d2adf01e34c63c9adef9e599840da7846a39c38"
39-
integrity sha512-ujOWIdT2cK/7x4lFo/SphoARbHr3QsjY99FX8vIGkDFh8wSRp3y2XUK1MmhF6OvcxK6SscIEhZH3JAStNyU9dg==
36+
"@alephium/[email protected].16":
37+
version "0.0.16"
38+
resolved "https://registry.yarnpkg.com/@alephium/token-list/-/token-list-0.0.16.tgz#eaf93738a08dfc02c707aa214f0fb928515226ad"
39+
integrity sha512-pI9n89TpSJZbwfaPtR4eIrdRB8nosuZdAvTHv9aDewL38tVA8XSXKE842hxz6wCb3yO5LXP3fN/iyPDgMSAT0A==
4040
dependencies:
4141
cross-fetch "^3.1.8"
4242

0 commit comments

Comments
 (0)