Skip to content

Commit

Permalink
WIP - 404 errors from backend
Browse files Browse the repository at this point in the history
  • Loading branch information
mvaivre committed Dec 22, 2023
1 parent e57005f commit c17c15c
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 10 deletions.
33 changes: 27 additions & 6 deletions apps/desktop-wallet/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,12 @@ import { useAppDispatch, useAppSelector } from '@/hooks/redux'
import UpdateWalletModal from '@/modals/UpdateWalletModal'
import Router from '@/routes'
import { syncAddressesData, syncAddressesHistoricBalances } from '@/storage/addresses/addressesActions'
import { makeSelectAddressesUnknownTokens, selectAddressIds } from '@/storage/addresses/addressesSelectors'
import { syncNetworkTokensInfo, syncUnknownTokensInfo } from '@/storage/assets/assetsActions'
import {
makeSelectAddressesKnownFungibleTokens,
makeSelectAddressesUnknownTokens,
selectAddressIds
} from '@/storage/addresses/addressesSelectors'
import { getTokenPrices, syncNetworkTokensInfo, syncUnknownTokensInfo } from '@/storage/assets/assetsActions'
import { selectIsTokensMetadataUninitialized } from '@/storage/assets/assetsSelectors'
import {
devModeShortcutDetected,
Expand Down Expand Up @@ -76,6 +80,13 @@ const App = () => {
const isSyncingAddressData = useAppSelector((s) => s.addresses.syncingAddressData)
const isTokensMetadataUninitialized = useAppSelector(selectIsTokensMetadataUninitialized)
const isLoadingTokensMetadata = useAppSelector((s) => s.assetsInfo.loading)
const isLoadingTokens = useAppSelector((s) => s.addresses.loadingTokens)

const selectAddressesKnownTokens = useMemo(makeSelectAddressesKnownFungibleTokens, [])
const knownTokens = useAppSelector(selectAddressesKnownTokens)
const knownTokenSymbols = knownTokens
.map((token) => token.symbol)
.filter((symbol): symbol is string => symbol !== undefined)

const selectAddressesUnknownTokens = useMemo(makeSelectAddressesUnknownTokens, [])
const unknownTokens = useAppSelector(selectAddressesUnknownTokens)
Expand Down Expand Up @@ -188,11 +199,17 @@ const App = () => {

restorePendingTransactions(mempoolTxHashes, storedPendingTxs)
})
dispatch(syncAddressesHistoricBalances())
}
} else if (addressesStatus === 'initialized') {
if (!isTokensMetadataUninitialized && !isLoadingTokensMetadata && newUnknownTokens.length > 0) {
dispatch(syncUnknownTokensInfo(newUnknownTokens))
if (!isTokensMetadataUninitialized && !isLoadingTokensMetadata) {
if (newUnknownTokens.length > 0) {
dispatch(syncUnknownTokensInfo(newUnknownTokens))
}

if (!isLoadingTokens) {
dispatch(syncAddressesHistoricBalances())
dispatch(getTokenPrices({ knownTokenSymbols, currency: settings.fiatCurrency }))
}
}
}
}
Expand All @@ -202,10 +219,14 @@ const App = () => {
assetsInfo.status,
dispatch,
isSyncingAddressData,
isLoadingTokens,
isLoadingTokensMetadata,
isTokensMetadataUninitialized,
network.status,
newUnknownTokens
newUnknownTokens,
knownTokens,
settings.fiatCurrency,
knownTokenSymbols
])

const refreshAddressesData = useCallback(() => {
Expand Down
13 changes: 10 additions & 3 deletions apps/desktop-wallet/src/storage/addresses/addressesActions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,11 @@ import {
} from '@/api/addresses'
import client from '@/api/client'
import i18n from '@/i18n'
import { selectAddressByHash, selectAllAddresses } from '@/storage/addresses/addressesSelectors'
import {
makeSelectAddressesKnownFungibleTokens,
selectAddressByHash,
selectAllAddresses
} from '@/storage/addresses/addressesSelectors'
import { RootState } from '@/storage/store'
import {
Address,
Expand Down Expand Up @@ -182,14 +186,17 @@ export const syncAddressesHistoricBalances = createAsyncThunk(

for (const addressHash of addresses) {
const balances = []
const data = await client.explorer.addresses.getAddressesAddressAmountHistory(
const alphHistoryData = await client.explorer.addresses.getAddressesAddressAmountHistory(
addressHash,
{ fromTs: oneYearAgo, toTs: thisMoment, 'interval-type': explorer.IntervalType.Daily },
{ format: 'text' }
)

// TODO: Get history of known tokens
//const knownFungibleTokens = makeSelectAddressesKnownFungibleTokens()(state, addresses)

try {
const { amountHistory } = JSON.parse(data)
const { amountHistory } = JSON.parse(alphHistoryData)

for (const [timestamp, balance] of amountHistory) {
balances.push({
Expand Down
17 changes: 17 additions & 0 deletions apps/desktop-wallet/src/storage/assets/assetsActions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,3 +131,20 @@ export const syncUnknownTokensInfo = createAsyncThunk(
return results
}
)

export const getTokenPrices = createAsyncThunk(
'assets/getTokenPrices',
async ({ knownTokenSymbols, currency }: { knownTokenSymbols: string[]; currency: string }, { dispatch }) => {
dispatch(loadingStarted())

const tokenPrices = await Promise.all(
chunk(knownTokenSymbols, TOKENS_QUERY_LIMIT).map((knownTokenSymbolsChunk) =>
client.explorer.market.getMarketPrices({ ids: knownTokenSymbolsChunk, currency })
)
)

console.log(tokenPrices)

return tokenPrices.flat()
}
)
Binary file modified bun.lockb
Binary file not shown.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"dependencies": {
"@alephium/token-list": "^0.0.12",
"@alephium/walletconnect-provider": "^0.27.2",
"@alephium/web3": "^0.27.2"
"@alephium/web3": "file://../alephium-web3/packages/web3/alephium-web3-0.27.2.tgz"
},
"devDependencies": {
"@changesets/cli": "^2.26.2",
Expand Down

0 comments on commit c17c15c

Please sign in to comment.