├── .bundle
└── config
├── .eslintrc.json
├── .flowconfig
├── .gitattributes
├── .gitignore
├── .gitlab-ci.yml
├── .prettierrc.js
├── .snyk
├── .vscode
└── launch.json
├── App.js
├── DISCLAIMER.txt
├── LICENCE
├── PRIVACY.txt
├── README.md
├── __mocks__
├── @react-native-community
│ └── async-storage.js
├── ethers.js
├── react-native-alert-async
│ └── mock.js
├── react-native-fetch
│ ├── fetch.js
│ ├── mocked_results
│ │ ├── blockchain_data.js
│ │ ├── estimatefee.js
│ │ ├── getbalance.js
│ │ ├── getblockinfo.js
│ │ ├── getcurrentblock.js
│ │ ├── getmerkle.js
│ │ ├── gettransaction.js
│ │ ├── listtransactions.js
│ │ ├── listunspent.js
│ │ ├── mocked_results.js
│ │ ├── pushtx.js
│ │ └── server_version.js
│ └── util
│ │ └── mock_urls.js
├── react-native-randombytes.js
├── react-native-verus-light-client
│ ├── WalletFolder.js
│ ├── mock.js
│ └── requests
│ │ ├── JsonRpc.js
│ │ └── WalletRequests.js
├── redux-saga.js
├── redux
│ ├── mock.js
│ └── store.js
└── rn-fetch-blob.js
├── android
├── .project
├── .settings
│ └── org.eclipse.buildship.core.prefs
├── app
│ ├── .classpath
│ ├── .project
│ ├── .settings
│ │ └── org.eclipse.buildship.core.prefs
│ ├── _BUCK
│ ├── app.iml
│ ├── bin
│ │ ├── .project
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── assets
│ │ │ └── fonts
│ │ │ │ ├── AntDesign.ttf
│ │ │ │ ├── Entypo.ttf
│ │ │ │ ├── EvilIcons.ttf
│ │ │ │ ├── Feather.ttf
│ │ │ │ ├── FontAwesome.ttf
│ │ │ │ ├── FontAwesome5_Brands.ttf
│ │ │ │ ├── FontAwesome5_Regular.ttf
│ │ │ │ ├── FontAwesome5_Solid.ttf
│ │ │ │ ├── Foundation.ttf
│ │ │ │ ├── Ionicons.ttf
│ │ │ │ ├── MaterialCommunityIcons.ttf
│ │ │ │ ├── MaterialIcons.ttf
│ │ │ │ ├── Octicons.ttf
│ │ │ │ ├── SimpleLineIcons.ttf
│ │ │ │ └── Zocial.ttf
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── verusmobile
│ │ │ │ ├── MainActivity.class
│ │ │ │ └── MainApplication.class
│ │ │ └── res
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ └── values
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ ├── build.gradle
│ ├── build_defs.bzl
│ ├── proguard-rules.pro
│ ├── release
│ │ └── output.json
│ └── src
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── assets
│ │ └── fonts
│ │ │ ├── AntDesign.ttf
│ │ │ ├── Avenir-Black.ttf
│ │ │ ├── Avenir-Book.ttf
│ │ │ ├── Avenir-Light.ttf
│ │ │ ├── Avenir-Medium.ttf
│ │ │ ├── Entypo.ttf
│ │ │ ├── EvilIcons.ttf
│ │ │ ├── Feather.ttf
│ │ │ ├── FontAwesome.ttf
│ │ │ ├── FontAwesome5_Brands.ttf
│ │ │ ├── FontAwesome5_Regular.ttf
│ │ │ ├── FontAwesome5_Solid.ttf
│ │ │ ├── Fontisto.ttf
│ │ │ ├── Foundation.ttf
│ │ │ ├── Ionicons.ttf
│ │ │ ├── MaterialCommunityIcons.ttf
│ │ │ ├── MaterialIcons.ttf
│ │ │ ├── Octicons.ttf
│ │ │ ├── SimpleLineIcons.ttf
│ │ │ ├── SourceSansPro-Black.ttf
│ │ │ ├── SourceSansPro-BlackItalic.ttf
│ │ │ ├── SourceSansPro-Bold.ttf
│ │ │ ├── SourceSansPro-BoldItalic.ttf
│ │ │ ├── SourceSansPro-ExtraLight.ttf
│ │ │ ├── SourceSansPro-ExtraLightItalic.ttf
│ │ │ ├── SourceSansPro-Italic.ttf
│ │ │ ├── SourceSansPro-Light.ttf
│ │ │ ├── SourceSansPro-LightItalic.ttf
│ │ │ ├── SourceSansPro-Regular.ttf
│ │ │ ├── SourceSansPro-SemiBold.ttf
│ │ │ ├── SourceSansPro-SemiBoldItalic.ttf
│ │ │ └── Zocial.ttf
│ │ ├── java
│ │ └── com
│ │ │ └── verusmobile
│ │ │ ├── MainActivity.java
│ │ │ ├── MainApplication.java
│ │ │ ├── ReactNativeFlipper.java
│ │ │ └── SplashActivity.java
│ │ └── res
│ │ ├── drawable-mdpi
│ │ ├── node_modules_reactnativeelements_src_rating_images_bell.png
│ │ ├── node_modules_reactnativeelements_src_rating_images_heart.png
│ │ ├── node_modules_reactnativeelements_src_rating_images_rocket.png
│ │ ├── node_modules_reactnativeelements_src_rating_images_star.png
│ │ ├── node_modules_reactnavigation_src_views_assets_backicon.png
│ │ ├── node_modules_reactnavigation_src_views_assets_backiconmask.png
│ │ ├── src_assets_vrsc.png
│ │ ├── src_images_cryptologo_bch.png
│ │ ├── src_images_cryptologo_btc.png
│ │ ├── src_images_cryptologo_ccl.png
│ │ ├── src_images_cryptologo_dash.png
│ │ ├── src_images_cryptologo_dgb.png
│ │ ├── src_images_cryptologo_doge.png
│ │ ├── src_images_cryptologo_k64.png
│ │ ├── src_images_cryptologo_kmd.png
│ │ ├── src_images_cryptologo_ltc.png
│ │ ├── src_images_cryptologo_oot.png
│ │ ├── src_images_cryptologo_vrsc.png
│ │ ├── src_images_cryptologo_zec.png
│ │ ├── src_images_cryptologo_zilla.png
│ │ ├── src_images_customicons_addcoin.png
│ │ ├── src_images_customicons_incomingarrow.png
│ │ ├── src_images_customicons_interestplus.png
│ │ ├── src_images_customicons_outgoingarrow.png
│ │ ├── src_images_customicons_selfarrow.png
│ │ ├── src_images_customicons_unknownlogo.png
│ │ ├── src_images_customicons_verusheaderlogo.png
│ │ ├── src_images_customicons_veruspay.png
│ │ └── src_images_customicons_verusqrlogo.png
│ │ ├── drawable-xhdpi
│ │ └── node_modules_reactnavigation_src_views_assets_backicon.png
│ │ ├── drawable-xxhdpi
│ │ └── node_modules_reactnavigation_src_views_assets_backicon.png
│ │ ├── drawable-xxxhdpi
│ │ └── node_modules_reactnavigation_src_views_assets_backicon.png
│ │ ├── drawable
│ │ └── background_splash.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── icon.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── icon.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── icon.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── icon.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── icon.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── keystores
│ ├── BUCK
│ └── debug.keystore.properties
├── settings.gradle
└── verusmobile.iml
├── app.json
├── assets
├── fonts
│ ├── OFL.txt
│ ├── SourceSansPro-Black.ttf
│ ├── SourceSansPro-BlackItalic.ttf
│ ├── SourceSansPro-Bold.ttf
│ ├── SourceSansPro-BoldItalic.ttf
│ ├── SourceSansPro-ExtraLight.ttf
│ ├── SourceSansPro-ExtraLightItalic.ttf
│ ├── SourceSansPro-Italic.ttf
│ ├── SourceSansPro-Light.ttf
│ ├── SourceSansPro-LightItalic.ttf
│ ├── SourceSansPro-Regular.ttf
│ ├── SourceSansPro-SemiBold.ttf
│ └── SourceSansPro-SemiBoldItalic.ttf
└── vrsc.png
├── babel.config.js
├── debug
├── findpos.js
└── setupJest.js
├── dummy-minifier.js
├── env
├── index.js
├── main.android.json
└── main.ios.json
├── gemfile
├── global.js
├── index.js
├── ios
├── .xcode.env
├── Podfile
├── Podfile.lock
├── PrivacyInfo.xcprivacy
├── SaplingParams
│ ├── sapling-output.params
│ └── sapling-spend.params
├── assets
│ ├── app.json
│ ├── env
│ │ └── main.json
│ └── src
│ │ ├── animations
│ │ └── loading_circle.json
│ │ ├── images
│ │ ├── cryptologo
│ │ │ ├── default
│ │ │ │ ├── btc
│ │ │ │ │ ├── bch.png
│ │ │ │ │ ├── btc.png
│ │ │ │ │ ├── ccl.png
│ │ │ │ │ ├── dash.png
│ │ │ │ │ ├── dgb.png
│ │ │ │ │ ├── doge.png
│ │ │ │ │ ├── kmd.png
│ │ │ │ │ ├── ltc.png
│ │ │ │ │ ├── oot.png
│ │ │ │ │ ├── vrsc.png
│ │ │ │ │ ├── zec.png
│ │ │ │ │ ├── zectest.png
│ │ │ │ │ └── zilla.png
│ │ │ │ └── web3
│ │ │ │ │ ├── bat.png
│ │ │ │ │ ├── dai.png
│ │ │ │ │ └── eth.png
│ │ │ └── default_chain.png
│ │ └── customIcons
│ │ │ ├── Verus.png
│ │ │ ├── add.png
│ │ │ ├── aproved.png
│ │ │ ├── bank-building.png
│ │ │ ├── bank2.png
│ │ │ ├── bankBuildingBlack.png
│ │ │ ├── buy.png
│ │ │ ├── buySell.png
│ │ │ ├── calendar.png
│ │ │ ├── call-answer.png
│ │ │ ├── coinAdd.png
│ │ │ ├── email.png
│ │ │ ├── file.png
│ │ │ ├── home-icon-silhouette.png
│ │ │ ├── id-card.png
│ │ │ ├── in-arrow.png
│ │ │ ├── interest-plus.png
│ │ │ ├── maps-and-flags.png
│ │ │ ├── out-arrow.png
│ │ │ ├── pending-clock.png
│ │ │ ├── pending.png
│ │ │ ├── piggybank.png
│ │ │ ├── self-arrow.png
│ │ │ ├── sell.png
│ │ │ ├── unknown-logo.png
│ │ │ ├── user.png
│ │ │ ├── verusPay.png
│ │ │ └── verusQRLogo.png
│ │ └── utils
│ │ └── extraCoins
│ │ └── cryptocurrencies.json
├── bridge.swift
├── splash-image.png
├── verusMobile-tvOS
│ └── Info.plist
├── verusMobile-tvOSTests
│ └── Info.plist
├── verusMobile.xcodeproj
│ ├── project.pbxproj
│ └── xcshareddata
│ │ └── xcschemes
│ │ ├── verusMobile-tvOS.xcscheme
│ │ └── verusMobile.xcscheme
├── verusMobile.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── verusMobile
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ │ └── LaunchScreen.xib
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── ios-app-icon-1024-1024.png
│ │ │ ├── ios-app-icon-1024-20.png
│ │ │ ├── ios-app-icon-1024-20@2x.png
│ │ │ ├── ios-app-icon-1024-20@3x.png
│ │ │ ├── ios-app-icon-1024-29.png
│ │ │ ├── ios-app-icon-1024-29@2x.png
│ │ │ ├── ios-app-icon-1024-29@3x.png
│ │ │ ├── ios-app-icon-1024-40.png
│ │ │ ├── ios-app-icon-1024-40@2x.png
│ │ │ ├── ios-app-icon-1024-40@3x.png
│ │ │ ├── ios-app-icon-1024-60@2x.png
│ │ │ ├── ios-app-icon-1024-60@3x.png
│ │ │ ├── ios-app-icon-1024-76.png
│ │ │ ├── ios-app-icon-1024-76@2x.png
│ │ │ └── ios-app-icon-1024-83.5@2x.png
│ │ ├── Contents.json
│ │ └── Verus-Splash.imageset
│ │ │ ├── Contents.json
│ │ │ ├── Verus-Splash-1.png
│ │ │ ├── Verus-Splash-2.png
│ │ │ └── Verus-Splash.png
│ ├── Info.plist
│ └── main.m
├── verusMobileTests
│ ├── Info.plist
│ └── verusMobileTests.m
└── verusmobile-Bridging-Header.h
├── metro.config.js
├── package.json
├── react-native.config.js
├── shims
├── crypto.js
└── stringify.js
├── src
├── VerusMobile.js
├── actions
│ ├── actionCreators.js
│ ├── actionCreators
│ │ ├── attestations.js
│ │ ├── claimCategories.js
│ │ ├── claims.js
│ │ └── identities.js
│ ├── actionDispatchers.js
│ └── actions
│ │ ├── PaymentMethod
│ │ └── WyreAccount.js
│ │ ├── UserData.js
│ │ ├── WalletSettings.js
│ │ ├── account
│ │ └── dispatchers
│ │ │ └── account.js
│ │ ├── alert
│ │ ├── creators
│ │ │ └── alert.js
│ │ └── dispatchers
│ │ │ └── alert.js
│ │ ├── cache
│ │ ├── Cache.js
│ │ ├── Electrum.js
│ │ ├── EthTransactionReceipts.js
│ │ └── Headers.js
│ │ ├── channels
│ │ ├── dlight
│ │ │ └── dispatchers
│ │ │ │ ├── AlertManager.js
│ │ │ │ └── LightWalletReduxManager.js
│ │ ├── electrum
│ │ │ └── dispatchers
│ │ │ │ └── ElectrumWalletReduxManager.js
│ │ ├── erc20
│ │ │ └── dispatchers
│ │ │ │ └── Erc20WalletReduxManager.js
│ │ ├── eth
│ │ │ └── dispatchers
│ │ │ │ └── EthWalletReduxManager.js
│ │ ├── general
│ │ │ └── dispatchers
│ │ │ │ └── GeneralWalletReduxManager.js
│ │ ├── verusid
│ │ │ └── dispatchers
│ │ │ │ └── VerusidWalletReduxManager.js
│ │ ├── vrpc
│ │ │ └── dispatchers
│ │ │ │ └── VrpcWalletReduxManager.js
│ │ └── wyre
│ │ │ └── dispatchers
│ │ │ └── WyreWalletReduxManager.js
│ │ ├── coins
│ │ └── Coins.js
│ │ ├── deeplink
│ │ ├── creators
│ │ │ └── deeplink.js
│ │ └── dispatchers
│ │ │ └── deeplinkListener.js
│ │ ├── intervals
│ │ └── dispatchers
│ │ │ ├── IntervalCreator.js
│ │ │ └── lifecycleManager.js
│ │ ├── keyboard
│ │ ├── creators
│ │ │ └── keyboard.js
│ │ └── dispatchers
│ │ │ └── keyboardListener.js
│ │ ├── loadingModal
│ │ └── dispatchers
│ │ │ └── loadingModal.js
│ │ ├── notifications
│ │ ├── creators
│ │ │ └── notifications.js
│ │ └── dispatchers
│ │ │ └── notifications.js
│ │ ├── personal
│ │ ├── creators
│ │ │ └── personal.js
│ │ └── dispatchers
│ │ │ └── personal.js
│ │ ├── send
│ │ └── dispatchers
│ │ │ └── traditionalCryptoSend.js
│ │ ├── sendModal
│ │ └── dispatchers
│ │ │ └── sendModal.js
│ │ ├── services
│ │ ├── creators
│ │ │ └── services.js
│ │ └── dispatchers
│ │ │ ├── UpdateServiceAccount.js
│ │ │ ├── UpdateServiceDataValue.js
│ │ │ ├── UpdateServiceNotifications.js
│ │ │ ├── UpdateServicePaymentMethods.js
│ │ │ ├── UpdateServiceRates.js
│ │ │ ├── UpdateServiceTransfers.js
│ │ │ ├── services.js
│ │ │ ├── updates.js
│ │ │ ├── verusid
│ │ │ └── verusid.js
│ │ │ └── wyre
│ │ │ ├── updates.js
│ │ │ └── wyre.js
│ │ ├── updateManager.js
│ │ ├── wallet
│ │ └── dispatchers
│ │ │ ├── UpdateBalances.js
│ │ │ ├── UpdateConversionPaths.js
│ │ │ ├── UpdateDepositSources.js
│ │ │ ├── UpdateFiatPrices.js
│ │ │ ├── UpdateInfo.js
│ │ │ ├── UpdateLedgerValue.js
│ │ │ ├── UpdateLinkedIdentities.js
│ │ │ ├── UpdatePendingDeposits.js
│ │ │ ├── UpdateTransactions.js
│ │ │ ├── UpdateWithdrawDestinations.js
│ │ │ ├── WalletUpdates.js
│ │ │ ├── dlight
│ │ │ └── updates.js
│ │ │ ├── electrum
│ │ │ └── updates.js
│ │ │ ├── erc20
│ │ │ └── updates.js
│ │ │ ├── eth
│ │ │ └── updates.js
│ │ │ ├── general
│ │ │ └── updates.js
│ │ │ ├── verusid
│ │ │ └── updates.js
│ │ │ ├── vrpc
│ │ │ └── updates.js
│ │ │ └── wyre
│ │ │ └── updates.js
│ │ └── widgets
│ │ ├── creators
│ │ └── widgets.js
│ │ └── dispatchers
│ │ └── widgets.js
├── animations
│ ├── loading_circle.json
│ └── success_checkmark.json
├── components
│ ├── Alert.js
│ ├── AnimatedActivityIndicator.js
│ ├── AnimatedActivityIndicatorBox.js
│ ├── AnimatedSuccessCheckmark.js
│ ├── BankTransferDetailsModal
│ │ └── BankTransferDetailsModal.js
│ ├── BarcodeReader
│ │ └── BarcodeReader.js
│ ├── CoinDetailsModal
│ │ └── CoinDetailsModal.js
│ ├── ConvertCardModal
│ │ └── ConvertCardModal.js
│ ├── CurrencyObjectData.js
│ ├── DatePickerModal
│ │ └── DatePickerModal.js
│ ├── DragSort
│ │ ├── ConfigContext.js
│ │ ├── Item.js
│ │ ├── SortableContainer.js
│ │ ├── SortableGrid.js
│ │ ├── Tile.js
│ │ └── index.js
│ ├── DrawerHeader.js
│ ├── FormModules
│ │ ├── ConvertFormModule.js
│ │ ├── CoreSendFormModule.js
│ │ └── ExportFormModule.js
│ ├── LargerButton.js
│ ├── ListSelectionModal
│ │ └── ListSelectionModal.js
│ ├── LoadingModal
│ │ └── LoadingModal.js
│ ├── MissingInfoRedirect
│ │ └── MissingInfoRedirect.js
│ ├── Modal.js
│ ├── NumberPad
│ │ ├── NumberPad.js
│ │ ├── index.js
│ │ └── lib
│ │ │ ├── AvoidingView.js
│ │ │ ├── Display.js
│ │ │ ├── Input.js
│ │ │ ├── NumberPad.js
│ │ │ ├── NumberPadContext.js
│ │ │ └── styles.js
│ ├── NumberPadModal
│ │ └── NumberPadModal.js
│ ├── PasswordCheck.js
│ ├── PasswordInput.js
│ ├── PhoneNumberModal
│ │ ├── PhoneNumberModal.js
│ │ └── PhoneNumberModal.render.js
│ ├── QRModal.js
│ ├── RFoxClaim.js
│ ├── ScanSeed.js
│ ├── SearchableList.js
│ ├── SemiModal.js
│ ├── SendModal
│ │ ├── AddErc20Token
│ │ │ ├── AddErc20TokenConfirm
│ │ │ │ ├── AddErc20TokenConfirm.js
│ │ │ │ └── AddErc20TokenConfirm.render.js
│ │ │ ├── AddErc20TokenForm
│ │ │ │ ├── AddErc20TokenForm.js
│ │ │ │ └── AddErc20TokenForm.render.js
│ │ │ └── AddErc20TokenResult
│ │ │ │ ├── AddErc20TokenResult.js
│ │ │ │ └── AddErc20TokenResult.render.js
│ │ ├── AddPbaasCurrency
│ │ │ ├── AddPbaasCurrencyConfirm
│ │ │ │ ├── AddPbaasCurrencyConfirm.js
│ │ │ │ └── AddPbaasCurrencyConfirm.render.js
│ │ │ ├── AddPbaasCurrencyForm
│ │ │ │ ├── AddPbaasCurrencyForm.js
│ │ │ │ └── AddPbaasCurrencyForm.render.js
│ │ │ └── AddPbaasCurrencyResult
│ │ │ │ ├── AddPbaasCurrencyResult.js
│ │ │ │ └── AddPbaasCurrencyResult.render.js
│ │ ├── AuthenticateUser
│ │ │ ├── AuthenticateUserForm
│ │ │ │ └── AuthenticateUserForm.js
│ │ │ ├── AuthenticateUserPassword
│ │ │ │ └── AuthenticateUserPassword.js
│ │ │ └── AuthenticateUserResult
│ │ │ │ └── AuthenticateUserResult.js
│ │ ├── ConversionSend
│ │ │ ├── ConversionSendConfirm
│ │ │ │ ├── ConversionSendConfirm.js
│ │ │ │ └── ConversionSendConfirm.render.js
│ │ │ ├── ConversionSendForm
│ │ │ │ ├── ConversionSendForm.js
│ │ │ │ └── ConversionSendForm.render.js
│ │ │ └── ConversionSendResult
│ │ │ │ ├── ConversionSendResult.js
│ │ │ │ └── ConversionSendResult.render.js
│ │ ├── ConvertOrCrossChainSend
│ │ │ ├── ConvertOrCrossChainSendConfirm
│ │ │ │ └── ConvertOrCrossChainSendConfirm.js
│ │ │ ├── ConvertOrCrossChainSendForm
│ │ │ │ └── ConvertOrCrossChainSendForm.js
│ │ │ └── ConvertOrCrossChainSendResult
│ │ │ │ └── ConvertOrCrossChainSendResult.js
│ │ ├── DepositSend
│ │ │ ├── DepositSendConfirm
│ │ │ │ ├── DepositSendConfirm.js
│ │ │ │ └── DepositSendConfirm.render.js
│ │ │ ├── DepositSendForm
│ │ │ │ ├── DepositSendForm.js
│ │ │ │ └── DepositSendForm.render.js
│ │ │ └── DepositSendResult
│ │ │ │ ├── DepositSendResult.js
│ │ │ │ └── DepositSendResult.render.js
│ │ ├── LinkIdentity
│ │ │ ├── LinkIdentityConfirm
│ │ │ │ ├── LinkIdentityConfirm.js
│ │ │ │ └── LinkIdentityConfirm.render.js
│ │ │ ├── LinkIdentityForm
│ │ │ │ ├── LinkIdentityForm.js
│ │ │ │ └── LinkIdentityForm.render.js
│ │ │ └── LinkIdentityResult
│ │ │ │ ├── LinkIdentityResult.js
│ │ │ │ └── LinkIdentityResult.render.js
│ │ ├── ProvisionIdentity
│ │ │ ├── ProvisionIdentityConfirm
│ │ │ │ ├── ProvisionIdentityConfirm.js
│ │ │ │ └── ProvisionIdentityConfirm.render.js
│ │ │ ├── ProvisionIdentityForm
│ │ │ │ └── ProvisionIdentityForm.js
│ │ │ └── ProvisionIdentityResult
│ │ │ │ ├── ProvisionIdentityResult.js
│ │ │ │ └── ProvisionIdentityResult.render.js
│ │ ├── RecoverIdentity
│ │ │ ├── RecoverIdentityConfirm
│ │ │ │ ├── RecoverIdentityConfirm.js
│ │ │ │ └── RecoverIdentityConfirm.render.js
│ │ │ ├── RecoverIdentityForm
│ │ │ │ ├── RecoverIdentityForm.js
│ │ │ │ └── RecoverIdentityForm.render.js
│ │ │ └── RecoverIdentityResult
│ │ │ │ ├── RecoverIdentityResult.js
│ │ │ │ └── RecoverIdentityResult.render.js
│ │ ├── RevokeIdentity
│ │ │ ├── RevokeIdentityConfirm
│ │ │ │ ├── RevokeIdentityConfirm.js
│ │ │ │ └── RevokeIdentityConfirm.render.js
│ │ │ ├── RevokeIdentityForm
│ │ │ │ ├── RevokeIdentityForm.js
│ │ │ │ └── RevokeIdentityForm.render.js
│ │ │ └── RevokeIdentityResult
│ │ │ │ ├── RevokeIdentityResult.js
│ │ │ │ └── RevokeIdentityResult.render.js
│ │ ├── SendModal.js
│ │ ├── SendModal.render.js
│ │ ├── TraditionalCryptoSend
│ │ │ ├── TraditionalCryptoSendConfirm
│ │ │ │ └── TraditionalCryptoSendConfirm.js
│ │ │ ├── TraditionalCryptoSendForm
│ │ │ │ └── TraditionalCryptoSendForm.js
│ │ │ └── TraditionalCryptoSendResult
│ │ │ │ └── TraditionalCryptoSendResult.js
│ │ └── WithdrawSend
│ │ │ ├── WithdrawSendConfirm
│ │ │ ├── WithdrawSendConfirm.js
│ │ │ └── WithdrawSendConfirm.render.js
│ │ │ ├── WithdrawSendForm
│ │ │ ├── WithdrawSendForm.js
│ │ │ └── WithdrawSendForm.render.js
│ │ │ └── WithdrawSendResult
│ │ │ ├── WithdrawSendResult.js
│ │ │ └── WithdrawSendResult.render.js
│ ├── SetupSeedModal
│ │ ├── CreateSeed
│ │ │ └── CreateSeed.js
│ │ ├── ImportSeed
│ │ │ └── ImportSeed.js
│ │ └── SetupSeedModal.js
│ ├── StandardButton.js
│ ├── SubWalletCard.js
│ ├── TextInputModal
│ │ └── TextInputModal.js
│ ├── TxDetailsModal
│ │ └── TxDetailsModal.js
│ ├── VerusIdDetailsModal
│ │ └── VerusIdDetailsModal.js
│ └── VerusIdObjectData.js
├── containers
│ ├── AddCoin
│ │ └── AddCoin.js
│ ├── Coin
│ │ ├── CoinMenus.js
│ │ ├── ConvertCoin
│ │ │ ├── ConvertCoin.js
│ │ │ └── ConvertCoin.render.js
│ │ ├── DynamicHeader.js
│ │ ├── ManageCoin
│ │ │ ├── DepositCoin
│ │ │ │ ├── DepositCoin.js
│ │ │ │ └── DepositCoin.render.js
│ │ │ ├── ManageCoin.js
│ │ │ └── WithdrawCoin
│ │ │ │ ├── WithdrawCoin.js
│ │ │ │ └── WithdrawCoin.render.js
│ │ ├── Overview
│ │ │ └── Overview.js
│ │ ├── ReceiveCoin
│ │ │ ├── ReceiveCoin.js
│ │ │ └── ReceiveCoin.render.js
│ │ └── SendCoin
│ │ │ └── SendCoin.js
│ ├── CoinDetails
│ │ └── CoinDetails.js
│ ├── Convert
│ │ ├── Convert.js
│ │ └── ConvertCard
│ │ │ └── ConvertCard.js
│ ├── CreateWallet
│ │ ├── CreateWallet.js
│ │ └── Forms
│ │ │ ├── CreateSeed
│ │ │ ├── CreateSeed.js
│ │ │ └── Forms
│ │ │ │ ├── SeedIntro.js
│ │ │ │ └── SeedWords.js
│ │ │ ├── ImportWallet
│ │ │ ├── Forms
│ │ │ │ ├── ImportIntro.js
│ │ │ │ ├── ImportSeed.js
│ │ │ │ └── ImportText.js
│ │ │ └── ImportWallet.js
│ │ │ └── WalletIntro.js
│ ├── DeepLink
│ │ ├── DeepLink.js
│ │ ├── InvoiceInfo
│ │ │ └── InvoiceInfo.js
│ │ ├── InvoicePaymentConfiguration
│ │ │ └── InvoicePaymentConfiguration.js
│ │ ├── LoginRequestComplete
│ │ │ └── LoginRequestComplete.js
│ │ ├── LoginRequestIdentity
│ │ │ └── LoginRequestIdentity.js
│ │ └── LoginRequestInfo
│ │ │ └── LoginRequestInfo.js
│ ├── DisplaySeed
│ │ └── DisplaySeed.js
│ ├── FundSourceSelect
│ │ └── FundSourceSelectList.js
│ ├── Home
│ │ ├── Home.js
│ │ ├── Home.render.js
│ │ ├── Home.themes.js
│ │ ├── HomeFAB
│ │ │ └── HomeFAB.js
│ │ └── HomeWidgets
│ │ │ ├── CurrencyWidget.js
│ │ │ ├── NotificationWidget.js
│ │ │ ├── TotalUniBalanceWidget.js
│ │ │ └── VerusIdWidget.js
│ ├── Identity
│ │ ├── AddIdentity
│ │ │ ├── Container.js
│ │ │ ├── View.js
│ │ │ └── index.js
│ │ ├── Container.js
│ │ ├── Home
│ │ │ ├── AttestationDetails
│ │ │ │ ├── Container.js
│ │ │ │ ├── View.js
│ │ │ │ └── index.js
│ │ │ ├── ScanBadge
│ │ │ │ ├── Container.js
│ │ │ │ ├── View.js
│ │ │ │ └── index.js
│ │ │ ├── ScannedInformation
│ │ │ │ ├── Container.js
│ │ │ │ ├── View.js
│ │ │ │ ├── index.js
│ │ │ │ ├── mockData.js
│ │ │ │ └── styles.js
│ │ │ └── View.js
│ │ ├── PersonalInfo
│ │ │ ├── AlphaSort
│ │ │ │ └── AlphabeticalSort.js
│ │ │ ├── CategoryDialogs
│ │ │ │ ├── AddCategory.js
│ │ │ │ └── DeleteCategory.js
│ │ │ ├── ClaimCategoryDetails
│ │ │ │ ├── Container.js
│ │ │ │ ├── View.js
│ │ │ │ └── index.js
│ │ │ ├── ClaimDetails
│ │ │ │ ├── Container.js
│ │ │ │ ├── View.js
│ │ │ │ └── index.js
│ │ │ ├── ClaimManager
│ │ │ │ ├── Container.js
│ │ │ │ ├── MoveIntoCategory
│ │ │ │ │ ├── Container.js
│ │ │ │ │ ├── View.js
│ │ │ │ │ └── index.js
│ │ │ │ ├── View.js
│ │ │ │ ├── index.js
│ │ │ │ └── utils
│ │ │ │ │ ├── getShowHideIcon.js
│ │ │ │ │ └── truncateString.js
│ │ │ ├── Container.js
│ │ │ ├── RequestAttestation
│ │ │ │ ├── Container.js
│ │ │ │ ├── RequestDialog.js
│ │ │ │ ├── View.js
│ │ │ │ └── index.js
│ │ │ ├── View.js
│ │ │ ├── index.js
│ │ │ └── utils
│ │ │ │ ├── claimCategoriesReducer.js
│ │ │ │ ├── searchByCategoriesAndClaims.js
│ │ │ │ └── useClaimCategories.js
│ │ ├── View.js
│ │ ├── index.js
│ │ └── tabs.js
│ ├── LoadingScreen
│ │ ├── LoadingScreen.js
│ │ └── LoadingScreen.styles.js
│ ├── Login
│ │ └── Login.js
│ ├── Onboard
│ │ ├── CreateProfile
│ │ │ ├── CreateProfile.js
│ │ │ └── Forms
│ │ │ │ ├── ChooseName.js
│ │ │ │ ├── CreatePassword.js
│ │ │ │ └── UseBiometrics.js
│ │ └── Welcome
│ │ │ ├── LandingScreen.js
│ │ │ └── WelcomeSlider.js
│ ├── Personal
│ │ ├── Personal.js
│ │ ├── Personal.render.js
│ │ ├── PersonalAttributes
│ │ │ ├── PersonalAttributes.js
│ │ │ ├── PersonalAttributes.render.js
│ │ │ └── PersonalAttributesEditName
│ │ │ │ ├── PersonalAttributesEditName.js
│ │ │ │ └── PersonalAttributesEditName.render.js
│ │ ├── PersonalContact
│ │ │ ├── PersonalContact.js
│ │ │ └── PersonalContact.render.js
│ │ ├── PersonalImages
│ │ │ ├── PersonalImages.js
│ │ │ ├── PersonalImages.render.js
│ │ │ └── PersonalLocationsEditImage
│ │ │ │ ├── PersonalImagesEditImage.js
│ │ │ │ └── PersonalImagesEditImage.render.js
│ │ ├── PersonalInfo
│ │ │ ├── PersonalInfo.js
│ │ │ └── PersonalInfo.render.js
│ │ ├── PersonalIntroSlider
│ │ │ └── PersonalIntroSlider.js
│ │ ├── PersonalLocations
│ │ │ ├── PersonalLocations.js
│ │ │ ├── PersonalLocations.render.js
│ │ │ ├── PersonalLocationsEditAddress
│ │ │ │ ├── PersonalLocationsEditAddress.js
│ │ │ │ └── PersonalLocationsEditAddress.render.js
│ │ │ └── PersonalLocationsEditTaxCountry
│ │ │ │ ├── PersonalLocationsEditTaxCountry.js
│ │ │ │ └── PersonalLocationsEditTaxCountry.render.js
│ │ └── PersonalPaymentMethods
│ │ │ ├── PersonalPaymentMethods.js
│ │ │ ├── PersonalPaymentMethods.render.js
│ │ │ ├── PersonalPaymentMethodsEditBankAccount
│ │ │ ├── PersonalPaymentMethodsEditBankAccount.js
│ │ │ └── PersonalPaymentMethodsEditBankAccount.render.js
│ │ │ └── PersonalPaymentMethodsEditBankAccountAddress
│ │ │ ├── PersonalPaymentMethodsEditBankAccountAddress.js
│ │ │ └── PersonalPaymentMethodsEditBankAccountAddress.render.js
│ ├── RecoverSeeds
│ │ └── RecoverSeedsSelectAccount.js
│ ├── RevokeRecover
│ │ ├── RevokeRecoverIdentityForm.js
│ │ └── RevokeRecoverSlider.js
│ ├── RootStack
│ │ ├── ConvertStackScreens
│ │ │ └── ConvertStackScreens.js
│ │ ├── DeepLinkStackScreens
│ │ │ └── DeepLinkStackScreens.js
│ │ ├── HomeTabScreens
│ │ │ └── HomeTabScreens.js
│ │ ├── LoadingStackScreens
│ │ │ └── LoadingStackScreens.js
│ │ ├── MainStackScreens
│ │ │ └── MainStackScreens.js
│ │ ├── ProfileStackScreens
│ │ │ └── ProfileStackScreens.js
│ │ ├── RecoverSeedsStackScreens
│ │ │ └── RecoverSeedsStackScreens.js
│ │ ├── RevokeRecoverStackScreens
│ │ │ └── RevokeRecoverStackScreens.js
│ │ ├── RootStackScreens.js
│ │ ├── ServicesStackScreens
│ │ │ └── ServicesStackScreens.js
│ │ ├── SignedInStackScreens
│ │ │ └── SignedInStackScreens.js
│ │ ├── SignedOutNoKeyStackScreens
│ │ │ └── SignedOutNoKeyStackScreens.js
│ │ ├── SignedOutStackScreens
│ │ │ └── SignedOutStackScreens.js
│ │ └── WalletStackScreens
│ │ │ └── WalletStackScreens.js
│ ├── SecureLoading
│ │ ├── SecureLoading.js
│ │ └── SecureLoading.styles.js
│ ├── Services
│ │ ├── Service
│ │ │ └── Service.js
│ │ ├── ServiceComponents
│ │ │ ├── PbaasPreconvertService
│ │ │ │ ├── PbaasPreconvertService.js
│ │ │ │ ├── PbaasPreconvertService.render.js
│ │ │ │ └── PbaasPreconvertServiceOverview
│ │ │ │ │ └── PbaasPreconvertServiceOverview.js
│ │ │ ├── VerusIdService
│ │ │ │ ├── VerusIdLogin.js
│ │ │ │ ├── VerusIdService.js
│ │ │ │ ├── VerusIdService.render.js
│ │ │ │ ├── VerusIdServiceIntroSlider
│ │ │ │ │ └── VerusIdServiceIntroSlider.js
│ │ │ │ └── VerusIdServiceOverview
│ │ │ │ │ ├── VerusIdServiceOverview.js
│ │ │ │ │ └── VerusIdServiceOverview.render.js
│ │ │ └── WyreService
│ │ │ │ ├── WyreService.js
│ │ │ │ ├── WyreService.render.js
│ │ │ │ ├── WyreServiceAccount
│ │ │ │ ├── WyreServiceAccount.js
│ │ │ │ ├── WyreServiceAccountCreator
│ │ │ │ │ └── WyreServiceAccountCreator.js
│ │ │ │ ├── WyreServiceAccountData
│ │ │ │ │ ├── WyreServiceAccountData.js
│ │ │ │ │ └── WyreServiceAccountData.render.js
│ │ │ │ ├── WyreServiceAccountOverview
│ │ │ │ │ ├── WyreServiceAccountOverview.js
│ │ │ │ │ └── WyreServiceAccountOverview.render.js
│ │ │ │ ├── WyreServiceAddPaymentMethod
│ │ │ │ │ ├── WyreServiceAddPaymentMethod.js
│ │ │ │ │ └── WyreServiceAddPaymentMethod.render.js
│ │ │ │ └── WyreServiceEditPaymentMethod
│ │ │ │ │ ├── WyreServiceEditPaymentMethod.js
│ │ │ │ │ └── WyreServiceEditPaymentMethod.render.js
│ │ │ │ └── WyreServiceIntroSlider
│ │ │ │ └── WyreServiceIntroSlider.js
│ │ ├── ServiceTools
│ │ │ └── ServiceProvidedInfoOverview
│ │ │ │ ├── ServiceProvidedInfoOverview.js
│ │ │ │ └── ServiceProvidedInfoOverview.render.js
│ │ ├── Services.js
│ │ ├── Services.render.js
│ │ └── ServicesOverview
│ │ │ ├── ServicesOverview.js
│ │ │ └── ServicesOverview.render.js
│ ├── Settings
│ │ ├── AppInfo
│ │ │ └── AppInfo.js
│ │ ├── ProfileSettings
│ │ │ ├── DeleteProfile
│ │ │ │ └── DeleteProfile.js
│ │ │ ├── ProfileInfo
│ │ │ │ ├── ProfileInfo.js
│ │ │ │ └── ProfileInfo.styles.js
│ │ │ ├── ProfileSettings.js
│ │ │ ├── RecoverSeed
│ │ │ │ └── RecoverSeed.js
│ │ │ └── ResetPwd
│ │ │ │ └── ResetPwd.js
│ │ ├── SettingsMenus.js
│ │ └── WalletSettings
│ │ │ ├── AddressBlocklist
│ │ │ ├── AddressBlocklist.js
│ │ │ └── AddressBlocklist.render.js
│ │ │ ├── CoinSettings
│ │ │ └── CoinSettings.js
│ │ │ ├── GeneralWalletSettings
│ │ │ └── GeneralWalletSettings.js
│ │ │ ├── VrpcOverrides
│ │ │ ├── VrpcOverrides.js
│ │ │ └── VrpcOverrides.render.js
│ │ │ └── WalletSettings.js
│ ├── SideMenu
│ │ ├── SideMenu.js
│ │ └── SideMenu.render.js
│ ├── SignUp
│ │ ├── SignUp.js
│ │ └── SignUp.render.js
│ ├── SignedOutDropdown
│ │ └── SignedOutDropdown.js
│ ├── SubWalletSelect
│ │ └── SubWalletSelectorModal.js
│ └── VerusPay
│ │ ├── VerusPay.js
│ │ └── VerusPay.styles.js
├── globals
│ ├── colors.js
│ └── globalStyles.js
├── hooks
│ ├── useObjectSelector.js
│ └── usePrevious.js
├── images
│ ├── cryptologo
│ │ ├── default
│ │ │ ├── btc
│ │ │ │ ├── bch
│ │ │ │ │ ├── bch_dark.svg
│ │ │ │ │ └── bch_light.svg
│ │ │ │ ├── btc
│ │ │ │ │ ├── btc_dark.svg
│ │ │ │ │ └── btc_light.svg
│ │ │ │ ├── ccl
│ │ │ │ │ ├── ccl_dark.svg
│ │ │ │ │ └── ccl_light.svg
│ │ │ │ ├── dash
│ │ │ │ │ ├── dash_dark.svg
│ │ │ │ │ └── dash_light.svg
│ │ │ │ ├── dgb
│ │ │ │ │ ├── dgb_dark.svg
│ │ │ │ │ └── dgb_light.svg
│ │ │ │ ├── doge
│ │ │ │ │ ├── doge_dark.svg
│ │ │ │ │ └── doge_light.svg
│ │ │ │ ├── index.js
│ │ │ │ ├── kmd
│ │ │ │ │ ├── kmd_dark.svg
│ │ │ │ │ └── kmd_light.svg
│ │ │ │ ├── ltc
│ │ │ │ │ ├── ltc_dark.svg
│ │ │ │ │ └── ltc_light.svg
│ │ │ │ ├── oot
│ │ │ │ │ ├── oot_dark.svg
│ │ │ │ │ └── oot_light.svg
│ │ │ │ ├── vrsc
│ │ │ │ │ ├── vrsc_dark.svg
│ │ │ │ │ └── vrsc_light.svg
│ │ │ │ ├── vrsctest
│ │ │ │ │ ├── vrsctest_dark.svg
│ │ │ │ │ └── vrsctest_light.svg
│ │ │ │ ├── zec
│ │ │ │ │ ├── zec_dark.svg
│ │ │ │ │ └── zec_light.svg
│ │ │ │ ├── zectest
│ │ │ │ │ ├── zectest_dark.svg
│ │ │ │ │ └── zectest_light.svg
│ │ │ │ └── zilla
│ │ │ │ │ ├── zilla_dark.svg
│ │ │ │ │ └── zilla_light.svg
│ │ │ ├── fiat
│ │ │ │ ├── aud
│ │ │ │ │ ├── aud_dark.svg
│ │ │ │ │ └── aud_light.svg
│ │ │ │ ├── eur
│ │ │ │ │ ├── eur_dark.svg
│ │ │ │ │ └── eur_light.svg
│ │ │ │ ├── index.js
│ │ │ │ └── usd
│ │ │ │ │ ├── usd_dark.svg
│ │ │ │ │ └── usd_light.svg
│ │ │ ├── pbaas
│ │ │ │ ├── bridge-veth
│ │ │ │ │ ├── bridge-veth_dark.svg
│ │ │ │ │ └── bridge-veth_light.svg
│ │ │ │ ├── chips
│ │ │ │ │ ├── chips_dark.svg
│ │ │ │ │ └── chips_light.svg
│ │ │ │ ├── index.js
│ │ │ │ ├── kaiju
│ │ │ │ │ ├── kaiju_dark.svg
│ │ │ │ │ └── kaiju_light.svg
│ │ │ │ ├── pure
│ │ │ │ │ ├── pure_dark.svg
│ │ │ │ │ └── pure_light.svg
│ │ │ │ ├── switch
│ │ │ │ │ ├── switch_dark.svg
│ │ │ │ │ └── switch_light.svg
│ │ │ │ └── varrr
│ │ │ │ │ ├── varrr_dark.svg
│ │ │ │ │ └── varrr_light.svg
│ │ │ └── web3
│ │ │ │ ├── aave
│ │ │ │ ├── aave_dark.svg
│ │ │ │ └── aave_light.svg
│ │ │ │ ├── bal
│ │ │ │ ├── bal_dark.svg
│ │ │ │ └── bal_light.svg
│ │ │ │ ├── bat
│ │ │ │ ├── bat_dark.svg
│ │ │ │ └── bat_light.svg
│ │ │ │ ├── bnt
│ │ │ │ ├── bnt_dark.svg
│ │ │ │ └── bnt_light.svg
│ │ │ │ ├── crv
│ │ │ │ ├── crv_dark.svg
│ │ │ │ └── crv_light.svg
│ │ │ │ ├── dai
│ │ │ │ ├── dai_dark.svg
│ │ │ │ └── dai_light.svg
│ │ │ │ ├── eth
│ │ │ │ ├── eth_dark.svg
│ │ │ │ └── eth_light.svg
│ │ │ │ ├── eurc
│ │ │ │ ├── eurc_dark.svg
│ │ │ │ └── eurc_light.svg
│ │ │ │ ├── hot
│ │ │ │ ├── hot_dark.svg
│ │ │ │ └── hot_light.svg
│ │ │ │ ├── index.js
│ │ │ │ ├── link
│ │ │ │ ├── link_dark.svg
│ │ │ │ └── link_light.svg
│ │ │ │ ├── mkr
│ │ │ │ ├── mkr_dark.svg
│ │ │ │ └── mkr_light.svg
│ │ │ │ ├── nexo
│ │ │ │ ├── nexo_dark.svg
│ │ │ │ └── nexo_light.svg
│ │ │ │ ├── rfox
│ │ │ │ ├── rfox_dark.svg
│ │ │ │ └── rfox_light.svg
│ │ │ │ ├── sushi
│ │ │ │ ├── sushi_dark.svg
│ │ │ │ └── sushi_light.svg
│ │ │ │ ├── tbtc
│ │ │ │ ├── tbtc_dark.svg
│ │ │ │ └── tbtc_light.svg
│ │ │ │ ├── uni
│ │ │ │ ├── uni_dark.svg
│ │ │ │ └── uni_light.svg
│ │ │ │ ├── usdc
│ │ │ │ ├── usdc_dark.svg
│ │ │ │ └── usdc_light.svg
│ │ │ │ ├── usdt
│ │ │ │ ├── usdt_dark.svg
│ │ │ │ └── usdt_light.svg
│ │ │ │ ├── ven
│ │ │ │ ├── ven_dark.svg
│ │ │ │ └── ven_light.svg
│ │ │ │ ├── wbtc
│ │ │ │ ├── wbtc_dark.svg
│ │ │ │ └── wbtc_light.svg
│ │ │ │ ├── yfi
│ │ │ │ ├── yfi_dark.svg
│ │ │ │ └── yfi_light.svg
│ │ │ │ └── zrx
│ │ │ │ ├── zrx_dark.svg
│ │ │ │ └── zrx_light.svg
│ │ ├── default_chain.png
│ │ └── index.js
│ ├── customIcons
│ │ ├── Biometrics.svg
│ │ ├── EncryptLocally.svg
│ │ ├── EnterKeyIcon.svg
│ │ ├── MnemonicSeed.svg
│ │ ├── MyProfile.svg
│ │ ├── MyWallet.svg
│ │ ├── MyWalletLight.svg
│ │ ├── ScanQrIcon.svg
│ │ ├── SubWallets.svg
│ │ ├── TwentyFourWordIcon.svg
│ │ ├── Verus.png
│ │ ├── VerusIdLogo.svg
│ │ ├── VerusLogo.svg
│ │ ├── VerusPayTextLogo.svg
│ │ ├── add.png
│ │ ├── addCoin.png
│ │ ├── aproved.png
│ │ ├── bank-building.png
│ │ ├── bank.png
│ │ ├── bank2.png
│ │ ├── bankBuildingBlack.png
│ │ ├── buy.png
│ │ ├── buySell.png
│ │ ├── calendar.png
│ │ ├── call-answer.png
│ │ ├── coinAdd.svg
│ │ ├── coins-icon.png
│ │ ├── email.png
│ │ ├── file.png
│ │ ├── home-icon-silhouette.png
│ │ ├── id-card.png
│ │ ├── index.js
│ │ ├── maps-and-flags.png
│ │ ├── pending.png
│ │ ├── piggybank.png
│ │ ├── received-icon.svg
│ │ ├── recover-icon.png
│ │ ├── revoke-icon.png
│ │ ├── sell.png
│ │ ├── transactions
│ │ │ ├── in-arrow.svg
│ │ │ ├── index.js
│ │ │ ├── interest-plus.svg
│ │ │ ├── out-arrow.svg
│ │ │ ├── pending-clock.svg
│ │ │ ├── self-arrow.svg
│ │ │ └── unknown-logo.svg
│ │ ├── user.png
│ │ ├── verusHeaderLogo.png
│ │ ├── verusPay.svg
│ │ ├── verusid-at-icon.svg
│ │ ├── verusid-error-icon.svg
│ │ ├── verusid-wallet-bg-blue.svg
│ │ └── vrsc.png
│ └── servicelogo
│ │ ├── index.js
│ │ ├── verusid
│ │ └── verusid_light.svg
│ │ └── wyre
│ │ └── wyre_light.svg
├── reducers
│ ├── alert.js
│ ├── authentication.js
│ ├── cache
│ │ ├── electrum.js
│ │ ├── ethtxreceipts.js
│ │ └── headers.js
│ ├── channelStores
│ │ ├── dlight.js
│ │ ├── electrum.js
│ │ ├── erc20.js
│ │ ├── eth.js
│ │ ├── general.js
│ │ ├── verusid.js
│ │ ├── vrpc.js
│ │ └── wyre.js
│ ├── coins.js
│ ├── deeplink.js
│ ├── errors.js
│ ├── gui
│ │ ├── buySellCrypto.js
│ │ ├── coinMenus.js
│ │ ├── coinOverview.js
│ │ └── customCoins.js
│ ├── identity.js
│ ├── index.js
│ ├── keyboard.js
│ ├── ledger.js
│ ├── loadingModal.js
│ ├── modal.js
│ ├── notifications.js
│ ├── paymentMethods.js
│ ├── personal.js
│ ├── responseHeaders.js
│ ├── secureLoading.js
│ ├── sendModal.js
│ ├── services.js
│ ├── settings.js
│ ├── updates.js
│ └── widgets.js
├── sagas
│ ├── authentication.js
│ ├── channels
│ │ ├── dlight.js
│ │ ├── electrum.js
│ │ ├── erc20.js
│ │ ├── eth.js
│ │ ├── general.js
│ │ ├── verusid.js
│ │ ├── vrpc.js
│ │ └── wyre.js
│ ├── coins.js
│ ├── deeplink.js
│ ├── identity.js
│ ├── index.js
│ ├── notifications.js
│ ├── transactions.js
│ └── widgets.js
├── selectors
│ ├── address.js
│ ├── authentication.js
│ ├── identity.js
│ ├── linkedIdentities.js
│ ├── networkName.js
│ ├── notifications.js
│ ├── paymentMethods.js
│ ├── rates.js
│ ├── settings.js
│ ├── transactions.js
│ └── widgets.js
├── store
│ └── index.js
├── styles
│ ├── buttons.styles.js
│ ├── containers.styles.js
│ ├── index.js
│ ├── misc.styles.js
│ ├── roots.styles.js
│ ├── tables.styles.js
│ └── text.styles.js
├── tests
│ └── helpers
│ │ ├── ChainDefinitions.js
│ │ ├── MockAppState.js
│ │ ├── MockAuthData.js
│ │ ├── MockChainInfo.js
│ │ ├── MockNetwork.js
│ │ ├── MockNumbers.js
│ │ ├── MockServerData.js
│ │ └── SetFetchParams.js
└── utils
│ ├── CoinData
│ ├── CoinData.js
│ ├── CoinDirectory.js
│ ├── CoinsList.js
│ ├── Graphics.js
│ └── electrum
│ │ ├── dpow.js
│ │ ├── fees.js
│ │ └── servers.js
│ ├── InitialData
│ ├── Attestation.js
│ ├── Claim.js
│ ├── ClaimCategory.js
│ ├── Identity.js
│ └── updateStoredItems.js
│ ├── QrScanner
│ ├── ProcessedQr.js
│ └── QrScanner.js
│ ├── __tests__
│ ├── api
│ │ ├── coinpaprika.int.test.js
│ │ └── fiatrates.int.test.js
│ ├── int
│ │ ├── composite
│ │ │ ├── getCompositeBalances.int.test.js
│ │ │ ├── getCompositeFiatPrices.int.test.js
│ │ │ ├── getCompositeInfo.int.test.js
│ │ │ └── getCompositeTransactions.int.test.js
│ │ ├── dlight
│ │ │ └── initialization.int.test.js
│ │ └── electrum
│ │ │ ├── getBalances.int.test.js
│ │ │ ├── getBlockHeight.int.test.js
│ │ │ ├── getBlockInfo.int.test.js
│ │ │ ├── getMerkle.int.test.js
│ │ │ ├── getServerVersion.int.test.js
│ │ │ ├── getTransaction.int.test.js
│ │ │ ├── getTransactions.int.test.js
│ │ │ └── getUnspent.int.test.js
│ └── unit
│ │ ├── CoinData.unit.test.js
│ │ ├── authDataStorage.unit.test.js
│ │ ├── electrumUpdates.unit.test.js
│ │ ├── math.unit.test.js
│ │ ├── objectManip.unit.test.js
│ │ ├── promises.unit.test.js
│ │ ├── seedCrypt.unit.test.js
│ │ └── stringUtils.unit.test.js
│ ├── addressBlocklist.js
│ ├── agama-wallet-lib
│ ├── block.js
│ ├── coin-helpers.js
│ ├── dlight-servers.js
│ └── keys.js
│ ├── api
│ ├── channels
│ │ ├── dlight
│ │ │ ├── callCreators.js
│ │ │ ├── requests
│ │ │ │ ├── getAddresses.js
│ │ │ │ ├── getBlockCount.js
│ │ │ │ ├── getInfo.js
│ │ │ │ ├── getPrivateBalance.js
│ │ │ │ ├── getTransactions.js
│ │ │ │ ├── preflightPrivateTransaction.js
│ │ │ │ └── sendPrivateTransaction.js
│ │ │ └── state
│ │ │ │ ├── synchronizer.js
│ │ │ │ └── walletFolder.js
│ │ ├── electrum
│ │ │ ├── callCreators.js
│ │ │ ├── proxyServers.js
│ │ │ ├── requests
│ │ │ │ ├── getBalances.js
│ │ │ │ ├── getBlockHeight.js
│ │ │ │ ├── getBlockInfo.js
│ │ │ │ ├── getMerkle.js
│ │ │ │ ├── getServerVersion.js
│ │ │ │ ├── getTransaction.js
│ │ │ │ ├── getTransactions.js
│ │ │ │ ├── getUnspent.js
│ │ │ │ └── pushTx.js
│ │ │ └── serverTester.js
│ │ ├── erc20
│ │ │ ├── callCreator.js
│ │ │ └── requests
│ │ │ │ ├── getErc20Balance.js
│ │ │ │ ├── getErc20Transactions.js
│ │ │ │ ├── preflight.js
│ │ │ │ ├── send.js
│ │ │ │ └── specific
│ │ │ │ ├── index.js
│ │ │ │ └── rfox
│ │ │ │ ├── claimAccountBalance.js
│ │ │ │ ├── getTotalAccountBalance.js
│ │ │ │ └── index.js
│ │ ├── eth
│ │ │ ├── callCreator.js
│ │ │ └── requests
│ │ │ │ ├── getEthBalance.js
│ │ │ │ ├── getEthTransactions.js
│ │ │ │ ├── getTxReceipt.js
│ │ │ │ ├── preflight.js
│ │ │ │ └── send.js
│ │ ├── general
│ │ │ ├── addressBlocklist
│ │ │ │ └── getAddressBlocklist.js
│ │ │ ├── btcFeesAPIs
│ │ │ │ ├── atomicExplorer.js
│ │ │ │ └── blockchainCom.js
│ │ │ ├── callCreators.js
│ │ │ └── ratesAPIs
│ │ │ │ ├── coinPaprika.js
│ │ │ │ └── fiatExchangeRates.js
│ │ ├── verusid
│ │ │ ├── callCreators.js
│ │ │ └── requests
│ │ │ │ ├── getCurrency.js
│ │ │ │ ├── getCurrencyNameMap.js
│ │ │ │ ├── getFriendlyNameMap.js
│ │ │ │ ├── getIdentity.js
│ │ │ │ ├── getWatchedIdentities.js
│ │ │ │ └── updateIdentity.js
│ │ ├── vrpc
│ │ │ ├── callCreators.js
│ │ │ └── requests
│ │ │ │ ├── calculateCurrencyTransferFee.js
│ │ │ │ ├── createVerusPayInvoice.js
│ │ │ │ ├── estimateConversion.js
│ │ │ │ ├── extractLoginConsentSig.js
│ │ │ │ ├── extractVerusPayInvoiceSig.js
│ │ │ │ ├── fundRawTransaction.js
│ │ │ │ ├── getAddressBalances.js
│ │ │ │ ├── getAddressDeltas.js
│ │ │ │ ├── getAddressMempool.js
│ │ │ │ ├── getAddressUtxos.js
│ │ │ │ ├── getBlock.js
│ │ │ │ ├── getCurrenciesMappedToEth.js
│ │ │ │ ├── getCurrencyConversionPaths.js
│ │ │ │ ├── getCurrencyConverters.js
│ │ │ │ ├── getInfo.js
│ │ │ │ ├── getInvoiceSourceOptions.js
│ │ │ │ ├── getSendCurrencyTransaction.js
│ │ │ │ ├── getSignatureInfo.js
│ │ │ │ ├── getTransaction.js
│ │ │ │ ├── getVdxfid.js
│ │ │ │ ├── handleProvisioningResponse.js
│ │ │ │ ├── listCurrencies.js
│ │ │ │ ├── preflight.js
│ │ │ │ ├── send.js
│ │ │ │ ├── sendRawTransaction.js
│ │ │ │ ├── signIdProvisioningRequest.js
│ │ │ │ ├── signLoginConsentResponse.js
│ │ │ │ ├── signMessage.js
│ │ │ │ ├── verifyIdProvisioningResponse.js
│ │ │ │ ├── verifyLoginConsentRequest.js
│ │ │ │ ├── verifyMessage.js
│ │ │ │ └── verifyVerusPayInvoice.js
│ │ └── wyre
│ │ │ ├── callCreators.js
│ │ │ └── requests
│ │ │ ├── convert.js
│ │ │ ├── getBalances.js
│ │ │ ├── getCurrencyConversionPaths.js
│ │ │ ├── getDepositMethods.js
│ │ │ ├── getPendingDeposits.js
│ │ │ ├── getRates.js
│ │ │ ├── getTransactions.js
│ │ │ ├── getTransferFollowup.js
│ │ │ ├── getWithdrawMethods.js
│ │ │ ├── preflightConversion.js
│ │ │ ├── preflightTransaction.js
│ │ │ └── sendTransaction.js
│ ├── errors
│ │ ├── apiError.js
│ │ ├── errorCodes.js
│ │ └── errorMessages.js
│ └── routers
│ │ ├── convert.js
│ │ ├── getAddressBalance.js
│ │ ├── getConversionPaths.js
│ │ ├── getDepositSources.js
│ │ ├── getIdentity.js
│ │ ├── getPendingDeposits.js
│ │ ├── getTransferFollowup.js
│ │ ├── getWithdrawDestinations.js
│ │ ├── preflightConversion.js
│ │ ├── preflightConvertOrCrossChain.js
│ │ ├── preflightSend.js
│ │ ├── send.js
│ │ └── sendConvertOrCrossChain.js
│ ├── asyncStore
│ ├── asyncStore.js
│ ├── authDataStorage.js
│ ├── cache
│ │ ├── blockHeaders.js
│ │ ├── cache.js
│ │ ├── electrumVersions.js
│ │ ├── ethTxReceipts.js
│ │ └── vrpcResponseCache.js
│ ├── coinStorage.js
│ ├── contractDefinitionStorage.js
│ ├── currencyDefinitionStorage.js
│ ├── identityStorage.js
│ ├── notificationsStorage.js
│ ├── personalDataStorage.js
│ ├── serviceStoredDataStorage.js
│ ├── settingsStorage.js
│ ├── transactionsStorage.js
│ └── widgetStorage.js
│ ├── auth
│ ├── authBox.js
│ └── scorePassword.js
│ ├── block.js
│ ├── buffer.js
│ ├── clipboard
│ └── clipboard.js
│ ├── constants
│ ├── abi.js
│ ├── abis
│ │ └── verusBridgeDelegatorAbi.js
│ ├── apps.js
│ ├── bankAccountKeys.js
│ ├── callingCodes.js
│ ├── constants.js
│ ├── convert.js
│ ├── currencies.js
│ ├── deeplink.js
│ ├── defaultUpdateParams.js
│ ├── dlightConstants.js
│ ├── errors.js
│ ├── intervalConstants.js
│ ├── iso3166.js
│ ├── notifications.js
│ ├── personal.js
│ ├── sendModal.js
│ ├── services.js
│ ├── storeType.js
│ ├── web3Constants.js
│ └── widgets.js
│ ├── crypto
│ ├── aes256.js
│ ├── buildTx.js
│ ├── deprecatedTxDecoderLib.js
│ ├── hash.js
│ ├── nullTx.js
│ ├── randomBytes.js
│ ├── script.js
│ ├── txDecoder.js
│ └── verifyMerkle.js
│ ├── date.js
│ ├── deeplink
│ └── handleRedirect.js
│ ├── defaultSubWallets.js
│ ├── delayedAlert.js
│ ├── delayedAsyncAlert.js
│ ├── dragDetection.js
│ ├── electrumUpdates.js
│ ├── enabledChannels.js
│ ├── errors.js
│ ├── extraCoins
│ ├── cryptocurrencies.json
│ └── extraCoins.js
│ ├── fullyqualifiedname.js
│ ├── haptics
│ └── haptics.js
│ ├── identityTransform
│ ├── identityDenormalizers.js
│ └── identityNormalizers.js
│ ├── keyGenerator
│ └── keyGenerator.js
│ ├── keychain
│ └── keychain.js
│ ├── keys.js
│ ├── ledger
│ └── extractLedgerData.js
│ ├── linking.js
│ ├── math.js
│ ├── memoUtils.js
│ ├── navigation
│ ├── customBack.js
│ └── header.js
│ ├── normalizeNum.js
│ ├── notification.js
│ ├── objectManip.js
│ ├── paymentMethod.js
│ ├── permissions
│ └── index.js
│ ├── personal
│ ├── displayUtils.js
│ └── validation.js
│ ├── price.js
│ ├── promises.js
│ ├── seedCrypt.js
│ ├── services
│ ├── ServiceTemplates.js
│ ├── WyreApi.js
│ ├── WyreProvider.js
│ ├── WyreService.js
│ └── translationUtils.js
│ ├── standardization
│ ├── extractWyreRates.js
│ └── standardizeTxObj.js
│ ├── stringUtils.js
│ ├── subwallet
│ ├── extractSubWallets.js
│ └── subWalletStatus.js
│ ├── translate.js
│ ├── uid.js
│ ├── verusPay
│ ├── index.js
│ └── versions
│ │ └── v0.js
│ ├── vrpc
│ └── vrpcInterface.js
│ └── web3
│ ├── provider.js
│ └── web3Interface.js
└── yarn.lock
/.bundle/config:
--------------------------------------------------------------------------------
1 | BUNDLE_PATH: "vendor/bundle"
2 | BUNDLE_FORCE_RUBY_PLATFORM: 1
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Windows files should use crlf line endings
2 | # https://help.github.com/articles/dealing-with-line-endings/
3 | *.bat text eol=crlf
4 |
--------------------------------------------------------------------------------
/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | bracketSpacing: false,
3 | jsxBracketSameLine: true,
4 | singleQuote: true,
5 | trailingComma: 'all',
6 | arrowParens: 'avoid',
7 | bracketSameLine: true,
8 | };
9 |
--------------------------------------------------------------------------------
/.snyk:
--------------------------------------------------------------------------------
1 | # Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
2 | version: v1.19.0
3 | ignore: {}
4 | patch: {}
5 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.2.0",
3 | "configurations": [
4 | {
5 | "name": "Debug Android",
6 | "program": "${workspaceRoot}/.vscode/launchReactNative.js",
7 | "type": "reactnative",
8 | "request": "launch",
9 | "platform": "android",
10 | "sourceMaps": true,
11 | "cwd": "${workspaceFolder}",
12 | },
13 | {
14 | "name": "Debug iOS",
15 | "program": "${workspaceRoot}/.vscode/launchReactNative.js",
16 | "type": "reactnative",
17 | "request": "launch",
18 | "platform": "ios",
19 | "target": "iPhone 5s",
20 | "cwd": "${workspaceFolder}",
21 | "sourceMaps": true,
22 | }
23 | ]
24 | }
--------------------------------------------------------------------------------
/DISCLAIMER.txt:
--------------------------------------------------------------------------------
1 | THIS IS EXPERIMENTAL SOFTWARE AND IT IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
/__mocks__/@react-native-community/async-storage.js:
--------------------------------------------------------------------------------
1 | export default from '@react-native-async-storage/async-storage/jest/async-storage-mock'
2 |
--------------------------------------------------------------------------------
/__mocks__/ethers.js:
--------------------------------------------------------------------------------
1 | // const mockedModule = jest.mock('ethers');
2 | // mockedModule.getDefaultProvider = jest.fn()
3 | // mockedModule.providers = {
4 | // EtherscanProvider: jest.fn()
5 | // }
6 |
7 | // module.exports = mockedModule;
--------------------------------------------------------------------------------
/__mocks__/react-native-alert-async/mock.js:
--------------------------------------------------------------------------------
1 | let AsyncAlerts = []
2 | let AlertResponse = false
3 |
4 | function mockRnAlertAsync() {
5 | return {
6 | AlertAsync: (title, desc, buttons, options) => {
7 | AsyncAlerts.push({title, desc, buttons, options})
8 | return new Promise((resolve) => {
9 | resolve(AlertResponse)
10 | })
11 | },
12 | getAlerts: () => AsyncAlerts,
13 | setAlertResponse: (response) => {
14 | AlertResponse = response
15 | }
16 | }
17 | }
18 |
19 | module.exports = mockRnAlertAsync
--------------------------------------------------------------------------------
/__mocks__/react-native-fetch/mocked_results/estimatefee.js:
--------------------------------------------------------------------------------
1 | //TODO: Add mock for estimatefee
--------------------------------------------------------------------------------
/__mocks__/react-native-fetch/mocked_results/getbalance.js:
--------------------------------------------------------------------------------
1 | /**
2 | * This returns a getbalance result based on the supplied confirmed and unconfirmed balances
3 | * @param {Number} confirmed Confirmed balance to return
4 | * @param {Number} unconfirmed Unconfirmed balance to return
5 | */
6 | const getbalance_mock = function(confirmed, unconfirmed) {
7 | return {confirmed, unconfirmed}
8 | }
9 |
10 | module.exports = getbalance_mock
--------------------------------------------------------------------------------
/__mocks__/react-native-fetch/mocked_results/getblockinfo.js:
--------------------------------------------------------------------------------
1 | const gotten_blocks = require('./blockchain_data').gotten_blocks
2 |
3 | /**
4 | * The mock for getblockinfo. This function searches through the mock block list, and returns a block info object if it is found.
5 | * @param {Integer} height The blockheight of the block to get. If found in the mock block list, its info will be returned.
6 | */
7 | const getblockinfo_mock = function(height) {
8 | if (Number(height) < 0 || Number(height) % 1 != 0) return {"code":1,"message":`${height} should be a non-negative integer`}
9 | if (gotten_blocks.hasOwnProperty(height)) return gotten_blocks[height]
10 |
11 | return {"code":1,"message":`height ${height} out of range`}
12 | }
13 |
14 | module.exports = getblockinfo_mock
15 |
--------------------------------------------------------------------------------
/__mocks__/react-native-fetch/mocked_results/getcurrentblock.js:
--------------------------------------------------------------------------------
1 | /**
2 | * This returns a getcurrentblock result based on the supplied height
3 | * @param {Number} height The blockheight you would like returned from the API call
4 | */
5 | const getcurrentblock_mock = function(height) {
6 | return height
7 | }
8 |
9 | module.exports = getcurrentblock_mock
--------------------------------------------------------------------------------
/__mocks__/react-native-fetch/mocked_results/getmerkle.js:
--------------------------------------------------------------------------------
1 | const merkle_roots = require('./blockchain_data').merkle_roots
2 |
3 | /**
4 | * The mock for getmerkle. This function searches through the mock merkle root list, and returns a merkle root if it is found.
5 | * @param {Integer} height The blockheight of the utxo to fetch merkle hashes for.
6 | * @param {String} txid The txid string of the transaction to fetch merkle hashes for.
7 | */
8 | const getmerkle_mock = function(height, txid) {
9 | if (merkle_roots.hasOwnProperty(`${txid}-${height}`)) return merkle_roots[`${txid}-${height}`]
10 |
11 | return {"code":1,"message":`${txid} should be a transaction hash`}
12 | }
13 |
14 |
15 | module.exports = getmerkle_mock
--------------------------------------------------------------------------------
/__mocks__/react-native-fetch/mocked_results/gettransaction.js:
--------------------------------------------------------------------------------
1 | const gotten_utxos = require('./blockchain_data').gotten_utxos
2 |
3 | /**
4 | * The mock for gettransaction. This function searches through the mock UTXO list, and returns a transaction hash if it is found.
5 | * @param {String} txid The txid string of the transaction to get. If found in the mock UTXO list, its hash will be returned.
6 | */
7 | const gettransaction_mock = function(txid) {
8 | if (gotten_utxos.hasOwnProperty(txid)) return gotten_utxos[txid]
9 |
10 | return { status: 'not found' }
11 | }
12 |
13 | module.exports = gettransaction_mock
--------------------------------------------------------------------------------
/__mocks__/react-native-fetch/mocked_results/listtransactions.js:
--------------------------------------------------------------------------------
1 | const transaction_list = require('./blockchain_data').transaction_list
2 |
3 | /**
4 | * Mocks an electrum call to listtransactions, and returns a specified number
5 | * of transactions
6 | * @param {Integer} num_txs The number of txs to return
7 | */
8 | const listtransactions_mock = function(num_txs) {
9 | let returned_txs = []
10 | for (let i = 0; i < num_txs; i++) {
11 | returned_txs.push(transaction_list[Math.round(Math.random() * (transaction_list.length - 1))])
12 | }
13 |
14 | return returned_txs
15 | }
16 |
17 | module.exports = listtransactions_mock
18 |
--------------------------------------------------------------------------------
/__mocks__/react-native-fetch/mocked_results/listunspent.js:
--------------------------------------------------------------------------------
1 | const unspent_utxos = require('./blockchain_data').unspent_utxos
2 |
3 | /**
4 | * Mocks an electrum call to listunspent, and returns a specified number
5 | * of unspent UTXOs
6 | * @param {Integer} num_utxos The number of unspent utxos to return
7 | */
8 | const listunspent_mock = function(num_utxos) {
9 | let returned_utxos = []
10 | for (let i = 0; i < num_utxos; i++) {
11 | returned_utxos.push(unspent_utxos[Math.round(Math.random() * (unspent_utxos.length - 1))])
12 | }
13 |
14 | return returned_utxos
15 | }
16 |
17 | module.exports = listunspent_mock
18 |
--------------------------------------------------------------------------------
/__mocks__/react-native-fetch/mocked_results/pushtx.js:
--------------------------------------------------------------------------------
1 | //TODO: Add mock for pushtx
--------------------------------------------------------------------------------
/__mocks__/react-native-fetch/mocked_results/server_version.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Returns a server version object with the specified version passed in
3 | * @param {String} version_string Server version string, traditonally in the format 'ElectrumX x.x.x'
4 | * @param {Number} version_int (Optional) Version integer, in the format x.x. If omitted, return will be 'ElectrumX'
5 | */
6 | const server_version_mock = function(version_string, version_int) {
7 | if (version_int == null) return 'ElectrumX'
8 | return [ version_string, version_int.toString() ]
9 | }
10 |
11 | module.exports = server_version_mock
--------------------------------------------------------------------------------
/__mocks__/react-native-fetch/util/mock_urls.js:
--------------------------------------------------------------------------------
1 | const FIAT_EXCHANGE_RATES_URL = "https://api.exchangeratesapi.io/latest?base=USD"
2 | const VERUS_RATE_URL = 'https://api.coinpaprika.com/v1/coins/vrsc-test-coin/ohlcv/latest'
3 | const MOCK_PROXY_URL = 'mock.proxy.server'
4 | const UNMOCK_FETCH = ' unmock'
5 |
6 | module.exports = {
7 | FIAT_EXCHANGE_RATES_URL,
8 | VERUS_RATE_URL,
9 | MOCK_PROXY_URL,
10 | UNMOCK_FETCH
11 | }
--------------------------------------------------------------------------------
/__mocks__/react-native-randombytes.js:
--------------------------------------------------------------------------------
1 | const mockedModule = jest.mock('react-native-randombytes');
2 |
3 | module.exports = mockedModule;
--------------------------------------------------------------------------------
/__mocks__/react-native-verus-light-client/mock.js:
--------------------------------------------------------------------------------
1 | const {
2 | createWallet,
3 | openWallet,
4 | closeWallet,
5 | deleteWallet,
6 | request,
7 | startSync,
8 | stopSync
9 | } = require('./WalletFolder')
10 |
11 | function mockVerusLightClient() {
12 | return {
13 | createWallet,
14 | openWallet,
15 | closeWallet,
16 | deleteWallet,
17 | startSync,
18 | stopSync,
19 | request
20 | }
21 | }
22 |
23 | module.exports = mockVerusLightClient
--------------------------------------------------------------------------------
/__mocks__/react-native-verus-light-client/requests/JsonRpc.js:
--------------------------------------------------------------------------------
1 | function formatResponse(id, result, error) {
2 | return {
3 | id,
4 | result,
5 | error,
6 | jsonrpc: "2.0"
7 | }
8 | }
9 |
10 | module.exports = formatResponse
--------------------------------------------------------------------------------
/__mocks__/redux-saga.js:
--------------------------------------------------------------------------------
1 | const mockedModule = jest.mock('redux-saga');
2 |
3 | module.exports = function() {
4 | return {
5 | run: jest.fn()
6 | }
7 | }
--------------------------------------------------------------------------------
/__mocks__/redux/store.js:
--------------------------------------------------------------------------------
1 | class MockStore {
2 | constructor(state) {
3 | this.state = state
4 | this.reducers = {}
5 | this.actionHistory = []
6 | }
7 |
8 | dispatch(action) {
9 | this.actionHistory = [...this.actionHistory, action]
10 |
11 | Object.keys(this.reducers).map(reducerName => {
12 | this.state = {...this.state, [reducerName]: this.reducers[reducerName](this.state[reducerName], action)}
13 | })
14 | }
15 |
16 | setStore(store) {
17 | this.state = store
18 | }
19 |
20 | setReducers(reducers) {
21 | this.reducers = reducers
22 | }
23 |
24 | getState() {
25 | return this.state
26 | }
27 |
28 | getActions() {
29 | return this.actionHistory
30 | }
31 | }
32 |
33 | module.exports = MockStore
--------------------------------------------------------------------------------
/__mocks__/rn-fetch-blob.js:
--------------------------------------------------------------------------------
1 | const mockedModule = jest.mock('rn-fetch-blob');
2 |
3 | module.exports = mockedModule;
--------------------------------------------------------------------------------
/android/.settings/org.eclipse.buildship.core.prefs:
--------------------------------------------------------------------------------
1 | arguments=--init-script /var/folders/k8/shp6b0812_19wbnyby10f1dw0000gn/T/d146c9752a26f79b52047fb6dc6ed385d064e120494f96f08ca63a317c41f94c.gradle --init-script /var/folders/k8/shp6b0812_19wbnyby10f1dw0000gn/T/52cde0cfcf3e28b8b7510e992210d9614505e0911af0c190bd590d7158574963.gradle
2 | auto.sync=false
3 | build.scans.enabled=false
4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
5 | connection.project.dir=
6 | eclipse.preferences.version=1
7 | gradle.user.home=
8 | java.home=/Library/Java/JavaVirtualMachines/zulu-15.jdk/Contents/Home
9 | jvm.arguments=
10 | offline.mode=false
11 | override.workspace.settings=true
12 | show.console.view=true
13 | show.executions.view=true
14 |
--------------------------------------------------------------------------------
/android/app/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/android/app/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | app
4 | Project app created by Buildship.
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.buildship.core.gradleprojectbuilder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.jdt.core.javanature
21 | org.eclipse.buildship.core.gradleprojectnature
22 |
23 |
24 |
--------------------------------------------------------------------------------
/android/app/.settings/org.eclipse.buildship.core.prefs:
--------------------------------------------------------------------------------
1 | connection.project.dir=..
2 | eclipse.preferences.version=1
3 |
--------------------------------------------------------------------------------
/android/app/bin/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | app
4 | Project app created by Buildship.
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.buildship.core.gradleprojectbuilder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.jdt.core.javanature
21 | org.eclipse.buildship.core.gradleprojectnature
22 |
23 |
24 |
--------------------------------------------------------------------------------
/android/app/bin/src/main/assets/fonts/AntDesign.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/assets/fonts/AntDesign.ttf
--------------------------------------------------------------------------------
/android/app/bin/src/main/assets/fonts/Entypo.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/assets/fonts/Entypo.ttf
--------------------------------------------------------------------------------
/android/app/bin/src/main/assets/fonts/EvilIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/assets/fonts/EvilIcons.ttf
--------------------------------------------------------------------------------
/android/app/bin/src/main/assets/fonts/Feather.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/assets/fonts/Feather.ttf
--------------------------------------------------------------------------------
/android/app/bin/src/main/assets/fonts/FontAwesome.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/assets/fonts/FontAwesome.ttf
--------------------------------------------------------------------------------
/android/app/bin/src/main/assets/fonts/FontAwesome5_Brands.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/assets/fonts/FontAwesome5_Brands.ttf
--------------------------------------------------------------------------------
/android/app/bin/src/main/assets/fonts/FontAwesome5_Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/assets/fonts/FontAwesome5_Regular.ttf
--------------------------------------------------------------------------------
/android/app/bin/src/main/assets/fonts/FontAwesome5_Solid.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/assets/fonts/FontAwesome5_Solid.ttf
--------------------------------------------------------------------------------
/android/app/bin/src/main/assets/fonts/Foundation.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/assets/fonts/Foundation.ttf
--------------------------------------------------------------------------------
/android/app/bin/src/main/assets/fonts/Ionicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/assets/fonts/Ionicons.ttf
--------------------------------------------------------------------------------
/android/app/bin/src/main/assets/fonts/MaterialCommunityIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/assets/fonts/MaterialCommunityIcons.ttf
--------------------------------------------------------------------------------
/android/app/bin/src/main/assets/fonts/MaterialIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/assets/fonts/MaterialIcons.ttf
--------------------------------------------------------------------------------
/android/app/bin/src/main/assets/fonts/Octicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/assets/fonts/Octicons.ttf
--------------------------------------------------------------------------------
/android/app/bin/src/main/assets/fonts/SimpleLineIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/assets/fonts/SimpleLineIcons.ttf
--------------------------------------------------------------------------------
/android/app/bin/src/main/assets/fonts/Zocial.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/assets/fonts/Zocial.ttf
--------------------------------------------------------------------------------
/android/app/bin/src/main/java/com/verusmobile/MainActivity.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/java/com/verusmobile/MainActivity.class
--------------------------------------------------------------------------------
/android/app/bin/src/main/java/com/verusmobile/MainApplication.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/java/com/verusmobile/MainApplication.class
--------------------------------------------------------------------------------
/android/app/bin/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/bin/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/bin/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/bin/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/bin/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/bin/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/bin/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/bin/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/bin/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/bin/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/bin/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/bin/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Verus Wallet
3 |
4 |
--------------------------------------------------------------------------------
/android/app/bin/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/build_defs.bzl:
--------------------------------------------------------------------------------
1 | """Helper definitions to glob .aar and .jar targets"""
2 |
3 | def create_aar_targets(aarfiles):
4 | for aarfile in aarfiles:
5 | name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")]
6 | lib_deps.append(":" + name)
7 | android_prebuilt_aar(
8 | name = name,
9 | aar = aarfile,
10 | )
11 |
12 | def create_jar_targets(jarfiles):
13 | for jarfile in jarfiles:
14 | name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")]
15 | lib_deps.append(":" + name)
16 | prebuilt_jar(
17 | name = name,
18 | binary_jar = jarfile,
19 | )
20 |
--------------------------------------------------------------------------------
/android/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
--------------------------------------------------------------------------------
/android/app/release/output.json:
--------------------------------------------------------------------------------
1 | [{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/AntDesign.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/AntDesign.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Avenir-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/Avenir-Black.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Avenir-Book.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/Avenir-Book.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Avenir-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/Avenir-Light.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Avenir-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/Avenir-Medium.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Entypo.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/Entypo.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/EvilIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/EvilIcons.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Feather.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/Feather.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/FontAwesome.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/FontAwesome.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Fontisto.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/Fontisto.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Foundation.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/Foundation.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Ionicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/Ionicons.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/MaterialIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/MaterialIcons.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Octicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/Octicons.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/SimpleLineIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/SimpleLineIcons.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/SourceSansPro-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/SourceSansPro-Black.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/SourceSansPro-BlackItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/SourceSansPro-BlackItalic.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/SourceSansPro-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/SourceSansPro-Bold.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/SourceSansPro-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/SourceSansPro-BoldItalic.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/SourceSansPro-ExtraLight.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/SourceSansPro-ExtraLight.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/SourceSansPro-ExtraLightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/SourceSansPro-ExtraLightItalic.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/SourceSansPro-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/SourceSansPro-Italic.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/SourceSansPro-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/SourceSansPro-Light.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/SourceSansPro-LightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/SourceSansPro-LightItalic.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/SourceSansPro-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/SourceSansPro-Regular.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/SourceSansPro-SemiBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/SourceSansPro-SemiBold.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/SourceSansPro-SemiBoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/SourceSansPro-SemiBoldItalic.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Zocial.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/assets/fonts/Zocial.ttf
--------------------------------------------------------------------------------
/android/app/src/main/java/com/verusmobile/ReactNativeFlipper.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Meta Platforms, Inc. and affiliates.
3 | *
4 | *
This source code is licensed under the MIT license found in the LICENSE file in the root
5 | * directory of this source tree.
6 | */
7 | package com.verusmobile;
8 |
9 | import android.content.Context;
10 | import com.facebook.react.ReactInstanceManager;
11 |
12 | /**
13 | * Class responsible of loading Flipper inside your React Native application. This is the release
14 | * flavor of it so it's empty as we don't want to load Flipper.
15 | */
16 | public class ReactNativeFlipper {
17 | public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
18 | // Do nothing as we don't want to initialize Flipper on Release.
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/android/app/src/main/java/com/verusmobile/SplashActivity.java:
--------------------------------------------------------------------------------
1 | package com.verusmobile;
2 | import android.app.Activity;
3 | import android.content.Intent;
4 | import android.os.Bundle;
5 | //import androidx.appcompat.app.AppCompatActivity;
6 |
7 | public class SplashActivity extends Activity {
8 | @Override
9 | protected void onCreate(Bundle savedInstanceState) {
10 | super.onCreate(savedInstanceState);
11 |
12 | Intent intent = new Intent(this, MainActivity.class);
13 | startActivity(intent);
14 | finish();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/node_modules_reactnativeelements_src_rating_images_bell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/node_modules_reactnativeelements_src_rating_images_bell.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/node_modules_reactnativeelements_src_rating_images_heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/node_modules_reactnativeelements_src_rating_images_heart.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/node_modules_reactnativeelements_src_rating_images_rocket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/node_modules_reactnativeelements_src_rating_images_rocket.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/node_modules_reactnativeelements_src_rating_images_star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/node_modules_reactnativeelements_src_rating_images_star.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_src_views_assets_backicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_src_views_assets_backicon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_src_views_assets_backiconmask.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_src_views_assets_backiconmask.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_assets_vrsc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_assets_vrsc.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_bch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_bch.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_btc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_btc.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_ccl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_ccl.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_dash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_dash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_dgb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_dgb.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_doge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_doge.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_k64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_k64.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_kmd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_kmd.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_ltc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_ltc.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_oot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_oot.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_vrsc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_vrsc.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_zec.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_zec.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_zilla.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_cryptologo_zilla.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_customicons_addcoin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_customicons_addcoin.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_customicons_incomingarrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_customicons_incomingarrow.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_customicons_interestplus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_customicons_interestplus.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_customicons_outgoingarrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_customicons_outgoingarrow.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_customicons_selfarrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_customicons_selfarrow.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_customicons_unknownlogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_customicons_unknownlogo.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_customicons_verusheaderlogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_customicons_verusheaderlogo.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_customicons_veruspay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_customicons_veruspay.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/src_images_customicons_verusqrlogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-mdpi/src_images_customicons_verusqrlogo.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi/node_modules_reactnavigation_src_views_assets_backicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-xhdpi/node_modules_reactnavigation_src_views_assets_backicon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi/node_modules_reactnavigation_src_views_assets_backicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-xxhdpi/node_modules_reactnavigation_src_views_assets_backicon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/node_modules_reactnavigation_src_views_assets_backicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/drawable-xxxhdpi/node_modules_reactnavigation_src_views_assets_backicon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/background_splash.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/mipmap-hdpi/icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/mipmap-mdpi/icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/mipmap-xhdpi/icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/mipmap-xxhdpi/icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/app/src/main/res/mipmap-xxxhdpi/icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3165d4
4 | #254b9c
5 | #FFFFFF
6 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Verus Wallet
3 |
4 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/android/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Feb 17 17:34:30 PST 2019
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
7 |
--------------------------------------------------------------------------------
/android/keystores/BUCK:
--------------------------------------------------------------------------------
1 | keystore(
2 | name = "debug",
3 | properties = "debug.keystore.properties",
4 | store = "debug.keystore",
5 | visibility = [
6 | "PUBLIC",
7 | ],
8 | )
9 |
--------------------------------------------------------------------------------
/android/keystores/debug.keystore.properties:
--------------------------------------------------------------------------------
1 | key.store=debug.keystore
2 | key.alias=androiddebugkey
3 | key.store.password=android
4 | key.alias.password=android
5 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'verusmobile'
2 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
3 |
4 | include ':app'
5 | includeBuild('../node_modules/react-native-gradle-plugin')
--------------------------------------------------------------------------------
/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "verusmobile",
3 | "displayName": "Verus Wallet"
4 | }
--------------------------------------------------------------------------------
/assets/fonts/SourceSansPro-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/assets/fonts/SourceSansPro-Black.ttf
--------------------------------------------------------------------------------
/assets/fonts/SourceSansPro-BlackItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/assets/fonts/SourceSansPro-BlackItalic.ttf
--------------------------------------------------------------------------------
/assets/fonts/SourceSansPro-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/assets/fonts/SourceSansPro-Bold.ttf
--------------------------------------------------------------------------------
/assets/fonts/SourceSansPro-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/assets/fonts/SourceSansPro-BoldItalic.ttf
--------------------------------------------------------------------------------
/assets/fonts/SourceSansPro-ExtraLight.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/assets/fonts/SourceSansPro-ExtraLight.ttf
--------------------------------------------------------------------------------
/assets/fonts/SourceSansPro-ExtraLightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/assets/fonts/SourceSansPro-ExtraLightItalic.ttf
--------------------------------------------------------------------------------
/assets/fonts/SourceSansPro-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/assets/fonts/SourceSansPro-Italic.ttf
--------------------------------------------------------------------------------
/assets/fonts/SourceSansPro-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/assets/fonts/SourceSansPro-Light.ttf
--------------------------------------------------------------------------------
/assets/fonts/SourceSansPro-LightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/assets/fonts/SourceSansPro-LightItalic.ttf
--------------------------------------------------------------------------------
/assets/fonts/SourceSansPro-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/assets/fonts/SourceSansPro-Regular.ttf
--------------------------------------------------------------------------------
/assets/fonts/SourceSansPro-SemiBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/assets/fonts/SourceSansPro-SemiBold.ttf
--------------------------------------------------------------------------------
/assets/fonts/SourceSansPro-SemiBoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/assets/fonts/SourceSansPro-SemiBoldItalic.ttf
--------------------------------------------------------------------------------
/assets/vrsc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/assets/vrsc.png
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = function (api) {
2 | api.cache(true)
3 | return {
4 | "presets": [
5 | 'module:metro-react-native-babel-preset'
6 | ],
7 | "plugins": [
8 | "react-native-reanimated/plugin",
9 | ],
10 | }
11 | }
--------------------------------------------------------------------------------
/debug/findpos.js:
--------------------------------------------------------------------------------
1 | var sourceMap = require('source-map');
2 | var fs = require('fs');
3 |
4 | var sourcemap = JSON.parse(fs.readFileSync('source.map', 'utf8'));
5 |
6 | var smc = new sourceMap.SourceMapConsumer(sourcemap);
7 |
8 | console.log(smc.originalPositionFor({
9 | line: 833,
10 | column: 2580
11 | }));
--------------------------------------------------------------------------------
/dummy-minifier.js:
--------------------------------------------------------------------------------
1 | function minifier(options) {
2 | return {
3 | code: options.code,
4 | map: options.map,
5 | };
6 | }
7 |
8 | module.exports = minifier;
9 |
--------------------------------------------------------------------------------
/env/index.js:
--------------------------------------------------------------------------------
1 | import * as iosEnv from './main.ios.json'
2 | import * as androidEnv from './main.android.json'
3 | import { Platform } from 'react-native'
4 |
5 | module.exports = Platform.OS === 'ios' ? iosEnv : androidEnv
6 |
--------------------------------------------------------------------------------
/gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 |
3 | # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
4 | ruby '>= 2.6.10'
5 |
6 | # Cocoapods 1.15 introduced a bug which break the build. We will remove the upper
7 | # bound in the template on Cocoapods with next React Native release.
8 | gem 'cocoapods', '>= 1.13', '< 1.15'
9 | gem 'activesupport', '>= 6.1.7.3', '< 7.1.0'
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | /** @format */
2 | import 'react-native-gesture-handler';
3 | import { AppRegistry, LogBox } from 'react-native';
4 |
5 | const IGNORED_LOGS = [
6 | 'Warning: componentWillMount is deprecated',
7 | 'Warning: componentWillReceiveProps is deprecated',
8 | 'Warning: componentWillUpdate is deprecated',
9 | 'RCTRootView cancelTouches',
10 | 'Require cycle',
11 | 'long period',
12 | 'Material Top Tab Navigator:',
13 | 'ViewPropTypes will be removed from React Native.',
14 | 'Non-serializable values were found in the navigation state.'
15 | ];
16 |
17 | LogBox.ignoreLogs(IGNORED_LOGS);
18 |
19 | import App from './App';
20 | import {name as appName} from './app.json';
21 | import './shims/crypto.js';
22 | import './shims/stringify.js';
23 |
24 | AppRegistry.registerComponent(appName, () => App);
25 |
--------------------------------------------------------------------------------
/ios/.xcode.env:
--------------------------------------------------------------------------------
1 | # This `.xcode.env` file is versioned and is used to source the environment
2 | # used when running script phases inside Xcode.
3 | # To customize your local environment, you can create an `.xcode.env.local`
4 | # file that is not versioned.
5 |
6 | # NODE_BINARY variable contains the PATH to the node executable.
7 | #
8 | # Customize the NODE_BINARY variable here.
9 | # For example, to use nvm with brew, add the following line
10 | # . "$(brew --prefix nvm)/nvm.sh" --no-use
11 | export NODE_BINARY=$(command -v node)
--------------------------------------------------------------------------------
/ios/SaplingParams/sapling-output.params:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/SaplingParams/sapling-output.params
--------------------------------------------------------------------------------
/ios/SaplingParams/sapling-spend.params:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/SaplingParams/sapling-spend.params
--------------------------------------------------------------------------------
/ios/assets/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "verusmobile",
3 | "displayName": "Verus Wallet"
4 | }
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default/btc/bch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default/btc/bch.png
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default/btc/btc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default/btc/btc.png
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default/btc/ccl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default/btc/ccl.png
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default/btc/dash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default/btc/dash.png
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default/btc/dgb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default/btc/dgb.png
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default/btc/doge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default/btc/doge.png
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default/btc/kmd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default/btc/kmd.png
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default/btc/ltc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default/btc/ltc.png
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default/btc/oot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default/btc/oot.png
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default/btc/vrsc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default/btc/vrsc.png
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default/btc/zec.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default/btc/zec.png
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default/btc/zectest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default/btc/zectest.png
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default/btc/zilla.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default/btc/zilla.png
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default/web3/bat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default/web3/bat.png
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default/web3/dai.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default/web3/dai.png
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default/web3/eth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default/web3/eth.png
--------------------------------------------------------------------------------
/ios/assets/src/images/cryptologo/default_chain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/cryptologo/default_chain.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/Verus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/Verus.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/add.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/aproved.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/aproved.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/bank-building.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/bank-building.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/bank2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/bank2.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/bankBuildingBlack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/bankBuildingBlack.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/buy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/buy.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/buySell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/buySell.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/calendar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/calendar.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/call-answer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/call-answer.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/coinAdd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/coinAdd.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/email.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/email.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/file.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/home-icon-silhouette.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/home-icon-silhouette.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/id-card.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/id-card.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/in-arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/in-arrow.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/interest-plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/interest-plus.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/maps-and-flags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/maps-and-flags.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/out-arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/out-arrow.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/pending-clock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/pending-clock.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/pending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/pending.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/piggybank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/piggybank.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/self-arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/self-arrow.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/sell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/sell.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/unknown-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/unknown-logo.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/user.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/verusPay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/verusPay.png
--------------------------------------------------------------------------------
/ios/assets/src/images/customIcons/verusQRLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/assets/src/images/customIcons/verusQRLogo.png
--------------------------------------------------------------------------------
/ios/bridge.swift:
--------------------------------------------------------------------------------
1 | //
2 | // bridge.swift
3 | // verusmobile
4 | //
5 | // Created by Michael Filip Toutonghi on 04/03/2020.
6 | // Copyright © 2020 Facebook. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
--------------------------------------------------------------------------------
/ios/splash-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/splash-image.png
--------------------------------------------------------------------------------
/ios/verusMobile.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ios/verusMobile.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/verusMobile/AppDelegate.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015-present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | #import
11 | #import
12 |
13 | @interface AppDelegate : RCTAppDelegate
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-1024.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-20.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-20@2x.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-20@3x.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-29.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-29@2x.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-29@3x.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-40.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-40@2x.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-40@3x.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-60@2x.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-60@3x.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-76.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-76@2x.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/AppIcon.appiconset/ios-app-icon-1024-83.5@2x.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/Verus-Splash.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Verus-Splash-2.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "Verus-Splash-1.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "filename" : "Verus-Splash.png",
15 | "idiom" : "universal",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "author" : "xcode",
21 | "version" : 1
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/Verus-Splash.imageset/Verus-Splash-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/Verus-Splash.imageset/Verus-Splash-1.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/Verus-Splash.imageset/Verus-Splash-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/Verus-Splash.imageset/Verus-Splash-2.png
--------------------------------------------------------------------------------
/ios/verusMobile/Images.xcassets/Verus-Splash.imageset/Verus-Splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/ios/verusMobile/Images.xcassets/Verus-Splash.imageset/Verus-Splash.png
--------------------------------------------------------------------------------
/ios/verusMobile/main.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015-present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | #import
11 |
12 | #import "AppDelegate.h"
13 |
14 | int main(int argc, char * argv[]) {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ios/verusmobile-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // Use this file to import your target's public headers that you would like to expose to Swift.
3 | //
4 |
--------------------------------------------------------------------------------
/metro.config.js:
--------------------------------------------------------------------------------
1 | const { getDefaultConfig } = require("metro-config");
2 |
3 | module.exports = (async () => {
4 | const {
5 | resolver: {sourceExts, assetExts},
6 | } = await getDefaultConfig();
7 |
8 | return {
9 | transformer: {
10 | babelTransformerPath: require.resolve('react-native-svg-transformer'),
11 | minifierPath: require("path").resolve("./dummy-minifier"),
12 | minifierConfig: {
13 | mangle: {
14 | toplevel: true,
15 | reserved: ['BigInteger', 'ECPair', 'Point'],
16 | },
17 | },
18 | },
19 | resolver: {
20 | assetExts: assetExts.filter(ext => ext !== 'svg'),
21 | sourceExts: [...sourceExts, 'svg'],
22 | },
23 | };
24 | })();
25 |
--------------------------------------------------------------------------------
/react-native.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | dependencies: {
3 | "react-native-verus-light-client": {
4 | platforms: {
5 | android: null // disable Android platform, other platforms will still autolink if provided
6 | }
7 | }
8 | },
9 | assets: [
10 | "./assets/fonts/"
11 | ],
12 | }
--------------------------------------------------------------------------------
/src/actions/actions/alert/creators/alert.js:
--------------------------------------------------------------------------------
1 | import { PUSH_ALERT, SET_ACTIVE_ALERT, SHIFT_ALERTS } from "../../../../utils/constants/storeType"
2 |
3 | export const pushAlert = (id) => {
4 | return {
5 | type: PUSH_ALERT,
6 | payload: {
7 | alert: id
8 | }
9 | }
10 | }
11 |
12 | export const shiftAlerts = () => {
13 | return {
14 | type: SHIFT_ALERTS,
15 | }
16 | }
17 |
18 | export const setActiveAlert = (activeAlert) => {
19 | return {
20 | type: SET_ACTIVE_ALERT,
21 | payload: {
22 | activeAlert
23 | }
24 | }
25 | }
26 |
27 | export const completeAlert = (result) => {
28 | return {
29 | type: SET_ACTIVE_ALERT,
30 | payload: {
31 | activeAlert: null,
32 | result
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/src/actions/actions/cache/Cache.js:
--------------------------------------------------------------------------------
1 | import {
2 | clearCache
3 | } from '../../../utils/asyncStore/asyncStore';
4 |
5 | import {
6 | clearDataCache
7 | } from '../../actionCreators';
8 |
9 | export const clearCacheData = (dispatch) => {
10 | return new Promise((resolve) => {
11 | clearCache()
12 | .then((res) => {
13 | dispatch(clearDataCache())
14 | resolve()
15 | })
16 | .catch(e => {
17 | throw e
18 | })
19 | })
20 | }
--------------------------------------------------------------------------------
/src/actions/actions/channels/electrum/dispatchers/ElectrumWalletReduxManager.js:
--------------------------------------------------------------------------------
1 | import Store from '../../../../../store/index'
2 | import {
3 | INIT_ELECTRUM_CHANNEL_START,
4 | CLOSE_ELECTRUM_CHANNEL,
5 | } from "../../../../../utils/constants/storeType";
6 |
7 | export const initElectrumWallet = async (coinObj) => {
8 | Store.dispatch({
9 | type: INIT_ELECTRUM_CHANNEL_START,
10 | payload: { chainTicker: coinObj.id }
11 | })
12 |
13 | return
14 | }
15 |
16 | export const closeElectrumWallet = async (coinObj) => {
17 | Store.dispatch({
18 | type: CLOSE_ELECTRUM_CHANNEL,
19 | payload: { chainTicker: coinObj.id }
20 | })
21 |
22 | return
23 | }
--------------------------------------------------------------------------------
/src/actions/actions/channels/erc20/dispatchers/Erc20WalletReduxManager.js:
--------------------------------------------------------------------------------
1 | import Store from '../../../../../store/index'
2 | import {
3 | INIT_ERC20_CHANNEL_START,
4 | CLOSE_ERC20_CHANNEL,
5 | } from "../../../../../utils/constants/storeType";
6 |
7 | export const initErc20Wallet = async (coinObj) => {
8 | Store.dispatch({
9 | type: INIT_ERC20_CHANNEL_START,
10 | payload: { chainTicker: coinObj.id, contractAddress: coinObj.currency_id, network: coinObj.network }
11 | })
12 |
13 | return
14 | }
15 |
16 | export const closeErc20Wallet = async (coinObj) => {
17 | Store.dispatch({
18 | type: CLOSE_ERC20_CHANNEL,
19 | payload: { chainTicker: coinObj.id, contractAddress: coinObj.currency_id, network: coinObj.network }
20 | })
21 |
22 | return
23 | }
--------------------------------------------------------------------------------
/src/actions/actions/channels/eth/dispatchers/EthWalletReduxManager.js:
--------------------------------------------------------------------------------
1 | import Store from '../../../../../store/index'
2 | import {
3 | INIT_ETH_CHANNEL_START,
4 | CLOSE_ETH_CHANNEL,
5 | } from "../../../../../utils/constants/storeType";
6 |
7 | export const initEthWallet = async (coinObj) => {
8 | Store.dispatch({
9 | type: INIT_ETH_CHANNEL_START,
10 | payload: { chainTicker: coinObj.id }
11 | })
12 |
13 | return
14 | }
15 |
16 | export const closeEthWallet = async (coinObj) => {
17 | Store.dispatch({
18 | type: CLOSE_ETH_CHANNEL,
19 | payload: { chainTicker: coinObj.id }
20 | })
21 |
22 | return
23 | }
--------------------------------------------------------------------------------
/src/actions/actions/channels/general/dispatchers/GeneralWalletReduxManager.js:
--------------------------------------------------------------------------------
1 | import Store from '../../../../../store/index'
2 | import {
3 | INIT_GENERAL_CHANNEL_START,
4 | CLOSE_GENERAL_CHANNEL,
5 | } from "../../../../../utils/constants/storeType";
6 |
7 | export const initGeneralWallet = async (coinObj) => {
8 | Store.dispatch({
9 | type: INIT_GENERAL_CHANNEL_START,
10 | payload: { chainTicker: coinObj.id }
11 | })
12 |
13 | return
14 | }
15 |
16 | export const closeGeneralWallet = async (coinObj) => {
17 | Store.dispatch({
18 | type: CLOSE_GENERAL_CHANNEL,
19 | payload: { chainTicker: coinObj.id }
20 | })
21 |
22 | return
23 | }
--------------------------------------------------------------------------------
/src/actions/actions/channels/wyre/dispatchers/WyreWalletReduxManager.js:
--------------------------------------------------------------------------------
1 | import Store from '../../../../../store/index'
2 | import {
3 | INIT_WYRE_COIN_CHANNEL_START,
4 | CLOSE_WYRE_COIN_CHANNEL,
5 | } from "../../../../../utils/constants/storeType";
6 | import WyreProvider from '../../../../../utils/services/WyreProvider';
7 |
8 | export const initWyreCoinChannel = async (coinObj) => {
9 | await WyreProvider.loadWyreCoinAddresses()
10 |
11 | Store.dispatch({
12 | type: INIT_WYRE_COIN_CHANNEL_START,
13 | payload: { chainTicker: coinObj.id }
14 | })
15 |
16 | return
17 | }
18 |
19 | export const closeWyreCoinWallet = async (coinObj) => {
20 | Store.dispatch({
21 | type: CLOSE_WYRE_COIN_CHANNEL,
22 | payload: { chainTicker: coinObj.id }
23 | })
24 |
25 | return
26 | }
--------------------------------------------------------------------------------
/src/actions/actions/deeplink/creators/deeplink.js:
--------------------------------------------------------------------------------
1 | import { SET_DEEPLINK_DATA, SET_DEEPLINK_URL } from "../../../../utils/constants/storeType"
2 |
3 | export const setDeeplinkUrl = (url) => {
4 | return {
5 | type: SET_DEEPLINK_URL,
6 | payload: { url }
7 | }
8 | }
9 |
10 | export const setDeeplinkData = (id, data) => {
11 | return {
12 | type: SET_DEEPLINK_DATA,
13 | payload: { id, data }
14 | }
15 | }
16 |
17 | export const resetDeeplinkData = () => {
18 | return {
19 | type: SET_DEEPLINK_DATA,
20 | payload: { id: null, data: {}, fromService: null, passthrough: null}
21 | }
22 | }
--------------------------------------------------------------------------------
/src/actions/actions/deeplink/dispatchers/deeplinkListener.js:
--------------------------------------------------------------------------------
1 | import { Linking } from "react-native"
2 | import store from "../../../../store";
3 | import { setDeeplinkUrl } from "../creators/deeplink";
4 |
5 | const dispatchDeeplinkUrl = (url) => store.dispatch(setDeeplinkUrl(url))
6 |
7 | export const updateDeeplinkUrl = async (url) => {
8 | dispatchDeeplinkUrl(url)
9 | }
--------------------------------------------------------------------------------
/src/actions/actions/keyboard/creators/keyboard.js:
--------------------------------------------------------------------------------
1 | import { SET_KEYBOARD_ACTIVE, SET_KEYBOARD_HEIGHT } from "../../../../utils/constants/storeType"
2 |
3 | export const setKeyboardHeight = (height) => {
4 | return {
5 | type: SET_KEYBOARD_HEIGHT,
6 | payload: { height }
7 | }
8 | }
9 |
10 | export const setKeyboardActive = (active) => {
11 | return {
12 | type: SET_KEYBOARD_ACTIVE,
13 | payload: { active }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/actions/actions/loadingModal/dispatchers/loadingModal.js:
--------------------------------------------------------------------------------
1 | import store from '../../../../store';
2 | import {
3 | OPEN_LOADING_MODAL,
4 | CLOSE_LOADING_MODAL
5 | } from '../../../../utils/constants/storeType';
6 |
7 | export const openLoadingModal = (
8 | message,
9 | height = 442
10 | ) => {
11 | store.dispatch({
12 | type: OPEN_LOADING_MODAL,
13 | payload: {
14 | message,
15 | height
16 | },
17 | });
18 | };
19 |
20 | export const closeLoadingModal = () => {
21 | store.dispatch({
22 | type: CLOSE_LOADING_MODAL
23 | });
24 | }
--------------------------------------------------------------------------------
/src/actions/actions/notifications/dispatchers/notifications.js:
--------------------------------------------------------------------------------
1 | import store from "../../../../store";
2 | import { addNotification, clearAccountNotifications, clearNotifications, removeNotification, setNotifications } from "../creators/notifications";
3 |
4 | export const dispatchAddNotification = (notification) => store.dispatch(addNotification(notification))
5 |
6 | export const dispatchRemoveNotification = (uid) => store.dispatch(removeNotification(uid))
7 |
8 | export const dispatchClearNotifications = () => store.dispatch(clearNotifications())
9 |
10 | export const dispatchClearAccountNotifications = (acchash) => store.dispatch(clearAccountNotifications(acchash))
11 |
12 | export const dispatchSetNotifications = (directory, accounts) => store.dispatch(setNotifications(directory, accounts))
--------------------------------------------------------------------------------
/src/actions/actions/personal/creators/personal.js:
--------------------------------------------------------------------------------
1 | import { SET_PERSONAL_DATA } from "../../../../utils/constants/storeType"
2 |
3 | export const setPersonalData = (
4 | data = {
5 | attributes: null,
6 | contact: null,
7 | locations: null,
8 | payment_methods: null,
9 | images: null,
10 | }
11 | ) => ({
12 | type: SET_PERSONAL_DATA,
13 | data,
14 | });
--------------------------------------------------------------------------------
/src/actions/actions/services/dispatchers/UpdateServiceAccount.js:
--------------------------------------------------------------------------------
1 | import {
2 | ERROR_SERVICE_ACCOUNT,
3 | SET_SERVICE_ACCOUNT
4 | } from "../../../../utils/constants/storeType";
5 | import { WYRE_SERVICE } from "../../../../utils/constants/intervalConstants";
6 | import { updateServiceDataValue } from "./UpdateServiceDataValue";
7 | import { updateWyreAccount } from "./wyre/updates";
8 |
9 | const fetchChannels = () => {
10 | return {
11 | [WYRE_SERVICE]: (channelStore) => updateWyreAccount(channelStore),
12 | };
13 | };
14 |
15 | export const updateServiceAccount = (state, dispatch, channels) =>
16 | updateServiceDataValue(
17 | state,
18 | dispatch,
19 | channels,
20 | SET_SERVICE_ACCOUNT,
21 | ERROR_SERVICE_ACCOUNT,
22 | fetchChannels
23 | );
24 |
--------------------------------------------------------------------------------
/src/actions/actions/services/dispatchers/UpdateServiceRates.js:
--------------------------------------------------------------------------------
1 | import {
2 | ERROR_SERVICE_RATES,
3 | SET_SERVICE_RATES,
4 | } from "../../../../utils/constants/storeType";
5 | import { WYRE_SERVICE } from "../../../../utils/constants/intervalConstants";
6 | import { updateServiceDataValue } from "./UpdateServiceDataValue";
7 | import { updateWyreRates } from "./wyre/updates";
8 |
9 | const fetchChannels = () => {
10 | return {
11 | [WYRE_SERVICE]: () => updateWyreRates(),
12 | }
13 | };
14 |
15 | export const updateServiceRates = (state, dispatch, channels) =>
16 | updateServiceDataValue(
17 | state,
18 | dispatch,
19 | channels,
20 | SET_SERVICE_RATES,
21 | ERROR_SERVICE_RATES,
22 | fetchChannels
23 | );
24 |
--------------------------------------------------------------------------------
/src/actions/actions/services/dispatchers/UpdateServiceTransfers.js:
--------------------------------------------------------------------------------
1 | import {
2 | ERROR_SERVICE_TRANSFERS,
3 | SET_SERVICE_TRANSFERS
4 | } from "../../../../utils/constants/storeType";
5 | import { WYRE_SERVICE } from "../../../../utils/constants/intervalConstants";
6 | import { updateServiceDataValue } from "./UpdateServiceDataValue";
7 | import { updateWyreTransfers } from "./wyre/updates";
8 |
9 | const fetchChannels = () => {
10 | return {
11 | [WYRE_SERVICE]: channelStore => updateWyreTransfers(channelStore),
12 | };
13 | };
14 |
15 | export const updateServiceTransfers = (state, dispatch, channels) =>
16 | updateServiceDataValue(
17 | state,
18 | dispatch,
19 | channels,
20 | SET_SERVICE_TRANSFERS,
21 | ERROR_SERVICE_TRANSFERS,
22 | fetchChannels
23 | );
24 |
--------------------------------------------------------------------------------
/src/actions/actions/wallet/dispatchers/general/updates.js:
--------------------------------------------------------------------------------
1 | import { getCoinRates } from "../../../../../utils/api/channels/general/callCreators";
2 | import { GENERAL } from "../../../../../utils/constants/intervalConstants";
3 |
4 | export const updateGeneralFiatPrices = async (coinObj) => {
5 | const coinRates = await getCoinRates(coinObj);
6 |
7 | const { result, ...header } = coinRates;
8 |
9 | return {
10 | chainTicker: coinObj.id,
11 | channel: GENERAL,
12 | header,
13 | body: result,
14 | };
15 | }
--------------------------------------------------------------------------------
/src/actions/actions/widgets/dispatchers/widgets.js:
--------------------------------------------------------------------------------
1 | import store from "../../../../store";
2 | import { clearAccountWidgets, removeWidget, setWidgets, addWidget } from "../creators/widgets";
3 |
4 | export const dispatchAddWidget = (id, acchash) => store.dispatch(addWidget(id, acchash))
5 |
6 | export const dispatchRemoveWidget = (id, acchash) => store.dispatch(removeWidget(id, acchash))
7 |
8 | export const dispatchClearAccountWidgets = (acchash) => store.dispatch(clearAccountWidgets(acchash))
9 |
10 | export const dispatchSetWidgets = (order) => store.dispatch(setWidgets(order))
--------------------------------------------------------------------------------
/src/components/AnimatedActivityIndicator.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import LottieView from 'lottie-react-native';
3 |
4 | const AnimatedActivityIndicator = (props) => (
5 |
11 | );
12 |
13 | export default AnimatedActivityIndicator;
14 |
--------------------------------------------------------------------------------
/src/components/AnimatedActivityIndicatorBox.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from "react";
2 | import { View } from 'react-native'
3 | import styles from "../styles";
4 | import AnimatedActivityIndicator from "./AnimatedActivityIndicator";
5 |
6 | class AnimatedActivityIndicatorBox extends Component {
7 | constructor(props) {
8 | super(props);
9 | }
10 |
11 | render() {
12 | return (
13 |
14 |
19 |
20 | );
21 | }
22 | }
23 |
24 | export default AnimatedActivityIndicatorBox;
25 |
--------------------------------------------------------------------------------
/src/components/AnimatedSuccessCheckmark.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import LottieView from 'lottie-react-native';
3 |
4 | const AnimatedSuccessCheckmark = (props) => (
5 |
11 | );
12 |
13 | export default AnimatedSuccessCheckmark;
14 |
--------------------------------------------------------------------------------
/src/components/LargerButton.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Button } from 'react-native-paper';
3 |
4 | const TallButton = (props) => {
5 | return (
6 |
16 | );
17 | };
18 |
19 | export default TallButton;
--------------------------------------------------------------------------------
/src/components/NumberPad/NumberPad.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { SafeAreaView } from 'react-native';
3 | import NumberPad, { Input, Display } from './index';
4 | import { Ionicons } from '@expo/vector-icons';
5 |
6 | export default class App extends React.Component {
7 | render() {
8 | return (
9 |
10 |
11 | {[0, 1, 2].map((i) => (
12 |
13 | ))}
14 |
15 | }
17 | hideIcon={}
18 | />
19 |
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/components/NumberPad/lib/NumberPadContext.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | export default React.createContext('react-native-number-pad');
4 |
--------------------------------------------------------------------------------
/src/components/SendModal/AddErc20Token/AddErc20TokenResult/AddErc20TokenResult.js:
--------------------------------------------------------------------------------
1 | import {useState} from 'react';
2 | import {closeSendModal} from '../../../../actions/actions/sendModal/dispatchers/sendModal';
3 | import {AddErc20TokenResultRender} from './AddErc20TokenResult.render';
4 |
5 | const AddErc20TokenResult = (props) => {
6 | const [contract, setContract] = useState(props.route.params == null ? {} : props.route.params.contract);
7 |
8 | const finishSend = () => {
9 | closeSendModal()
10 | };
11 |
12 | return AddErc20TokenResultRender({
13 | contract,
14 | finishSend
15 | });
16 | };
17 |
18 | export default AddErc20TokenResult;
19 |
--------------------------------------------------------------------------------
/src/containers/Home/Home.themes.js:
--------------------------------------------------------------------------------
1 | import { DefaultTheme } from 'react-native-paper';
2 |
3 | export const HomeListItemThemeDark = {
4 | ...DefaultTheme,
5 | colors: {
6 | ...DefaultTheme.colors,
7 | text: "#FFFFFF"
8 | },
9 | version: 2
10 | };
11 |
12 | export const HomeListItemThemeLight = {
13 | ...DefaultTheme,
14 | colors: {
15 | ...DefaultTheme.colors,
16 | text: "#1C1C1C"
17 | },
18 | version: 2
19 | };
20 |
21 |
--------------------------------------------------------------------------------
/src/containers/Identity/AddIdentity/Container.js:
--------------------------------------------------------------------------------
1 | import { connect } from 'react-redux';
2 | import { bindActionCreators } from 'redux';
3 |
4 | import { addNewIdentityName, changeActiveIdentity } from '../../../actions/actionCreators';
5 | import { selectIdentities, selectActiveIdentityId } from '../../../selectors/identity';
6 |
7 | const mapStateToProps = (state) => ({
8 | identities: selectIdentities(state),
9 | activeIdentityId: selectActiveIdentityId(state),
10 | });
11 |
12 | const mapDispatchToProps = (dispatch) => ({
13 | actions: bindActionCreators(
14 | {
15 | addNewIdentityName,
16 | changeActiveIdentity,
17 | },
18 | dispatch,
19 | ),
20 | });
21 |
22 | export default connect(mapStateToProps, mapDispatchToProps);
23 |
--------------------------------------------------------------------------------
/src/containers/Identity/AddIdentity/index.js:
--------------------------------------------------------------------------------
1 | import View from './View';
2 | import Container from './Container';
3 |
4 | export default Container(View);
5 |
--------------------------------------------------------------------------------
/src/containers/Identity/Container.js:
--------------------------------------------------------------------------------
1 | import { connect } from 'react-redux';
2 |
3 | import { selectActiveIdentityId } from '../../selectors/identity';
4 |
5 |
6 | const mapStateToProps = (state) => ({
7 | activeIdentityId: selectActiveIdentityId(state),
8 | });
9 |
10 | export default connect(mapStateToProps);
11 |
--------------------------------------------------------------------------------
/src/containers/Identity/Home/AttestationDetails/Container.js:
--------------------------------------------------------------------------------
1 | import { connect } from 'react-redux';
2 | import { bindActionCreators } from 'redux';
3 |
4 | import { selectActiveAttestation, } from '../../../../selectors/identity';
5 | import { toggleAttestationPin, setAttestationModalVisibility } from '../../../../actions/actionCreators';
6 |
7 | const mapStateToProps = (state) => ({
8 | attestation: selectActiveAttestation(state),
9 | });
10 |
11 | const mapDispatchToProps = (dispatch) => ({
12 | actions: bindActionCreators(
13 | {
14 | toggleAttestationPin,
15 | setAttestationModalVisibility,
16 | },
17 | dispatch,
18 | ),
19 | });
20 |
21 | export default connect(mapStateToProps, mapDispatchToProps);
22 |
--------------------------------------------------------------------------------
/src/containers/Identity/Home/AttestationDetails/index.js:
--------------------------------------------------------------------------------
1 | import View from './View';
2 | import Container from './Container';
3 |
4 | export default Container(View);
5 |
--------------------------------------------------------------------------------
/src/containers/Identity/Home/ScanBadge/Container.js:
--------------------------------------------------------------------------------
1 | import { connect } from 'react-redux';
2 | import { bindActionCreators } from 'redux';
3 |
4 | import {
5 | selectScanInfoModalVisibility,
6 | } from '../../../../selectors/identity';
7 | import { setScanInfoModalVisibility } from '../../../../actions/actionCreators';
8 |
9 | const mapStateToProps = (state) => ({
10 | scanInfoModalVisibility: selectScanInfoModalVisibility(state),
11 | });
12 |
13 | const mapDispatchToProps = (dispatch) => ({
14 | actions: bindActionCreators(
15 | {
16 | setScanInfoModalVisibility,
17 | },
18 | dispatch,
19 | ),
20 | });
21 |
22 | export default connect(mapStateToProps, mapDispatchToProps);
23 |
--------------------------------------------------------------------------------
/src/containers/Identity/Home/ScanBadge/index.js:
--------------------------------------------------------------------------------
1 | import View from './View';
2 | import Container from './Container';
3 |
4 | export default Container(View);
5 |
--------------------------------------------------------------------------------
/src/containers/Identity/Home/ScannedInformation/Container.js:
--------------------------------------------------------------------------------
1 | import { connect } from 'react-redux';
2 | import { bindActionCreators } from 'redux';
3 | import { setScanInfoModalVisibility } from '../../../../actions/actionCreators';
4 |
5 | const mapDispatchToProps = (dispatch) => ({
6 | actions: bindActionCreators(
7 | {
8 | setScanInfoModalVisibility,
9 | },
10 | dispatch,
11 | ),
12 | });
13 |
14 | export default connect(null, mapDispatchToProps);
15 |
--------------------------------------------------------------------------------
/src/containers/Identity/Home/ScannedInformation/index.js:
--------------------------------------------------------------------------------
1 | import View from './View';
2 | import Container from './Container';
3 |
4 | export default Container(View);
5 |
--------------------------------------------------------------------------------
/src/containers/Identity/Home/ScannedInformation/mockData.js:
--------------------------------------------------------------------------------
1 |
2 | export default
3 | {
4 | data: 'db6166942ef4ee75a76a5ac02d95ab84',
5 | firstName:'Faris',
6 | lastName:'Kunic',
7 | };
8 |
--------------------------------------------------------------------------------
/src/containers/Identity/Home/ScannedInformation/styles.js:
--------------------------------------------------------------------------------
1 | import { StyleSheet } from 'react-native';
2 |
3 | export default StyleSheet.create({
4 |
5 | text: {
6 | fontSize: 16,
7 | color: 'grey',
8 | paddingRight: 24,
9 | },
10 |
11 |
12 | personContainer:{
13 | marginTop:'20%',
14 | },
15 | });
16 |
--------------------------------------------------------------------------------
/src/containers/Identity/PersonalInfo/AlphaSort/AlphabeticalSort.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { TouchableOpacity } from 'react-native';
3 | //import FontAwesomeIcon from 'react-native-vector-icons/FontAwesome5';
4 |
5 | const AlphabeticalSort = (props) => {
6 | const { sortBy, setSortDirection } = props;
7 |
8 | if (sortBy === 'asc') {
9 | return (
10 | setSortDirection('desc')}>
11 | {/* */}
12 |
13 | );
14 | }
15 |
16 | return (
17 | setSortDirection('asc')}>
18 | {/* */}
19 |
20 | );
21 | };
22 |
23 | export default AlphabeticalSort;
24 |
--------------------------------------------------------------------------------
/src/containers/Identity/PersonalInfo/ClaimCategoryDetails/index.js:
--------------------------------------------------------------------------------
1 | import View from './View';
2 | import Container from './Container';
3 |
4 | export default Container(View);
5 |
--------------------------------------------------------------------------------
/src/containers/Identity/PersonalInfo/ClaimDetails/index.js:
--------------------------------------------------------------------------------
1 | import View from './View';
2 | import Container from './Container';
3 |
4 | export default Container(View);
5 |
--------------------------------------------------------------------------------
/src/containers/Identity/PersonalInfo/ClaimManager/MoveIntoCategory/Container.js:
--------------------------------------------------------------------------------
1 | import { connect } from 'react-redux';
2 | import { bindActionCreators } from 'redux';
3 |
4 | import { selectClaimCategories } from '../../../../../selectors/identity';
5 | import { moveClaimsToCategory, clearSelectedClaims } from '../../../../../actions/actionCreators';
6 |
7 | const mapStateToProps = (state) => ({
8 | categories: selectClaimCategories(state),
9 | });
10 |
11 | const mapDispatchToProps = (dispatch) => ({
12 | actions: bindActionCreators(
13 | {
14 | moveClaimsToCategory,
15 | clearSelectedClaims,
16 | },
17 | dispatch,
18 | ),
19 | });
20 |
21 | export default connect(mapStateToProps, mapDispatchToProps);
22 |
--------------------------------------------------------------------------------
/src/containers/Identity/PersonalInfo/ClaimManager/MoveIntoCategory/index.js:
--------------------------------------------------------------------------------
1 | import View from './View';
2 | import Container from './Container';
3 |
4 | export default Container(View);
5 |
--------------------------------------------------------------------------------
/src/containers/Identity/PersonalInfo/ClaimManager/index.js:
--------------------------------------------------------------------------------
1 | import View from './View';
2 | import Container from './Container';
3 |
4 | export default Container(View);
5 |
--------------------------------------------------------------------------------
/src/containers/Identity/PersonalInfo/ClaimManager/utils/getShowHideIcon.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | //import Icon from 'react-native-vector-icons/Ionicons';
3 | import { Platform } from 'react-native';
4 |
5 | const getShowHideIcon = (show, size) => {
6 | if (!show) return ();
7 |
8 | //return ();
9 | return null
10 | };
11 |
12 | export default getShowHideIcon;
13 |
--------------------------------------------------------------------------------
/src/containers/Identity/PersonalInfo/ClaimManager/utils/truncateString.js:
--------------------------------------------------------------------------------
1 | export const truncateString = (item, size) => item.substring(0, size);
2 |
3 | export default truncateString;
4 |
--------------------------------------------------------------------------------
/src/containers/Identity/PersonalInfo/RequestAttestation/Container.js:
--------------------------------------------------------------------------------
1 | import { connect } from 'react-redux';
2 |
3 | import {
4 | selectActiveClaim,
5 | selectIdentities,
6 | } from '../../../../selectors/identity';
7 |
8 | const mapStateToProps = (state) => ({
9 | selectedClaim: selectActiveClaim(state),
10 | availableIdentities: selectIdentities(state),
11 | });
12 |
13 | export default connect(mapStateToProps);
14 |
--------------------------------------------------------------------------------
/src/containers/Identity/PersonalInfo/RequestAttestation/RequestDialog.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Dialog from 'react-native-dialog';
3 |
4 | const RequestDialog = (props) => {
5 | const {
6 | dialogShown,
7 | closeRequestDialog,
8 | requestAttestation,
9 | selectedIdentity,
10 | } = props;
11 |
12 | if (!dialogShown) return null;
13 | return (
14 |
15 |
16 | Are you sure you want to send request to
17 |
18 | {selectedIdentity}
19 |
20 |
21 |
22 |
23 | );
24 | };
25 |
26 | export default RequestDialog;
27 |
--------------------------------------------------------------------------------
/src/containers/Identity/PersonalInfo/RequestAttestation/index.js:
--------------------------------------------------------------------------------
1 | import View from './View';
2 | import Container from './Container';
3 |
4 | export default Container(View);
5 |
--------------------------------------------------------------------------------
/src/containers/Identity/PersonalInfo/index.js:
--------------------------------------------------------------------------------
1 | import View from './View';
2 | import Container from './Container';
3 |
4 | export default Container(View);
5 |
--------------------------------------------------------------------------------
/src/containers/Identity/index.js:
--------------------------------------------------------------------------------
1 | import View from './View';
2 | import Container from './Container';
3 |
4 | export default Container(View);
5 |
--------------------------------------------------------------------------------
/src/containers/Identity/tabs.js:
--------------------------------------------------------------------------------
1 | import Home from './Home/View';
2 | import PersonalInfo from './PersonalInfo';
3 | import Colors from '../../globals/colors';
4 |
5 | export default [
6 | {
7 | key: 'Home',
8 | label: 'Identity',
9 | pressColor: 'rgba(255, 255, 255, 0.16)',
10 | screen: Home,
11 | icon: 'home',
12 | barColor: Colors.primaryColor,
13 | },
14 | {
15 | key: 'Personal information',
16 | label: 'Personal information',
17 | pressColor: 'rgba(255, 255, 255, 0.16)',
18 | screen: PersonalInfo,
19 | icon: 'user-circle',
20 | barColor: Colors.verusGreenColor,
21 | },
22 | ];
23 |
--------------------------------------------------------------------------------
/src/containers/LoadingScreen/LoadingScreen.js:
--------------------------------------------------------------------------------
1 | /*
2 | This screen is shown briefly before the login or sign
3 | up screen is shown, as the app is loading coin data from
4 | asyncStorage. It will be shown a little longer the more coins
5 | are added to the wallet, and should feature some animation
6 | or interesting splash image that goes well with the static
7 | splash image at the beginning.
8 | */
9 |
10 | import React, { Component } from "react";
11 | import {
12 | View
13 | } from "react-native";
14 | import styles from './LoadingScreen.styles';
15 |
16 | export default class LoadingScreen extends Component {
17 | constructor(props) {
18 | super(props)
19 | }
20 |
21 | render() {
22 | return (
23 |
24 | );
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/containers/LoadingScreen/LoadingScreen.styles.js:
--------------------------------------------------------------------------------
1 | import { StyleSheet } from "react-native";
2 | import Colors from '../../globals/colors';
3 |
4 | export default styles = StyleSheet.create({
5 | loadingRoot: {
6 | backgroundColor: Colors.primaryColor,
7 | height: "100%",
8 | width: "100%"
9 | },
10 | loadingLabel: {
11 | backgroundColor: "transparent",
12 | marginTop: 15,
13 | fontSize: 18,
14 | textAlign: "center",
15 | color: Colors.quinaryColor,
16 | width: "70%",
17 | fontFamily: 'Avenir-Book',
18 | fontWeight: 'normal'
19 | },
20 | });
--------------------------------------------------------------------------------
/src/containers/Personal/Personal.js:
--------------------------------------------------------------------------------
1 | /*
2 | This component represents the screen the user will
3 | use to configure their personal wallet profile. They can then
4 | take this profile data and submit it to applications that require
5 | KYC if they want.
6 | */
7 |
8 | import { Component } from "react"
9 | import { connect } from 'react-redux'
10 | import { PersonalRender } from "./Personal.render"
11 |
12 | class Personal extends Component {
13 | constructor(props) {
14 | super(props);
15 | this.state = {};
16 | }
17 |
18 | render() {
19 | return PersonalRender.call(this);
20 | }
21 | }
22 |
23 | const mapStateToProps = (state) => {
24 | return {
25 | attributes: state.personal.attributes
26 | }
27 | };
28 |
29 | export default connect(mapStateToProps)(Personal);
--------------------------------------------------------------------------------
/src/containers/Personal/Personal.render.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import PersonalInfo from "./PersonalInfo/PersonalInfo";
3 | import PersonalIntroSlider from "./PersonalIntroSlider/PersonalIntroSlider";
4 |
5 | export const PersonalRender = function() {
6 | return this.props.attributes == null ? (
7 |
8 | ) : (
9 |
10 | );
11 | };
12 |
--------------------------------------------------------------------------------
/src/containers/RootStack/ConvertStackScreens/ConvertStackScreens.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { createStackNavigator } from "@react-navigation/stack";
3 | import { defaultHeaderOptions } from '../../../utils/navigation/header';
4 | import Convert from '../../Convert/Convert';
5 |
6 | const ConvertStack = createStackNavigator();
7 |
8 | const ConvertStackScreens = props => {
9 | return (
10 |
13 |
20 |
21 | );
22 | };
23 |
24 | export default ConvertStackScreens
--------------------------------------------------------------------------------
/src/containers/RootStack/LoadingStackScreens/LoadingStackScreens.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { createStackNavigator } from "@react-navigation/stack";
3 | import LoadingScreen from "../../LoadingScreen/LoadingScreen";
4 |
5 | const LoadingStack = createStackNavigator();
6 |
7 | const LoadingStackScreens = props => {
8 | return (
9 |
10 |
17 |
18 | );
19 | };
20 |
21 | export default LoadingStackScreens
--------------------------------------------------------------------------------
/src/containers/Services/ServiceComponents/VerusIdService/VerusIdLogin.js:
--------------------------------------------------------------------------------
1 | import { primitives } from 'verusid-ts-client'
2 | import { SET_DEEPLINK_DATA } from "../../../../utils/constants/storeType"
3 |
4 | export const processVerusId = async (props, loginConsentRequest, fromService = null, fqnToAutoLink = null) => {
5 |
6 | const req = new primitives.LoginConsentRequest();
7 | req.fromBuffer(Buffer.from(loginConsentRequest, 'base64'));
8 |
9 | props.dispatch({
10 | type: SET_DEEPLINK_DATA,
11 | payload: {
12 | id: primitives.LOGIN_CONSENT_REQUEST_VDXF_KEY.vdxfid,
13 | data: req.toJson(),
14 | fromService: fromService,
15 | passthrough: { fqnToAutoLink }
16 | },
17 | });
18 | props.navigation.navigate('DeepLink');
19 | }
20 |
--------------------------------------------------------------------------------
/src/containers/Services/ServiceTools/ServiceProvidedInfoOverview/ServiceProvidedInfoOverview.js:
--------------------------------------------------------------------------------
1 | /*
2 | This component represents the overview screen for KYC info given to a service
3 | */
4 |
5 | import { Component } from "react"
6 | import { connect } from 'react-redux'
7 | import { ServiceProvidedInfoOverviewRender } from "./ServiceProvidedInfoOverview.render"
8 |
9 | class ServiceProvidedInfoOverview extends Component {
10 | constructor(props) {
11 | super(props);
12 | }
13 |
14 | render() {
15 | return ServiceProvidedInfoOverviewRender.call(this);
16 | }
17 | }
18 |
19 | const mapStateToProps = (state) => {
20 | return {}
21 | };
22 |
23 | export default connect(mapStateToProps)(ServiceProvidedInfoOverview);
--------------------------------------------------------------------------------
/src/containers/Services/ServiceTools/ServiceProvidedInfoOverview/ServiceProvidedInfoOverview.render.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | export const ServiceProvidedInfoOverviewRender = function () {
4 | return null
5 | };
6 |
--------------------------------------------------------------------------------
/src/containers/Services/Services.js:
--------------------------------------------------------------------------------
1 | /*
2 | This component represents the screen the user will
3 | use to configure connected wallet services like Wyre
4 | */
5 |
6 | import { Component } from "react"
7 | import { connect } from 'react-redux'
8 | import { ServicesRender } from "./Services.render"
9 |
10 | class Services extends Component {
11 | constructor(props) {
12 | super(props);
13 | this.state = {};
14 | }
15 |
16 | render() {
17 | return ServicesRender.call(this);
18 | }
19 | }
20 |
21 | const mapStateToProps = (state) => {
22 | return {}
23 | };
24 |
25 | export default connect(mapStateToProps)(Services);
--------------------------------------------------------------------------------
/src/containers/Services/Services.render.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ServicesOverview from "./ServicesOverview/ServicesOverview";
3 |
4 | export const ServicesRender = function() {
5 | return ;
6 | };
7 |
--------------------------------------------------------------------------------
/src/containers/VerusPay/VerusPay.styles.js:
--------------------------------------------------------------------------------
1 | import { StyleSheet } from "react-native";
2 |
3 | export default styles = StyleSheet.create({
4 | root: {
5 | backgroundColor: "#232323",
6 | flex: 1,
7 | alignItems: "center"
8 | },
9 | QRCamera: {
10 | height: "100%"
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/src/globals/colors.js:
--------------------------------------------------------------------------------
1 |
2 | const Colors = {
3 | primaryColor: '#3165d4', // verus blue
4 | secondaryColor: '#FFFFFF', // white
5 | tertiaryColor: '#D6D6D6', //grey white
6 | verusDarkGray: '#959595',
7 | quaternaryColor: '#232323', // dark gray
8 | quinaryColor: 'black',
9 | verusGreenColor: '#4AA658', // Green
10 | warningButtonColor: '#F22D37', // Red
11 | infoButtonColor: '#F89336', // Orange
12 | linkButtonColor: '#4E73DF', // Blue
13 | basicButtonColor: 'black',
14 | lightGrey:'#b5b5b5',
15 | ultraLightGrey:'#d6cccb',
16 | ultraUltraLightGrey: "#FBFBFB"
17 | }
18 |
19 | export default Colors
20 |
--------------------------------------------------------------------------------
/src/globals/globalStyles.js:
--------------------------------------------------------------------------------
1 | const GlobalStyles = {
2 | Avenir: 'Avenir',
3 | AvenirBook: 'Avenir-Book',
4 | AvenirBlack: 'Avenir-Black',
5 | AvenirMedium: 'Avenir-Medium',
6 | };
7 |
8 | export default GlobalStyles;
9 |
--------------------------------------------------------------------------------
/src/hooks/useObjectSelector.js:
--------------------------------------------------------------------------------
1 | import { isEqual } from "lodash";
2 | import { useSelector } from "react-redux";
3 |
4 | export const useObjectSelector = (extractor) => {
5 | return useSelector(extractor, isEqual);
6 | }
--------------------------------------------------------------------------------
/src/hooks/usePrevious.js:
--------------------------------------------------------------------------------
1 | import { useEffect, useRef } from "react";
2 |
3 | export const usePrevious = (x) => {
4 | const ref = useRef();
5 |
6 | useEffect(() => {
7 | ref.current = x;
8 | });
9 |
10 | return ref.current;
11 | }
--------------------------------------------------------------------------------
/src/images/cryptologo/default/btc/dash/dash_dark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/cryptologo/default/btc/dash/dash_light.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/cryptologo/default/btc/dgb/dgb_dark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/cryptologo/default/btc/vrsc/vrsc_light.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/cryptologo/default/btc/vrsctest/vrsctest_light.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/cryptologo/default/btc/zec/zec_light.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/images/cryptologo/default/btc/zectest/zectest_light.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/images/cryptologo/default/web3/bnt/bnt_dark.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/images/cryptologo/default/web3/link/link_dark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/cryptologo/default/web3/link/link_light.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/cryptologo/default/web3/mkr/mkr_dark.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/src/images/cryptologo/default/web3/mkr/mkr_light.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/src/images/cryptologo/default/web3/nexo/nexo_dark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/cryptologo/default_chain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/cryptologo/default_chain.png
--------------------------------------------------------------------------------
/src/images/cryptologo/index.js:
--------------------------------------------------------------------------------
1 | import web3 from './default/web3/index'
2 | import btc from './default/btc/index'
3 | import fiat from './default/fiat/index'
4 | import pbaas from './default/pbaas/index'
5 |
6 | export default {
7 | web3,
8 | btc,
9 | fiat,
10 | pbaas
11 | }
--------------------------------------------------------------------------------
/src/images/customIcons/EnterKeyIcon.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/images/customIcons/MyProfile.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/images/customIcons/MyWallet.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/images/customIcons/MyWalletLight.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/images/customIcons/Verus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/Verus.png
--------------------------------------------------------------------------------
/src/images/customIcons/add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/add.png
--------------------------------------------------------------------------------
/src/images/customIcons/addCoin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/addCoin.png
--------------------------------------------------------------------------------
/src/images/customIcons/aproved.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/aproved.png
--------------------------------------------------------------------------------
/src/images/customIcons/bank-building.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/bank-building.png
--------------------------------------------------------------------------------
/src/images/customIcons/bank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/bank.png
--------------------------------------------------------------------------------
/src/images/customIcons/bank2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/bank2.png
--------------------------------------------------------------------------------
/src/images/customIcons/bankBuildingBlack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/bankBuildingBlack.png
--------------------------------------------------------------------------------
/src/images/customIcons/buy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/buy.png
--------------------------------------------------------------------------------
/src/images/customIcons/buySell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/buySell.png
--------------------------------------------------------------------------------
/src/images/customIcons/calendar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/calendar.png
--------------------------------------------------------------------------------
/src/images/customIcons/call-answer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/call-answer.png
--------------------------------------------------------------------------------
/src/images/customIcons/coins-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/coins-icon.png
--------------------------------------------------------------------------------
/src/images/customIcons/email.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/email.png
--------------------------------------------------------------------------------
/src/images/customIcons/file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/file.png
--------------------------------------------------------------------------------
/src/images/customIcons/home-icon-silhouette.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/home-icon-silhouette.png
--------------------------------------------------------------------------------
/src/images/customIcons/id-card.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/id-card.png
--------------------------------------------------------------------------------
/src/images/customIcons/maps-and-flags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/maps-and-flags.png
--------------------------------------------------------------------------------
/src/images/customIcons/pending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/pending.png
--------------------------------------------------------------------------------
/src/images/customIcons/piggybank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/piggybank.png
--------------------------------------------------------------------------------
/src/images/customIcons/received-icon.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/src/images/customIcons/recover-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/recover-icon.png
--------------------------------------------------------------------------------
/src/images/customIcons/revoke-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/revoke-icon.png
--------------------------------------------------------------------------------
/src/images/customIcons/sell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/sell.png
--------------------------------------------------------------------------------
/src/images/customIcons/transactions/in-arrow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/customIcons/transactions/index.js:
--------------------------------------------------------------------------------
1 | import InArrow from './in-arrow.svg'
2 | import InterestPlus from './interest-plus.svg'
3 | import OutArrow from './out-arrow.svg'
4 | import PendingClock from './pending-clock.svg'
5 | import SelfArrow from './self-arrow.svg'
6 | import Unknown from './unknown-logo.svg'
7 |
8 | export default {
9 | InArrow,
10 | InterestPlus,
11 | OutArrow,
12 | PendingClock,
13 | SelfArrow,
14 | Unknown
15 | }
--------------------------------------------------------------------------------
/src/images/customIcons/transactions/out-arrow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/customIcons/transactions/self-arrow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/customIcons/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/user.png
--------------------------------------------------------------------------------
/src/images/customIcons/verusHeaderLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/verusHeaderLogo.png
--------------------------------------------------------------------------------
/src/images/customIcons/vrsc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VerusCoin/Verus-Mobile/eeb5035ffabc3bfab8281f44e1f3b149018b4439/src/images/customIcons/vrsc.png
--------------------------------------------------------------------------------
/src/images/servicelogo/index.js:
--------------------------------------------------------------------------------
1 | import { VERUSID_SERVICE_ID, WYRE_SERVICE_ID } from '../../utils/constants/services'
2 | import WYRE_LIGHT from './wyre/wyre_light.svg'
3 | import VERUSID_LIGHT from './verusid/verusid_light.svg'
4 |
5 | export default {
6 | [WYRE_SERVICE_ID]: { light: WYRE_LIGHT },
7 | [VERUSID_SERVICE_ID]: { light: VERUSID_LIGHT }
8 | }
--------------------------------------------------------------------------------
/src/reducers/cache/ethtxreceipts.js:
--------------------------------------------------------------------------------
1 | /*
2 | This reducer stores the cache for eth transactions.
3 | */
4 |
5 | import { ADD_ETH_TX_RECEIPT, SET_ETH_TX_RECEIPTS, CLEAR_CACHE } from "../../utils/constants/storeType";
6 |
7 | export const ethtxreceipts = (state = {
8 | txReceipts: {}
9 | }, action) => {
10 | switch (action.type) {
11 | case ADD_ETH_TX_RECEIPT:
12 | return {
13 | ...state,
14 | txReceipts: {...state.txReceipts, [action.key]: action.receipt},
15 | };
16 | case SET_ETH_TX_RECEIPTS:
17 | return {
18 | ...state,
19 | txReceipts: action.receipts,
20 | };
21 | case CLEAR_CACHE:
22 | return {
23 | ...state,
24 | txReceipts: {},
25 | };
26 | default:
27 | return state;
28 | }
29 | }
--------------------------------------------------------------------------------
/src/reducers/gui/buySellCrypto.js:
--------------------------------------------------------------------------------
1 | /*
2 | This reducer contains general navigation and saved form data
3 | for the buy/sell crypto screen
4 | */
5 |
6 | import {
7 | SET_ACTIVE_SECTION_BUY_SELL_CRYPTO
8 | } from '../../utils/constants/storeType'
9 |
10 | export const buySellCrypto = (state = {
11 | activeSection: null
12 | }, action) => {
13 | switch (action.type) {
14 | case SET_ACTIVE_SECTION_BUY_SELL_CRYPTO:
15 | return {
16 | ...state,
17 | activeSection: action.activeSection,
18 | };
19 | default:
20 | return state;
21 | }
22 | }
--------------------------------------------------------------------------------
/src/reducers/gui/coinOverview.js:
--------------------------------------------------------------------------------
1 | /*
2 | This reducer contains general navigation and saved form data
3 | for the buy/sell crypto screen
4 | */
5 |
6 | import {
7 | SET_OVERVIEW_FILTER
8 | } from '../../utils/constants/storeType'
9 |
10 | export const coinOverview = (state = {
11 | activeOverviewFilter: {}
12 | }, action) => {
13 | switch (action.type) {
14 | case SET_OVERVIEW_FILTER:
15 | return {
16 | ...state,
17 | activeOverviewFilter: {...state.activeOverviewFilter, [action.payload.chainTicker]: action.payload.filterType},
18 | };
19 | default:
20 | return state;
21 | }
22 | }
--------------------------------------------------------------------------------
/src/reducers/gui/customCoins.js:
--------------------------------------------------------------------------------
1 | /*
2 | This reduces contains general navigation and saved form data
3 | for the custom coin adding screens
4 | */
5 |
6 | import {
7 | SET_ACTIVE_SECTION_CUSTOM_COIN
8 | } from '../../utils/constants/storeType'
9 |
10 | export const customCoins = (state = {
11 | activeSection: null
12 | }, action) => {
13 | switch (action.type) {
14 | case SET_ACTIVE_SECTION_CUSTOM_COIN:
15 | return {
16 | ...state,
17 | activeSection: action.activeSection,
18 | };
19 | default:
20 | return state;
21 | }
22 | }
--------------------------------------------------------------------------------
/src/reducers/keyboard.js:
--------------------------------------------------------------------------------
1 | /*
2 | The keyboard reducer stores information about the phone keyboard
3 | for display purposes
4 | */
5 |
6 | import {
7 | SET_KEYBOARD_ACTIVE,
8 | SET_KEYBOARD_HEIGHT
9 | } from "../utils/constants/storeType";
10 |
11 | export const keyboard = (
12 | state = {
13 | height: 0,
14 | active: false
15 | },
16 | action
17 | ) => {
18 | switch (action.type) {
19 | case SET_KEYBOARD_HEIGHT:
20 | return {
21 | ...state,
22 | height: action.payload.height
23 | };
24 | case SET_KEYBOARD_ACTIVE:
25 | return {
26 | ...state,
27 | active: action.payload.active
28 | }
29 | default:
30 | return state;
31 | }
32 | };
33 |
--------------------------------------------------------------------------------
/src/reducers/modal.js:
--------------------------------------------------------------------------------
1 | /*
2 | The modal reducer handles modals generated within the app,
3 | showing them one at a time as they are generated. The modal
4 | stack contains unique modal ids.
5 | */
6 |
7 | import {
8 | PUSH_MODAL,
9 | REMOVE_MODAL
10 | } from "../utils/constants/storeType";
11 |
12 | export const modal = (
13 | state = {
14 | stack: [], // Array of uids
15 | },
16 | action
17 | ) => {
18 | switch (action.type) {
19 | case PUSH_MODAL:
20 | return {
21 | ...state,
22 | stack: [...state.stack, action.payload.modal],
23 | };
24 | case REMOVE_MODAL:
25 | return {
26 | ...state,
27 | stack: state.stack.filter(modal => modal !== action.payload.modal),
28 | };
29 | default:
30 | return state;
31 | }
32 | };
33 |
--------------------------------------------------------------------------------
/src/sagas/channels/dlight.js:
--------------------------------------------------------------------------------
1 | import { all, takeEvery, put } from "redux-saga/effects";
2 | import {
3 | INIT_DLIGHT_CHANNEL_START,
4 | INIT_DLIGHT_CHANNEL_FINISH,
5 | } from "../../utils/constants/storeType";
6 |
7 | export default function * dlightSaga() {
8 | yield all([
9 | takeEvery(INIT_DLIGHT_CHANNEL_START, handleFinishDlightInit),
10 | ]);
11 | }
12 |
13 | function * handleFinishDlightInit(action) {
14 | yield put({type: INIT_DLIGHT_CHANNEL_FINISH, payload: action.payload})
15 | }
--------------------------------------------------------------------------------
/src/sagas/channels/electrum.js:
--------------------------------------------------------------------------------
1 | import { all, takeEvery, put } from "redux-saga/effects";
2 | import {
3 | INIT_ELECTRUM_CHANNEL_START,
4 | INIT_ELECTRUM_CHANNEL_FINISH,
5 | } from "../../utils/constants/storeType";
6 |
7 | export default function * electrumSaga() {
8 | yield all([
9 | takeEvery(INIT_ELECTRUM_CHANNEL_START, handleFinishElectrumInit),
10 | ]);
11 | }
12 |
13 | function * handleFinishElectrumInit(action) {
14 | yield put({type: INIT_ELECTRUM_CHANNEL_FINISH, payload: action.payload})
15 | }
--------------------------------------------------------------------------------
/src/sagas/channels/eth.js:
--------------------------------------------------------------------------------
1 | import { all, takeEvery, put } from "redux-saga/effects";
2 | import {
3 | INIT_ETH_CHANNEL_START,
4 | INIT_ETH_CHANNEL_FINISH,
5 | } from "../../utils/constants/storeType";
6 |
7 | export default function * ethSaga() {
8 | yield all([
9 | takeEvery(INIT_ETH_CHANNEL_START, handleFinishEthInit),
10 | ]);
11 | }
12 |
13 | function * handleFinishEthInit(action) {
14 | yield put({type: INIT_ETH_CHANNEL_FINISH, payload: action.payload})
15 | }
--------------------------------------------------------------------------------
/src/sagas/channels/general.js:
--------------------------------------------------------------------------------
1 | import { all, takeEvery, put } from "redux-saga/effects";
2 | import {
3 | INIT_GENERAL_CHANNEL_FINISH,
4 | INIT_GENERAL_CHANNEL_START,
5 | } from "../../utils/constants/storeType";
6 |
7 | export default function * generalSaga() {
8 | yield all([
9 | takeEvery(INIT_GENERAL_CHANNEL_START, handleFinishGeneralInit),
10 | ]);
11 | }
12 |
13 | function * handleFinishGeneralInit(action) {
14 | yield put({type: INIT_GENERAL_CHANNEL_FINISH, payload: action.payload})
15 | }
--------------------------------------------------------------------------------
/src/sagas/channels/wyre.js:
--------------------------------------------------------------------------------
1 | import { all, takeEvery, put } from "redux-saga/effects";
2 | import {
3 | INIT_WYRE_COIN_CHANNEL_START,
4 | INIT_WYRE_COIN_CHANNEL_FINISH,
5 | } from "../../utils/constants/storeType";
6 |
7 | export default function * wyreCoinSaga() {
8 | yield all([
9 | takeEvery(INIT_WYRE_COIN_CHANNEL_START, handleFinishWyreCoinInit),
10 | ]);
11 | }
12 |
13 | function * handleFinishWyreCoinInit(action) {
14 | yield put({type: INIT_WYRE_COIN_CHANNEL_FINISH, payload: action.payload})
15 | }
--------------------------------------------------------------------------------
/src/selectors/authentication.js:
--------------------------------------------------------------------------------
1 | export const selectActiveAccount = (state) => (
2 | state.authentication.activeAccount
3 | );
4 |
5 | export const selectLoginState = (state) => (
6 | state.authentication.signedIn
7 | );
8 |
9 | export const selectPaymentMethod = (state, method) => {
10 | const { paymentMethods } = state.authentication.activeAccount;
11 | return paymentMethods && paymentMethods[method];
12 | };
13 |
14 | export const selectWyrePaymentMethod = (state) => (
15 | selectPaymentMethod(state, 'wyre')
16 | );
17 |
--------------------------------------------------------------------------------
/src/selectors/networkName.js:
--------------------------------------------------------------------------------
1 | import { createSelector } from 'reselect';
2 | import { CoinDirectory } from '../utils/CoinData/CoinDirectory';
3 |
4 | const selectSubWallet = (state) => state.coinMenus.activeSubWallets[state.coins.activeCoin.id];
5 |
6 | export const selectNetworkName = createSelector(
7 | [selectSubWallet],
8 | (subwallet) => {
9 | try {
10 | return subwallet.network
11 | ? CoinDirectory.getBasicCoinObj(subwallet.network).display_ticker
12 | : null;
13 | } catch (e) {
14 | return null;
15 | }
16 | }
17 | );
18 |
19 | export default selectNetworkName;
20 |
--------------------------------------------------------------------------------
/src/selectors/notifications.js:
--------------------------------------------------------------------------------
1 | import {createSelector} from 'reselect';
2 |
3 | const selectNotificationDirectory = state => state.notifications.directory;
4 |
5 | const selectNotificationAccounts = state => state.notifications.accounts;
6 |
7 | export const selectNotifications = createSelector(
8 | [
9 | selectNotificationDirectory,
10 | selectNotificationAccounts,
11 | ],
12 | (directory, accounts) => {
13 | return {
14 | directory,
15 | accounts
16 | };
17 | },
18 | );
19 |
--------------------------------------------------------------------------------
/src/selectors/settings.js:
--------------------------------------------------------------------------------
1 | import { createSelector } from 'reselect';
2 |
3 | const addressBlocklist = state =>
4 | state.settings.generalWalletSettings.addressBlocklist
5 | ? state.settings.generalWalletSettings.addressBlocklist
6 | : [];
7 |
8 | const vrpcOverrides = state =>
9 | state.settings.generalWalletSettings.vrpcOverrides
10 | ? state.settings.generalWalletSettings.vrpcOverrides
11 | : {};
12 |
13 | export const selectAddressBlocklist = createSelector(
14 | [addressBlocklist],
15 | (_addressBlocklist) => {
16 | return _addressBlocklist
17 | }
18 | );
19 |
20 | export const selectVrpcOverrides = createSelector(
21 | [vrpcOverrides],
22 | (_vrpcOverrides) => {
23 | return _vrpcOverrides
24 | }
25 | );
--------------------------------------------------------------------------------
/src/selectors/widgets.js:
--------------------------------------------------------------------------------
1 | import {createSelector} from 'reselect';
2 |
3 | const selectWidgetOrder = state => state.widgets.order;
4 |
5 | export const selectWidgets = createSelector(
6 | [
7 | selectWidgetOrder
8 | ],
9 | (order) => {
10 | return {
11 | order
12 | };
13 | },
14 | );
15 |
--------------------------------------------------------------------------------
/src/styles/index.js:
--------------------------------------------------------------------------------
1 | import roots from './roots.styles'
2 | import buttons from './buttons.styles'
3 | import text from './text.styles'
4 | import containers from './containers.styles'
5 | import { StyleSheet } from "react-native";
6 | import misc from './misc.styles';
7 | import tables from './tables.styles';
8 |
9 | export default Styles = StyleSheet.create({
10 | ...roots,
11 | ...buttons,
12 | ...text,
13 | ...containers,
14 | ...misc,
15 | ...tables,
16 | });
--------------------------------------------------------------------------------
/src/styles/tables.styles.js:
--------------------------------------------------------------------------------
1 | import Colors from "../globals/colors";
2 |
3 | export default tables = {
4 | infoTable: {
5 | alignSelf: 'stretch',
6 | justifyContent: 'center',
7 | },
8 | infoTableRow: {
9 | flexDirection: 'row',
10 | justifyContent: 'space-between',
11 | marginTop: 10,
12 | },
13 | infoTableCell: {
14 | fontSize: 16,
15 | color: Colors.quaternaryColor,
16 | flex: 1,
17 | alignItems: 'flex-end',
18 | textAlign: 'right',
19 | paddingTop: 1,
20 | alignSelf: "center"
21 | },
22 | listItemTableCell: {
23 | fontSize: 16,
24 | alignSelf: "center",
25 | paddingRight: 6
26 | },
27 | infoTableHeaderCell: {
28 | fontSize: 16,
29 | color: Colors.quaternaryColor,
30 | fontFamily: 'Avenir-Black',
31 | }
32 | }
--------------------------------------------------------------------------------
/src/tests/helpers/MockChainInfo.js:
--------------------------------------------------------------------------------
1 | export const MOCK_TX = {
2 | id: '596574dab334726d080f15c7f71837e66ff571ca284400c1d122e47f7a97e9f5',
3 | height: 596092
4 | }
--------------------------------------------------------------------------------
/src/tests/helpers/MockNetwork.js:
--------------------------------------------------------------------------------
1 | export const mockNetwork = {
2 | messagePrefix: '\x18Verus Coin Signed Message:\n',
3 | bech32: 'bc',
4 | bip32: {
5 | public: 0x0488b21e,
6 | private: 0x0488ade4
7 | },
8 | pubKeyHash: 0x3c,
9 | scriptHash: 0x55,
10 | wif: 0xBC,
11 | consensusBranchId: {
12 | 1: 0x00,
13 | 2: 0x00,
14 | 3: 0x5ba81b19,
15 | 4: 0x76b809bb
16 | },
17 | coin: 'vrsc',
18 | isZcash: true,
19 | version: 4
20 | }
--------------------------------------------------------------------------------
/src/tests/helpers/MockNumbers.js:
--------------------------------------------------------------------------------
1 | export const MOCK_SATS = "12345678"
2 | export const MOCK_COINS = "0.12345678"
3 | export const MOCK_COINS_TRUNC = 0.1234
4 | export const NUM_DECIMALS_MOCK_COINS = 8
5 | export const MOCK_LOCKTIME = 50000000000
6 | export const MOCK_UTXO_LIST = [{value: 50000000}, {value: 50000000}, {value: 50000000}, {value: 50000000}]
7 | export const MOCK_FEE = 1000
8 | export const MOCK_MAX_SPEND = "199999000"
--------------------------------------------------------------------------------
/src/tests/helpers/MockServerData.js:
--------------------------------------------------------------------------------
1 | export const MOCK_PROXY_SERVER = 'mock.proxy.server'
--------------------------------------------------------------------------------
/src/utils/CoinData/electrum/dpow.js:
--------------------------------------------------------------------------------
1 | const dpowCoins = [
2 | 'KMD',
3 | 'SUPERNET',
4 | 'REVS',
5 | 'PANGEA',
6 | 'PGT',
7 | 'DEX',
8 | 'JUMBLR',
9 | 'BET',
10 | 'CRYPTO',
11 | 'COQUI',
12 | 'HODL',
13 | 'MSHARK',
14 | 'BOTS',
15 | 'MGW',
16 | 'MVP',
17 | 'KV',
18 | 'CEAL',
19 | 'MESH',
20 | 'WLC',
21 | 'AXO',
22 | 'ETOMIC',
23 | 'BTCH',
24 | 'OOT',
25 | 'NINJA',
26 | 'GLXT',
27 | 'EQL',
28 | 'BNTN',
29 | 'PRLPAY',
30 | 'CHAIN',
31 | 'ZILLA',
32 | 'DSEC',
33 | 'VRSC',
34 | 'MGNX',
35 | 'CCL',
36 | 'PIRATE',
37 | 'DION',
38 | 'KMDICE',
39 | 'OUR',
40 | 'RFOX',
41 | 'MORTY',
42 | 'RICK',
43 | 'SEC',
44 | 'KSB',
45 | 'VOTE2019',
46 | 'HUSH3',
47 | 'KOIN',
48 | ];
49 |
50 | module.exports = dpowCoins;
51 |
--------------------------------------------------------------------------------
/src/utils/InitialData/ClaimCategory.js:
--------------------------------------------------------------------------------
1 | const generateClaimCategories = (identityId) => ([
2 | {
3 | uid: `${identityId}-other`,
4 | id: `${identityId}-other`,
5 | name: 'other',
6 | displayName: 'Other',
7 | desc: '',
8 | identity: identityId,
9 | },
10 | {
11 | uid:`${identityId}-personal-information`,
12 | id: `${identityId}-personal-information`,
13 | displayName: 'Personal Information',
14 | name: 'personal-information',
15 | desc: '',
16 | identity: identityId,
17 | },
18 | {
19 | uid: `${identityId}-health`,
20 | id: `${identityId}-health`,
21 | displayName: 'Health',
22 | name: 'health',
23 | desc: '',
24 | identity: identityId,
25 | },
26 | ]);
27 |
28 | export default generateClaimCategories;
29 |
--------------------------------------------------------------------------------
/src/utils/InitialData/updateStoredItems.js:
--------------------------------------------------------------------------------
1 | const updateStoredItems = (storedItems, updatedItems, type) => {
2 | const oldEntries = storedItems.filter(
3 | (storedItem) => !updatedItems[type].some(
4 | (updatedItem) => updatedItem.uid === storedItem.uid,
5 | ),
6 | );
7 | const updatedEntries = oldEntries.concat(updatedItems[type]);
8 | return updatedEntries;
9 | };
10 |
11 | export default updateStoredItems;
12 |
--------------------------------------------------------------------------------
/src/utils/QrScanner/ProcessedQr.js:
--------------------------------------------------------------------------------
1 | export const PROCESSED_PAYMENT_REQUEST = "PAYMENT_REQUEST"
2 |
3 | export class ProcessedQr {
4 | constructor (raw, type) {
5 | this.raw = raw
6 | this.type = type
7 | }
8 | }
9 |
10 | export class ProcessedPaymentRequest extends ProcessedQr {
11 | constructor (raw, coinObj, address, amount, note, system) {
12 | super(raw, PROCESSED_PAYMENT_REQUEST)
13 | this.coinObj = coinObj
14 | this.address = address
15 | this.amount = amount
16 | this.note = note
17 | this.system = system
18 | }
19 |
20 | toJson() {
21 | return {
22 | coinObj: this.coinObj,
23 | address: this.address,
24 | amount: this.amount,
25 | note: this.note,
26 | system: this.system
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/src/utils/__tests__/int/electrum/getBlockHeight.int.test.js:
--------------------------------------------------------------------------------
1 | import {
2 | MOCK_PROXY_SERVER
3 | } from '../../../../tests/helpers/MockServerData'
4 |
5 | import {
6 | setFetchParams
7 | } from '../../../../tests/helpers/SetFetchParams'
8 |
9 | import { getBlockHeight } from '../../../api/channels/electrum/callCreators'
10 |
11 | describe('Function to fetch blockheight', () => {
12 | it('can fetch blockheight from specified electrum and proxy server', () => {
13 | return getBlockHeight(MOCK_PROXY_SERVER, setFetchParams(true, 200, {getcurrentblock: [200000]}, true))
14 | .then((res) => {
15 | expect(res).toHaveProperty('msg')
16 | expect(res).toHaveProperty('result')
17 |
18 | expect(res.msg).toBe('success')
19 | expect(Number(res.result)).not.toBeNaN()
20 | })
21 | })
22 | })
--------------------------------------------------------------------------------
/src/utils/__tests__/unit/promises.unit.test.js:
--------------------------------------------------------------------------------
1 | import { timeout } from '../../promises'
2 |
3 | const TIMEOUT_MS = 1000
4 |
5 | describe('The set of promise utility functions', () => {
6 | it('can reject a promise on timeout', async () => {
7 | await expect(timeout(TIMEOUT_MS, new Promise((r, j)=>{setTimeout(r, TIMEOUT_MS*2)})))
8 | .rejects.toThrow('Network request timed out')
9 | })
10 |
11 | it('can complete a promise before timeout', async () => {
12 | await expect(timeout(TIMEOUT_MS, Promise.resolve('lemon'))).resolves.toBe('lemon');
13 | })
14 | })
--------------------------------------------------------------------------------
/src/utils/addressBlocklist.js:
--------------------------------------------------------------------------------
1 | export const addressIsBlocked = (address, blockList) => {
2 | for (const blockedAddress of blockList) {
3 | if (blockedAddress.address.toLowerCase() === address.toLowerCase()) {
4 | return true;
5 | }
6 | }
7 |
8 | return false;
9 | }
--------------------------------------------------------------------------------
/src/utils/agama-wallet-lib/block.js:
--------------------------------------------------------------------------------
1 | const bitcoin = require('bitgo-utxo-lib');
2 |
3 | const parseBlockHeader = (hex, network) => {
4 | const block = bitcoin.Block.fromBuffer(new Buffer.from(hex, 'hex'), network, true);
5 | return block;
6 | };
7 |
8 | const electrumMerkleRoot = (parsedBlock) => {
9 | if (parsedBlock.merkleRoot) { // electrum protocol v1.4
10 | return Buffer.from(parsedBlock.merkleRoot.reverse()).toString('hex');
11 | } else {
12 | return parsedBlock.merkle_root;
13 | }
14 | };
15 |
16 | module.exports = {
17 | parseBlockHeader,
18 | electrumMerkleRoot,
19 | };
--------------------------------------------------------------------------------
/src/utils/agama-wallet-lib/dlight-servers.js:
--------------------------------------------------------------------------------
1 | let dlightServers = {
2 | vrsc: ['lightwallet.verus.services:8120'],
3 | zec: ['lightwalletd.z.cash:9067'],
4 | zectest: ['lightwalletd.testnet.z.cash:9067']
5 | };
6 |
7 | module.exports = {
8 | dlightServers
9 | };
10 |
--------------------------------------------------------------------------------
/src/utils/api/channels/dlight/requests/getAddresses.js:
--------------------------------------------------------------------------------
1 | import { makeDlightRequest } from '../callCreators'
2 | import { DLIGHT_PRIVATE_ADDRESSES } from '../../../../constants/dlightConstants'
3 |
4 | // Lists addresses associated with a light daemon wallet
5 | export const getAddresses = (coinId, accountHash, coinProto) => {
6 | return makeDlightRequest(coinId, accountHash, coinProto, 0, DLIGHT_PRIVATE_ADDRESSES, [])
7 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/dlight/requests/getBlockCount.js:
--------------------------------------------------------------------------------
1 | import { makeDlightRequest } from '../callCreators'
2 | import { DLIGHT_BLOCKCOUNT } from '../../../../constants/dlightConstants'
3 |
4 | // Get the current chain blockheight
5 | export const getBlockCount = (coinId, accountHash, coinProto) => {
6 | return makeDlightRequest(coinId, accountHash, coinProto, 0, DLIGHT_BLOCKCOUNT, [])
7 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/dlight/requests/getInfo.js:
--------------------------------------------------------------------------------
1 | import { makeDlightRequest } from '../callCreators'
2 | import { DLIGHT_INFO } from '../../../../constants/dlightConstants'
3 |
4 | // Get the syncing status/information about a blockchain
5 | export const getInfo = (coinId, accountHash, coinProto) => {
6 | return makeDlightRequest(coinId, accountHash, coinProto, 0, DLIGHT_INFO, [])
7 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/dlight/requests/getPrivateBalance.js:
--------------------------------------------------------------------------------
1 | import { makeDlightRequest } from '../callCreators'
2 | import { DLIGHT_PRIVATE_BALANCES } from '../../../../constants/dlightConstants'
3 | import BigNumber from "bignumber.js";
4 |
5 | // Get the total private balance associated with a light wallet daemon
6 | export const getPrivateBalance = async (coinId, accountHash, coinProto) => {
7 | const res = await makeDlightRequest(coinId, accountHash, coinProto, 0, DLIGHT_PRIVATE_BALANCES, [])
8 |
9 | return {
10 | ...res,
11 | result: res.result ? {
12 | confirmed: BigNumber(res.result.confirmed),
13 | total: BigNumber(res.result.total),
14 | pending: BigNumber(res.result.total).minus(BigNumber(res.result.confirmed))
15 | } : res.result
16 | }
17 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/dlight/requests/getTransactions.js:
--------------------------------------------------------------------------------
1 | import { makeDlightRequest } from '../callCreators'
2 | import { DLIGHT_PRIVATE_TRANSACTIONS } from '../../../../constants/dlightConstants'
3 |
4 | // Get the transactions associated with a light daemon wallet
5 | // based on tx type (either "pending", "cleared", "received", "sent", or "all")
6 | export const getZTransactions = (coinId, accountHash, coinProto, transactionType) => {
7 | return makeDlightRequest(coinId, accountHash, coinProto, 0, DLIGHT_PRIVATE_TRANSACTIONS, [transactionType == null ? "all" : transactionType])
8 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/dlight/state/synchronizer.js:
--------------------------------------------------------------------------------
1 | import VerusLightClient from 'react-native-verus-light-client'
2 |
3 | // Uses a coin's ticker symbol (id), protocol (btc || vrsc)
4 | // and user's account hash to identify a light client wallet
5 | // and start syncing it to the blockchain
6 | export const startSync = (coinId, coinProto, accountHash) => {
7 | return VerusLightClient.startSync(coinId, coinProto, accountHash)
8 | }
9 |
10 | // Uses a coin's ticker symbol (id), protocol (btc || vrsc)
11 | // and user's account hash to identify a light client wallet
12 | // and stop it syncing to the blockchain
13 | export const stopSync = (coinId, coinProto, accountHash) => {
14 | return VerusLightClient.stopSync(coinId, coinProto, accountHash)
15 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/electrum/proxyServers.js:
--------------------------------------------------------------------------------
1 | import { Platform } from 'react-native';
2 |
3 | const proxyServersHttps = ['el0.verus.io', 'el1.verus.io', 'el2.verus.io','el3.verus.io'];
4 | const proxyServersHttp = ['94.130.225.86:80', '94.130.225.86:80'];
5 |
6 | export const httpsEnabled = Platform.OS === 'android' && Platform.Version <= 24 ? false : true;
7 |
8 | export const proxyServers = httpsEnabled ? proxyServersHttps : proxyServersHttp;
9 |
--------------------------------------------------------------------------------
/src/utils/api/channels/electrum/requests/getBlockHeight.js:
--------------------------------------------------------------------------------
1 | import { httpsEnabled } from '../proxyServers'
2 | import { isJson } from '../../../../objectManip'
3 | import axios from 'axios';
4 |
5 | export const getBlockHeight = (proxyServer, electrumServer) => {
6 | return new Promise((resolve, reject) => {
7 | axios.get(`${httpsEnabled ? 'https' : 'http'}://${proxyServer}/api/getcurrentblock?port=${electrumServer.port}&ip=${electrumServer.ip}&proto=${electrumServer.proto}`)
8 | .then((response) => {
9 | if (!isJson(response.data)) {
10 | throw new Error("Invalid JSON in getBlockHeight.js, received: " + response)
11 | }
12 |
13 | resolve(response.data)
14 | })
15 | .catch((err) => {
16 | reject(err)
17 | })
18 | });
19 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/electrum/requests/getTransaction.js:
--------------------------------------------------------------------------------
1 | import { electrumRequest } from '../callCreators'
2 |
3 | export const getOneTransaction = (coinObj, txid) => {
4 | const callType = 'gettransaction'
5 | let params = { txid: txid }
6 |
7 | return new Promise((resolve, reject) => {
8 | electrumRequest(coinObj, callType, params)
9 | .then((response) => {
10 | resolve(response)
11 | })
12 | .catch((err) => {
13 | console.log("Caught error in getTransaction.js")
14 | console.log(err)
15 | reject(err)
16 | })
17 | });
18 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/erc20/callCreator.js:
--------------------------------------------------------------------------------
1 | export * from './requests/getErc20Balance'
2 | export * from './requests/getErc20Transactions'
3 | export * from './requests/preflight'
4 | export * from './requests/send'
5 | export * from './requests/specific/index'
--------------------------------------------------------------------------------
/src/utils/api/channels/erc20/requests/specific/index.js:
--------------------------------------------------------------------------------
1 | import rfox from './rfox'
2 |
3 | export const UtilityContracts = {
4 | rfox
5 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/erc20/requests/specific/rfox/index.js:
--------------------------------------------------------------------------------
1 | import { getRfoxAccountBalances } from './getTotalAccountBalance'
2 | import { claimRFoxAccountBalances } from './claimAccountBalance'
3 |
4 |
5 | export default {
6 | getRfoxAccountBalances,
7 | claimRFoxAccountBalances
8 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/eth/callCreator.js:
--------------------------------------------------------------------------------
1 | export * from './requests/getEthBalance'
2 | export * from './requests/getEthTransactions'
3 | export * from './requests/preflight'
4 | export * from './requests/send'
--------------------------------------------------------------------------------
/src/utils/api/channels/eth/requests/getEthBalance.js:
--------------------------------------------------------------------------------
1 | import { getWeb3ProviderForNetwork } from '../../../../web3/provider'
2 | import ethers from 'ethers';
3 | import BigNumber from "bignumber.js";
4 |
5 | // Gets the Ethereum balance of an address or name as a big number
6 | export const getEthBalance = async (address, network = 'homestead') => {
7 | return await getWeb3ProviderForNetwork(network).DefaultProvider.getBalance(address)
8 | }
9 |
10 | //TODO: Handle BigNumbers
11 | export const getStandardEthBalance = async (address, network) => {
12 | return BigNumber(ethers.utils.formatUnits(await getEthBalance(address, network)))
13 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/verusid/callCreators.js:
--------------------------------------------------------------------------------
1 | export * from './requests/getIdentity';
2 | export * from './requests/getWatchedIdentities';
3 | export * from './requests/getFriendlyNameMap';
4 | export * from './requests/getCurrency';
5 | export * from './requests/getCurrencyNameMap';
--------------------------------------------------------------------------------
/src/utils/api/channels/verusid/requests/getWatchedIdentities.js:
--------------------------------------------------------------------------------
1 | import store from '../../../../../store';
2 |
3 | export const getWatchedIdentities = coinObj => {
4 | const state = store.getState();
5 | return state.channelStore_verusid.watchedVerusIds[coinObj.id];
6 | };
7 |
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/createVerusPayInvoice.js:
--------------------------------------------------------------------------------
1 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
2 |
3 | export const createVerusPayInvoice = async (coinObj, invoiceDetails) => {
4 | const verusIdInterface = VrpcProvider.getVerusIdInterface(coinObj.system_id);
5 |
6 | const inv = await verusIdInterface.createVerusPayInvoice(
7 | invoiceDetails
8 | );
9 |
10 | return inv;
11 | };
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/estimateConversion.js:
--------------------------------------------------------------------------------
1 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
2 |
3 | export const estimateConversion = (systemId, currency, convertto, amount, via, preconvert) => {
4 | return VrpcProvider.getEndpoint(systemId).estimateConversion({
5 | currency,
6 | convertto,
7 | amount,
8 | via,
9 | preconvert
10 | })
11 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/extractLoginConsentSig.js:
--------------------------------------------------------------------------------
1 | import { primitives } from "verusid-ts-client"
2 | import { getSignatureInfo } from "./getSignatureInfo";
3 |
4 | export const extractLoginConsentSig = (coinObj, request) => {
5 | const loginConsentRequest = new primitives.LoginConsentRequest(request);
6 |
7 | return getSignatureInfo(
8 | coinObj.system_id,
9 | loginConsentRequest.signing_id,
10 | loginConsentRequest.signature.signature
11 | );
12 | };
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/extractVerusPayInvoiceSig.js:
--------------------------------------------------------------------------------
1 | import { primitives } from "verusid-ts-client"
2 | import { getSignatureInfo } from "./getSignatureInfo";
3 |
4 | export const extractVerusPayInvoiceSig = (coinObj, inv) => {
5 | const invoice = primitives.VerusPayInvoice.fromJson(inv);
6 |
7 | return getSignatureInfo(
8 | coinObj.system_id,
9 | invoice.signing_id,
10 | invoice.signature.signature
11 | );
12 | };
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/fundRawTransaction.js:
--------------------------------------------------------------------------------
1 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
2 |
3 | export const fundRawTransaction = (systemId, txHex, utxos, changeAddr, fee) => {
4 | return VrpcProvider.getEndpoint(systemId).fundRawTransaction(txHex, utxos, changeAddr, fee)
5 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/getAddressBalances.js:
--------------------------------------------------------------------------------
1 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
2 |
3 | export const getAddressBalances = (systemId, addresses, includeFriendlyNames) => {
4 | return VrpcProvider.getEndpoint(systemId).getAddressBalance({
5 | addresses,
6 | friendlynames: includeFriendlyNames,
7 | });
8 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/getAddressDeltas.js:
--------------------------------------------------------------------------------
1 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
2 |
3 | export const getAddressDeltas = (systemId, addresses, includeFriendlyNames, verbosity) => {
4 | return VrpcProvider.getEndpoint(systemId).getAddressDeltas({
5 | addresses,
6 | friendlynames: includeFriendlyNames,
7 | verbosity
8 | });
9 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/getAddressMempool.js:
--------------------------------------------------------------------------------
1 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
2 |
3 | export const getAddressMempool = (systemId, addresses, includeFriendlyNames, verbosity) => {
4 | return VrpcProvider.getEndpoint(systemId).getAddressMempool({
5 | addresses,
6 | friendlynames: includeFriendlyNames,
7 | verbosity
8 | });
9 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/getBlock.js:
--------------------------------------------------------------------------------
1 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
2 |
3 | export const getBlock = (systemId, hashOrHeight, verbosity) => {
4 | return VrpcProvider.getEndpoint(systemId).getBlock(hashOrHeight, verbosity);
5 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/getCurrencyConverters.js:
--------------------------------------------------------------------------------
1 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
2 |
3 | export const getCurrencyConverters = async (systemId, paramObj) => {
4 | const endpoint = VrpcProvider.getEndpoint(systemId);
5 |
6 | return endpoint.getCurrencyConverters([JSON.stringify(paramObj)])
7 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/getInfo.js:
--------------------------------------------------------------------------------
1 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
2 |
3 | export const getInfo = (systemId) => {
4 | return VrpcProvider.getEndpoint(systemId).getInfo();
5 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/getSendCurrencyTransaction.js:
--------------------------------------------------------------------------------
1 | import VrpcProvider from "../../../../vrpc/vrpcInterface";
2 |
3 | export const getSendCurrencyTransaction = async (
4 | systemId,
5 | currency,
6 | amount,
7 | address,
8 | exportto,
9 | convertto,
10 | feecurrency,
11 | via,
12 | source = '*',
13 | ) => {
14 | const params = {
15 | currency,
16 | amount,
17 | exportto,
18 | convertto,
19 | via,
20 | address,
21 | };
22 |
23 | if (feecurrency != null) params.feecurrency = feecurrency;
24 |
25 | return await VrpcProvider.getEndpoint(systemId).sendCurrency(
26 | source,
27 | [
28 | params
29 | ],
30 | 1,
31 | 0.0001,
32 | true,
33 | );
34 | };
35 |
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/getSignatureInfo.js:
--------------------------------------------------------------------------------
1 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
2 |
3 | export const getSignatureInfo = (systemId, iAddrOrIdentity, base64Sig) => {
4 | return VrpcProvider.getVerusIdInterface(systemId).getSignatureInfo(
5 | iAddrOrIdentity,
6 | base64Sig
7 | );
8 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/getVdxfid.js:
--------------------------------------------------------------------------------
1 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
2 |
3 | export const getVdxfId = async (system_id, vdxfuri, initialdata) => {
4 |
5 | const vdxfid = await VrpcProvider.getEndpoint(system_id).getVdxfId(
6 | vdxfuri,
7 | initialdata
8 | );
9 |
10 | return vdxfid;
11 | };
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/listCurrencies.js:
--------------------------------------------------------------------------------
1 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
2 |
3 | export const listCurrencies = (systemId, systemType = "local") => {
4 | return VrpcProvider.getEndpoint(systemId).listCurrencies({ systemtype: systemType });
5 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/sendRawTransaction.js:
--------------------------------------------------------------------------------
1 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
2 |
3 | export const sendRawTransaction = (systemId, hexstring, allowHighFees) => {
4 | return VrpcProvider.getEndpoint(systemId).sendRawTransaction(hexstring, allowHighFees);
5 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/signIdProvisioningRequest.js:
--------------------------------------------------------------------------------
1 | import { primitives, VerusIdInterface } from "verusid-ts-client"
2 | import { requestPrivKey } from "../../../../auth/authBox";
3 | import { VRPC } from "../../../../constants/intervalConstants";
4 |
5 | export const signIdProvisioningRequest = async (coinObj, rawRequest) => {
6 | const request = new primitives.LoginConsentProvisioningRequest(rawRequest)
7 |
8 | return await VerusIdInterface.signVerusIdProvisioningRequest(
9 | request,
10 | await requestPrivKey(coinObj.id, VRPC),
11 | );
12 | };
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/signMessage.js:
--------------------------------------------------------------------------------
1 | import { requestPrivKey } from "../../../../auth/authBox"
2 | import { VRPC } from "../../../../constants/intervalConstants"
3 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
4 |
5 | export const signMessage = async (coinObj, iAddrOrIdentity, message) => {
6 | const privKey = await requestPrivKey(coinObj.id, VRPC)
7 |
8 | return VrpcProvider.getVerusIdInterface(coinObj.system_id).signMessage(
9 | iAddrOrIdentity,
10 | message,
11 | privKey,
12 | );
13 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/verifyIdProvisioningResponse.js:
--------------------------------------------------------------------------------
1 | import { primitives } from "verusid-ts-client"
2 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
3 |
4 | export const verifyIdProvisioningResponse = (coinObj, response) => {
5 | const provisioningResponse = new primitives.LoginConsentProvisioningResponse(response);
6 |
7 | return VrpcProvider.getVerusIdInterface(coinObj.system_id).verifyVerusIdProvisioningResponse(
8 | provisioningResponse,
9 | );
10 | };
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/verifyLoginConsentRequest.js:
--------------------------------------------------------------------------------
1 | import { primitives } from "verusid-ts-client"
2 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
3 |
4 | export const verifyLoginConsentRequest = (coinObj, request) => {
5 | const loginConsentRequest = new primitives.LoginConsentRequest(request);
6 |
7 | return VrpcProvider.getVerusIdInterface(coinObj.system_id).verifyLoginConsentRequest(
8 | loginConsentRequest,
9 | );
10 | };
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/verifyMessage.js:
--------------------------------------------------------------------------------
1 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
2 |
3 | export const verifyMessage = (systemId, iAddrOrIdentity, base64Sig, message) => {
4 | return VrpcProvider.getVerusIdInterface(systemId).verifyMessage(
5 | iAddrOrIdentity,
6 | base64Sig,
7 | message,
8 | );
9 | }
--------------------------------------------------------------------------------
/src/utils/api/channels/vrpc/requests/verifyVerusPayInvoice.js:
--------------------------------------------------------------------------------
1 | import { primitives } from "verusid-ts-client"
2 | import VrpcProvider from "../../../../vrpc/vrpcInterface"
3 |
4 | export const verifyVerusPayInvoice = (coinObj, inv) => {
5 | const invoice = new primitives.VerusPayInvoice(inv);
6 |
7 | return VrpcProvider.getVerusIdInterface(coinObj.system_id).verifySignedVerusPayInvoice(
8 | invoice,
9 | );
10 | };
--------------------------------------------------------------------------------
/src/utils/api/channels/wyre/requests/getRates.js:
--------------------------------------------------------------------------------
1 | import { conditionallyUpdateService } from "../../../../../actions/actionDispatchers";
2 | import store from "../../../../../store";
3 | import { API_GET_SERVICE_RATES, WYRE_SERVICE } from "../../../../constants/intervalConstants";
4 |
5 | export const getRates = async (coinObj) => {
6 | await conditionallyUpdateService(store.getState(), store.dispatch, API_GET_SERVICE_RATES)
7 |
8 | const state = store.getState();
9 | let body = null;
10 |
11 | if (state.services.rates[WYRE_SERVICE] != null) {
12 | body = state.services.rates[WYRE_SERVICE][coinObj.currency_id];
13 | }
14 |
15 | return body
16 | };
17 |
--------------------------------------------------------------------------------
/src/utils/api/channels/wyre/requests/getTransferFollowup.js:
--------------------------------------------------------------------------------
1 | import WyreProvider from "../../../../services/WyreProvider"
2 |
3 | export const getTransferFollowup = async ({ transferId }) => {
4 | try {
5 | return await WyreProvider.getTransferInstructions({
6 | transferId
7 | });
8 | } catch(e) {
9 | console.error(e)
10 |
11 | throw e
12 | }
13 | }
--------------------------------------------------------------------------------
/src/utils/api/errors/apiError.js:
--------------------------------------------------------------------------------
1 | class ApiException extends Error {
2 | constructor(message, data, chainTicker, channel, code = -1, header = {}) {
3 | super(message)
4 | this.message = message
5 | this.data = data
6 | this.channel = channel
7 | this.code = code
8 | this.chainTicker = chainTicker
9 | this.header = header
10 |
11 | if ("captureStackTrace" in Error) Error.captureStackTrace(this, ApiException);
12 | else this.stack = new Error().stack;
13 | }
14 | }
15 |
16 | ApiException.prototype.name = "ApiException"
17 |
18 | export default ApiException
--------------------------------------------------------------------------------
/src/utils/api/errors/errorCodes.js:
--------------------------------------------------------------------------------
1 | // Dlight errors
2 | export const INVALID_REQUEST = -32600
3 | export const GENERIC_ERROR = -1
4 | export const INTERNAL_ERROR = -32603
5 | export const INVALID_PARAMS = -32602
6 | export const NO_RESPONSE = -2
7 | export const ADD_WALLET_FAIL = -3
8 | export const START_SYNC_ERROR = -4
9 | export const STOP_SYNC_ERROR = -5
10 |
11 | // Electrum errors
12 | export const NO_VALID_SERVER = -100
13 |
14 | // General Errors
15 | export const GENERAL_CONNECTION_ERROR = 404
--------------------------------------------------------------------------------
/src/utils/api/errors/errorMessages.js:
--------------------------------------------------------------------------------
1 | export const CONNECTION_ERROR = "Connection Error"
--------------------------------------------------------------------------------
/src/utils/api/routers/convert.js:
--------------------------------------------------------------------------------
1 | import { WYRE_SERVICE } from "../../constants/intervalConstants";
2 | import * as wyre from "../channels/wyre/callCreators";
3 |
4 | const CONVERT_FUNCTION_MAP = {
5 | [WYRE_SERVICE]: wyre.convert,
6 | };
7 |
8 | export const convert = async (
9 | coinObj,
10 | activeUser,
11 | from,
12 | to,
13 | address,
14 | amount,
15 | channel,
16 | params
17 | ) => {
18 | if (CONVERT_FUNCTION_MAP[channel] == null)
19 | throw new Error(`No conversion function available for channel ${channel}`);
20 | else
21 | return await CONVERT_FUNCTION_MAP[channel](
22 | coinObj,
23 | activeUser,
24 | from,
25 | to,
26 | address,
27 | amount,
28 | params
29 | );
30 | };
31 |
--------------------------------------------------------------------------------
/src/utils/api/routers/getDepositSources.js:
--------------------------------------------------------------------------------
1 | import {
2 | WYRE_SERVICE,
3 | } from "../../constants/intervalConstants";
4 | import * as wyre from "../channels/wyre/callCreators";
5 |
6 | const CONVERSION_PATH_FUNCTION_MAP = {
7 | [WYRE_SERVICE]: wyre.getDepositSources,
8 | };
9 |
10 | export const getDepositSources = async (coinObj, channel, params) => {
11 | if (CONVERSION_PATH_FUNCTION_MAP[channel] == null)
12 | throw new Error(`No deposit source function available for channel ${channel}`);
13 | else return await CONVERSION_PATH_FUNCTION_MAP[channel](coinObj, channel, params);
14 | };
--------------------------------------------------------------------------------
/src/utils/api/routers/getPendingDeposits.js:
--------------------------------------------------------------------------------
1 | import {
2 | WYRE_SERVICE,
3 | } from "../../constants/intervalConstants";
4 | import * as wyre from "../channels/wyre/callCreators";
5 |
6 | const CONVERSION_PATH_FUNCTION_MAP = {
7 | [WYRE_SERVICE]: wyre.getPendingDeposits,
8 | };
9 |
10 | export const getPendingDeposits = async (coinObj, channel) => {
11 | if (CONVERSION_PATH_FUNCTION_MAP[channel] == null)
12 | throw new Error(`No pending deposit function available for channel ${channel}`);
13 | else return await CONVERSION_PATH_FUNCTION_MAP[channel](coinObj, channel);
14 | };
--------------------------------------------------------------------------------
/src/utils/api/routers/getTransferFollowup.js:
--------------------------------------------------------------------------------
1 | import { WYRE_SERVICE } from "../../constants/intervalConstants";
2 | import * as wyre from "../channels/wyre/callCreators";
3 |
4 | const TRANSFER_FOLLOWUP_FUNCTION_MAP = {
5 | [WYRE_SERVICE]: wyre.getTransferFollowup,
6 | };
7 |
8 | export const getTransferFollowup = async (
9 | channel,
10 | params
11 | ) => {
12 | if (TRANSFER_FOLLOWUP_FUNCTION_MAP[channel] == null)
13 | throw new Error(`No transfer follow up function available for channel ${channel}`);
14 | else
15 | return await TRANSFER_FOLLOWUP_FUNCTION_MAP[channel](params);
16 | };
17 |
--------------------------------------------------------------------------------
/src/utils/api/routers/getWithdrawDestinations.js:
--------------------------------------------------------------------------------
1 | import {
2 | WYRE_SERVICE,
3 | } from "../../constants/intervalConstants";
4 | import * as wyre from "../channels/wyre/callCreators";
5 |
6 | const CONVERSION_PATH_FUNCTION_MAP = {
7 | [WYRE_SERVICE]: wyre.getWithdrawDestinations,
8 | };
9 |
10 | export const getWithdrawDestinations = async (coinObj, channel, params) => {
11 | if (CONVERSION_PATH_FUNCTION_MAP[channel] == null)
12 | throw new Error(`No withraw destination function available for channel ${channel}`);
13 | else return await CONVERSION_PATH_FUNCTION_MAP[channel](coinObj, channel, params);
14 | };
--------------------------------------------------------------------------------
/src/utils/asyncStore/notificationsStorage.js:
--------------------------------------------------------------------------------
1 | import AsyncStorage from '@react-native-async-storage/async-storage';
2 | import { NOTIFICATIONS_STORAGE_INTERNAL_KEY } from '../../../env/index'
3 |
4 | export const storeNotifications = async data => {
5 | if (typeof data !== 'object') {
6 | throw new Error(
7 | `Notification store function expected object, received ${typeof data}`,
8 | );
9 | }
10 |
11 | await AsyncStorage.setItem(
12 | NOTIFICATIONS_STORAGE_INTERNAL_KEY,
13 | JSON.stringify(data),
14 | )
15 |
16 | return data
17 | };
18 |
19 | export const loadNotifications = async () => {
20 | const res = await AsyncStorage.getItem(NOTIFICATIONS_STORAGE_INTERNAL_KEY)
21 |
22 | if (res) return JSON.parse(res)
23 | else return {}
24 | };
25 |
--------------------------------------------------------------------------------
/src/utils/asyncStore/transactionsStorage.js:
--------------------------------------------------------------------------------
1 |
2 | import AsyncStorage from '@react-native-async-storage/async-storage';
3 | import { BLOCK_HEIGHT_STORAGE_INTERNAL_KEY } from '../../../env/index';
4 |
5 | export const storeBlockHeight = async (blockHeight) => {
6 | try {
7 | await AsyncStorage.setItem(BLOCK_HEIGHT_STORAGE_INTERNAL_KEY, JSON.stringify(blockHeight));
8 | } catch (error) {
9 | console.log(error);
10 | }
11 | };
12 |
13 | export const getStoredBlockHeight = async () => {
14 | try {
15 | const result = await AsyncStorage.getItem(BLOCK_HEIGHT_STORAGE_INTERNAL_KEY);
16 | return result ? JSON.parse(result) : 0;
17 | } catch (error) {
18 | console.log(error);
19 | }
20 | };
21 |
--------------------------------------------------------------------------------
/src/utils/block.js:
--------------------------------------------------------------------------------
1 | import BigNumber from "bignumber.js";
2 |
3 | export const estimateBlocktimeAtHeight = (
4 | chainStart,
5 | height,
6 | secondsPerBlock = 60,
7 | ) => {
8 | const startBn = BigNumber(chainStart);
9 | const heightBn = BigNumber(height);
10 | const secondsPerBlockBn = BigNumber(secondsPerBlock);
11 |
12 | return startBn.plus(heightBn.times(secondsPerBlockBn)).toString();
13 | };
14 |
--------------------------------------------------------------------------------
/src/utils/buffer.js:
--------------------------------------------------------------------------------
1 | export const reverse = (src) => {
2 | var buffer = Buffer.alloc(src.length)
3 |
4 | for (var i = 0, j = src.length - 1; i <= j; ++i, --j) {
5 | buffer[i] = src[j]
6 | buffer[j] = src[i]
7 | }
8 |
9 | return buffer
10 | }
--------------------------------------------------------------------------------
/src/utils/clipboard/clipboard.js:
--------------------------------------------------------------------------------
1 | import { Alert, Clipboard } from 'react-native';
2 |
3 | export const copyToClipboard = (data, alertInfo) => {
4 | Clipboard.setString(data)
5 |
6 | if (alertInfo != null) {
7 | Alert.alert(alertInfo.title ? alertInfo.title : "Copied", alertInfo.message);
8 | }
9 | }
--------------------------------------------------------------------------------
/src/utils/constants/apps.js:
--------------------------------------------------------------------------------
1 | export const WALLET_APP = 'wallet'
2 | export const WALLET_APP_OVERVIEW = `${WALLET_APP}-overview`
3 | export const WALLET_APP_SEND = `${WALLET_APP}-send`
4 | export const WALLET_APP_RECEIVE = `${WALLET_APP}-receive`
5 | export const WALLET_APP_CONVERT = `${WALLET_APP}-convert`
6 | export const WALLET_APP_MANAGE = `${WALLET_APP}-manage`
--------------------------------------------------------------------------------
/src/utils/constants/convert.js:
--------------------------------------------------------------------------------
1 | export const CONVERT_CARD_MODAL_MODES = {
2 | SEND: 'send',
3 | RECEIVE: 'receive'
4 | };
--------------------------------------------------------------------------------
/src/utils/constants/deeplink.js:
--------------------------------------------------------------------------------
1 | export const LOGIN_CONSENT_INFO = 'LOGIN_CONSENT_INFO'
2 | export const VERUSPAY_INVOICE_INFO = 'VERUSPAY_INVOICE_INFO'
--------------------------------------------------------------------------------
/src/utils/constants/dlightConstants.js:
--------------------------------------------------------------------------------
1 | export const DLIGHT_PRIVATE_ADDRESSES = 'listaddresses'
2 | export const DLIGHT_PRIVATE_BALANCES = 'getprivatebalance'
3 | export const DLIGHT_PRIVATE_TRANSACTIONS = 'listprivatetransactions'
4 | export const DLIGHT_INFO = 'getinfo'
5 | export const DLIGHT_BLOCKCOUNT = 'getblockcount'
6 | export const DLIGHT_PRIVATE_SEND_PRIVATE_TX = 'sendprivatetransaction'
--------------------------------------------------------------------------------
/src/utils/constants/errors.js:
--------------------------------------------------------------------------------
1 | export const UNKNOWN_ERROR = 'UNKNOWN_ERROR'
2 | export const INACTIVE_COIN = 'INACTIVE_COIN'
--------------------------------------------------------------------------------
/src/utils/constants/notifications.js:
--------------------------------------------------------------------------------
1 | export const NOTIFICATION_TYPE_BASIC = 'NOTIFICATION_TYPE_BASIC'
2 | export const NOTIFICATION_TYPE_NAVIGATION = 'NOTIFICATION_TYPE_NAVIGATION'
3 | export const NOTIFICATION_TYPE_LOADING = 'NOTIFICATION_TYPE_LOADING'
4 | export const NOTIFICATION_TYPE_DEEPLINK = 'NOTIFICATION_TYPE_DEEPLINK'
5 | export const NOTIFICATION_TYPE_VERUS_ID_PROVISIONING = 'NOTIFICATION_TYPE_VERUS_ID_PROVISIONING '
6 |
7 | export const NOTIFICATION_ICON_VERUSID = 'NOTIFICATION_ICON_VERUSID'
8 | export const NOTIFICATION_ICON_TX = 'NOTIFICATION_ICON_TX'
9 | export const NOTIFICATION_ICON_INFO = 'NOTIFICATION_ICON_INFO'
10 | export const NOTIFICATION_ICON_ERROR = 'NOTIFICATION_ICON_ERROR'
--------------------------------------------------------------------------------
/src/utils/constants/widgets.js:
--------------------------------------------------------------------------------
1 | export const CURRENCY_WIDGET_TYPE = 'currency'
2 | export const TOTAL_UNI_BALANCE_WIDGET_TYPE = 'totalunibalance'
3 | export const VERUSID_WIDGET_TYPE = 'verusid'
--------------------------------------------------------------------------------
/src/utils/crypto/nullTx.js:
--------------------------------------------------------------------------------
1 | const NULL_TX = Buffer.from(
2 | Array.apply(null, Array(32)).map(function() {
3 | return 0;
4 | }),
5 | "hex"
6 | );
7 |
8 | module.exports = NULL_TX
--------------------------------------------------------------------------------
/src/utils/crypto/randomBytes.js:
--------------------------------------------------------------------------------
1 | import { randomBytes as rnRandomBytes } from 'react-native-randombytes'
2 |
3 | export const randomBytes = (length) => {
4 | return new Promise((resolve, reject) => {
5 | rnRandomBytes(length, (err, bytes) => {
6 | if (err) reject(err)
7 | else resolve(bytes)
8 | })
9 | })
10 | }
--------------------------------------------------------------------------------
/src/utils/date.js:
--------------------------------------------------------------------------------
1 | export const parseDate = (date) => {
2 | return (new Date(date).toJSON()).split('T')[0]
3 | }
--------------------------------------------------------------------------------
/src/utils/delayedAlert.js:
--------------------------------------------------------------------------------
1 | import { Alert } from 'react-native';
2 |
3 | const delayedInvocation = (delay, args) => (
4 | setTimeout(() => (Alert.alert(...args)), delay)
5 | )
6 |
7 | export default (...args) => (
8 | delayedInvocation(1000, args)
9 | )
10 |
--------------------------------------------------------------------------------
/src/utils/delayedAsyncAlert.js:
--------------------------------------------------------------------------------
1 | import AlertAsync from "react-native-alert-async";
2 |
3 | const delay = (ms) => {
4 | return new Promise(resolve => setTimeout(resolve, ms));
5 | }
6 |
7 | export default async (...args) => {
8 | await delay(1000);
9 | return AlertAsync(...args);
10 | }
11 |
--------------------------------------------------------------------------------
/src/utils/dragDetection.js:
--------------------------------------------------------------------------------
1 | import { Platform } from "react-native";
2 |
3 | export const dragDetectionEnabled = (homeCardDragDetection = false) => {
4 | if (homeCardDragDetection != null) return homeCardDragDetection;
5 | else return false;
6 | }
--------------------------------------------------------------------------------
/src/utils/enabledChannels.js:
--------------------------------------------------------------------------------
1 | import {
2 | ENABLE_DLIGHT,
3 | ENABLE_WYRE_COIN,
4 | DISABLED_CHANNELS,
5 | ENABLE_VRPC
6 | } from '../../env/index';
7 | import store from '../store';
8 | import {DLIGHT_PRIVATE} from './constants/intervalConstants';
9 |
10 | export const dlightEnabled = () => {
11 | const state = store.getState();
12 |
13 | return (
14 | ENABLE_DLIGHT && state.authentication.activeAccount.seeds[DLIGHT_PRIVATE]
15 | );
16 | };
17 |
18 | export const wyreCoinChannelEnabled = () => {
19 | return ENABLE_WYRE_COIN;
20 | };
21 |
22 | export const vrpcChannelEnabled = () => {
23 | return ENABLE_VRPC;
24 | };
25 |
26 | export const getDisabledChannels = () => {
27 | return dlightEnabled()
28 | ? DISABLED_CHANNELS
29 | : [...DISABLED_CHANNELS, DLIGHT_PRIVATE];
30 | };
--------------------------------------------------------------------------------
/src/utils/extraCoins/extraCoins.js:
--------------------------------------------------------------------------------
1 | const extraCoins = require('./cryptocurrencies.json');
2 |
3 | module.exports = extraCoins;
4 | module.exports.symbols = () => Object.keys(extraCoins);
5 |
6 |
--------------------------------------------------------------------------------
/src/utils/fullyqualifiedname.js:
--------------------------------------------------------------------------------
1 | export const convertFqnToDisplayFormat = fqn => {
2 | return fqn.replace('.VRSC@', '@');
3 | };
4 |
--------------------------------------------------------------------------------
/src/utils/haptics/haptics.js:
--------------------------------------------------------------------------------
1 | import ReactNativeHapticFeedback from "react-native-haptic-feedback";
2 |
3 | export const triggerHaptic = (type) => {
4 | ReactNativeHapticFeedback.trigger(type, {
5 | enableVibrateFallback: true,
6 | ignoreAndroidSystemSettings: false,
7 | });
8 | }
9 |
10 | export const triggerLightHaptic = () => {
11 | triggerHaptic("impactLight")
12 | }
13 |
14 | export const triggerHapticSuccess = () => {
15 | triggerHaptic("notificationSuccess")
16 | }
--------------------------------------------------------------------------------
/src/utils/identityTransform/identityNormalizers.js:
--------------------------------------------------------------------------------
1 | import { normalize, schema } from 'normalizr';
2 |
3 | const identities = new schema.Entity('identities');
4 | const claimCategory = new schema.Entity('claimCategories');
5 | const claims = new schema.Entity('claims', {}, { idAttribute: 'uid' });
6 | const attestations = new schema.Entity('attestations', {}, { idAttribute: 'uid' });
7 |
8 | export const normalizeIdentities = (identityData) => normalize(identityData, [identities]);
9 | export const normalizeCategories = (categoryData) => normalize(categoryData, [claimCategory]);
10 | export const normalizeClaims = (claimsData) => normalize(claimsData, [claims]);
11 | export const normalizeAttestations = (attestationData) => normalize(attestationData, [attestations]);
12 |
--------------------------------------------------------------------------------
/src/utils/keyGenerator/keyGenerator.js:
--------------------------------------------------------------------------------
1 | import { randomBytes } from '../crypto/randomBytes';
2 | import { generateMnemonic } from 'bip39'
3 |
4 | export const getKey = async (strength) => {
5 | return await generateMnemonic(strength, randomBytes)
6 | }
--------------------------------------------------------------------------------
/src/utils/linking.js:
--------------------------------------------------------------------------------
1 | import { Linking } from "react-native"
2 |
3 | export const openUrl = (url) => {
4 | try {
5 | if (url != null) {
6 | Linking.openURL(url)
7 | }
8 | } catch(e) {
9 | console.warn(e)
10 | }
11 | }
--------------------------------------------------------------------------------
/src/utils/memoUtils.js:
--------------------------------------------------------------------------------
1 | const base64 = require('base-64');
2 | const utf8 = require('utf8');
3 |
4 | export const decodeMemo = (memoEncoded) => {
5 | try {
6 | return utf8.decode(base64.decode(memoEncoded));
7 | } catch (e) {
8 | return null;
9 | }
10 | };
11 |
12 | export const encodeMemo = (memoDecoded) => {
13 | try {
14 | return base64.encode(utf8.encode(memoDecoded));
15 | } catch(e) {
16 | throw e
17 | }
18 | }
--------------------------------------------------------------------------------
/src/utils/paymentMethod.js:
--------------------------------------------------------------------------------
1 | const hasPaymentMethod = (paymentMethod) => paymentMethod.id;
2 |
3 | export default hasPaymentMethod;
--------------------------------------------------------------------------------
/src/utils/price.js:
--------------------------------------------------------------------------------
1 | import { isNumber, truncateDecimal } from './math';
2 |
3 | export const calculatePrice = (amount, fromCurr, toCurr, rates) => {
4 | let conversion = `${fromCurr}${toCurr}`
5 | const exchangeRate = rates[conversion]
6 |
7 | if (amount.toString() && isNumber(amount) && exchangeRate) {
8 | return Number(truncateDecimal(amount/exchangeRate, 8))
9 | }
10 |
11 | return '-'
12 | }
--------------------------------------------------------------------------------
/src/utils/services/WyreProvider.js:
--------------------------------------------------------------------------------
1 | import { WyreApi } from './WyreApi'
2 |
3 | export default new WyreApi()
--------------------------------------------------------------------------------
/src/utils/uid.js:
--------------------------------------------------------------------------------
1 | /** generate unique id for selector */
2 | var counter = Date.now() % 1e9;
3 |
4 | module.exports = function getUid(){
5 | return (Math.random() * 1e9 >>> 0) + (counter++);
6 | };
--------------------------------------------------------------------------------
/src/utils/verusPay/index.js:
--------------------------------------------------------------------------------
1 | import v0 from './versions/v0'
2 |
3 | export default {
4 | v0
5 | }
--------------------------------------------------------------------------------
/src/utils/verusPay/versions/v0.js:
--------------------------------------------------------------------------------
1 | import { readRequest, writeRequest } from 'verus-pay-utils'
2 |
3 | const readVerusPay = (data) => {
4 | return readRequest(data, true)
5 | }
6 |
7 | const writeVerusPayQR = (coinObj, amount, address, note) => {
8 | const { id, system_id, display_name, display_ticker } = coinObj;
9 |
10 | return writeRequest(
11 | id,
12 | system_id,
13 | display_name,
14 | display_ticker,
15 | address,
16 | amount,
17 | null,
18 | null,
19 | note,
20 | true
21 | );
22 | }
23 |
24 | export default {
25 | readVerusPay,
26 | writeVerusPayQR
27 | }
--------------------------------------------------------------------------------