diff --git a/react-native-expo/components/ProfileScreen/index.tsx b/react-native-expo/components/ProfileScreen/index.tsx index 2461dff..6e6ce89 100644 --- a/react-native-expo/components/ProfileScreen/index.tsx +++ b/react-native-expo/components/ProfileScreen/index.tsx @@ -1,4 +1,4 @@ -import penumbraAddressFactory from '@/factories/penumbraAddress'; +import addressFactory from '@/factories/address'; import Avatar from '../Avatar'; import { Sx, Text, View } from 'dripsy'; import Button from '../Button'; @@ -9,6 +9,9 @@ import AssetIcon from '../AssetIcon'; import ListItemChevronRightSuffix from '../ListItemChevronRightSuffix'; import { useRouter } from 'expo-router'; import { useAppSelector } from '@/store/hooks'; +import { bech32mAddress } from '@penumbra-zone/bech32m/penumbra'; + +const mockAddress = bech32mAddress(addressFactory.build()); export default function ProfileScreen() { const { t } = useLingui(); @@ -22,7 +25,7 @@ export default function ProfileScreen() { - {penumbraAddressFactory.build().value} + {mockAddress} diff --git a/react-native-expo/components/TransactionList/index.stories.ts b/react-native-expo/components/TransactionList/index.stories.ts index 61d2ca6..cac7d5d 100644 --- a/react-native-expo/components/TransactionList/index.stories.ts +++ b/react-native-expo/components/TransactionList/index.stories.ts @@ -2,7 +2,7 @@ import { Meta, StoryObj } from '@storybook/react'; import TransactionList from '.'; import transactionFactory from '@/factories/transaction'; -import penumbraAddressFactory from '@/factories/penumbraAddress'; +import addressFactory from '@/factories/Address'; const meta: Meta = { component: TransactionList, @@ -20,18 +20,18 @@ export const Basic: StoryObj = { showTitle: true, transactions: [ transactionFactory.build({ - senderAddress: penumbraAddressFactory.build().value, + senderAddress: addressFactory.build().value, senderUsername: 'henry', }), transactionFactory.build({ type: 'send', - recipientAddress: penumbraAddressFactory.build().value, + recipientAddress: addressFactory.build().value, recipientUsername: 'cate', via: undefined, }), transactionFactory.build({ type: 'send', - recipientAddress: penumbraAddressFactory.build().value, + recipientAddress: addressFactory.build().value, }), ], }, diff --git a/react-native-expo/factories/address.ts b/react-native-expo/factories/address.ts new file mode 100644 index 0000000..8bfce87 --- /dev/null +++ b/react-native-expo/factories/address.ts @@ -0,0 +1,13 @@ +import { PlainMessage } from '@bufbuild/protobuf'; +import { Address } from '@penumbra-zone/protobuf/penumbra/core/keys/v1/keys_pb'; +import * as Factory from 'factory.ts'; +import { generateRandomNumberBetween0And255 } from './helpers'; + +const addressFactory = Factory.makeFactory>({ + altBech32m: '', + inner: Factory.each( + () => new Uint8Array(Array(80).fill(null).map(generateRandomNumberBetween0And255)), + ), +}); + +export default addressFactory; diff --git a/react-native-expo/factories/helpers.ts b/react-native-expo/factories/helpers.ts new file mode 100644 index 0000000..cc72906 --- /dev/null +++ b/react-native-expo/factories/helpers.ts @@ -0,0 +1,3 @@ +export function generateRandomNumberBetween0And255() { + return Math.round(Math.random() * 255); +} diff --git a/react-native-expo/factories/penumbraAddress.ts b/react-native-expo/factories/penumbraAddress.ts deleted file mode 100644 index 05cd79a..0000000 --- a/react-native-expo/factories/penumbraAddress.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { makeFactory } from 'factory.ts'; - -const penumbraAddressFactory = makeFactory<{ value: string }>({ - value: - 'penumbra147mfall0zr6am5r45qkwht7xqqrdsp50czde7empv7yq2nk3z8yyfh9k9520ddgswkmzar22vhz9dwtuem7uxw0qytfpv7lk3q9dp8ccaw2fn5c838rfackazmgf3ahh09cxmz', -}); - -export default penumbraAddressFactory; diff --git a/react-native-expo/store/transactions.ts b/react-native-expo/store/transactions.ts index 20ec4af..78c4e40 100644 --- a/react-native-expo/store/transactions.ts +++ b/react-native-expo/store/transactions.ts @@ -1,7 +1,8 @@ -import penumbraAddressFactory from '@/factories/penumbraAddress'; +import addressFactory from '@/factories/address'; import transactionFactory from '@/factories/transaction'; import Transaction from '@/types/Transaction'; import { createSlice, PayloadAction } from '@reduxjs/toolkit'; +import { bech32mAddress } from '@penumbra-zone/bech32m/penumbra'; export interface TransactionsState { transactions: Transaction[]; @@ -12,18 +13,18 @@ const initialState: TransactionsState = { /** @todo: Populate with real data */ transactions: [ transactionFactory.build({ - senderAddress: penumbraAddressFactory.build().value, + senderAddress: bech32mAddress(addressFactory.build()), senderUsername: 'henry', }), transactionFactory.build({ type: 'send', - recipientAddress: penumbraAddressFactory.build().value, + recipientAddress: bech32mAddress(addressFactory.build()), recipientUsername: 'cate', via: undefined, }), transactionFactory.build({ type: 'send', - recipientAddress: penumbraAddressFactory.build().value, + recipientAddress: bech32mAddress(addressFactory.build()), }), ], searchText: '',