Skip to content

Commit fbe6688

Browse files
committed
fix: simplify application box data handling with direct base64 encoding
1 parent 22e8d60 commit fbe6688

File tree

1 file changed

+4
-10
lines changed

1 file changed

+4
-10
lines changed

src/features/applications/data/application-boxes.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
import { ApplicationId } from './types'
22
import { useMemo } from 'react'
33
import { atom, useAtomValue } from 'jotai'
4-
import { Application, ApplicationBox, BoxDescriptor } from '../models'
4+
import { Application, BoxDescriptor } from '../models'
55
import { Buffer } from 'buffer'
66
import { loadable } from 'jotai/utils'
77
import { createLoadableViewModelPageAtom } from '@/features/common/data/lazy-load-pagination'
88
import { DEFAULT_FETCH_SIZE } from '@/features/common/constants'
99
import { indexer } from '@/features/common/data/algo-client'
1010
import { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'
1111
import { asBoxDescriptor } from '../mappers'
12-
import { base64ToUtf8IfValid } from '@/utils/base64-to-utf8'
13-
import { base64ToBytes } from '@/utils/base64-to-bytes'
1412
import { asDecodedAbiStorageValue } from '@/features/abi-methods/mappers'
15-
import { uint8ArrayToUtf8 } from '@/utils/uint8-array-to-utf8'
13+
import { uint8ArrayToBase64 } from '@/utils/uint8-array-to-base64'
1614

1715
const getApplicationBoxNames = async (applicationId: ApplicationId, appSpec?: Arc56Contract, nextPageToken?: string) => {
1816
const results = await indexer
@@ -45,15 +43,11 @@ export const useApplicationBox = (application: Application, boxDescriptor: BoxDe
4543
return useMemo(() => {
4644
return atom(async () => {
4745
const result = await getApplicationBox(application.id, boxDescriptor.base64Name)
48-
const box = {
49-
name: uint8ArrayToUtf8(result.name),
50-
value: uint8ArrayToUtf8(result.value),
51-
} as ApplicationBox
5246

5347
if (application.appSpec && 'valueType' in boxDescriptor) {
54-
return asDecodedAbiStorageValue(application.appSpec, boxDescriptor.valueType, base64ToBytes(box.value))
48+
return asDecodedAbiStorageValue(application.appSpec, boxDescriptor.valueType, result.value)
5549
} else {
56-
return base64ToUtf8IfValid(box.value)
50+
return uint8ArrayToBase64(result.value)
5751
}
5852
})
5953
}, [application, boxDescriptor])

0 commit comments

Comments
 (0)