@0xsequence/wallet-widget 0.0.0-20250314205219
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +219 -0
- package/README.md +53 -0
- package/dist/cjs/components/Alert.js +15 -0
- package/dist/cjs/components/Alert.js.map +1 -0
- package/dist/cjs/components/CoinRow.js +19 -0
- package/dist/cjs/components/CoinRow.js.map +1 -0
- package/dist/cjs/components/CollectibleTileImage.js +10 -0
- package/dist/cjs/components/CollectibleTileImage.js.map +1 -0
- package/dist/cjs/components/CopyButton.js +25 -0
- package/dist/cjs/components/CopyButton.js.map +1 -0
- package/dist/cjs/components/DefaultIcon.js +13 -0
- package/dist/cjs/components/DefaultIcon.js.map +1 -0
- package/dist/cjs/components/FeeOptionSelector.js +48 -0
- package/dist/cjs/components/FeeOptionSelector.js.map +1 -0
- package/dist/cjs/components/InfiniteScroll.js +42 -0
- package/dist/cjs/components/InfiniteScroll.js.map +1 -0
- package/dist/cjs/components/Loader.js +10 -0
- package/dist/cjs/components/Loader.js.map +1 -0
- package/dist/cjs/components/NavigationHeader/index.js +26 -0
- package/dist/cjs/components/NavigationHeader/index.js.map +1 -0
- package/dist/cjs/components/NetworkBadge.js +18 -0
- package/dist/cjs/components/NetworkBadge.js.map +1 -0
- package/dist/cjs/components/SelectButton/SelectButton.js +12 -0
- package/dist/cjs/components/SelectButton/SelectButton.js.map +1 -0
- package/dist/cjs/components/SelectButton/SelectedIndicator.js +12 -0
- package/dist/cjs/components/SelectButton/SelectedIndicator.js.map +1 -0
- package/dist/cjs/components/SelectButton/index.js +6 -0
- package/dist/cjs/components/SelectButton/index.js.map +1 -0
- package/dist/cjs/components/SendItemInfo.js +21 -0
- package/dist/cjs/components/SendItemInfo.js.map +1 -0
- package/dist/cjs/components/SequenceWalletProvider/SequenceWalletProvider.js +55 -0
- package/dist/cjs/components/SequenceWalletProvider/SequenceWalletProvider.js.map +1 -0
- package/dist/cjs/components/SequenceWalletProvider/index.js +18 -0
- package/dist/cjs/components/SequenceWalletProvider/index.js.map +1 -0
- package/dist/cjs/components/SequenceWalletProvider/utils/index.js +84 -0
- package/dist/cjs/components/SequenceWalletProvider/utils/index.js.map +1 -0
- package/dist/cjs/components/TransactionConfirmation.js +65 -0
- package/dist/cjs/components/TransactionConfirmation.js.map +1 -0
- package/dist/cjs/components/TransactionHistoryList/TransactionHistoryItem.js +117 -0
- package/dist/cjs/components/TransactionHistoryList/TransactionHistoryItem.js.map +1 -0
- package/dist/cjs/components/TransactionHistoryList/TransactionHistorySkeleton.js +17 -0
- package/dist/cjs/components/TransactionHistoryList/TransactionHistorySkeleton.js.map +1 -0
- package/dist/cjs/components/TransactionHistoryList/index.js +97 -0
- package/dist/cjs/components/TransactionHistoryList/index.js.map +1 -0
- package/dist/cjs/components/WalletHeader/components/AccountInformation.js +15 -0
- package/dist/cjs/components/WalletHeader/components/AccountInformation.js.map +1 -0
- package/dist/cjs/components/WalletHeader/components/WalletDropdownContent.js +57 -0
- package/dist/cjs/components/WalletHeader/components/WalletDropdownContent.js.map +1 -0
- package/dist/cjs/components/WalletHeader/index.js +87 -0
- package/dist/cjs/components/WalletHeader/index.js.map +1 -0
- package/dist/cjs/constants/abi.js +92 -0
- package/dist/cjs/constants/abi.js.map +1 -0
- package/dist/cjs/constants/currency.js +29 -0
- package/dist/cjs/constants/currency.js.map +1 -0
- package/dist/cjs/constants/index.js +20 -0
- package/dist/cjs/constants/index.js.map +1 -0
- package/dist/cjs/constants/sizing.js +5 -0
- package/dist/cjs/constants/sizing.js.map +1 -0
- package/dist/cjs/contexts/Navigation.js +8 -0
- package/dist/cjs/contexts/Navigation.js.map +1 -0
- package/dist/cjs/contexts/WalletModal.js +8 -0
- package/dist/cjs/contexts/WalletModal.js.map +1 -0
- package/dist/cjs/contexts/genericContext.js +20 -0
- package/dist/cjs/contexts/genericContext.js.map +1 -0
- package/dist/cjs/contexts/index.js +19 -0
- package/dist/cjs/contexts/index.js.map +1 -0
- package/dist/cjs/hooks/index.js +20 -0
- package/dist/cjs/hooks/index.js.map +1 -0
- package/dist/cjs/hooks/useNavigation.js +23 -0
- package/dist/cjs/hooks/useNavigation.js.map +1 -0
- package/dist/cjs/hooks/useOpenWalletModal.js +10 -0
- package/dist/cjs/hooks/useOpenWalletModal.js.map +1 -0
- package/dist/cjs/hooks/useScrollbarWidth.js +13 -0
- package/dist/cjs/hooks/useScrollbarWidth.js.map +1 -0
- package/dist/cjs/hooks/useSettings.js +100 -0
- package/dist/cjs/hooks/useSettings.js.map +1 -0
- package/dist/cjs/index.js +12 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/utils/helpers.js +49 -0
- package/dist/cjs/utils/helpers.js.map +1 -0
- package/dist/cjs/utils/index.js +19 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/tokens.js +78 -0
- package/dist/cjs/utils/tokens.js.map +1 -0
- package/dist/cjs/views/CoinDetails/Skeleton.js +13 -0
- package/dist/cjs/views/CoinDetails/Skeleton.js.map +1 -0
- package/dist/cjs/views/CoinDetails/index.js +90 -0
- package/dist/cjs/views/CoinDetails/index.js.map +1 -0
- package/dist/cjs/views/CollectibleDetails/Skeleton.js +14 -0
- package/dist/cjs/views/CollectibleDetails/Skeleton.js.map +1 -0
- package/dist/cjs/views/CollectibleDetails/index.js +83 -0
- package/dist/cjs/views/CollectibleDetails/index.js.map +1 -0
- package/dist/cjs/views/CollectionDetails/Skeleton.js +15 -0
- package/dist/cjs/views/CollectionDetails/Skeleton.js.map +1 -0
- package/dist/cjs/views/CollectionDetails/index.js +50 -0
- package/dist/cjs/views/CollectionDetails/index.js.map +1 -0
- package/dist/cjs/views/History.js +19 -0
- package/dist/cjs/views/History.js.map +1 -0
- package/dist/cjs/views/Home/components/AssetSummary/CoinTile/CoinTileContent.js +14 -0
- package/dist/cjs/views/Home/components/AssetSummary/CoinTile/CoinTileContent.js.map +1 -0
- package/dist/cjs/views/Home/components/AssetSummary/CoinTile/index.js +60 -0
- package/dist/cjs/views/Home/components/AssetSummary/CoinTile/index.js.map +1 -0
- package/dist/cjs/views/Home/components/AssetSummary/CollectibleTile/index.js +17 -0
- package/dist/cjs/views/Home/components/AssetSummary/CollectibleTile/index.js.map +1 -0
- package/dist/cjs/views/Home/components/AssetSummary/SkeletonTiles.js +14 -0
- package/dist/cjs/views/Home/components/AssetSummary/SkeletonTiles.js.map +1 -0
- package/dist/cjs/views/Home/components/AssetSummary/index.js +98 -0
- package/dist/cjs/views/Home/components/AssetSummary/index.js.map +1 -0
- package/dist/cjs/views/Home/index.js +10 -0
- package/dist/cjs/views/Home/index.js.map +1 -0
- package/dist/cjs/views/Receive.js +42 -0
- package/dist/cjs/views/Receive.js.map +1 -0
- package/dist/cjs/views/Search/SearchWallet.js +112 -0
- package/dist/cjs/views/Search/SearchWallet.js.map +1 -0
- package/dist/cjs/views/Search/SearchWalletViewAll.js +169 -0
- package/dist/cjs/views/Search/SearchWalletViewAll.js.map +1 -0
- package/dist/cjs/views/Search/components/BalanceItem.js +52 -0
- package/dist/cjs/views/Search/components/BalanceItem.js.map +1 -0
- package/dist/cjs/views/Search/components/CoinsTab.js +49 -0
- package/dist/cjs/views/Search/components/CoinsTab.js.map +1 -0
- package/dist/cjs/views/Search/components/CollectionsTab.js +49 -0
- package/dist/cjs/views/Search/components/CollectionsTab.js.map +1 -0
- package/dist/cjs/views/Search/components/WalletLink.js +15 -0
- package/dist/cjs/views/Search/components/WalletLink.js.map +1 -0
- package/dist/cjs/views/Search/index.js +19 -0
- package/dist/cjs/views/Search/index.js.map +1 -0
- package/dist/cjs/views/SendCoin.js +198 -0
- package/dist/cjs/views/SendCoin.js.map +1 -0
- package/dist/cjs/views/SendCollectible.js +237 -0
- package/dist/cjs/views/SendCollectible.js.map +1 -0
- package/dist/cjs/views/Settings/Currency.js +16 -0
- package/dist/cjs/views/Settings/Currency.js.map +1 -0
- package/dist/cjs/views/Settings/General.js +23 -0
- package/dist/cjs/views/Settings/General.js.map +1 -0
- package/dist/cjs/views/Settings/Menu.js +28 -0
- package/dist/cjs/views/Settings/Menu.js.map +1 -0
- package/dist/cjs/views/Settings/Network.js +35 -0
- package/dist/cjs/views/Settings/Network.js.map +1 -0
- package/dist/cjs/views/Settings/index.js +21 -0
- package/dist/cjs/views/Settings/index.js.map +1 -0
- package/dist/cjs/views/SwapCoin/SwapList.js +190 -0
- package/dist/cjs/views/SwapCoin/SwapList.js.map +1 -0
- package/dist/cjs/views/SwapCoin/index.js +89 -0
- package/dist/cjs/views/SwapCoin/index.js.map +1 -0
- package/dist/cjs/views/TransactionDetails/index.js +88 -0
- package/dist/cjs/views/TransactionDetails/index.js.map +1 -0
- package/dist/cjs/views/index.js +30 -0
- package/dist/cjs/views/index.js.map +1 -0
- package/dist/esm/components/Alert.js +11 -0
- package/dist/esm/components/Alert.js.map +1 -0
- package/dist/esm/components/CoinRow.js +14 -0
- package/dist/esm/components/CoinRow.js.map +1 -0
- package/dist/esm/components/CollectibleTileImage.js +6 -0
- package/dist/esm/components/CollectibleTileImage.js.map +1 -0
- package/dist/esm/components/CopyButton.js +21 -0
- package/dist/esm/components/CopyButton.js.map +1 -0
- package/dist/esm/components/DefaultIcon.js +9 -0
- package/dist/esm/components/DefaultIcon.js.map +1 -0
- package/dist/esm/components/FeeOptionSelector.js +41 -0
- package/dist/esm/components/FeeOptionSelector.js.map +1 -0
- package/dist/esm/components/InfiniteScroll.js +37 -0
- package/dist/esm/components/InfiniteScroll.js.map +1 -0
- package/dist/esm/components/Loader.js +6 -0
- package/dist/esm/components/Loader.js.map +1 -0
- package/dist/esm/components/NavigationHeader/index.js +22 -0
- package/dist/esm/components/NavigationHeader/index.js.map +1 -0
- package/dist/esm/components/NetworkBadge.js +14 -0
- package/dist/esm/components/NetworkBadge.js.map +1 -0
- package/dist/esm/components/SelectButton/SelectButton.js +8 -0
- package/dist/esm/components/SelectButton/SelectButton.js.map +1 -0
- package/dist/esm/components/SelectButton/SelectedIndicator.js +8 -0
- package/dist/esm/components/SelectButton/SelectedIndicator.js.map +1 -0
- package/dist/esm/components/SelectButton/index.js +2 -0
- package/dist/esm/components/SelectButton/index.js.map +1 -0
- package/dist/esm/components/SendItemInfo.js +16 -0
- package/dist/esm/components/SendItemInfo.js.map +1 -0
- package/dist/esm/components/SequenceWalletProvider/SequenceWalletProvider.js +50 -0
- package/dist/esm/components/SequenceWalletProvider/SequenceWalletProvider.js.map +1 -0
- package/dist/esm/components/SequenceWalletProvider/index.js +2 -0
- package/dist/esm/components/SequenceWalletProvider/index.js.map +1 -0
- package/dist/esm/components/SequenceWalletProvider/utils/index.js +79 -0
- package/dist/esm/components/SequenceWalletProvider/utils/index.js.map +1 -0
- package/dist/esm/components/TransactionConfirmation.js +61 -0
- package/dist/esm/components/TransactionConfirmation.js.map +1 -0
- package/dist/esm/components/TransactionHistoryList/TransactionHistoryItem.js +110 -0
- package/dist/esm/components/TransactionHistoryList/TransactionHistoryItem.js.map +1 -0
- package/dist/esm/components/TransactionHistoryList/TransactionHistorySkeleton.js +13 -0
- package/dist/esm/components/TransactionHistoryList/TransactionHistorySkeleton.js.map +1 -0
- package/dist/esm/components/TransactionHistoryList/index.js +93 -0
- package/dist/esm/components/TransactionHistoryList/index.js.map +1 -0
- package/dist/esm/components/WalletHeader/components/AccountInformation.js +12 -0
- package/dist/esm/components/WalletHeader/components/AccountInformation.js.map +1 -0
- package/dist/esm/components/WalletHeader/components/WalletDropdownContent.js +54 -0
- package/dist/esm/components/WalletHeader/components/WalletDropdownContent.js.map +1 -0
- package/dist/esm/components/WalletHeader/index.js +50 -0
- package/dist/esm/components/WalletHeader/index.js.map +1 -0
- package/dist/esm/constants/abi.js +89 -0
- package/dist/esm/constants/abi.js.map +1 -0
- package/dist/esm/constants/currency.js +26 -0
- package/dist/esm/constants/currency.js.map +1 -0
- package/dist/esm/constants/index.js +4 -0
- package/dist/esm/constants/index.js.map +1 -0
- package/dist/esm/constants/sizing.js +2 -0
- package/dist/esm/constants/sizing.js.map +1 -0
- package/dist/esm/contexts/Navigation.js +4 -0
- package/dist/esm/contexts/Navigation.js.map +1 -0
- package/dist/esm/contexts/WalletModal.js +4 -0
- package/dist/esm/contexts/WalletModal.js.map +1 -0
- package/dist/esm/contexts/genericContext.js +16 -0
- package/dist/esm/contexts/genericContext.js.map +1 -0
- package/dist/esm/contexts/index.js +3 -0
- package/dist/esm/contexts/index.js.map +1 -0
- package/dist/esm/hooks/index.js +4 -0
- package/dist/esm/hooks/index.js.map +1 -0
- package/dist/esm/hooks/useNavigation.js +19 -0
- package/dist/esm/hooks/useNavigation.js.map +1 -0
- package/dist/esm/hooks/useOpenWalletModal.js +6 -0
- package/dist/esm/hooks/useOpenWalletModal.js.map +1 -0
- package/dist/esm/hooks/useScrollbarWidth.js +9 -0
- package/dist/esm/hooks/useScrollbarWidth.js.map +1 -0
- package/dist/esm/hooks/useSettings.js +96 -0
- package/dist/esm/hooks/useSettings.js.map +1 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/utils/helpers.js +41 -0
- package/dist/esm/utils/helpers.js.map +1 -0
- package/dist/esm/utils/index.js +3 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/tokens.js +70 -0
- package/dist/esm/utils/tokens.js.map +1 -0
- package/dist/esm/views/CoinDetails/Skeleton.js +9 -0
- package/dist/esm/views/CoinDetails/Skeleton.js.map +1 -0
- package/dist/esm/views/CoinDetails/index.js +86 -0
- package/dist/esm/views/CoinDetails/index.js.map +1 -0
- package/dist/esm/views/CollectibleDetails/Skeleton.js +10 -0
- package/dist/esm/views/CollectibleDetails/Skeleton.js.map +1 -0
- package/dist/esm/views/CollectibleDetails/index.js +79 -0
- package/dist/esm/views/CollectibleDetails/index.js.map +1 -0
- package/dist/esm/views/CollectionDetails/Skeleton.js +11 -0
- package/dist/esm/views/CollectionDetails/Skeleton.js.map +1 -0
- package/dist/esm/views/CollectionDetails/index.js +46 -0
- package/dist/esm/views/CollectionDetails/index.js.map +1 -0
- package/dist/esm/views/History.js +15 -0
- package/dist/esm/views/History.js.map +1 -0
- package/dist/esm/views/Home/components/AssetSummary/CoinTile/CoinTileContent.js +10 -0
- package/dist/esm/views/Home/components/AssetSummary/CoinTile/CoinTileContent.js.map +1 -0
- package/dist/esm/views/Home/components/AssetSummary/CoinTile/index.js +56 -0
- package/dist/esm/views/Home/components/AssetSummary/CoinTile/index.js.map +1 -0
- package/dist/esm/views/Home/components/AssetSummary/CollectibleTile/index.js +13 -0
- package/dist/esm/views/Home/components/AssetSummary/CollectibleTile/index.js.map +1 -0
- package/dist/esm/views/Home/components/AssetSummary/SkeletonTiles.js +10 -0
- package/dist/esm/views/Home/components/AssetSummary/SkeletonTiles.js.map +1 -0
- package/dist/esm/views/Home/components/AssetSummary/index.js +94 -0
- package/dist/esm/views/Home/components/AssetSummary/index.js.map +1 -0
- package/dist/esm/views/Home/index.js +6 -0
- package/dist/esm/views/Home/index.js.map +1 -0
- package/dist/esm/views/Receive.js +38 -0
- package/dist/esm/views/Receive.js.map +1 -0
- package/dist/esm/views/Search/SearchWallet.js +105 -0
- package/dist/esm/views/Search/SearchWallet.js.map +1 -0
- package/dist/esm/views/Search/SearchWalletViewAll.js +162 -0
- package/dist/esm/views/Search/SearchWalletViewAll.js.map +1 -0
- package/dist/esm/views/Search/components/BalanceItem.js +48 -0
- package/dist/esm/views/Search/components/BalanceItem.js.map +1 -0
- package/dist/esm/views/Search/components/CoinsTab.js +45 -0
- package/dist/esm/views/Search/components/CoinsTab.js.map +1 -0
- package/dist/esm/views/Search/components/CollectionsTab.js +45 -0
- package/dist/esm/views/Search/components/CollectionsTab.js.map +1 -0
- package/dist/esm/views/Search/components/WalletLink.js +11 -0
- package/dist/esm/views/Search/components/WalletLink.js.map +1 -0
- package/dist/esm/views/Search/index.js +3 -0
- package/dist/esm/views/Search/index.js.map +1 -0
- package/dist/esm/views/SendCoin.js +194 -0
- package/dist/esm/views/SendCoin.js.map +1 -0
- package/dist/esm/views/SendCollectible.js +233 -0
- package/dist/esm/views/SendCollectible.js.map +1 -0
- package/dist/esm/views/Settings/Currency.js +12 -0
- package/dist/esm/views/Settings/Currency.js.map +1 -0
- package/dist/esm/views/Settings/General.js +19 -0
- package/dist/esm/views/Settings/General.js.map +1 -0
- package/dist/esm/views/Settings/Menu.js +24 -0
- package/dist/esm/views/Settings/Menu.js.map +1 -0
- package/dist/esm/views/Settings/Network.js +31 -0
- package/dist/esm/views/Settings/Network.js.map +1 -0
- package/dist/esm/views/Settings/index.js +5 -0
- package/dist/esm/views/Settings/index.js.map +1 -0
- package/dist/esm/views/SwapCoin/SwapList.js +186 -0
- package/dist/esm/views/SwapCoin/SwapList.js.map +1 -0
- package/dist/esm/views/SwapCoin/index.js +85 -0
- package/dist/esm/views/SwapCoin/index.js.map +1 -0
- package/dist/esm/views/TransactionDetails/index.js +81 -0
- package/dist/esm/views/TransactionDetails/index.js.map +1 -0
- package/dist/esm/views/index.js +14 -0
- package/dist/esm/views/index.js.map +1 -0
- package/dist/types/components/Alert.d.ts +12 -0
- package/dist/types/components/Alert.d.ts.map +1 -0
- package/dist/types/components/CoinRow.d.ts +13 -0
- package/dist/types/components/CoinRow.d.ts.map +1 -0
- package/dist/types/components/CollectibleTileImage.d.ts +6 -0
- package/dist/types/components/CollectibleTileImage.d.ts.map +1 -0
- package/dist/types/components/CopyButton.d.ts +10 -0
- package/dist/types/components/CopyButton.d.ts.map +1 -0
- package/dist/types/components/DefaultIcon.d.ts +6 -0
- package/dist/types/components/DefaultIcon.d.ts.map +1 -0
- package/dist/types/components/FeeOptionSelector.d.ts +29 -0
- package/dist/types/components/FeeOptionSelector.d.ts.map +1 -0
- package/dist/types/components/InfiniteScroll.d.ts +9 -0
- package/dist/types/components/InfiniteScroll.d.ts.map +1 -0
- package/dist/types/components/Loader.d.ts +2 -0
- package/dist/types/components/Loader.d.ts.map +1 -0
- package/dist/types/components/NavigationHeader/index.d.ts +7 -0
- package/dist/types/components/NavigationHeader/index.d.ts.map +1 -0
- package/dist/types/components/NetworkBadge.d.ts +6 -0
- package/dist/types/components/NetworkBadge.d.ts.map +1 -0
- package/dist/types/components/SelectButton/SelectButton.d.ts +13 -0
- package/dist/types/components/SelectButton/SelectButton.d.ts.map +1 -0
- package/dist/types/components/SelectButton/SelectedIndicator.d.ts +8 -0
- package/dist/types/components/SelectButton/SelectedIndicator.d.ts.map +1 -0
- package/dist/types/components/SelectButton/index.d.ts +2 -0
- package/dist/types/components/SelectButton/index.d.ts.map +1 -0
- package/dist/types/components/SendItemInfo.d.ts +15 -0
- package/dist/types/components/SendItemInfo.d.ts.map +1 -0
- package/dist/types/components/SequenceWalletProvider/SequenceWalletProvider.d.ts +7 -0
- package/dist/types/components/SequenceWalletProvider/SequenceWalletProvider.d.ts.map +1 -0
- package/dist/types/components/SequenceWalletProvider/index.d.ts +2 -0
- package/dist/types/components/SequenceWalletProvider/index.d.ts.map +1 -0
- package/dist/types/components/SequenceWalletProvider/utils/index.d.ts +4 -0
- package/dist/types/components/SequenceWalletProvider/utils/index.d.ts.map +1 -0
- package/dist/types/components/TransactionConfirmation.d.ts +24 -0
- package/dist/types/components/TransactionConfirmation.d.ts.map +1 -0
- package/dist/types/components/TransactionHistoryList/TransactionHistoryItem.d.ts +7 -0
- package/dist/types/components/TransactionHistoryList/TransactionHistoryItem.d.ts.map +1 -0
- package/dist/types/components/TransactionHistoryList/TransactionHistorySkeleton.d.ts +2 -0
- package/dist/types/components/TransactionHistoryList/TransactionHistorySkeleton.d.ts.map +1 -0
- package/dist/types/components/TransactionHistoryList/index.d.ts +9 -0
- package/dist/types/components/TransactionHistoryList/index.d.ts.map +1 -0
- package/dist/types/components/WalletHeader/components/AccountInformation.d.ts +7 -0
- package/dist/types/components/WalletHeader/components/AccountInformation.d.ts.map +1 -0
- package/dist/types/components/WalletHeader/components/WalletDropdownContent.d.ts +7 -0
- package/dist/types/components/WalletHeader/components/WalletDropdownContent.d.ts.map +1 -0
- package/dist/types/components/WalletHeader/index.d.ts +2 -0
- package/dist/types/components/WalletHeader/index.d.ts.map +1 -0
- package/dist/types/constants/abi.d.ts +40 -0
- package/dist/types/constants/abi.d.ts.map +1 -0
- package/dist/types/constants/currency.d.ts +11 -0
- package/dist/types/constants/currency.d.ts.map +1 -0
- package/dist/types/constants/index.d.ts +4 -0
- package/dist/types/constants/index.d.ts.map +1 -0
- package/dist/types/constants/sizing.d.ts +2 -0
- package/dist/types/constants/sizing.d.ts.map +1 -0
- package/dist/types/contexts/Navigation.d.ts +88 -0
- package/dist/types/contexts/Navigation.d.ts.map +1 -0
- package/dist/types/contexts/WalletModal.d.ts +11 -0
- package/dist/types/contexts/WalletModal.d.ts.map +1 -0
- package/dist/types/contexts/genericContext.d.ts +2 -0
- package/dist/types/contexts/genericContext.d.ts.map +1 -0
- package/dist/types/contexts/index.d.ts +3 -0
- package/dist/types/contexts/index.d.ts.map +1 -0
- package/dist/types/hooks/index.d.ts +4 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/hooks/useNavigation.d.ts +10 -0
- package/dist/types/hooks/useNavigation.d.ts.map +1 -0
- package/dist/types/hooks/useOpenWalletModal.d.ts +5 -0
- package/dist/types/hooks/useOpenWalletModal.d.ts.map +1 -0
- package/dist/types/hooks/useScrollbarWidth.d.ts +2 -0
- package/dist/types/hooks/useScrollbarWidth.d.ts.map +1 -0
- package/dist/types/hooks/useSettings.d.ts +14 -0
- package/dist/types/hooks/useSettings.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/utils/helpers.d.ts +6 -0
- package/dist/types/utils/helpers.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +3 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/tokens.d.ts +21 -0
- package/dist/types/utils/tokens.d.ts.map +1 -0
- package/dist/types/views/CoinDetails/Skeleton.d.ts +7 -0
- package/dist/types/views/CoinDetails/Skeleton.d.ts.map +1 -0
- package/dist/types/views/CoinDetails/index.d.ts +6 -0
- package/dist/types/views/CoinDetails/index.d.ts.map +1 -0
- package/dist/types/views/CollectibleDetails/Skeleton.d.ts +6 -0
- package/dist/types/views/CollectibleDetails/Skeleton.d.ts.map +1 -0
- package/dist/types/views/CollectibleDetails/index.d.ts +7 -0
- package/dist/types/views/CollectibleDetails/index.d.ts.map +1 -0
- package/dist/types/views/CollectionDetails/Skeleton.d.ts +6 -0
- package/dist/types/views/CollectionDetails/Skeleton.d.ts.map +1 -0
- package/dist/types/views/CollectionDetails/index.d.ts +7 -0
- package/dist/types/views/CollectionDetails/index.d.ts.map +1 -0
- package/dist/types/views/History.d.ts +2 -0
- package/dist/types/views/History.d.ts.map +1 -0
- package/dist/types/views/Home/components/AssetSummary/CoinTile/CoinTileContent.d.ts +12 -0
- package/dist/types/views/Home/components/AssetSummary/CoinTile/CoinTileContent.d.ts.map +1 -0
- package/dist/types/views/Home/components/AssetSummary/CoinTile/index.d.ts +7 -0
- package/dist/types/views/Home/components/AssetSummary/CoinTile/index.d.ts.map +1 -0
- package/dist/types/views/Home/components/AssetSummary/CollectibleTile/index.d.ts +7 -0
- package/dist/types/views/Home/components/AssetSummary/CollectibleTile/index.d.ts.map +1 -0
- package/dist/types/views/Home/components/AssetSummary/SkeletonTiles.d.ts +2 -0
- package/dist/types/views/Home/components/AssetSummary/SkeletonTiles.d.ts.map +1 -0
- package/dist/types/views/Home/components/AssetSummary/index.d.ts +2 -0
- package/dist/types/views/Home/components/AssetSummary/index.d.ts.map +1 -0
- package/dist/types/views/Home/index.d.ts +2 -0
- package/dist/types/views/Home/index.d.ts.map +1 -0
- package/dist/types/views/Receive.d.ts +2 -0
- package/dist/types/views/Receive.d.ts.map +1 -0
- package/dist/types/views/Search/SearchWallet.d.ts +2 -0
- package/dist/types/views/Search/SearchWallet.d.ts.map +1 -0
- package/dist/types/views/Search/SearchWalletViewAll.d.ts +10 -0
- package/dist/types/views/Search/SearchWalletViewAll.d.ts.map +1 -0
- package/dist/types/views/Search/components/BalanceItem.d.ts +7 -0
- package/dist/types/views/Search/components/BalanceItem.d.ts.map +1 -0
- package/dist/types/views/Search/components/CoinsTab.d.ts +16 -0
- package/dist/types/views/Search/components/CoinsTab.d.ts.map +1 -0
- package/dist/types/views/Search/components/CollectionsTab.d.ts +16 -0
- package/dist/types/views/Search/components/CollectionsTab.d.ts.map +1 -0
- package/dist/types/views/Search/components/WalletLink.d.ts +8 -0
- package/dist/types/views/Search/components/WalletLink.d.ts.map +1 -0
- package/dist/types/views/Search/index.d.ts +3 -0
- package/dist/types/views/Search/index.d.ts.map +1 -0
- package/dist/types/views/SendCoin.d.ts +7 -0
- package/dist/types/views/SendCoin.d.ts.map +1 -0
- package/dist/types/views/SendCollectible.d.ts +8 -0
- package/dist/types/views/SendCollectible.d.ts.map +1 -0
- package/dist/types/views/Settings/Currency.d.ts +2 -0
- package/dist/types/views/Settings/Currency.d.ts.map +1 -0
- package/dist/types/views/Settings/General.d.ts +2 -0
- package/dist/types/views/Settings/General.d.ts.map +1 -0
- package/dist/types/views/Settings/Menu.d.ts +2 -0
- package/dist/types/views/Settings/Menu.d.ts.map +1 -0
- package/dist/types/views/Settings/Network.d.ts +2 -0
- package/dist/types/views/Settings/Network.d.ts.map +1 -0
- package/dist/types/views/Settings/index.d.ts +5 -0
- package/dist/types/views/Settings/index.d.ts.map +1 -0
- package/dist/types/views/SwapCoin/SwapList.d.ts +8 -0
- package/dist/types/views/SwapCoin/SwapList.d.ts.map +1 -0
- package/dist/types/views/SwapCoin/index.d.ts +6 -0
- package/dist/types/views/SwapCoin/index.d.ts.map +1 -0
- package/dist/types/views/TransactionDetails/index.d.ts +7 -0
- package/dist/types/views/TransactionDetails/index.d.ts.map +1 -0
- package/dist/types/views/index.d.ts +14 -0
- package/dist/types/views/index.d.ts.map +1 -0
- package/package.json +69 -0
- package/src/components/Alert.tsx +51 -0
- package/src/components/CoinRow.tsx +62 -0
- package/src/components/CollectibleTileImage.tsx +14 -0
- package/src/components/CopyButton.tsx +41 -0
- package/src/components/DefaultIcon.tsx +22 -0
- package/src/components/FeeOptionSelector.tsx +133 -0
- package/src/components/InfiniteScroll.tsx +56 -0
- package/src/components/Loader.tsx +12 -0
- package/src/components/NavigationHeader/index.tsx +59 -0
- package/src/components/NetworkBadge.tsx +35 -0
- package/src/components/SelectButton/SelectButton.tsx +33 -0
- package/src/components/SelectButton/SelectedIndicator.tsx +34 -0
- package/src/components/SelectButton/index.ts +1 -0
- package/src/components/SendItemInfo.tsx +83 -0
- package/src/components/SequenceWalletProvider/SequenceWalletProvider.tsx +96 -0
- package/src/components/SequenceWalletProvider/index.ts +1 -0
- package/src/components/SequenceWalletProvider/utils/index.tsx +119 -0
- package/src/components/TransactionConfirmation.tsx +183 -0
- package/src/components/TransactionHistoryList/TransactionHistoryItem.tsx +190 -0
- package/src/components/TransactionHistoryList/TransactionHistorySkeleton.tsx +36 -0
- package/src/components/TransactionHistoryList/index.tsx +160 -0
- package/src/components/WalletHeader/components/AccountInformation.tsx +31 -0
- package/src/components/WalletHeader/components/WalletDropdownContent.tsx +96 -0
- package/src/components/WalletHeader/index.tsx +84 -0
- package/src/constants/abi.ts +90 -0
- package/src/constants/currency.ts +35 -0
- package/src/constants/index.ts +3 -0
- package/src/constants/sizing.ts +1 -0
- package/src/contexts/Navigation.ts +132 -0
- package/src/contexts/WalletModal.ts +15 -0
- package/src/contexts/genericContext.ts +19 -0
- package/src/contexts/index.ts +2 -0
- package/src/hooks/index.ts +3 -0
- package/src/hooks/useNavigation.ts +30 -0
- package/src/hooks/useOpenWalletModal.ts +7 -0
- package/src/hooks/useScrollbarWidth.ts +11 -0
- package/src/hooks/useSettings.ts +121 -0
- package/src/index.ts +6 -0
- package/src/utils/helpers.ts +51 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/tokens.ts +98 -0
- package/src/views/CoinDetails/Skeleton.tsx +46 -0
- package/src/views/CoinDetails/index.tsx +153 -0
- package/src/views/CollectibleDetails/Skeleton.tsx +50 -0
- package/src/views/CollectibleDetails/index.tsx +184 -0
- package/src/views/CollectionDetails/Skeleton.tsx +36 -0
- package/src/views/CollectionDetails/index.tsx +98 -0
- package/src/views/History.tsx +28 -0
- package/src/views/Home/components/AssetSummary/CoinTile/CoinTileContent.tsx +60 -0
- package/src/views/Home/components/AssetSummary/CoinTile/index.tsx +93 -0
- package/src/views/Home/components/AssetSummary/CollectibleTile/index.tsx +20 -0
- package/src/views/Home/components/AssetSummary/SkeletonTiles.tsx +21 -0
- package/src/views/Home/components/AssetSummary/index.tsx +128 -0
- package/src/views/Home/index.tsx +11 -0
- package/src/views/Receive.tsx +83 -0
- package/src/views/Search/SearchWallet.tsx +177 -0
- package/src/views/Search/SearchWalletViewAll.tsx +265 -0
- package/src/views/Search/components/BalanceItem.tsx +76 -0
- package/src/views/Search/components/CoinsTab.tsx +89 -0
- package/src/views/Search/components/CollectionsTab.tsx +88 -0
- package/src/views/Search/components/WalletLink.tsx +32 -0
- package/src/views/Search/index.ts +2 -0
- package/src/views/SendCoin.tsx +397 -0
- package/src/views/SendCollectible.tsx +447 -0
- package/src/views/Settings/Currency.tsx +34 -0
- package/src/views/Settings/General.tsx +55 -0
- package/src/views/Settings/Menu.tsx +60 -0
- package/src/views/Settings/Network.tsx +60 -0
- package/src/views/Settings/index.ts +4 -0
- package/src/views/SwapCoin/SwapList.tsx +320 -0
- package/src/views/SwapCoin/index.tsx +150 -0
- package/src/views/TransactionDetails/index.tsx +213 -0
- package/src/views/index.ts +13 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface FiatCurrency {
|
|
2
|
+
decimals: number
|
|
3
|
+
name: {
|
|
4
|
+
message: string
|
|
5
|
+
}
|
|
6
|
+
sign: string
|
|
7
|
+
symbol: string
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const supportedFiatCurrencies: FiatCurrency[] = [
|
|
11
|
+
{ symbol: 'USD', sign: '$', name: { message: 'US Dollar' }, decimals: 2 },
|
|
12
|
+
{ symbol: 'CAD', sign: '$', name: { message: 'Canadian Dollar' }, decimals: 2 },
|
|
13
|
+
{ symbol: 'GBP', sign: '£', name: { message: 'British Pound Sterling' }, decimals: 2 },
|
|
14
|
+
{ symbol: 'EUR', sign: '€', name: { message: 'Euro' }, decimals: 2 },
|
|
15
|
+
{ symbol: 'CNY', sign: '¥', name: { message: 'Chinese Yuan' }, decimals: 2 },
|
|
16
|
+
{ symbol: 'JPY', sign: '¥', name: { message: 'Japanese Yen' }, decimals: 2 },
|
|
17
|
+
{ symbol: 'KRW', sign: '₩', name: { message: 'South Korean Won' }, decimals: 2 },
|
|
18
|
+
{ symbol: 'SGD', sign: '$', name: { message: 'Singapore Dollar' }, decimals: 2 },
|
|
19
|
+
{ symbol: 'CHF', sign: 'CHF ', name: { message: 'Swiss Franc' }, decimals: 2 },
|
|
20
|
+
{ symbol: 'AUD', sign: '$', name: { message: 'Australian Dollar' }, decimals: 2 },
|
|
21
|
+
{ symbol: 'NZD', sign: '$', name: { message: 'New Zealand Dollar' }, decimals: 2 },
|
|
22
|
+
{ symbol: 'SEK', sign: 'kr ', name: { message: 'Swedish Krona' }, decimals: 2 },
|
|
23
|
+
{ symbol: 'NOK', sign: 'kr ', name: { message: 'Norwegian Krone' }, decimals: 2 },
|
|
24
|
+
{ symbol: 'MXN', sign: '$', name: { message: 'Mexican Peso' }, decimals: 2 },
|
|
25
|
+
{ symbol: 'INR', sign: '₹', name: { message: 'Indian Rupee' }, decimals: 2 },
|
|
26
|
+
{ symbol: 'ZAR', sign: 'R ', name: { message: 'South African Rand' }, decimals: 2 },
|
|
27
|
+
{ symbol: 'TRY', sign: '₺', name: { message: 'Turkish Lira' }, decimals: 2 },
|
|
28
|
+
{ symbol: 'BRL', sign: 'R$', name: { message: 'Brazilian Real' }, decimals: 2 },
|
|
29
|
+
{ symbol: 'DKK', sign: 'kr ', name: { message: 'Danish Krone' }, decimals: 2 },
|
|
30
|
+
{ symbol: 'PLN', sign: 'zł ', name: { message: 'Polish Zloty' }, decimals: 2 },
|
|
31
|
+
{ symbol: 'THB', sign: '฿', name: { message: 'Thai Baht' }, decimals: 2 },
|
|
32
|
+
{ symbol: 'IDR', sign: 'Rp', name: { message: 'Indonesian Rupiah' }, decimals: 2 }
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
export const defaultFiatCurrency = supportedFiatCurrencies[0]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const HEADER_HEIGHT = '54px'
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import { Transaction } from '@0xsequence/indexer'
|
|
4
|
+
|
|
5
|
+
import { createGenericContext } from './genericContext'
|
|
6
|
+
|
|
7
|
+
export interface CollectionDetailsParams {
|
|
8
|
+
contractAddress: string
|
|
9
|
+
chainId: number
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface CollectionDetailsNavigation {
|
|
13
|
+
location: 'collection-details'
|
|
14
|
+
params: CollectionDetailsParams
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface CoinDetailsParams {
|
|
18
|
+
contractAddress: string
|
|
19
|
+
chainId: number
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface CoinDetailsNavigation {
|
|
23
|
+
location: 'coin-details'
|
|
24
|
+
params: CoinDetailsParams
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface CollectibleDetailsParams {
|
|
28
|
+
contractAddress: string
|
|
29
|
+
chainId: number
|
|
30
|
+
tokenId: string
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface CollectibleDetailsNavigation {
|
|
34
|
+
location: 'collectible-details'
|
|
35
|
+
params: CollectibleDetailsParams
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface TransactionDetailsParams {
|
|
39
|
+
transaction: Transaction
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface TransactionDetailsNavigation {
|
|
43
|
+
location: 'transaction-details'
|
|
44
|
+
params: TransactionDetailsParams
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface SearchViewAllParams {
|
|
48
|
+
defaultTab: 'coins' | 'collections'
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface SearchViewAllNavigation {
|
|
52
|
+
location: 'search-view-all'
|
|
53
|
+
params: SearchViewAllParams
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface SendCoinParams {
|
|
57
|
+
chainId: number
|
|
58
|
+
contractAddress: string
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export interface SwapCoinParams {
|
|
62
|
+
chainId: number
|
|
63
|
+
contractAddress: string
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export interface SwapCoinListParams {
|
|
67
|
+
chainId: number
|
|
68
|
+
contractAddress: string
|
|
69
|
+
amount: string
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface SendCoinNavigation {
|
|
73
|
+
location: 'send-coin'
|
|
74
|
+
params: SendCoinParams
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export interface SwapCoinNavigation {
|
|
78
|
+
location: 'swap-coin'
|
|
79
|
+
params: SwapCoinParams
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export interface SwapCoinListNavigation {
|
|
83
|
+
location: 'swap-coin-list'
|
|
84
|
+
params: SwapCoinListParams
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export interface SendCollectibleParams {
|
|
88
|
+
chainId: number
|
|
89
|
+
contractAddress: string
|
|
90
|
+
tokenId: string
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export interface SendCollectibleNavigation {
|
|
94
|
+
location: 'send-collectible'
|
|
95
|
+
params: SendCollectibleParams
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export interface BasicNavigation {
|
|
99
|
+
location:
|
|
100
|
+
| 'home'
|
|
101
|
+
| 'receive'
|
|
102
|
+
| 'history'
|
|
103
|
+
| 'receive'
|
|
104
|
+
| 'settings'
|
|
105
|
+
| 'settings-general'
|
|
106
|
+
| 'settings-currency'
|
|
107
|
+
| 'settings-networks'
|
|
108
|
+
| 'search'
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export type Navigation =
|
|
112
|
+
| BasicNavigation
|
|
113
|
+
| CoinDetailsNavigation
|
|
114
|
+
| CollectibleDetailsNavigation
|
|
115
|
+
| CollectionDetailsNavigation
|
|
116
|
+
| TransactionDetailsNavigation
|
|
117
|
+
| SearchViewAllNavigation
|
|
118
|
+
| SendCoinNavigation
|
|
119
|
+
| SendCollectibleNavigation
|
|
120
|
+
| SwapCoinNavigation
|
|
121
|
+
| SwapCoinListNavigation
|
|
122
|
+
|
|
123
|
+
export type History = Navigation[]
|
|
124
|
+
|
|
125
|
+
type NavigationContext = {
|
|
126
|
+
setHistory: (history: History) => void
|
|
127
|
+
history: History
|
|
128
|
+
isBackButtonEnabled: boolean
|
|
129
|
+
setIsBackButtonEnabled: (enabled: boolean) => void
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export const [useNavigationContext, NavigationContextProvider] = createGenericContext<NavigationContext>()
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import { createGenericContext } from './genericContext'
|
|
4
|
+
import { Navigation } from './Navigation'
|
|
5
|
+
|
|
6
|
+
export interface WalletOptions {
|
|
7
|
+
defaultNavigation?: Navigation
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
type WalletModalContext = {
|
|
11
|
+
setOpenWalletModal: (open: boolean, options?: WalletOptions) => void
|
|
12
|
+
openWalletModalState: boolean
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const [useWalletModalContext, WalletModalContextProvider] = createGenericContext<WalletModalContext>()
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { createContext, useContext } from 'react'
|
|
2
|
+
|
|
3
|
+
// https://medium.com/@rivoltafilippo/typing-react-context-to-avoid-an-undefined-default-value-2c7c5a7d5947
|
|
4
|
+
|
|
5
|
+
export const createGenericContext = <T>() => {
|
|
6
|
+
// Create a context with a generic parameter or undefined
|
|
7
|
+
const genericContext = createContext<T | undefined>(undefined)
|
|
8
|
+
|
|
9
|
+
// Check if the value provided to the context is defined or throw an error
|
|
10
|
+
const useGenericContext = () => {
|
|
11
|
+
const contextIsDefined = useContext(genericContext)
|
|
12
|
+
if (!contextIsDefined) {
|
|
13
|
+
throw new Error('useGenericContext must be used within a Provider')
|
|
14
|
+
}
|
|
15
|
+
return contextIsDefined
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return [useGenericContext, genericContext.Provider] as const
|
|
19
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useNavigationContext, Navigation, History } from '../contexts/Navigation'
|
|
2
|
+
|
|
3
|
+
interface UseNavigation {
|
|
4
|
+
setNavigation: (navigation: Navigation) => void
|
|
5
|
+
setHistory?: (history: History) => void
|
|
6
|
+
history: History
|
|
7
|
+
goBack: () => void
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const useNavigation = (): UseNavigation => {
|
|
11
|
+
const { setHistory, history } = useNavigationContext()
|
|
12
|
+
|
|
13
|
+
const setNavigation = (navigation: Navigation) => {
|
|
14
|
+
// Scroll to top of page when navigating to a new page
|
|
15
|
+
const childElement = document.getElementById('sequence-kit-wallet-content')
|
|
16
|
+
const parentElement = childElement?.parentElement
|
|
17
|
+
parentElement?.scrollTo(0, 0)
|
|
18
|
+
|
|
19
|
+
const newHistory = navigation.location === 'home' ? [] : [...history, navigation]
|
|
20
|
+
setHistory(newHistory)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const goBack = () => {
|
|
24
|
+
const newHistory = [...history]
|
|
25
|
+
newHistory.pop()
|
|
26
|
+
setHistory(newHistory)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return { setNavigation, history, setHistory, goBack }
|
|
30
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react'
|
|
2
|
+
|
|
3
|
+
export const useScrollbarWidth = () => {
|
|
4
|
+
const [scrollbarWidth, setScrollbarWidth] = useState<string>('0px')
|
|
5
|
+
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
setScrollbarWidth(navigator.userAgent.match(/chrome|chromium|crios/i) ? '13px' : '0px')
|
|
8
|
+
}, [])
|
|
9
|
+
|
|
10
|
+
return scrollbarWidth
|
|
11
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { LocalStorageKey, useWalletSettings } from '@0xsequence/connect'
|
|
2
|
+
import { useState } from 'react'
|
|
3
|
+
import { useConfig } from 'wagmi'
|
|
4
|
+
|
|
5
|
+
import { FiatCurrency, defaultFiatCurrency } from '../constants'
|
|
6
|
+
|
|
7
|
+
interface Settings {
|
|
8
|
+
hideCollectibles: boolean
|
|
9
|
+
hideUnlistedTokens: boolean
|
|
10
|
+
fiatCurrency: FiatCurrency
|
|
11
|
+
selectedNetworks: number[]
|
|
12
|
+
setFiatCurrency: (newFiatCurrency: FiatCurrency) => void
|
|
13
|
+
setHideCollectibles: (newState: boolean) => void
|
|
14
|
+
setHideUnlistedTokens: (newState: boolean) => void
|
|
15
|
+
setSelectedNetworks: (newNetworks: number[]) => void
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
type SettingsItems = Pick<Settings, 'hideCollectibles' | 'hideUnlistedTokens' | 'fiatCurrency' | 'selectedNetworks'>
|
|
19
|
+
|
|
20
|
+
export const useSettings = (): Settings => {
|
|
21
|
+
const { readOnlyNetworks, displayedAssets } = useWalletSettings()
|
|
22
|
+
const { chains } = useConfig()
|
|
23
|
+
|
|
24
|
+
const allChains = [
|
|
25
|
+
...new Set([...chains.map(chain => chain.id), ...(readOnlyNetworks || []), ...displayedAssets.map(asset => asset.chainId)])
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
const getSettingsFromStorage = (): SettingsItems => {
|
|
29
|
+
let hideUnlistedTokens = true
|
|
30
|
+
let hideCollectibles = false
|
|
31
|
+
let fiatCurrency = defaultFiatCurrency
|
|
32
|
+
let selectedNetworks = allChains
|
|
33
|
+
|
|
34
|
+
try {
|
|
35
|
+
const settingsStorage = localStorage.getItem(LocalStorageKey.Settings)
|
|
36
|
+
|
|
37
|
+
const settings = JSON.parse(settingsStorage || '{}')
|
|
38
|
+
if (settings?.hideUnlistedTokens !== undefined) {
|
|
39
|
+
hideUnlistedTokens = settings?.hideUnlistedTokens
|
|
40
|
+
}
|
|
41
|
+
if (settings?.hideCollectibles !== undefined) {
|
|
42
|
+
hideCollectibles = settings?.hideCollectibles
|
|
43
|
+
}
|
|
44
|
+
if (settings?.fiatCurrency !== undefined) {
|
|
45
|
+
fiatCurrency = settings?.fiatCurrency as FiatCurrency
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (settings?.selectedNetworks !== undefined) {
|
|
49
|
+
let areSelectedNetworksValid = true
|
|
50
|
+
settings.selectedNetworks.forEach((chainId: number) => {
|
|
51
|
+
if (allChains.find(chain => chain === chainId) === undefined) {
|
|
52
|
+
areSelectedNetworksValid = false
|
|
53
|
+
}
|
|
54
|
+
})
|
|
55
|
+
if (areSelectedNetworksValid) {
|
|
56
|
+
selectedNetworks = settings?.selectedNetworks as number[]
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
} catch (e) {
|
|
60
|
+
console.error(e, 'Failed to fetch settings')
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return {
|
|
64
|
+
hideUnlistedTokens,
|
|
65
|
+
hideCollectibles,
|
|
66
|
+
fiatCurrency,
|
|
67
|
+
selectedNetworks
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const defaultSettings = getSettingsFromStorage()
|
|
71
|
+
|
|
72
|
+
const [settings, setSettings] = useState(defaultSettings)
|
|
73
|
+
|
|
74
|
+
const setHideUnlistedTokens = (newState: boolean) => {
|
|
75
|
+
const oldSettings = getSettingsFromStorage()
|
|
76
|
+
const newSettings = {
|
|
77
|
+
...oldSettings,
|
|
78
|
+
hideUnlistedTokens: newState
|
|
79
|
+
}
|
|
80
|
+
localStorage.setItem(LocalStorageKey.Settings, JSON.stringify(newSettings))
|
|
81
|
+
setSettings(newSettings)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const setHideCollectibles = (newState: boolean) => {
|
|
85
|
+
const oldSettings = getSettingsFromStorage()
|
|
86
|
+
const newSettings = {
|
|
87
|
+
...oldSettings,
|
|
88
|
+
hideCollectibles: newState
|
|
89
|
+
}
|
|
90
|
+
localStorage.setItem(LocalStorageKey.Settings, JSON.stringify(newSettings))
|
|
91
|
+
setSettings(newSettings)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const setFiatCurrency = (newFiatCurrency: FiatCurrency) => {
|
|
95
|
+
const oldSettings = getSettingsFromStorage()
|
|
96
|
+
const newSettings = {
|
|
97
|
+
...oldSettings,
|
|
98
|
+
fiatCurrency: newFiatCurrency
|
|
99
|
+
}
|
|
100
|
+
localStorage.setItem(LocalStorageKey.Settings, JSON.stringify(newSettings))
|
|
101
|
+
setSettings(newSettings)
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const setSelectedNetworks = (newSelectedNetworks: number[]) => {
|
|
105
|
+
const oldSettings = getSettingsFromStorage()
|
|
106
|
+
const newSettings = {
|
|
107
|
+
...oldSettings,
|
|
108
|
+
selectedNetworks: newSelectedNetworks
|
|
109
|
+
}
|
|
110
|
+
localStorage.setItem(LocalStorageKey.Settings, JSON.stringify(newSettings))
|
|
111
|
+
setSettings(newSettings)
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return {
|
|
115
|
+
...settings,
|
|
116
|
+
setFiatCurrency,
|
|
117
|
+
setHideCollectibles,
|
|
118
|
+
setHideUnlistedTokens,
|
|
119
|
+
setSelectedNetworks
|
|
120
|
+
}
|
|
121
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export const limitDecimals = (value: string, decimals: number) => {
|
|
2
|
+
const splitValue = value.split('.')
|
|
3
|
+
if (splitValue.length === 1) {
|
|
4
|
+
return value
|
|
5
|
+
}
|
|
6
|
+
return `${splitValue[0]}.${splitValue[1].slice(0, decimals)}`
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const isEthAddress = (value: string) => {
|
|
10
|
+
const ethAddressRegEx = /0x[a-fA-F0-9]{40}/
|
|
11
|
+
const isEthAddress = ethAddressRegEx.test(value)
|
|
12
|
+
|
|
13
|
+
return isEthAddress
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Gets n random elements at unique keys from collection up to the size of collection.
|
|
17
|
+
export const sampleSize = <T>(collection: T[], n: number): T[] => {
|
|
18
|
+
const random = seededRandom(1)
|
|
19
|
+
const length = collection.length
|
|
20
|
+
|
|
21
|
+
if (!length || n < 1) {
|
|
22
|
+
return []
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Limit n to the size of the collection
|
|
26
|
+
n = n > length ? length : n
|
|
27
|
+
|
|
28
|
+
const sampled = new Array(n)
|
|
29
|
+
const indexes = new Set<number>()
|
|
30
|
+
|
|
31
|
+
// Find n unique indexes
|
|
32
|
+
while (indexes.size < n) {
|
|
33
|
+
indexes.add(Math.floor(random() * length))
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
for (const [idx, value] of Array.from(indexes).entries()) {
|
|
37
|
+
sampled[idx] = collection[value]
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return sampled
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export const isTruthy = <T>(value: T | undefined | null): value is T => Boolean(value)
|
|
44
|
+
|
|
45
|
+
// Deterministic random function
|
|
46
|
+
export const seededRandom = (seed: number) => {
|
|
47
|
+
return () => {
|
|
48
|
+
const x = Math.sin(seed++) * 10000
|
|
49
|
+
return x - Math.floor(x)
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { TokenPrice } from '@0xsequence/api'
|
|
2
|
+
import { compareAddress } from '@0xsequence/connect'
|
|
3
|
+
import { TokenBalance, GetTransactionHistoryReturn, Transaction } from '@0xsequence/indexer'
|
|
4
|
+
import { InfiniteData } from '@tanstack/react-query'
|
|
5
|
+
import { formatUnits, zeroAddress } from 'viem'
|
|
6
|
+
|
|
7
|
+
export const getPercentageColor = (value: number) => {
|
|
8
|
+
if (value > 0) {
|
|
9
|
+
return 'positive'
|
|
10
|
+
} else if (value < 0) {
|
|
11
|
+
return 'negative'
|
|
12
|
+
} else {
|
|
13
|
+
return 'muted'
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const getPercentagePriceChange = (balance: TokenBalance, prices: TokenPrice[]) => {
|
|
18
|
+
const priceForToken = prices.find(p => compareAddress(p.token.contractAddress, balance.contractAddress))
|
|
19
|
+
if (!priceForToken) {
|
|
20
|
+
return 0
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const price24HourChange = priceForToken?.price24hChange?.value || 0
|
|
24
|
+
return price24HourChange
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
interface ComputeBalanceFiat {
|
|
28
|
+
balance: TokenBalance
|
|
29
|
+
prices: TokenPrice[]
|
|
30
|
+
decimals: number
|
|
31
|
+
conversionRate: number
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export const computeBalanceFiat = ({ balance, prices, decimals, conversionRate }: ComputeBalanceFiat): string => {
|
|
35
|
+
let totalUsd = 0
|
|
36
|
+
|
|
37
|
+
const priceForToken = prices.find(p => compareAddress(p.token.contractAddress, balance.contractAddress))
|
|
38
|
+
if (!priceForToken) {
|
|
39
|
+
return '0.00'
|
|
40
|
+
}
|
|
41
|
+
const priceFiat = priceForToken.price?.value || 0
|
|
42
|
+
const valueFormatted = formatUnits(BigInt(balance.balance), decimals)
|
|
43
|
+
const usdValue = parseFloat(valueFormatted) * priceFiat
|
|
44
|
+
totalUsd += usdValue
|
|
45
|
+
|
|
46
|
+
const fiatValue = totalUsd * conversionRate
|
|
47
|
+
|
|
48
|
+
return `${fiatValue.toFixed(2)}`
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
interface SortBalancesByTypeReturn {
|
|
52
|
+
nativeTokens: TokenBalance[]
|
|
53
|
+
erc20Tokens: TokenBalance[]
|
|
54
|
+
collectibles: TokenBalance[]
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const compareTokenBalanceIds = (a: TokenBalance, b: TokenBalance) => {
|
|
58
|
+
return (a.tokenID || '').localeCompare(b.tokenID || '')
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export const sortBalancesByType = (balances: TokenBalance[]): SortBalancesByTypeReturn => {
|
|
62
|
+
const nativeTokens: TokenBalance[] = []
|
|
63
|
+
const erc20Tokens: TokenBalance[] = []
|
|
64
|
+
const collectibles: TokenBalance[] = []
|
|
65
|
+
|
|
66
|
+
balances.forEach(balance => {
|
|
67
|
+
// Note: contractType for the native token should be "UNKNOWN"
|
|
68
|
+
if (balance.contractAddress === zeroAddress) {
|
|
69
|
+
nativeTokens.push(balance)
|
|
70
|
+
} else if (balance.contractType === 'ERC20') {
|
|
71
|
+
erc20Tokens.push(balance)
|
|
72
|
+
} else if (balance.contractType === 'ERC721' || balance.contractType === 'ERC1155') {
|
|
73
|
+
collectibles.push(balance)
|
|
74
|
+
}
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
const sortedNativeTokens = nativeTokens.sort(compareTokenBalanceIds)
|
|
78
|
+
const sortedErc20Tokens = erc20Tokens.sort(compareTokenBalanceIds)
|
|
79
|
+
const sortedCollectibles = collectibles.sort(compareTokenBalanceIds)
|
|
80
|
+
|
|
81
|
+
return {
|
|
82
|
+
nativeTokens: sortedNativeTokens,
|
|
83
|
+
erc20Tokens: sortedErc20Tokens,
|
|
84
|
+
collectibles: sortedCollectibles
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export const flattenPaginatedTransactionHistory = (
|
|
89
|
+
transactionHistoryData: InfiniteData<GetTransactionHistoryReturn> | undefined
|
|
90
|
+
) => {
|
|
91
|
+
const transactionHistory: Transaction[] = []
|
|
92
|
+
|
|
93
|
+
transactionHistoryData?.pages.forEach(page => {
|
|
94
|
+
transactionHistory.push(...page.transactions)
|
|
95
|
+
})
|
|
96
|
+
|
|
97
|
+
return transactionHistory
|
|
98
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Button, SendIcon, Skeleton, Text } from '@0xsequence/design-system'
|
|
2
|
+
|
|
3
|
+
import { NetworkBadge } from '../../components/NetworkBadge'
|
|
4
|
+
import { TransactionHistorySkeleton } from '../../components/TransactionHistoryList/TransactionHistorySkeleton'
|
|
5
|
+
import { HEADER_HEIGHT } from '../../constants'
|
|
6
|
+
|
|
7
|
+
interface CoinDetailsSkeletonProps {
|
|
8
|
+
chainId: number
|
|
9
|
+
isReadOnly: boolean
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const CoinDetailsSkeleton = ({ chainId, isReadOnly }: CoinDetailsSkeletonProps) => {
|
|
13
|
+
return (
|
|
14
|
+
<div style={{ paddingTop: HEADER_HEIGHT }}>
|
|
15
|
+
<div className="flex flex-col gap-10 pb-5 px-4 pt-0" style={{ marginTop: '-20px' }}>
|
|
16
|
+
<div className="flex mb-10 gap-2 items-center justify-center flex-col">
|
|
17
|
+
<Skeleton style={{ width: '64px', height: '64px' }} />
|
|
18
|
+
<Skeleton style={{ height: '28px', width: '70px' }} />
|
|
19
|
+
<NetworkBadge chainId={chainId} />
|
|
20
|
+
</div>
|
|
21
|
+
<div>
|
|
22
|
+
<Text variant="normal" fontWeight="medium" color="muted">
|
|
23
|
+
Balance
|
|
24
|
+
</Text>
|
|
25
|
+
<div className="flex flex-row items-end justify-between">
|
|
26
|
+
<Skeleton style={{ width: '150px', height: '36px' }} />
|
|
27
|
+
<Skeleton style={{ width: '33px', height: '17px' }} />
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
{!isReadOnly && (
|
|
31
|
+
<Button
|
|
32
|
+
className="w-full text-primary"
|
|
33
|
+
variant="primary"
|
|
34
|
+
leftIcon={SendIcon}
|
|
35
|
+
label="Send"
|
|
36
|
+
disabled
|
|
37
|
+
onClick={() => {}}
|
|
38
|
+
/>
|
|
39
|
+
)}
|
|
40
|
+
<div>
|
|
41
|
+
<TransactionHistorySkeleton />
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
)
|
|
46
|
+
}
|