Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Nfd in Transaction Wizard #289

Open
wants to merge 8 commits into
base: nfd-links
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/features/accounts/components/account-info.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ import {
} from './labels'
import { OpenJsonViewDialogButton } from '@/features/common/components/json-view-dialog-button'
import { CopyButton } from '@/features/common/components/copy-button'
import { useLoadableNfdResult } from '@/features/nfd/data/nfd'
import { useLoadableNfd } from '@/features/nfd/data/nfd'
import { RenderLoadable } from '@/features/common/components/render-loadable'

type Props = {
account: Account
}

export function AccountInfo({ account }: Props) {
const [loadableNfd] = useLoadableNfdResult(account.address)
const [loadableNfd] = useLoadableNfd(account.address)
const accountInfoItems = useMemo(() => {
const items = [
{
Expand Down
4 changes: 2 additions & 2 deletions src/features/accounts/components/account-link.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { PropsWithChildren } from 'react'
import { useLoadableNfdResult } from '@/features/nfd/data/nfd'
import { useLoadableNfd } from '@/features/nfd/data/nfd'
import { RenderLoadable } from '@/features/common/components/render-loadable'
import { fixedForwardRef } from '@/utils/fixed-forward-ref'
import { CopyButton } from '@/features/common/components/copy-button'
Expand All @@ -18,7 +18,7 @@ export type AccountLinkProps = PropsWithChildren<{
}>

export const AccountLink = ({ address, ...rest }: AccountLinkProps) => {
const [loadableNfd] = useLoadableNfdResult(address)
const [loadableNfd] = useLoadableNfd(address)

return (
<>
Expand Down
14 changes: 7 additions & 7 deletions src/features/accounts/pages/account-page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import { algod } from '@/features/common/data/algo-client'
import { reverseNfdsAtom } from '@/features/nfd/data/nfd-result'
import { nfdResultMother } from '@/tests/object-mother/nfd-result'
import { atom } from 'jotai'
import { useLoadableNfdResult } from '@/features/nfd/data/nfd'
import { useLoadableNfd } from '@/features/nfd/data/nfd'

vi.mock('@/features/common/data/algo-client', async () => {
const original = await vi.importActual('@/features/common/data/algo-client')
Expand Down Expand Up @@ -89,7 +89,7 @@ describe('account-page', () => {
myStore.set(assetResultsAtom, assetResults)

vi.mocked(useParams).mockImplementation(() => ({ address: accountResult.address }))
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])

return executeComponentTest(
() => render(<AccountPage />, undefined, myStore),
Expand Down Expand Up @@ -142,7 +142,7 @@ describe('account-page', () => {
myStore.set(accountResultsAtom, new Map([[accountResult.address, createReadOnlyAtomAndTimestamp(accountResult)]]))
myStore.set(assetResultsAtom, assetResults)

vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
vi.mocked(useParams).mockImplementation(() => ({ address: accountResult.address }))

return executeComponentTest(
Expand Down Expand Up @@ -187,7 +187,7 @@ describe('account-page', () => {
const myStore = createStore()
myStore.set(accountResultsAtom, new Map([[accountResult.address, createReadOnlyAtomAndTimestamp(accountResult)]]))

vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
vi.mocked(useParams).mockImplementation(() => ({ address: accountResult.address }))

return executeComponentTest(
Expand Down Expand Up @@ -239,7 +239,7 @@ describe('account-page', () => {
myStore.set(accountResultsAtom, new Map([[accountResult.address, createReadOnlyAtomAndTimestamp(accountResult)]]))
myStore.set(assetResultsAtom, assetResults)

vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
vi.mocked(useParams).mockImplementation(() => ({ address: accountResult.address }))

return executeComponentTest(
Expand Down Expand Up @@ -280,7 +280,7 @@ describe('account-page', () => {
const myStore = createStore()
myStore.set(accountResultsAtom, new Map([[accountResult.address, createReadOnlyAtomAndTimestamp(accountResult)]]))

vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
vi.mocked(useParams).mockImplementation(() => ({ address: accountResult.address }))

return executeComponentTest(
Expand Down Expand Up @@ -329,7 +329,7 @@ describe('account-page', () => {
myStore.set(reverseNfdsAtom, new Map([[nfdResult.depositAccount, [mockReverseNfdAtom, Date.now()] as const]]))

vi.mocked(useParams).mockImplementation(() => ({ address: accountResult.address }))
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'hasData', data: nfdResult }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'hasData', data: nfdResult }])

return executeComponentTest(
() => render(<AccountPage />, undefined, myStore),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import { sendButtonLabel } from '@/features/transaction-wizard/components/transa
import { algo } from '@algorandfoundation/algokit-utils'
import { transactionActionsLabel, transactionGroupTableLabel } from '@/features/transaction-wizard/components/labels'
import { selectOption } from '@/tests/utils/select-option'
import { useLoadableNfdResult } from '@/features/nfd/data/nfd'
import { useLoadableNfd, useLoadableNfdResult } from '@/features/nfd/data/nfd'

const myStore = await vi.hoisted(async () => {
const { getDefaultStore } = await import('jotai/index')
Expand Down Expand Up @@ -52,7 +52,7 @@ describe('application-method-definitions', () => {
],
lastModified: createTimestamp(),
} satisfies AppInterfaceEntity)
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
})

describe('when a wallet is connected', () => {
Expand All @@ -63,6 +63,7 @@ describe('application-method-definitions', () => {
describe('when calling calculator add method', () => {
it('reports validation errors when required fields have not been supplied', () => {
vi.mocked(useParams).mockImplementation(() => ({ applicationId: appId.toString() }))
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])

return executeComponentTest(
() => {
Expand Down Expand Up @@ -95,6 +96,7 @@ describe('application-method-definitions', () => {
it('succeeds when all fields have been correctly supplied', () => {
const { testAccount } = localnet.context
vi.mocked(useParams).mockImplementation(() => ({ applicationId: appId.toString() }))
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])

return executeComponentTest(
() => {
Expand Down Expand Up @@ -167,6 +169,7 @@ describe('application-method-definitions', () => {
it('allows the users to switch to echo_bytes method and send the transaction', async () => {
const { testAccount } = localnet.context
vi.mocked(useParams).mockImplementation(() => ({ applicationId: appId.toString() }))
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])

return executeComponentTest(
() => {
Expand Down
10 changes: 5 additions & 5 deletions src/features/applications/pages/application-page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ import { writeAppInterface } from '@/features/app-interfaces/data'
import SampleSevenAppSpec from '@/tests/test-app-specs/sample-seven.arc32.json'
import { AppSpecStandard, Arc32AppSpec } from '@/features/app-interfaces/data/types'
import { searchTransactionsMock } from '@/tests/setup/mocks'
import { useLoadableNfdResult } from '@/features/nfd/data/nfd'
import { useLoadableNfd } from '@/features/nfd/data/nfd'

vi.mock('@/features/common/data/algo-client', async () => {
const original = await vi.importActual('@/features/common/data/algo-client')
Expand Down Expand Up @@ -116,7 +116,7 @@ describe('application-page', () => {
const applicationResult = applicationResultMother['mainnet-80441968']().build()

it('should be rendered with the correct data', () => {
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
const myStore = createStore()
myStore.set(genesisHashAtom, 'some-hash')

Expand Down Expand Up @@ -236,7 +236,7 @@ describe('application-page', () => {
const transactionResult = transactionResultMother['mainnet-XCXQW7J5G5QSPVU5JFYEELVIAAABPLZH2I36BMNVZLVHOA75MPAQ']().build()

it('should be rendered with the correct app name', () => {
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
const myStore = createStore()
myStore.set(genesisHashAtom, 'some-hash')

Expand Down Expand Up @@ -271,7 +271,7 @@ describe('application-page', () => {
const applicationResult = applicationResultMother['mainnet-80441968']().build()

it('should be rendered with the refresh button', () => {
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
const myStore = createStore()
myStore.set(genesisHashAtom, 'some-hash')

Expand Down Expand Up @@ -361,7 +361,7 @@ describe('application-page', () => {

it('should be rendered with the correct data', async () => {
vi.mocked(useParams).mockImplementation(() => ({ applicationId: applicationResult.id.toString() }))
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
vi.mocked(indexer.searchForTransactions().applicationID(applicationResult.id).limit(3).do).mockImplementation(() =>
Promise.resolve({ currentRound: 123, transactions: [], nextToken: '' })
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { transactionResultMother } from '@/tests/object-mother/transaction-resul
import { getAllByRole } from '@testing-library/dom'
import { ANY_NUMBER, ANY_STRING, searchTransactionsMock } from '@/tests/setup/mocks'
import { RenderResult } from '@testing-library/react'
import { useLoadableNfdResult } from '@/features/nfd/data/nfd'
import { useLoadableNfd } from '@/features/nfd/data/nfd'

vi.mock('@/features/common/data/algo-client', async () => {
const original = await vi.importActual('@/features/common/data/algo-client')
Expand All @@ -27,7 +27,7 @@ describe('asset-transaction-history', () => {
const asset = assetResultMother['testnet-642327435']().build()

it('should be able to handle pagination', () => {
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])

const myStore = createStore()
myStore.set(assetResultsAtom, new Map([[asset.index, createReadOnlyAtomAndTimestamp(asset)]]))
Expand Down
22 changes: 11 additions & 11 deletions src/features/assets/pages/asset-page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import { algod, indexer } from '@/features/common/data/algo-client'
import { setupServer } from 'msw/node'
import { http, HttpResponse } from 'msw'
import { searchTransactionsMock } from '@/tests/setup/mocks'
import { useLoadableNfdResult } from '@/features/nfd/data/nfd'
import { useLoadableNfd } from '@/features/nfd/data/nfd'

const server = setupServer()

Expand Down Expand Up @@ -96,7 +96,7 @@ describe('asset-page', () => {
describe('when rendering an asset that failed to load', () => {
it('should display failed to load message', () => {
vi.mocked(useParams).mockImplementation(() => ({ assetId: '123456' }))
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
vi.mocked(algod.getAssetByID(0).do).mockImplementation(() => Promise.reject({}))

return executeComponentTest(
Expand All @@ -113,7 +113,7 @@ describe('asset-page', () => {
const transactionResult = transactionResultMother.assetConfig().build()

it('should be rendered with the correct data', () => {
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
const myStore = createStore()
myStore.set(assetResultsAtom, new Map([[assetResult.index, createReadOnlyAtomAndTimestamp(assetResult)]]))

Expand Down Expand Up @@ -199,7 +199,7 @@ describe('asset-page', () => {
const transactionResult = transactionResultMother.assetConfig().build()

it('should be rendered with the correct data', () => {
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
const myStore = createStore()
myStore.set(assetResultsAtom, new Map([[assetResult.index, createReadOnlyAtomAndTimestamp(assetResult)]]))

Expand Down Expand Up @@ -301,7 +301,7 @@ describe('asset-page', () => {
const transactionResult = transactionResultMother['mainnet-4BFQTYKSJNRF52LXCMBXKDWLODRDVGSUCW36ND3B7C3ZQKPMLUJA']().build()

it('should be rendered with the correct data', () => {
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
const myStore = createStore()
myStore.set(assetResultsAtom, new Map([[assetResult.index, createReadOnlyAtomAndTimestamp(assetResult)]]))

Expand Down Expand Up @@ -388,7 +388,7 @@ describe('asset-page', () => {
const transactionResult = transactionResultMother['mainnet-P4IX7SYWTTFRQGYTCLFOZSTYSJ5FJKNR3MEIVRR4OA2JJXTQZHTQ']().build()

it('should be rendered with the correct data', () => {
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
const myStore = createStore()
myStore.set(assetResultsAtom, new Map([[assetResult.index, createReadOnlyAtomAndTimestamp(assetResult)]]))

Expand Down Expand Up @@ -474,7 +474,7 @@ describe('asset-page', () => {
const transactionResult = transactionResultMother['mainnet-K66JS73E3BDJ4OYHIC4QRRNSGY2PQMKSQMPYFQ6EEYJTOIPDUA3Q']().build()

it('should be rendered with the correct data', () => {
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
const myStore = createStore()
myStore.set(assetResultsAtom, new Map([[assetResult.index, createReadOnlyAtomAndTimestamp(assetResult)]]))

Expand Down Expand Up @@ -592,7 +592,7 @@ describe('asset-page', () => {
const transactionResult = transactionResultMother['mainnet-W7UVVLOW6RWZYEC64WTOVL5RME33UGI6H6AUP7GSEZW4QNDM4GHA']().build()

it('should be rendered with the correct data', () => {
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
const myStore = createStore()
myStore.set(assetResultsAtom, new Map([[assetResult.index, createReadOnlyAtomAndTimestamp(assetResult)]]))

Expand Down Expand Up @@ -727,7 +727,7 @@ describe('asset-page', () => {
const destroyAssetTransactionResult = transactionResultMother['mainnet-U4XH6AS5UUYQI4IZ3E5JSUEIU64Y3FGNYKLH26W4HRY7T6PK745A']().build()

it('should be rendered with the correct data', () => {
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
const myStore = createStore()
myStore.set(assetResultsAtom, new Map([[assetResult.index, createReadOnlyAtomAndTimestamp(assetResult)]]))

Expand Down Expand Up @@ -813,7 +813,7 @@ describe('asset-page', () => {
const transactionResult = transactionResultMother.assetConfig().build()

it('should be rendered with the refresh button', () => {
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
const myStore = createStore()
myStore.set(assetResultsAtom, new Map([[assetResult.index, createReadOnlyAtomAndTimestamp(assetResult)]]))

Expand Down Expand Up @@ -873,7 +873,7 @@ describe('asset-page', () => {
const assetResult = assetResultMother['mainnet-1024439078']().build()
const transactionResult = transactionResultMother.assetConfig().build()
it('should be rendered with the correct data', () => {
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
const myStore = createStore()
myStore.set(assetResultsAtom, new Map([[assetResult.index, createReadOnlyAtomAndTimestamp(assetResult)]]))

Expand Down
4 changes: 2 additions & 2 deletions src/features/blocks/pages/block-page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import { tableAssertion } from '@/tests/assertions/table-assertion'
import { descriptionListAssertion } from '@/tests/assertions/description-list-assertion'
import { assetResultsAtom } from '@/features/assets/data'
import { indexer } from '@/features/common/data/algo-client'
import { useLoadableNfdResult } from '@/features/nfd/data/nfd'
import { useLoadableNfd } from '@/features/nfd/data/nfd'

vi.mock('@/features/common/data/algo-client', async () => {
const original = await vi.importActual('@/features/common/data/algo-client')
Expand Down Expand Up @@ -115,7 +115,7 @@ describe('block-page', () => {

it('should be rendered with the correct data', () => {
vi.mocked(useParams).mockImplementation(() => ({ round: block.round.toString() }))
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
const myStore = createStore()
myStore.set(blockResultsAtom, new Map([[block.round, createReadOnlyAtomAndTimestamp(block)]]))
myStore.set(transactionResultsAtom, new Map(transactionResults.map((x) => [x.id, createReadOnlyAtomAndTimestamp(x)])))
Expand Down
6 changes: 3 additions & 3 deletions src/features/explore/pages/explore-page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { randomNumberBetween } from '@makerx/ts-dossier'
import { ellipseId } from '@/utils/ellipse-id'
import { ellipseAddress } from '@/utils/ellipse-address'
import { createReadOnlyAtomAndTimestamp, createTimestamp } from '@/features/common/data'
import { useLoadableNfdResult } from '@/features/nfd/data/nfd'
import { useLoadableNfd } from '@/features/nfd/data/nfd'

describe('explore-page', () => {
describe('when no blocks are available', () => {
Expand Down Expand Up @@ -64,7 +64,7 @@ describe('explore-page', () => {
)
myStore.set(syncedRoundAtom, block.round)
beforeEach(() => {
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
})

it('the processed blocks are displayed', () => {
Expand Down Expand Up @@ -129,7 +129,7 @@ describe('explore-page', () => {
}
)
beforeEach(() => {
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
})

it('only the latest 10 blocks are displayed', () => {
Expand Down
4 changes: 2 additions & 2 deletions src/features/groups/pages/group-page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import { tableAssertion } from '@/tests/assertions/table-assertion'
import { assetResultsAtom } from '@/features/assets/data'
import { indexer } from '@/features/common/data/algo-client'
import { genesisHashAtom } from '@/features/blocks/data'
import { useLoadableNfdResult } from '@/features/nfd/data/nfd'
import { useLoadableNfd } from '@/features/nfd/data/nfd'

vi.mock('@/features/common/data/algo-client', async () => {
const original = await vi.importActual('@/features/common/data/algo-client')
Expand Down Expand Up @@ -93,7 +93,7 @@ describe('group-page', () => {

it('should be rendered with the correct data', () => {
vi.mocked(useParams).mockImplementation(() => ({ round: group.round.toString(), groupId: group.id }))
vi.mocked(useLoadableNfdResult).mockReturnValue([{ state: 'loading' }])
vi.mocked(useLoadableNfd).mockReturnValue([{ state: 'loading' }])
const myStore = createStore()
myStore.set(groupResultsAtom, new Map([[group.id, createReadOnlyAtomAndTimestamp(group)]]))
myStore.set(transactionResultsAtom, new Map(transactionResults.map((x) => [x.id, createReadOnlyAtomAndTimestamp(x)])))
Expand Down
Loading
Loading