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

feature: domain resolver #2866

Merged
merged 66 commits into from
Dec 19, 2023
Merged
Show file tree
Hide file tree
Changes from 62 commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
a611d15
feature(resolver): fisrt functional poc
banklesss Nov 1, 2023
15124fe
feature(resolver): fisrt functional poc
banklesss Nov 1, 2023
df442cb
feature(resolver): fisrt functional poc
banklesss Nov 1, 2023
5796b9c
Merge branch 'develop' into feature/resolver
banklesss Nov 2, 2023
d37b35a
Merge remote-tracking branch 'origin/develop' into feature/resolver
banklesss Nov 8, 2023
41584d3
Merge remote-tracking branch 'origin/develop' into feature/resolver
banklesss Nov 8, 2023
355fec2
refactor: resolver
banklesss Nov 9, 2023
2f80532
Merge remote-tracking branch 'origin/develop' into feature/resolver
banklesss Nov 9, 2023
77c78ff
feat(resolver): ongoing refactor
banklesss Nov 14, 2023
7d0b05a
Merge remote-tracking branch 'origin/develop' into feature/resolver
banklesss Nov 14, 2023
efb3c3a
feat(resolver): adding proper typing and soppable service
banklesss Nov 16, 2023
83cb7e0
Merge branch 'develop' into feature/resolver
banklesss Nov 16, 2023
aa571a7
feat(resolver): adding proper typing and soppable service
banklesss Nov 16, 2023
b01b7d2
refactor(resolver) form input
banklesss Nov 16, 2023
896ceab
feature(resolver): add error management
banklesss Nov 17, 2023
ab7659d
feature(resolver): add error management
banklesss Nov 17, 2023
33c4cad
feature(resolver): add error management
banklesss Nov 17, 2023
09c4cd4
feature(resolver): add error management
banklesss Nov 17, 2023
ea2f87d
feature(resolver): add error management
banklesss Nov 17, 2023
0214789
feature(resolver): add notice storage api
banklesss Nov 17, 2023
4a51e69
Merge branch 'develop' into feature/resolver
banklesss Nov 20, 2023
543990d
fix(resolver): api maker
banklesss Nov 20, 2023
819fda2
Merge branch 'develop' into feature/resolver
banklesss Nov 21, 2023
2b07a41
fix(resolver): ci
banklesss Nov 21, 2023
d1c0582
feature(resolver): add test
banklesss Nov 21, 2023
09ea9c6
Merge branch 'develop' into feature/resolver
banklesss Nov 21, 2023
431c40c
feature(resolver): add notice
banklesss Nov 29, 2023
5cafc57
feature(resolver): provider
banklesss Dec 4, 2023
08791bb
merge develop
banklesss Dec 4, 2023
ee068d9
feature(resolver): address validation
banklesss Dec 4, 2023
4878a45
fix: build order
stackchain Dec 4, 2023
a097c60
fix(resolver): validation
banklesss Dec 4, 2023
9cf53bb
fix(resolver): validation
banklesss Dec 4, 2023
0cbf6fc
wip: adapt handle clean ups
stackchain Dec 4, 2023
5527eb4
feature(resolver): frontend update
banklesss Dec 5, 2023
a2062cb
feature(resolver): frontend update
banklesss Dec 5, 2023
e5706f3
feature(resolver): frontend update
banklesss Dec 5, 2023
2a9a137
feature(resolver): frontend update
banklesss Dec 5, 2023
c971417
feature(resolver): frontend update
banklesss Dec 5, 2023
002ffa1
feature(resolver): test updated
banklesss Dec 6, 2023
376ed94
Merge branch 'develop' into feature/resolver
banklesss Dec 6, 2023
94fd341
chore: minor refactor
stackchain Dec 6, 2023
963518c
merge: head
stackchain Dec 6, 2023
0f1140d
feature(rsolver): styling
banklesss Dec 6, 2023
ab7cb24
feature(resolver): add dev notice reset
banklesss Dec 6, 2023
1128209
feature(resolver): restore dev screen
banklesss Dec 6, 2023
9ab29fd
fix(resolver): missing styles
banklesss Dec 6, 2023
81fa37b
fix(resolver): missing styles
banklesss Dec 6, 2023
0cfd4df
feature(resolver): perf improvement
banklesss Dec 6, 2023
2702443
feature(resolver): reset state
banklesss Dec 6, 2023
beb5f91
chore: resolver clean ups
stackchain Dec 6, 2023
7c2c6a4
merge: head
stackchain Dec 6, 2023
4d7b258
wip: resolver clean ups
stackchain Dec 11, 2023
30412f8
Merge branch 'develop' into feature/resolver
stackchain Dec 11, 2023
8910582
chore: app errors for resolver
stackchain Dec 11, 2023
cc85ac6
wip: resolver integ
stackchain Dec 12, 2023
2bd45a8
wip: resolver integ
stackchain Dec 12, 2023
640ade4
wip: calcelling pend req
stackchain Dec 13, 2023
8d2dc66
wip: fix test
stackchain Dec 13, 2023
94adaf9
wip: send step 1 refactor
stackchain Dec 15, 2023
014285b
refactor: send step 1/summary
stackchain Dec 18, 2023
62ca9c3
merge: develop
stackchain Dec 18, 2023
9120d7c
merge: develop sync
stackchain Dec 18, 2023
89491bf
merge: develop
stackchain Dec 19, 2023
d0ddbd8
fix: merge
stackchain Dec 19, 2023
654f33b
Update packages/resolver/src/adapters/handle-api.ts
stackchain Dec 19, 2023
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: 3 additions & 1 deletion apps/wallet-mobile/.env
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,6 @@ WALLET_2_MNEMONIC=abandon abandon abandon abandon abandon abandon abandon abando
BANXA_TEST_WALLET=addr1qyfuspldlchc5kechfe5jzdrr9jms2s9w0tq4hggy9zgkhxssydveuc8xyx4zh27fwcmr62mraeezjwf24hzkyejwfmq7yptmd

FRONTEND_FEE_ADDRESS_MAINNET=addr1q9ry6jfdgm0lcrtfpgwrgxg7qfahv80jlghhrthy6w8hmyjuw9ngccy937pm7yw0jjnxasm7hzxjrf8rzkqcj26788lqws5fke
FRONTEND_FEE_ADDRESS_PREPROD=addr_test1qrgpjmyy8zk9nuza24a0f4e7mgp9gd6h3uayp0rqnjnkl54v4dlyj0kwfs0x4e38a7047lymzp37tx0y42glslcdtzhqzp57km
FRONTEND_FEE_ADDRESS_PREPROD=addr_test1qrgpjmyy8zk9nuza24a0f4e7mgp9gd6h3uayp0rqnjnkl54v4dlyj0kwfs0x4e38a7047lymzp37tx0y42glslcdtzhqzp57km

UNSTOPPABLE_API_KEY=czsajliz-wxgu6tujd1zqq7hey_pclfqhdjsqolsxjfsurgh
4 changes: 3 additions & 1 deletion apps/wallet-mobile/.env.nightly
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,6 @@ DISABLE_LOGBOX=true
BANXA_TEST_WALLET=addr1qyfuspldlchc5kechfe5jzdrr9jms2s9w0tq4hggy9zgkhxssydveuc8xyx4zh27fwcmr62mraeezjwf24hzkyejwfmq7yptmd

FRONTEND_FEE_ADDRESS_MAINNET=addr1q9ry6jfdgm0lcrtfpgwrgxg7qfahv80jlghhrthy6w8hmyjuw9ngccy937pm7yw0jjnxasm7hzxjrf8rzkqcj26788lqws5fke
FRONTEND_FEE_ADDRESS_PREPROD=addr_test1qrgpjmyy8zk9nuza24a0f4e7mgp9gd6h3uayp0rqnjnkl54v4dlyj0kwfs0x4e38a7047lymzp37tx0y42glslcdtzhqzp57km
FRONTEND_FEE_ADDRESS_PREPROD=addr_test1qrgpjmyy8zk9nuza24a0f4e7mgp9gd6h3uayp0rqnjnkl54v4dlyj0kwfs0x4e38a7047lymzp37tx0y42glslcdtzhqzp57km

UNSTOPPABLE_API_KEY=czsajliz-wxgu6tujd1zqq7hey_pclfqhdjsqolsxjfsurgh
4 changes: 3 additions & 1 deletion apps/wallet-mobile/.env.production
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ BUILD_VARIANT=PROD
SENTRY_DSN=https://7f7c6cb60a6f429facd34f491dfc5133@o1138840.ingest.sentry.io/6783228

FRONTEND_FEE_ADDRESS_MAINNET=addr1q9ry6jfdgm0lcrtfpgwrgxg7qfahv80jlghhrthy6w8hmyjuw9ngccy937pm7yw0jjnxasm7hzxjrf8rzkqcj26788lqws5fke
FRONTEND_FEE_ADDRESS_PREPROD=addr_test1qrgpjmyy8zk9nuza24a0f4e7mgp9gd6h3uayp0rqnjnkl54v4dlyj0kwfs0x4e38a7047lymzp37tx0y42glslcdtzhqzp57km
FRONTEND_FEE_ADDRESS_PREPROD=addr_test1qrgpjmyy8zk9nuza24a0f4e7mgp9gd6h3uayp0rqnjnkl54v4dlyj0kwfs0x4e38a7047lymzp37tx0y42glslcdtzhqzp57km

UNSTOPPABLE_API_KEY=czsajliz-wxgu6tujd1zqq7hey_pclfqhdjsqolsxjfsurgh
4 changes: 3 additions & 1 deletion apps/wallet-mobile/.env.staging
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,6 @@ WALLET_2_MNEMONIC=abandon abandon abandon abandon abandon abandon abandon abando
BANXA_TEST_WALLET=addr1qyfuspldlchc5kechfe5jzdrr9jms2s9w0tq4hggy9zgkhxssydveuc8xyx4zh27fwcmr62mraeezjwf24hzkyejwfmq7yptmd

FRONTEND_FEE_ADDRESS_MAINNET=addr1q9ry6jfdgm0lcrtfpgwrgxg7qfahv80jlghhrthy6w8hmyjuw9ngccy937pm7yw0jjnxasm7hzxjrf8rzkqcj26788lqws5fke
FRONTEND_FEE_ADDRESS_PREPROD=addr_test1qrgpjmyy8zk9nuza24a0f4e7mgp9gd6h3uayp0rqnjnkl54v4dlyj0kwfs0x4e38a7047lymzp37tx0y42glslcdtzhqzp57km
FRONTEND_FEE_ADDRESS_PREPROD=addr_test1qrgpjmyy8zk9nuza24a0f4e7mgp9gd6h3uayp0rqnjnkl54v4dlyj0kwfs0x4e38a7047lymzp37tx0y42glslcdtzhqzp57km

UNSTOPPABLE_API_KEY=czsajliz-wxgu6tujd1zqq7hey_pclfqhdjsqolsxjfsurgh
5 changes: 5 additions & 0 deletions apps/wallet-mobile/.storybook/storybook.requires.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions apps/wallet-mobile/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -120,11 +120,11 @@
"@react-navigation/stack": "^6.3.16",
"@sentry/react-native": "^5.8.0",
"@shopify/flash-list": "^1.4.1",
"@unstoppabledomains/resolution": "6.0.3",
"@yoroi/api": "1.3.0",
"@yoroi/banxa": "1.3.0",
"@yoroi/common": "1.3.0",
"@yoroi/links": "1.3.0",
"@yoroi/resolver": "1.0.0",
"@yoroi/swap": "1.3.0",
"add": "2.0.6",
"assert": "^2.0.0",
Expand Down Expand Up @@ -262,7 +262,7 @@
"prettier-plugin-packagejson": "^2.2.11",
"prettylint": "^1.0.0",
"react-addons-test-utils": "^15.6.2",
"react-devtools-core": "4.26.1",
"react-devtools-core": "^4.28",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

had to bump it, it wasn't working when selecting another context

"react-dom": "16.8.3",
"react-intl-translations-manager": "^5.0.3",
"react-native-typescript-transformer": "^1.2.13",
Expand Down
100 changes: 51 additions & 49 deletions apps/wallet-mobile/src/Catalyst/ConfirmVotingTx.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {defineMessages, useIntl} from 'react-intl'
import {ScrollView, StyleSheet} from 'react-native'
import {SafeAreaView} from 'react-native-safe-area-context'

import {ProgressStep, Spacer, TextInput} from '../components'
import {KeyboardAvoidingView, ProgressStep, Spacer, TextInput} from '../components'
import {ConfirmTx} from '../components/ConfirmTx'
import {debugWalletInfo, features} from '../features'
import {Instructions as HWInstructions} from '../HW'
Expand Down Expand Up @@ -42,63 +42,65 @@ export const ConfirmVotingTx = ({

return (
<SafeAreaView edges={['left', 'right', 'bottom']} style={styles.safeAreaView}>
<ProgressStep currentStep={5} totalSteps={6} />
<KeyboardAvoidingView style={{flex: 1}}>
<ProgressStep currentStep={5} totalSteps={6} />

<ScrollView contentContainerStyle={styles.contentContainer} bounces={false}>
<Spacer height={48} />
<ScrollView contentContainerStyle={styles.contentContainer} bounces={false}>
<Spacer height={48} />

<Title>{strings.subTitle}</Title>
<Title>{strings.subTitle}</Title>

<Spacer height={16} />
<Spacer height={16} />

{wallet.isHW ? (
<HWInstructions useUSB={useUSB} />
) : (
<Description>
{wallet.isEasyConfirmationEnabled ? strings.authOsInstructions : strings.description}
</Description>
)}

<Spacer height={48} />

<TextInput
value={formatTokenWithSymbol(
Amounts.getAmount(votingRegTx.fee, wallet.primaryToken.identifier).quantity,
wallet.primaryToken,
{wallet.isHW ? (
<HWInstructions useUSB={useUSB} />
) : (
<Description>
{wallet.isEasyConfirmationEnabled ? strings.authOsInstructions : strings.description}
</Description>
)}
label={strings.fees}
editable={false}
autoComplete="off"
/>

{!wallet.isEasyConfirmationEnabled && !wallet.isHW && (
<Spacer height={48} />

<TextInput
secureTextEntry
value={password}
label={strings.password}
onChangeText={setPassword}
value={formatTokenWithSymbol(
Amounts.getAmount(votingRegTx.fee, wallet.primaryToken.identifier).quantity,
wallet.primaryToken,
)}
label={strings.fees}
editable={false}
autoComplete="off"
/>
)}
</ScrollView>

<Spacer fill />

<Actions>
<ConfirmTx
onSuccess={() => onNext()}
isProvidingPassword
providedPassword={password}
setUseUSB={setUseUSB}
useUSB={useUSB}
yoroiUnsignedTx={votingRegTx}
biometricInstructions={[strings.authOsInstructions]}
chooseTransportOnConfirmation
onCIP36SupportChange={handleCIP36SupportChange}
autoConfirm={!supportsCIP36}
supportsCIP36={supportsCIP36}
/>
</Actions>

{!wallet.isEasyConfirmationEnabled && !wallet.isHW && (
<TextInput
secureTextEntry
value={password}
label={strings.password}
onChangeText={setPassword}
autoComplete="off"
/>
)}
</ScrollView>

<Spacer fill />

<Actions>
<ConfirmTx
onSuccess={() => onNext()}
isProvidingPassword
providedPassword={password}
setUseUSB={setUseUSB}
useUSB={useUSB}
yoroiUnsignedTx={votingRegTx}
biometricInstructions={[strings.authOsInstructions]}
chooseTransportOnConfirmation
onCIP36SupportChange={handleCIP36SupportChange}
autoConfirm={!supportsCIP36}
supportsCIP36={supportsCIP36}
/>
</Actions>
</KeyboardAvoidingView>
</SafeAreaView>
)
}
Expand Down
103 changes: 59 additions & 44 deletions apps/wallet-mobile/src/NftDetails/NftDetails.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,16 @@ import {isRecord, isString} from '@yoroi/common'
import {Balance} from '@yoroi/types'
import React, {ReactNode, useState} from 'react'
import {defineMessages, useIntl} from 'react-intl'
import {Dimensions, Linking, StyleSheet, TouchableOpacity, View} from 'react-native'
import {ScrollView} from 'react-native-gesture-handler'
import {
Dimensions,
Linking,
RefreshControl,
SafeAreaView,
ScrollView,
StyleSheet,
TouchableOpacity,
View,
} from 'react-native'

import {CopyButton, FadeIn, Icon, Spacer, Text} from '../components'
import {NftPreview} from '../components/NftPreview'
Expand All @@ -17,57 +25,64 @@ import {useNavigateTo} from '../Nfts/navigation'
import {useSelectedWallet} from '../SelectedWallet'
import {COLORS} from '../theme'
import {getNetworkConfigById} from '../yoroi-wallets/cardano/networks'
import {useNft} from '../yoroi-wallets/hooks'
import {useNativeAssetInvalidation, useNft} from '../yoroi-wallets/hooks'

export const NftDetails = () => {
const {id} = useRoute<RouteProp<NftRoutes, 'nft-details'>>().params
const strings = useStrings()
const wallet = useSelectedWallet()
const nft = useNft(wallet, {id})
const [policy, name] = nft.id.split('.')
const [activeTab, setActiveTab] = useState<'overview' | 'metadata'>('overview')
const {track} = useMetrics()
const {invalidate, isLoading} = useNativeAssetInvalidation({networkId: wallet.networkId, policy, name})

return (
<FadeIn style={styles.container}>
<ScrollView contentContainerStyle={styles.contentContainer}>
{features.moderatingNftsEnabled ? <ModeratedNftImage nft={nft} /> : <UnModeratedNftImage nft={nft} />}

<Tabs>
<Tab
onPress={() => {
if (activeTab !== 'overview') {
setActiveTab('overview')
track.nftGalleryDetailsTab({nft_tab: 'Overview'})
}
}}
label={strings.overview}
active={activeTab === 'overview'}
testID="overview"
/>

<Tab
onPress={() => {
if (activeTab !== 'metadata') {
setActiveTab('metadata')
track.nftGalleryDetailsTab({nft_tab: 'Metadata'})
}
}}
label={strings.metadata}
active={activeTab === 'metadata'}
testID="metadata"
/>
</Tabs>

<TabPanels>
<TabPanel active={activeTab === 'overview'}>
<NftOverview nft={nft} />
</TabPanel>

<TabPanel active={activeTab === 'metadata'}>
<NftMetadata nft={nft} />
</TabPanel>
</TabPanels>
</ScrollView>
<SafeAreaView>
<ScrollView
contentContainerStyle={styles.contentContainer}
refreshControl={<RefreshControl onRefresh={invalidate} refreshing={isLoading} />}
>
{features.moderatingNftsEnabled ? <ModeratedNftImage nft={nft} /> : <UnModeratedNftImage nft={nft} />}

<Tabs>
<Tab
onPress={() => {
if (activeTab !== 'overview') {
setActiveTab('overview')
track.nftGalleryDetailsTab({nft_tab: 'Overview'})
}
}}
label={strings.overview}
active={activeTab === 'overview'}
testID="overview"
/>

<Tab
onPress={() => {
if (activeTab !== 'metadata') {
setActiveTab('metadata')
track.nftGalleryDetailsTab({nft_tab: 'Metadata'})
}
}}
label={strings.metadata}
active={activeTab === 'metadata'}
testID="metadata"
/>
</Tabs>

<TabPanels>
<TabPanel active={activeTab === 'overview'}>
<NftOverview nft={nft} />
</TabPanel>

<TabPanel active={activeTab === 'metadata'}>
<NftMetadata nft={nft} />
</TabPanel>
</TabPanels>
</ScrollView>
</SafeAreaView>
</FadeIn>
)
}
Expand All @@ -76,7 +91,7 @@ const UnModeratedNftImage = ({nft}: {nft: Balance.TokenInfo}) => {
const navigateTo = useNavigateTo()
return (
<TouchableOpacity onPress={() => navigateTo.nftZoom(nft.id)} style={styles.imageWrapper}>
<NftPreview nft={nft} style={styles.image} height={IMAGE_HEIGHT} width={IMAGE_WIDTH} />
<NftPreview nft={nft} style={styles.image} height={IMAGE_HEIGHT} width={IMAGE_WIDTH} resizeMode="contain" />
</TouchableOpacity>
)
}
Expand All @@ -97,7 +112,7 @@ const ModeratedNftImage = ({nft}: {nft: Balance.TokenInfo}) => {

return (
<TouchableOpacity onPress={() => navigateTo.nftZoom(nft.id)} style={styles.imageWrapper}>
<NftPreview nft={nft} style={styles.image} height={IMAGE_HEIGHT} width={IMAGE_WIDTH} />
<NftPreview nft={nft} style={styles.image} height={IMAGE_HEIGHT} width={IMAGE_WIDTH} resizeMode="contain" />
</TouchableOpacity>
)
}
Expand Down
3 changes: 1 addition & 2 deletions apps/wallet-mobile/src/NftDetails/NftDetailsImage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,12 @@ export const NftDetailsImage = () => {
}, [nft?.id, track])

const dimensions = Dimensions.get('window')
const imageSize = Math.min(dimensions.width, dimensions.height)

return (
<FadeIn style={styles.container}>
<ViewTransformer maxScale={3} minScale={1}>
<View style={styles.contentContainer}>
<NftPreview nft={nft} width={imageSize} height={imageSize} />
<NftPreview nft={nft} width={dimensions.width} height={dimensions.height} zoom={3} resizeMode="contain" />
</View>
</ViewTransformer>
</FadeIn>
Expand Down
Loading
Loading