Skip to content

Commit

Permalink
Merge branch 'dev' of https://github.com/cocrafts/walless into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
halv1s committed Nov 21, 2023
2 parents bd2007e + 5e4552a commit 0935ebc
Show file tree
Hide file tree
Showing 13 changed files with 199 additions and 185 deletions.
238 changes: 117 additions & 121 deletions apps/mobile/ios/Podfile.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion apps/mobile/ios/walless.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../../../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../../../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
};
209B33D8A45A5D26309CDD28 /* [CP-User] [RNFB] Core Configuration */ = {
isa = PBXShellScriptBuildPhase;
Expand Down
4 changes: 2 additions & 2 deletions apps/mobile/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,11 @@
},
"devDependencies": {
"@types/jest": "^29.2.1",
"@types/react": "18.0.33",
"@types/react": "^18.2.25",
"@types/react-test-renderer": "^18.0.0",
"babel-jest": "^29.2.1",
"babel-plugin-transform-inline-environment-variables": "^0.4.4",
"eslint": "8.38.0",
"eslint": "^8.38.0",
"react-test-renderer": "18.2.0"
},
"peerDependencies": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import type { FC } from 'react';
import { Image, StyleSheet } from 'react-native';
import { Networks } from '@walless/core';
import { Text, View } from '@walless/gui';
import { modules } from '@walless/ioc';
import { useSnapshot } from 'valtio';

import {
Expand All @@ -26,23 +27,23 @@ export const RecipientInfo: FC<Props> = () => {

const tokenForFeeName = tokenForFee?.metadata?.symbol || 'Unknown';

const iconUri = { uri: '' };
let iconUri;
let networkStr = '';
let feeStr = '';
if (publicKey?.network == Networks.solana) {
iconUri.uri = '/img/network/solana-icon-sm.png';
iconUri = modules.asset.widget.solana.storeMeta.iconUri;
networkStr = 'Solana';
feeStr = `${transactionFee} ${tokenForFeeName}`;
} else if (publicKey?.network == Networks.sui) {
iconUri.uri = '/img/network/sui-icon-sm.png';
iconUri = modules.asset.widget.sui.storeMeta.iconUri;
networkStr = 'SUI';
feeStr = `${transactionFee} SUI`;
} else if (publicKey?.network == Networks.tezos) {
iconUri.uri = '/img/network/tezos-icon-sm.png';
iconUri = modules.asset.widget.tezos.storeMeta.iconUri;
networkStr = 'Tezos';
feeStr = `${transactionFee} TEZ`;
} else if (publicKey?.network == Networks.aptos) {
iconUri.uri = '/img/explore/logo-aptos.png';
} else if (publicKey?.network === Networks.aptos) {
iconUri = modules.asset.widget.aptos.storeMeta.iconUri;
networkStr = 'Aptos';
feeStr = `${transactionFee} APT`;
}
Expand All @@ -61,7 +62,8 @@ export const RecipientInfo: FC<Props> = () => {
<View style={styles.inforLine}>
<Text>Network</Text>
<View style={styles.networkBlock}>
<Image style={styles.icon} source={iconUri} />
{iconUri && <Image style={styles.icon} source={iconUri} />}

<Text style={styles.inforText}>{networkStr}</Text>
</View>
</View>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import type { FC } from 'react';
import { Image, StyleSheet } from 'react-native';
import { Networks } from '@walless/core';
import { Text, View } from '@walless/gui';
import { modules } from '@walless/ioc';
import { useSnapshot } from 'valtio';

import {
Expand All @@ -28,27 +29,27 @@ export const SenderInfo: FC<Props> = () => {
transactionActions.setSender(publicKey._id);
}

const iconUri = { uri: '' };
let iconUri;
let walletTitle = '';
if (publicKey?.network == Networks.solana) {
iconUri.uri = '/img/network/solana-icon-sm.png';
iconUri = modules.asset.widget.solana.storeMeta.iconUri;
walletTitle = 'Solana';
} else if (publicKey?.network == Networks.sui) {
iconUri.uri = '/img/network/sui-icon-sm.png';
walletTitle = 'SUI';
iconUri = modules.asset.widget.sui.storeMeta.iconUri;
walletTitle = 'Sui';
} else if (publicKey?.network == Networks.tezos) {
iconUri.uri = '/img/network/tezos-icon-sm.png';
iconUri = modules.asset.widget.tezos.storeMeta.iconUri;
walletTitle = 'Tezos';
} else if (publicKey?.network == Networks.aptos) {
iconUri.uri = '/img/explore/logo-aptos.png';
} else if (publicKey?.network === Networks.aptos) {
iconUri = modules.asset.widget.aptos.storeMeta.iconUri;
walletTitle = 'Aptos';
}

return (
<View style={styles.container}>
<Text style={styles.title}>From account</Text>
<View style={styles.inforBlock}>
<Image style={styles.icon} source={iconUri} />
{iconUri && <Image style={styles.icon} source={iconUri} />}
<View style={styles.wallet}>
<Text style={styles.walletTitle}>Wallet 1 {`(${walletTitle})`}</Text>
<Text style={styles.walletAddress}>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import type { FC } from 'react';
import { Image, StyleSheet } from 'react-native';
import { Networks } from '@walless/core';
import { Text, View } from '@walless/gui';
import { modules } from '@walless/ioc';
import { ResponseCode } from '@walless/messaging';
import { useSnapshot } from 'valtio';

Expand Down Expand Up @@ -36,21 +37,25 @@ export const Information: FC<Props> = () => {

const tokenForFeeName = tokenForFee?.metadata?.symbol || 'Unknown';

const iconUri = { uri: '' };
let iconUri;
let networkStr = '';
let feeStr = '';
if (publicKey?.network == Networks.solana) {
iconUri.uri = '/img/network/solana-icon-sm.png';
iconUri = modules.asset.widget.solana.storeMeta.iconUri;
networkStr = 'Solana';
feeStr = `${transactionFee} ${tokenForFeeName}`;
} else if (publicKey?.network == Networks.sui) {
iconUri.uri = '/img/network/sui-icon-sm.png';
iconUri = modules.asset.widget.sui.storeMeta.iconUri;
networkStr = 'SUI';
feeStr = `${transactionFee} SUI`;
} else if (publicKey?.network == Networks.tezos) {
iconUri.uri = '/img/network/tezos-icon-sm.png';
iconUri = modules.asset.widget.tezos.storeMeta.iconUri;
networkStr = 'Tezos';
feeStr = `${transactionFee} TEZ`;
} else if (publicKey?.network === Networks.aptos) {
iconUri = modules.asset.widget.aptos.storeMeta.iconUri;
networkStr = 'Aptos';
feeStr = `${transactionFee} APT`;
}

return (
Expand Down Expand Up @@ -81,7 +86,7 @@ export const Information: FC<Props> = () => {
<View style={styles.inforLine}>
<Text>Network</Text>
<View style={styles.networkBlock}>
<Image style={styles.icon} source={iconUri} />
{iconUri && <Image style={styles.icon} source={iconUri} />}
<Text style={styles.inforText}>{networkStr}</Text>
</View>
</View>
Expand Down
4 changes: 2 additions & 2 deletions packages/engine/crawlers/aptos/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,13 @@ export const aptosEngineRunner: EngineRunner<Provider> = {
aptosActions.setPendingTokens(pendingNfts);
}
} catch (error) {
console.log('--> aptos crawler error', error);
console.log('aptos crawler error', error);
}

try {
await constructAptosTokens(connection, pubkey);
} catch (error) {
console.log('--> aptos crawler error', error);
console.log('aptos crawler error', error);
}
};

Expand Down
30 changes: 19 additions & 11 deletions packages/engine/crawlers/sui/subscription.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,18 @@ export const suiTokenSubscribe = (
) => {
suiSubscriptionPool.push(
setInterval(async () => {
const coinsBalance = await connection.getAllBalances({ owner });
try {
const coinsBalance = await connection.getAllBalances({ owner });

coinsBalance.forEach((coin) => {
updateTokenBalanceToStorage(
`${owner}/token/${coin.coinType}`,
coin.totalBalance,
);
});
coinsBalance.forEach((coin) => {
updateTokenBalanceToStorage(
`${owner}/token/${coin.coinType}`,
coin.totalBalance,
);
});
} catch (e) {
console.log('sui token live watch error', e);
}
}, 5000),
);
};
Expand All @@ -32,11 +36,15 @@ export const suiCollectibleSubscribe = async (
) => {
suiSubscriptionPool.push(
setInterval(async () => {
const collectibleDocs = await getSuiCollectibles(connection, owner);
try {
const collectibleDocs = await getSuiCollectibles(connection, owner);

collectibleDocs.forEach((collectible) =>
addCollectibleToStorage(collectible._id, collectible),
);
collectibleDocs.forEach((collectible) =>
addCollectibleToStorage(collectible._id, collectible),
);
} catch (e) {
console.log('sui collectible live watch error', e);
}
}, 30000),
);
};
Expand Down
9 changes: 6 additions & 3 deletions packages/engine/crawlers/tezos/token.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,12 @@ export const getNativeTokenDocument = async (
{ connection }: TezosContext,
address: string,
): Promise<TokenDocument> => {
const balance = (await connection.tz.getBalance(address))
.toNumber()
.toString();
let balance = '0';
try {
balance = (await connection.tz.getBalance(address)).toNumber().toString();
} catch (e) {
console.log('tezos get balance for native token error', e);
}

return {
_id: `${address}/token/tezos-native-token`,
Expand Down
10 changes: 6 additions & 4 deletions packages/gui/components/ModalManager/ModalContainer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import Animated, {

import type { ModalConfigs } from '../../states/modal';
import {
getSafeId,
measureRelative,
modalActions,
modalState,
Expand All @@ -44,7 +45,6 @@ export const ModalContainer: FC<Props> = ({ item }) => {
maskActiveOpacity = 0.5,
withoutMask,
fullWidth = true,
bindingRef,
} = item;
const layout = useRef<LayoutRectangle>();
const top = useSharedValue(0);
Expand Down Expand Up @@ -92,12 +92,14 @@ export const ModalContainer: FC<Props> = ({ item }) => {

useEffect(() => {
if (Platform.OS !== 'web') return;
const actualBindingRef = bindingRef || referenceMap.root;
const actualBindingRef = referenceMap[getSafeId(id)] || referenceMap.root;
if (!actualBindingRef.current) return;

const bindingObserver = new ResizeObserver(async () => {
const updatedBindingRectangle = await measureRelative(item.bindingRef);
const safeId = id || 'default-modal';
const safeId = getSafeId(item.id);
const updatedBindingRectangle = await measureRelative(
referenceMap[safeId],
);
modalState.map.set(safeId, {
...item,
bindingRectangle: updatedBindingRectangle,
Expand Down
12 changes: 8 additions & 4 deletions packages/gui/states/modal/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { RefObject } from 'react';
import type { View } from 'react-native';
import { proxy, ref } from 'valtio';
import { proxy } from 'valtio';
import { proxyMap } from 'valtio/utils';

import { measureRelative, referenceMap } from './helper';
Expand All @@ -11,18 +11,21 @@ export const modalState = proxy<ModalState>({
map: proxyMap(),
});

export const getSafeId = (id?: string): string => id || 'default-modal';

export const modalActions = {
setContainerRef: (ref: RefObject<View>): void => {
referenceMap.root = ref;
},
show: ({ id, bindingRef, ...restConfigs }: ShowModalConfigs): void => {
const safeId = id || 'default-modal';
const safeId = getSafeId(id);

measureRelative(bindingRef).then((layout) => {
if (bindingRef) referenceMap[safeId] = bindingRef;

modalState.map.set(safeId, {
id: safeId,
bindingRectangle: layout,
bindingRef: bindingRef && (ref(bindingRef) as never as RefObject<View>),
...restConfigs,
});
});
Expand All @@ -35,8 +38,9 @@ export const modalActions = {
}
},
destroy: (id?: string): void => {
const safeId = id || 'default-modal';
const safeId = getSafeId(id);
modalState.map.delete(safeId);
delete referenceMap[safeId];
},
};

Expand Down
8 changes: 6 additions & 2 deletions packages/gui/states/modal/type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ export interface PositionOffset {

export interface ModalConfigs {
id?: string;
bindingRef?: RefObject<View>;
bindingRectangle?: LayoutRectangle;
bindingDirection?: BindDirections;
animateDirection?: AnimateDirections;
Expand All @@ -62,7 +61,12 @@ export interface ModalConfigs {
fullWidth?: boolean;
}

export type ShowModalConfigs = Omit<ModalConfigs, 'bindingRectangle' | 'hide'>;
export type ShowModalConfigs = Omit<
ModalConfigs,
'bindingRectangle' | 'hide'
> & {
bindingRef?: RefObject<View>;
};

export interface ModalState {
count: number;
Expand Down
19 changes: 4 additions & 15 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -11092,7 +11092,7 @@ __metadata:
languageName: node
linkType: hard

"@types/react@npm:*, @types/react@npm:>=16.0.0, @types/react@npm:^18.0.28":
"@types/react@npm:*, @types/react@npm:>=16.0.0, @types/react@npm:^18.0.28, @types/react@npm:^18.2.25":
version: 18.2.37
resolution: "@types/react@npm:18.2.37"
dependencies:
Expand All @@ -11103,17 +11103,6 @@ __metadata:
languageName: node
linkType: hard

"@types/react@npm:18.0.33":
version: 18.0.33
resolution: "@types/react@npm:18.0.33"
dependencies:
"@types/prop-types": "*"
"@types/scheduler": "*"
csstype: ^3.0.2
checksum: 4fbd2b2b6a26378bdfde121081a6406ec2d39e4ba87ea5f6897ab7bb2198713165e6fd703ad4ed7ba1d4f23ef54a4c9f108f3105c7ed8e136411ee6bdebc5669
languageName: node
linkType: hard

"@types/responselike@npm:^1.0.0":
version: 1.0.3
resolution: "@types/responselike@npm:1.0.3"
Expand Down Expand Up @@ -11636,7 +11625,7 @@ __metadata:
"@react-navigation/stack": ^6.3.16
"@toruslabs/customauth-react-native-sdk": ^4.0.1
"@types/jest": ^29.2.1
"@types/react": 18.0.33
"@types/react": ^18.2.25
"@types/react-test-renderer": ^18.0.0
"@walless/app": "*"
"@walless/auth": "*"
Expand All @@ -11648,7 +11637,7 @@ __metadata:
babel-jest: ^29.2.1
babel-plugin-transform-inline-environment-variables: ^0.4.4
ed25519-hd-key: ^1.3.0
eslint: 8.38.0
eslint: ^8.38.0
events: ^3.3.0
pouchdb-adapter-http: ^8.0.1
pouchdb-adapter-react-native-sqlite: ^3.0.1
Expand Down Expand Up @@ -16694,7 +16683,7 @@ __metadata:
languageName: node
linkType: hard

"eslint@npm:^8.51.0":
"eslint@npm:^8.38.0, eslint@npm:^8.51.0":
version: 8.54.0
resolution: "eslint@npm:8.54.0"
dependencies:
Expand Down

0 comments on commit 0935ebc

Please sign in to comment.