Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
4d2597d
refactor: replace custom mnemonic validation with bip39.validateMnemonic
sergiy-zvyahelskiy Dec 1, 2025
32e327a
chore(tests): setup Jest and testing utilities
sergiy-zvyahelskiy Dec 3, 2025
aa704c6
Add address validation for existing networks
snezik Dec 3, 2025
67d0522
refactor the code according the PR feedback
snezik Dec 4, 2025
ac45ab2
delete redundant code
snezik Dec 4, 2025
e095b49
extract send button disabled logic into reusable variable
snezik Dec 4, 2025
1054cb9
refactor(tests): simplify Jest config and add unit tests for formatAm…
sergiy-zvyahelskiy Dec 5, 2025
338d2d1
fix(validation): standardize Tron address error message and remove mi…
snezik Dec 8, 2025
693732b
refactor(send): debounce address validation to avoid running on every…
snezik Dec 8, 2025
230cfee
add use-debounced-callback.ts file to repo
snezik Dec 8, 2025
017515f
Merge pull request #1 from idyllicvision/feature/mnemonic-validation
AndriianChestnykh Dec 9, 2025
1f7528d
Merge remote-tracking branch 'origin/feature/jest-config' into develop
AndriianChestnykh Dec 9, 2025
1de81ff
Merge pull request #2 from idyllicvision/feature/address-validation
AndriianChestnykh Dec 11, 2025
d86d3c9
WIP: BigNumber migration
sergiy-zvyahelskiy Dec 11, 2025
dac8a39
chore(eslint,tsconfig): fix alias resolution and improve BigNumber im…
sergiy-zvyahelskiy Dec 11, 2025
85612e1
WIP: add formatUSDValueBN and update ActivityScreen to use BigNumber
sergiy-zvyahelskiy Dec 11, 2025
decef84
Update: migrate TokenDetails to BigNumber
sergiy-zvyahelskiy Dec 12, 2025
a6e0b5c
Update: migrate WalletScreen to BigNumber
sergiy-zvyahelskiy Dec 13, 2025
f0b7ab9
Update: migrate SelectNetworkScreen and SelectTokenScreen to BigNumber
sergiy-zvyahelskiy Dec 16, 2025
14b508b
apply bigNumber for details screen
snezik Dec 16, 2025
7beb9b2
Merge remote-tracking branch 'origin/feature/bignumber-integration' i…
snezik Dec 16, 2025
8cbac7a
Rename SEGWIT network to BITCOIN
AndriianChestnykh Dec 16, 2025
1a70355
Merge branch 'tetherto:develop' into develop
AndriianChestnykh Dec 16, 2025
9b2a732
Merge branch 'develop' into chore/rename-btc-network
AndriianChestnykh Dec 17, 2025
a2fcdd8
Add unit tests for BN utilities and replace format functions
sergiy-zvyahelskiy Dec 17, 2025
3d498e9
refactor(utils): consolidate and centralize imports via utils/index
sergiy-zvyahelskiy Dec 18, 2025
a215de7
refactor(pricing-service): replace old getFiatValue with BN-based imp…
sergiy-zvyahelskiy Dec 18, 2025
a7e804c
refactor: remove unused decimal.js dependency
sergiy-zvyahelskiy Dec 18, 2025
65e7df9
refactor: remove outdated comments
sergiy-zvyahelskiy Dec 18, 2025
dd7cdc9
refactor: replace Number(…) with BigNumber.toNumber()
sergiy-zvyahelskiy Dec 18, 2025
9a1bf71
Merge branch 'tetherto:develop' into develop
AndriianChestnykh Dec 19, 2025
ce795d6
Merge pull request #5 from idyllicvision/chore/rename-btc-network
AndriianChestnykh Dec 19, 2025
292a9c0
Merge remote-tracking branch 'origin/develop' into feature/bignumber-…
AndriianChestnykh Dec 19, 2025
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
1 change: 1 addition & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ module.exports = defineConfig([
},
rules: {
'prettier/prettier': 'error',
'import/no-named-as-default': 'off',
},
},
{
Expand Down
241 changes: 237 additions & 4 deletions package-lock.json

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

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@
"@tetherto/wdk-uikit-react-native": "^1.0.0-beta.2",
"@ton/core": "^0.62.0",
"b4a": "^1.7.2",
"bignumber.js": "^9.3.1",
"bip39": "^3.1.0",
"browserify-zlib": "^0.2.0",
"decimal.js": "^10.6.0",
"events": "^3.3.0",
"expo": "~54.0.8",
"expo-build-properties": "~1.0.9",
Expand Down
12 changes: 5 additions & 7 deletions src/app/activity.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,23 @@ import { Transaction, TransactionList } from '@tetherto/wdk-uikit-react-native';
import React, { useEffect, useState } from 'react';
import { StyleSheet, View } from 'react-native';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { assetConfig } from '../config/assets';
import { FiatCurrency, pricingService } from '../services/pricing-service';
import formatTokenAmount from '@/utils/format-token-amount';
import formatUSDValue from '@/utils/format-usd-value';
import { assetConfig } from '@/config/assets';
import { FiatCurrency, pricingService } from '@/services/pricing-service';
import Header from '@/components/header';
import { colors } from '@/constants/colors';
import { formatTokenAmount, formatUSDValue, bn } from '@/utils';

export default function ActivityScreen() {
const insets = useSafeAreaInsets();
const { transactions: walletTransactions, addresses } = useWallet();
const [transactions, setTransactions] = useState<Transaction[]>([]);

// Transform wallet transactions to display format with fiat values
const getTransactionsWithFiatValues = async () => {
if (!walletTransactions.list) return [];

// Get the wallet's own addresses for comparison
const walletAddresses = addresses
? Object.values(addresses).map(addr => addr.toLowerCase())
? Object.values(addresses).map((addr) => addr.toLowerCase())
: [];

// Sort transactions by timestamp (newest first) and calculate fiat values
Expand All @@ -31,7 +29,7 @@ export default function ActivityScreen() {
.map(async (tx, index) => {
const fromAddress = tx.from?.toLowerCase();
const isSent = walletAddresses.includes(fromAddress);
const amount = parseFloat(tx.amount);
const amount = bn(tx.amount);
const config = assetConfig[tx.token as keyof typeof assetConfig];

// Calculate fiat amount using pricing service
Expand Down
15 changes: 7 additions & 8 deletions src/app/assets.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@ import { useDebouncedNavigation } from '@/hooks/use-debounced-navigation';
import React, { useEffect, useState } from 'react';
import { Image, ScrollView, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { Asset, assetConfig } from '../config/assets';
import formatAmount from '@/utils/format-amount';
import getDisplaySymbol from '@/utils/get-display-symbol';
import formatTokenAmount from '@/utils/format-token-amount';
import { Asset, assetConfig } from '@/config/assets';
import Header from '@/components/header';
import { colors } from '@/constants/colors';
import BigNumber from 'bignumber.js';
import { formatAmount, getDisplaySymbol, formatTokenAmount, add, bn } from '@/utils';

export default function AssetsScreen() {
const insets = useSafeAreaInsets();
Expand All @@ -21,13 +20,13 @@ export default function AssetsScreen() {
const getAssetsWithFiatValue = async () => {
if (!balances.list) return [];

const balanceMap = new Map<string, { totalBalance: number }>();
const balanceMap = new Map<string, { totalBalance: BigNumber }>();

// Sum up balances by denomination across all networks
balances.list.forEach(balance => {
const current = balanceMap.get(balance.denomination) || { totalBalance: 0 };
const current = balanceMap.get(balance.denomination) || { totalBalance: bn('0') };
balanceMap.set(balance.denomination, {
totalBalance: current.totalBalance + parseFloat(balance.value),
totalBalance: add(current.totalBalance, bn(balance.value)),
});
});

Expand Down Expand Up @@ -63,7 +62,7 @@ export default function AssetsScreen() {

// Sort by USD value descending
return assetList.sort((a, b) => {
return b.fiatValue - a.fiatValue;
return b.fiatValue.toNumber() - a.fiatValue.toNumber();
});
};

Expand Down
1 change: 0 additions & 1 deletion src/app/authorize.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { Fingerprint, Shield } from 'lucide-react-native';
import React, { useEffect, useState } from 'react';
import { ActivityIndicator, Alert, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import parseWorkletError from '@/utils/parse-worklet-error';
import { colors } from '@/constants/colors';
import getErrorMessage from '@/utils/get-error-message';

Expand Down
Loading