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

feat(HW-639): All fetchs by proxy #2095

Merged
merged 43 commits into from
Sep 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
af2bbed
feat(HW-638): All networks selector
devkudasov Sep 2, 2024
c475ac6
feat(HW-639): ProviderStore refactoring
devkudasov Sep 2, 2024
891e696
feat(HW-639): Fetch balances tokens transactions nfts
devkudasov Sep 2, 2024
468ed2f
feat(HW-639): all networks fetching fixes
devkudasov Sep 2, 2024
0270678
feat(HW-650): Remove provider from context
devkudasov Sep 2, 2024
8f88102
feat(HW-650): Add observers for mobx providers
devkudasov Sep 2, 2024
60303de
feat(HW-650): Fix initialization issues
devkudasov Sep 3, 2024
4756bea
feat(HW-650): Fix balance issues
devkudasov Sep 3, 2024
d8ab0d4
increase version to 1.9.2
devkudasov Sep 3, 2024
fdff706
Merge branch 'main' into issue/HW-542/all-networks-mobile-implementation
devkudasov Sep 3, 2024
b598bfe
feat(HW-639): Use updates v2 through proxy
devkudasov Sep 4, 2024
f067b54
feat(HW-639): update transactions
devkudasov Sep 5, 2024
83a3cab
Merge branch 'main' into issue/HW-639/fetch-all-networks-tokens
devkudasov Sep 9, 2024
fd424f7
feat(HW-639): Fetch transactions by proxy fixes
devkudasov Sep 9, 2024
ca8c7a8
feat(HW-639): Fetch nfts by proxy
devkudasov Sep 9, 2024
0c2211a
feat(HW-639): balance calculations
devkudasov Sep 10, 2024
c558856
Merge branch 'main' into issue/HW-639/fetch-all-networks-tokens
devkudasov Sep 10, 2024
4de067f
Merge branch 'main' into issue/HW-639/fetch-all-networks-tokens
devkudasov Sep 11, 2024
314ea6b
Merge branch 'main' into issue/HW-639/fetch-all-networks-tokens
devkudasov Sep 11, 2024
b0db32a
Merge branch 'main' into issue/HW-639/fetch-all-networks-tokens
devkudasov Sep 12, 2024
e4f07bf
Fix flatlist erors
devkudasov Sep 12, 2024
d5e8a59
feat(HW-640): Fix toFiat
devkudasov Sep 12, 2024
9b19998
Total balance fixes
devkudasov Sep 12, 2024
1b44e0c
feat(HW-640): Fetch NFTs for all networks
devkudasov Sep 12, 2024
f2b2be5
Merge branch 'main' into issue/HW-639/fetch-all-networks-tokens
devkudasov Sep 13, 2024
9632ea6
use chain_id for tokens and provider selector
devkudasov Sep 15, 2024
2f8427b
Merge branch 'main' into issue/HW-639/fetch-all-networks-tokens
devkudasov Sep 15, 2024
63333dd
Prevent unexpected re-renders
devkudasov Sep 15, 2024
fb72f2b
network icon for tokens
devkudasov Sep 15, 2024
e5f49f7
Fix address verification
devkudasov Sep 15, 2024
9a6f9b7
change token key definition
devkudasov Sep 16, 2024
8c5bf10
Update blasted-image package and remove redundant realm logic
devkudasov Sep 16, 2024
9b6dd8c
FIx text-field stratch issue
devkudasov Sep 16, 2024
d759f13
FIx transactions loading
devkudasov Sep 16, 2024
78441fc
Fix sum block error
devkudasov Sep 16, 2024
4de24be
Fee calculation fixes
devkudasov Sep 16, 2024
ed3e523
fix(HW-699): Fix native token generation logic
devkudasov Sep 16, 2024
f4534b1
fix(HW-699): Add native tokens to tokens list
devkudasov Sep 16, 2024
7e8e98f
fix(HW-699): Remove all networks selector from settings
devkudasov Sep 16, 2024
35d4642
fix(HW-699): Fix all networks send coins behaviour
devkudasov Sep 16, 2024
03c39b4
fix(HW-699): Remove all networks from web3 providers list
devkudasov Sep 16, 2024
10b4bde
Fix provider name on transaction preview screen
devkudasov Sep 16, 2024
a5df6db
fix(HW-699): Fix web3brouser account connect for all networks
devkudasov Sep 16, 2024
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
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@
"react-native-adjust-oaid": "4.33.0",
"react-native-aes-crypto": "3.0.1",
"react-native-base64": "0.2.1",
"react-native-blasted-image": "0.0.13",
"react-native-blasted-image": "1.0.3",
"react-native-ble-plx": "2.0.3",
"react-native-camera": "4.2.1",
"react-native-config": "1.5.1",
Expand Down
19 changes: 9 additions & 10 deletions src/components/account-info/account-info.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {observer} from 'mobx-react';

import {TokenViewer} from '@app/components/token-viewer';
import {TransactionEmpty} from '@app/components/transaction-empty';
import {First, PopupContainer, Spacer} from '@app/components/ui';
import {First, Spacer} from '@app/components/ui';
import {createTheme} from '@app/helpers';
import {Feature, isFeatureEnabled} from '@app/helpers/is-feature-enabled';
import {useShowNft} from '@app/hooks/nft';
Expand Down Expand Up @@ -156,15 +156,14 @@ export const AccountInfo = observer(
);

return (
<PopupContainer plain>
<TransactionList
addresses={[wallet.address]}
hideContent={hideTransactionsContent}
onTransactionPress={onPressTxRow}
ListHeaderComponent={renderListHeader}
ListEmptyComponent={renderListEmptyComponent}
/>
</PopupContainer>
<TransactionList
key={activeTab}
addresses={[wallet.address]}
hideContent={hideTransactionsContent}
onTransactionPress={onPressTxRow}
ListHeaderComponent={renderListHeader}
ListEmptyComponent={renderListEmptyComponent}
/>
);
},
);
Expand Down
13 changes: 12 additions & 1 deletion src/components/image-wrapper.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
ImageProps,
ImageSourcePropType,
ImageStyle,
ImageURISource,
StyleProp,
StyleSheet,
} from 'react-native';
Expand All @@ -26,7 +27,7 @@ const SVG_MIME_TYPE = 'data:image/svg+xml;base64,';
export function ImageWrapper({source, style, ...props}: ImageWrapperProps) {
const [isError, setError] = useState(false);

const fixedSource = useMemo(() => {
const fixedSource: number | ImageSourcePropType = useMemo(() => {
if (typeof source === 'string' && isValidUrl(source)) {
return {uri: source} as ImageSourcePropType;
}
Expand All @@ -44,6 +45,15 @@ export function ImageWrapper({source, style, ...props}: ImageWrapperProps) {
if (isObservable(source)) {
return toJS(source) as ImageSourcePropType;
}

if (typeof source === 'number') {
return source as ImageSourcePropType;
}

if (!(source as ImageURISource).uri) {
return {uri: ''};
}

return source as ImageSourcePropType;
}, [source]);

Expand Down Expand Up @@ -107,6 +117,7 @@ export function ImageWrapper({source, style, ...props}: ImageWrapperProps) {
<BlastedImage
{...props}
style={StyleSheet.flatten(style)}
// @ts-ignore
source={fixedSource}
onError={() => setError(true)}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,7 @@ export const JsonRpcTransactionInfo = observer(
provider?.denom,
),
data: tx.data,
chainId: provider?.ethChainId
? String(provider.ethChainId)
: undefined,
chainId: provider?.ethChainId ? provider.ethChainId : undefined,
});
setFee(result);
}
Expand Down
27 changes: 19 additions & 8 deletions src/components/modals/providers-bottom-sheet.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,34 +9,45 @@ import {app} from '@app/contexts';
import {createTheme} from '@app/helpers';
import {useCalculatedDimensionsValue} from '@app/hooks/use-calculated-dimensions-value';
import {I18N} from '@app/i18n';
import {ALL_NETWORKS_ID} from '@app/models/provider';
import {ALL_NETWORKS_ID, Provider} from '@app/models/provider';
import {ModalType, Modals} from '@app/types';

import {SettingsProvidersAllNetworksRow} from '../settings/settings-providers/settings-providers-all-networks-row';
import {SettingsProvidersRow} from '../settings/settings-providers/settings-providers-row';

export function ProvidersBottomSheet({
title,
providers,
initialProviderId: initialProvider,
providers: outProviders,
initialProviderChainId,
closeDistance,
eventSuffix = '',
onClose,
desableAllNetworksOption,
}: Modals[ModalType.providersBottomSheet]) {
const [searchProviderValue, setSearchProviderValue] = useState('');
const providers = useMemo(
() =>
outProviders ?? desableAllNetworksOption
? Provider.getAllNetworks()
: Provider.getAll(),
[desableAllNetworksOption],
);

const closeDistanceCalculated = useCalculatedDimensionsValue(
() => closeDistance?.(),
[closeDistance],
);
const onPressProvider = useCallback(
(providerId: string) => {
if (providerId === initialProvider) {
(providerChainId: number) => {
if (providerChainId === initialProviderChainId) {
// close if selected same provider
return onCloseModal();
}
onClose?.();
app.emit(`provider-selected${eventSuffix}`, providerId);
app.emit(
`provider-selected${eventSuffix}`,
Provider.getByEthChainId(providerChainId)?.id,
);
},
[eventSuffix, onClose],
);
Expand Down Expand Up @@ -98,7 +109,7 @@ export function ProvidersBottomSheet({
if (item.id === ALL_NETWORKS_ID) {
return (
<SettingsProvidersAllNetworksRow
providerId={initialProvider}
providerChainId={initialProviderChainId}
item={item}
onPress={onPressProvider}
/>
Expand All @@ -107,7 +118,7 @@ export function ProvidersBottomSheet({

return (
<SettingsProvidersRow
providerId={initialProvider}
providerChainId={initialProviderChainId}
item={item}
onPress={onPressProvider}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,22 @@ import {TouchableWithoutFeedback, View} from 'react-native';
import {Color} from '@app/colors';
import {DataContent, Icon, IconsName, Spacer} from '@app/components/ui';
import {createTheme} from '@app/helpers';
import {ALL_NETWORKS_ID, ProviderModel} from '@app/models/provider';
import {ALL_NETWORKS_CHAIN_ID, ProviderModel} from '@app/models/provider';

export type SettingsProvidersAllNetworksRowProps = {
item: ProviderModel;
providerId: string;
onPress: (providerId: string) => void;
providerChainId: number;
onPress: (providerChainId: number) => void;
};
export const SettingsProvidersAllNetworksRow = ({
item,
onPress,
providerId,
providerChainId,
}: SettingsProvidersAllNetworksRowProps) => {
return (
<TouchableWithoutFeedback
onPress={() => {
onPress(item.id);
onPress(item.ethChainId);
}}>
<View style={styles.container}>
<View style={styles.iconWrapper}>
Expand All @@ -33,7 +33,7 @@ export const SettingsProvidersAllNetworksRow = ({
<Spacer width={12} />
<DataContent style={styles.info} title={item.name} />
<Spacer flex={1} />
{providerId === ALL_NETWORKS_ID && (
{providerChainId === ALL_NETWORKS_CHAIN_ID && (
<Icon color={Color.graphicGreen1} name="check" i24 />
)}
</View>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,18 @@ import {ProviderModel} from '@app/models/provider';

export type SettingsProvidersRowProps = {
item: ProviderModel;
providerId: string;
onPress: (providerId: string) => void;
providerChainId: number;
onPress: (providerChainId: number) => void;
};
export const SettingsProvidersRow = ({
item,
onPress,
providerId,
providerChainId,
}: SettingsProvidersRowProps) => {
return (
<TouchableWithoutFeedback
onPress={() => {
onPress(item.id);
onPress(item.ethChainId);
}}>
<View style={styles.container}>
<ImageWrapper source={item.icon} style={styles.icon} />
Expand All @@ -31,7 +31,7 @@ export const SettingsProvidersRow = ({
subtitle={`${item.name} (${item.ethChainId})`}
/>
<Spacer flex={1} />
{providerId === item.id && (
{providerChainId === item.ethChainId && (
<Icon color={Color.graphicGreen1} name="check" i24 />
)}
</View>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,24 @@ import {SettingsProvidersRow} from './settings-providers-row';

export type SettingsProvidersProps = {
providers: ProviderModel[];
providerId: string;
onSelect: (providerId: string) => void;
providerChainId: number;
onSelect: (providerChainId: number) => void;
};

export const SettingsProviders = ({
providers,
providerId,
providerChainId,
onSelect,
}: SettingsProvidersProps) => {
return (
<FlatList
key={providerId}
key={providerChainId}
data={providers}
renderItem={({item}) => (
<SettingsProvidersRow
item={item}
onPress={onSelect}
providerId={providerId}
providerChainId={providerChainId}
/>
)}
keyExtractor={item => item.id}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import {
Spacer,
Text,
TextField,
TextVariant,
} from '@app/components/ui';
import {hideModal} from '@app/helpers';
import {I18N} from '@app/i18n';
Expand Down Expand Up @@ -71,7 +72,7 @@ export const SignInRestore = ({
testID={testID}>
<KeyboardSafeArea style={page.container} testID={`${testID}_area`}>
<Text
t11
variant={TextVariant.t11}
color={getColor(Color.textBase2)}
i18n={I18N.signinRestoreWalletPhraseOrKey}
style={page.intro}
Expand All @@ -96,7 +97,7 @@ export const SignInRestore = ({
<IconButton onPress={onPressPaste} style={page.button}>
<Text
color={Color.textGreen1}
t14
variant={TextVariant.t14}
i18n={I18N.signinRestoreWalletPasteClipboard}
/>
</IconButton>
Expand Down
16 changes: 8 additions & 8 deletions src/components/stories/stories-preview-item.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import React, {memo, useCallback, useMemo} from 'react';

import {ImageURISource, StyleSheet, TouchableOpacity, View} from 'react-native';
import {StyleSheet, TouchableOpacity, View} from 'react-native';
import BlastedImage from 'react-native-blasted-image';

import {Color} from '@app/colors';
import {Spacer, Text} from '@app/components/ui';
import {Spacer, Text, TextVariant} from '@app/components/ui';
import {createTheme} from '@app/helpers';
import {IStory} from '@app/types';

Expand All @@ -15,8 +15,8 @@ type Props = {
};

export const StoriesPreviewItem = memo(({item, onPress, seen}: Props) => {
const source: ImageURISource = {
uri: item.preview,
const source = {
uri: item.preview ?? '',
};
const borderColor = useMemo(
() => (seen ? styles.borderSeen : styles.borderUnseen),
Expand All @@ -41,12 +41,12 @@ export const StoriesPreviewItem = memo(({item, onPress, seen}: Props) => {

<Spacer height={2} />
<Text
t17
children={item.title}
variant={TextVariant.t17}
style={styles.title}
numberOfLines={2}
color={titleColor}
/>
color={titleColor}>
{item.title}
</Text>
</TouchableOpacity>
);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,9 @@ const StoryImage: FC<StoryImageProps> = memo(
width={WIDTH}
style={imageStyles ?? {}}
resizeMode="cover"
// @ts-ignore
testID="storyImageComponent"
onLayout={e =>
onLayout={(e: any) =>
onImageLayout(Math.min(HEIGHT, e.nativeEvent.layout.height))
}
onLoad={() => onContentLoad()}
Expand Down
Loading
Loading