Skip to content

Commit 931c888

Browse files
authored
fix: some small fixes (#72)
* chore: tweak latest blocks jotai config * fix: handle bad routes * fix: bug in keyreg transaction mapping
1 parent ba6907f commit 931c888

File tree

3 files changed

+37
-42
lines changed

3 files changed

+37
-42
lines changed

src/features/blocks/data/latest-blocks.ts

Lines changed: 31 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -26,54 +26,45 @@ import { syncedRoundAtom } from './synced-round'
2626

2727
const maxBlocksToDisplay = 5
2828

29-
const createLatestBlockSummariesAtom = () => {
30-
const latestBlockSummariesAtom = atom<BlockSummary[]>([])
31-
const refreshLatestBlockSummariesEffect = atomEffect((get, set) => {
32-
const syncedRound = get(syncedRoundAtom)
33-
if (!syncedRound) {
34-
return
35-
}
36-
37-
const blockResults = get.peek(blockResultsAtom)
38-
const transactionResults = get.peek(transactionResultsAtom)
39-
40-
;(async () => {
41-
const latestBlockSummaries = (
42-
await Promise.all(
43-
Array.from({ length: maxBlocksToDisplay }, async (_, i) => {
44-
const round = syncedRound - i
45-
const blockAtom = blockResults.get(round)
46-
47-
if (blockAtom) {
48-
const block = await get(blockAtom)
49-
const transactionSummaries = await Promise.all(
50-
block.transactionIds.map(async (transactionId) => {
51-
const transactionResult = await get.peek(transactionResults.get(transactionId)!)
29+
export const latestBlockSummariesAtom = atom<BlockSummary[]>([])
30+
const refreshLatestBlockSummariesEffect = atomEffect((get, set) => {
31+
const syncedRound = get(syncedRoundAtom)
32+
if (!syncedRound) {
33+
return
34+
}
5235

53-
return asTransactionSummary(transactionResult)
54-
})
55-
)
36+
const blockResults = get.peek(blockResultsAtom)
37+
const transactionResults = get.peek(transactionResultsAtom)
5638

57-
return asBlockSummary(block, transactionSummaries)
58-
}
59-
})
60-
)
61-
).filter(isDefined)
39+
;(async () => {
40+
const latestBlockSummaries = (
41+
await Promise.all(
42+
Array.from({ length: maxBlocksToDisplay }, async (_, i) => {
43+
const round = syncedRound - i
44+
const blockAtom = blockResults.get(round)
6245

63-
set(latestBlockSummariesAtom, latestBlockSummaries)
64-
})()
65-
})
46+
if (blockAtom) {
47+
const block = await get(blockAtom)
48+
const transactionSummaries = await Promise.all(
49+
block.transactionIds.map(async (transactionId) => {
50+
const transactionResult = await get.peek(transactionResults.get(transactionId)!)
6651

67-
return atom((get) => {
68-
get(refreshLatestBlockSummariesEffect)
52+
return asTransactionSummary(transactionResult)
53+
})
54+
)
6955

70-
return get(latestBlockSummariesAtom)
71-
})
72-
}
56+
return asBlockSummary(block, transactionSummaries)
57+
}
58+
})
59+
)
60+
).filter(isDefined)
7361

74-
export const latestBlockSummariesAtom = createLatestBlockSummariesAtom()
62+
set(latestBlockSummariesAtom, latestBlockSummaries)
63+
})()
64+
})
7565

7666
export const useLatestBlockSummaries = () => {
67+
useAtom(refreshLatestBlockSummariesEffect)
7768
return useAtomValue(latestBlockSummariesAtom)
7869
}
7970

src/features/transactions/mappers/transaction-mappers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ export const asTransactionSummary = (transactionResult: TransactionResult): Tran
9393
}
9494
}
9595
case algosdk.TransactionType.keyreg: {
96-
invariant(transactionResult['key-reg-transaction'], 'key-reg-transaction is not set')
96+
invariant(transactionResult['keyreg-transaction'], 'keyreg-transaction is not set')
9797
return {
9898
...common,
9999
type: TransactionType.KeyReg,

src/utils/error.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
export const asError = (error: unknown) => {
2-
return error instanceof Error ? error : new Error(String(error))
2+
return error instanceof Error
3+
? error
4+
: error instanceof Object && 'error' in error && error.error instanceof Error
5+
? error.error
6+
: new Error(String(error))
37
}
48

59
export const is404 = (error: Error) => 'status' in error && error.status === 404

0 commit comments

Comments
 (0)