├── .editorconfig ├── .eslintignore ├── .eslintrc.yml ├── .gitattributes ├── .github ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── config.yml │ └── feature_request.md ├── SECURITY.md ├── SUPPORT.md ├── codeql │ └── codeql-config.yml ├── pull_request_template.md └── workflows │ ├── build_desktop.yml │ ├── build_docker.yml │ ├── codeql-analysis.yml │ ├── rollback_desktop.yml │ ├── snyk-monitor-js-desktop.yml │ ├── test_desktop.yml │ ├── test_mobile.yml │ └── test_shared.yml ├── .gitignore ├── .husky ├── .gitignore └── pre-commit ├── .prettierignore ├── .prettierrc ├── .snyk ├── .tool-versions ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── crowdin.yml ├── docs ├── copyrightHeader ├── dev │ ├── entangled-mobile.md │ ├── localisation.md │ ├── realm.md │ └── styleguide.md ├── featureguide │ └── featureguide.md └── overview.md ├── package.json ├── scripts └── post-merge-githook.sh ├── src ├── desktop │ ├── .gitignore │ ├── .yarnrc │ ├── CHANGELOG.md │ ├── README.md │ ├── __mocks__ │ │ ├── electronMock.js │ │ ├── fileMock.js │ │ ├── iriMock.js │ │ ├── markdownMock.js │ │ ├── samples │ │ │ ├── keychain.js │ │ │ └── trytes.js │ │ ├── stateMock.json │ │ └── styleMock.js │ ├── __tests__ │ │ ├── e2e │ │ │ ├── Onboarding.test.js │ │ │ └── Wallet.test.js │ │ ├── libs │ │ │ ├── crypto.test.js │ │ │ └── seedStore │ │ │ │ ├── keychain.test.js │ │ │ │ ├── ledger.test.js │ │ │ │ └── seedStoreCore.test.js │ │ ├── native │ │ │ └── preload │ │ │ │ └── electron.test.js │ │ └── ui │ │ │ ├── components │ │ │ ├── __snapshots__ │ │ │ │ ├── balance.test.jsx.snap │ │ │ │ ├── button.test.jsx.snap │ │ │ │ ├── chart.test.jsx.snap │ │ │ │ ├── checkbox.test.jsx.snap │ │ │ │ ├── checksum.test.jsx.snap │ │ │ │ ├── clipboard.test.jsx.snap │ │ │ │ ├── icon.test.jsx.snap │ │ │ │ ├── info.test.jsx.snap │ │ │ │ ├── list.test.jsx.snap │ │ │ │ ├── progress.test.jsx.snap │ │ │ │ ├── qr.test.js.snap │ │ │ │ ├── seedPrint.test.jsx.snap │ │ │ │ ├── toggle.test.jsx.snap │ │ │ │ └── tooltip.test.jsx.snap │ │ │ ├── balance.test.jsx │ │ │ ├── button.test.jsx │ │ │ ├── chart.test.jsx │ │ │ ├── checkbox.test.jsx │ │ │ ├── checksum.test.jsx │ │ │ ├── clipboard.test.jsx │ │ │ ├── icon.test.jsx │ │ │ ├── info.test.jsx │ │ │ ├── input │ │ │ │ ├── __snapshots__ │ │ │ │ │ ├── address.test.jsx.snap │ │ │ │ │ ├── amount.test.jsx.snap │ │ │ │ │ ├── number.test.jsx.snap │ │ │ │ │ ├── password.test.jsx.snap │ │ │ │ │ ├── seed.test.jsx.snap │ │ │ │ │ ├── select.test.jsx.snap │ │ │ │ │ └── text.test.jsx.snap │ │ │ │ ├── address.test.jsx │ │ │ │ ├── amount.test.jsx │ │ │ │ ├── number.test.jsx │ │ │ │ ├── password.test.jsx │ │ │ │ ├── seed.test.jsx │ │ │ │ ├── select.test.jsx │ │ │ │ └── text.test.jsx │ │ │ ├── list.test.jsx │ │ │ ├── modals │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── modal.test.jsx.snap │ │ │ │ └── modal.test.jsx │ │ │ ├── progress.test.jsx │ │ │ ├── qr.test.js │ │ │ ├── seedPrint.test.jsx │ │ │ ├── toggle.test.jsx │ │ │ └── tooltip.test.jsx │ │ │ ├── global │ │ │ ├── __snapshots__ │ │ │ │ ├── about.test.jsx.snap │ │ │ │ ├── alerts.test.jsx.snap │ │ │ │ ├── errorLog.test.jsx.snap │ │ │ │ ├── seedExport.test.jsx.snap │ │ │ │ ├── titlebar.test.jsx.snap │ │ │ │ └── updateProgress.test.jsx.snap │ │ │ ├── about.test.jsx │ │ │ ├── alerts.test.jsx │ │ │ ├── errorLog.test.jsx │ │ │ ├── seedExport.test.jsx │ │ │ ├── titlebar.test.jsx │ │ │ └── updateProgress.test.jsx │ │ │ └── views │ │ │ ├── onboarding │ │ │ ├── __snapshots__ │ │ │ │ ├── accountName.test.jsx-snap.png │ │ │ │ ├── accountPassword.test.jsx-snap.png │ │ │ │ ├── done.test.jsx-snap.png │ │ │ │ ├── login.test.jsx-snap.png │ │ │ │ ├── seedGenerate.test.jsx-snap.png │ │ │ │ ├── seedIntro.test.jsx-snap.png │ │ │ │ ├── seedSave.test.jsx-snap.png │ │ │ │ ├── seedVerify.test.jsx-snap.png │ │ │ │ └── welcome.test.jsx-snap.png │ │ │ ├── accountName.test.jsx │ │ │ ├── accountPassword.test.jsx │ │ │ ├── done.test.jsx │ │ │ ├── login.test.jsx │ │ │ ├── seedGenerate.test.jsx │ │ │ ├── seedIntro.test.jsx │ │ │ ├── seedSave.test.jsx │ │ │ ├── seedStore │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── ledger.test.jsx-snap.png │ │ │ │ └── ledger.test.jsx │ │ │ ├── seedVerify.test.jsx │ │ │ └── welcome.test.jsx │ │ │ ├── settings │ │ │ ├── __snapshots__ │ │ │ │ ├── advanced.test.jsx-snap.png │ │ │ │ ├── currency.test.jsx-snap.png │ │ │ │ ├── language.test.jsx-snap.png │ │ │ │ ├── mode.test.jsx-snap.png │ │ │ │ ├── node.test.jsx-snap.png │ │ │ │ ├── password.test.jsx-snap.png │ │ │ │ └── theme.test.jsx-snap.png │ │ │ ├── account │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── addresses.test.jsx-snap.png │ │ │ │ └── addresses.test.jsx │ │ │ ├── advanced.test.jsx │ │ │ ├── currency.test.jsx │ │ │ ├── language.test.jsx │ │ │ ├── mode.test.jsx │ │ │ ├── node.test.jsx │ │ │ ├── password.test.jsx │ │ │ └── theme.test.jsx │ │ │ └── wallet │ │ │ ├── __snapshots__ │ │ │ ├── dashboard.test.jsx-snap.png │ │ │ ├── receive.test.jsx-snap.png │ │ │ └── send.test.jsx-snap.png │ │ │ ├── dashboard.test.jsx │ │ │ ├── receive.test.jsx │ │ │ └── send.test.jsx │ ├── assets │ │ ├── RC │ │ │ ├── backdrop.png │ │ │ ├── backdrop@2x.png │ │ │ ├── background.tiff │ │ │ ├── icon-1024.png │ │ │ ├── icon.icns │ │ │ ├── icon.ico │ │ │ └── trayTemplate@2x.png │ │ ├── backdrop.png │ │ ├── backdrop@2x.png │ │ ├── background.tiff │ │ ├── icon-1024.png │ │ ├── icon.icns │ │ ├── icon.ico │ │ └── trayTemplate@2x.png │ ├── babel.config.js │ ├── bugsnag.js │ ├── bugsnag.sh │ ├── entitlements.mac.plist │ ├── native │ │ ├── Index.js │ │ ├── hardware │ │ │ └── Ledger.js │ │ ├── libs │ │ │ ├── Entangled.js │ │ │ ├── Menu.js │ │ │ ├── Realm.js │ │ │ └── kdbx.js │ │ └── preload │ │ │ ├── Electron.js │ │ │ ├── development.js │ │ │ ├── production.js │ │ │ └── tray.js │ ├── npm-shrinkwrap.json │ ├── package.json │ ├── patches │ │ ├── @jest-runner+electron+3.0.0.patch │ │ ├── app-builder-lib+22.5.1.patch │ │ └── electron-updater+4.0.14.patch │ ├── scripts │ │ ├── jestEnv.js │ │ ├── jestLibs.js │ │ ├── jestSetup.js │ │ ├── jestTeardown.js │ │ ├── notarize.macos.js │ │ └── webpackServer.js │ ├── src │ │ ├── index.js │ │ ├── libs │ │ │ ├── SeedStore │ │ │ │ ├── Keychain.js │ │ │ │ ├── Ledger.js │ │ │ │ ├── SeedStoreCore.js │ │ │ │ └── index.js │ │ │ ├── bugsnag.js │ │ │ ├── constants.js │ │ │ ├── crypto.js │ │ │ ├── realm.js │ │ │ └── storage.js │ │ └── ui │ │ │ ├── Index.js │ │ │ ├── Tray.js │ │ │ ├── components │ │ │ ├── Balance.js │ │ │ ├── Button.js │ │ │ ├── Chart.js │ │ │ ├── Checkbox.js │ │ │ ├── Checksum.js │ │ │ ├── Clipboard.js │ │ │ ├── Dropzone.js │ │ │ ├── Icon.js │ │ │ ├── Info.js │ │ │ ├── List.js │ │ │ ├── Loading.js │ │ │ ├── Loading.scss │ │ │ ├── Logo.js │ │ │ ├── Lottie.js │ │ │ ├── Progress.js │ │ │ ├── QR.js │ │ │ ├── Scrollbar.js │ │ │ ├── SeedPrint.js │ │ │ ├── Tab.js │ │ │ ├── Toggle.js │ │ │ ├── Tooltip.js │ │ │ ├── Transaction.js │ │ │ ├── Waves.js │ │ │ ├── balance.scss │ │ │ ├── button.scss │ │ │ ├── chart.scss │ │ │ ├── checkbox.scss │ │ │ ├── clipboard.scss │ │ │ ├── dropzone.scss │ │ │ ├── icon.scss │ │ │ ├── info.scss │ │ │ ├── input │ │ │ │ ├── Address.js │ │ │ │ ├── Amount.js │ │ │ │ ├── Number.js │ │ │ │ ├── Password.js │ │ │ │ ├── Seed.js │ │ │ │ ├── Select.js │ │ │ │ ├── Text.js │ │ │ │ └── input.scss │ │ │ ├── list.scss │ │ │ ├── logo.scss │ │ │ ├── modal │ │ │ │ ├── Confirm.js │ │ │ │ ├── Modal.js │ │ │ │ ├── Password.js │ │ │ │ └── modal.scss │ │ │ ├── progress.scss │ │ │ ├── scrollbar.scss │ │ │ ├── seedPrint.scss │ │ │ ├── tab.scss │ │ │ ├── toggle.scss │ │ │ ├── tooltip.scss │ │ │ └── waves.scss │ │ │ ├── global │ │ │ ├── About.js │ │ │ ├── Alerts.js │ │ │ ├── ErrorLog.js │ │ │ ├── FatalError.js │ │ │ ├── Idle.js │ │ │ ├── Migration.js │ │ │ ├── Polling.js │ │ │ ├── SeedExport.js │ │ │ ├── Theme.js │ │ │ ├── Titlebar.js │ │ │ ├── UpdateProgress.js │ │ │ ├── about.scss │ │ │ ├── alerts.scss │ │ │ ├── seedExport.scss │ │ │ ├── seedStore │ │ │ │ ├── Ledger.js │ │ │ │ └── index.scss │ │ │ ├── theming.scss │ │ │ └── titlebar.scss │ │ │ ├── index.scss │ │ │ ├── style │ │ │ ├── _animations.scss │ │ │ ├── _reset.scss │ │ │ └── _typography.scss │ │ │ ├── tray.scss │ │ │ └── views │ │ │ ├── onboarding │ │ │ ├── AccountName.js │ │ │ ├── AccountPassword.js │ │ │ ├── Done.js │ │ │ ├── Index.js │ │ │ ├── Login.js │ │ │ ├── SeedGenerate.js │ │ │ ├── SeedIntro.js │ │ │ ├── SeedSave.js │ │ │ ├── SeedSaveWrite.js │ │ │ ├── SeedVerify.js │ │ │ ├── Welcome.js │ │ │ ├── index.scss │ │ │ ├── seedStore │ │ │ │ ├── Ledger.js │ │ │ │ └── index.scss │ │ │ └── welcome.scss │ │ │ ├── settings │ │ │ ├── Advanced.js │ │ │ ├── Currency.js │ │ │ ├── Index.js │ │ │ ├── Language.js │ │ │ ├── Mode.js │ │ │ ├── Node.js │ │ │ ├── NodeCustom.js │ │ │ ├── Password.js │ │ │ ├── Theme.js │ │ │ ├── account │ │ │ │ ├── Addresses.js │ │ │ │ ├── Name.js │ │ │ │ ├── Remove.js │ │ │ │ ├── Seed.js │ │ │ │ ├── Tools.js │ │ │ │ ├── addresses.scss │ │ │ │ └── seed.scss │ │ │ └── index.scss │ │ │ └── wallet │ │ │ ├── Dashboard.js │ │ │ ├── Index.js │ │ │ ├── Receive.js │ │ │ ├── Send.js │ │ │ ├── Sidebar.js │ │ │ ├── dashboard.scss │ │ │ ├── index.scss │ │ │ ├── receive.scss │ │ │ └── send.scss │ └── webpack.config │ │ ├── config.app.js │ │ ├── config.main.js │ │ └── index.js ├── mobile │ ├── .babelrc │ ├── .buckconfig │ ├── .eslintrc.yml │ ├── .gitattributes │ ├── .snyk │ ├── .watchmanconfig │ ├── .yarnrc │ ├── README.md │ ├── __mocks__ │ │ ├── react-native-device-info.js │ │ └── theme.js │ ├── __tests__ │ │ ├── .eslintrc.yml │ │ ├── libs │ │ │ ├── crypto.spec.js │ │ │ └── keychain.spec.js │ │ └── ui │ │ │ ├── components │ │ │ ├── Checksum.spec.js │ │ │ ├── CtaButton.spec.js │ │ │ ├── CustomTextInput.spec.js │ │ │ ├── Dropdown.spec.js │ │ │ ├── EnterPasswordOnLogin.spec.js │ │ │ ├── Header.spec.js │ │ │ ├── Letter.spec.js │ │ │ ├── LogoutConfirmationModal.spec.js │ │ │ ├── NotificationLogModal.spec.js │ │ │ ├── Poll.spec.js │ │ │ ├── QrScanner.spec.js │ │ │ ├── RootDetectionModal.spec.js │ │ │ ├── SeedVaultImportComponent.spec.js │ │ │ ├── SimpleTransactionRow.spec.js │ │ │ ├── Tab.spec.js │ │ │ ├── TransactionHistoryModal.spec.js │ │ │ └── TransactionRow.spec.js │ │ │ └── views │ │ │ ├── onboarding │ │ │ └── SetAccountName.spec.js │ │ │ └── wallet │ │ │ ├── AddCustomNode.spec.js │ │ │ ├── AdvancedSettings.spec.js │ │ │ ├── Balance.spec.js │ │ │ ├── CurrencySelection.spec.js │ │ │ ├── EditAccountName.spec.js │ │ │ ├── MainSettings.spec.js │ │ │ ├── ManualSync.spec.js │ │ │ ├── Send.spec.js │ │ │ ├── SnapshotTransition.spec.js │ │ │ └── ViewAddresses.spec.js │ ├── android │ │ ├── Gemfile │ │ ├── Gemfile.lock │ │ ├── app │ │ │ ├── BUCK │ │ │ ├── bin │ │ │ │ └── BUCK │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src │ │ │ │ ├── beta │ │ │ │ ├── ic_launcher-web.png │ │ │ │ └── res │ │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ └── values │ │ │ │ │ └── ic_launcher_background.xml │ │ │ │ ├── debug │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── ic_launcher-web.png │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ ├── background_splash.xml │ │ │ │ │ └── icon.png │ │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── values │ │ │ │ │ └── ic_launcher_background.xml │ │ │ │ │ └── xml │ │ │ │ │ └── network_security_config.xml │ │ │ │ └── main │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── assets │ │ │ │ └── fonts │ │ │ │ │ ├── Icons.ttf │ │ │ │ │ ├── SourceCodePro-Medium.ttf │ │ │ │ │ ├── SourceSansPro-Bold.ttf │ │ │ │ │ ├── SourceSansPro-Light.ttf │ │ │ │ │ ├── SourceSansPro-Regular.ttf │ │ │ │ │ └── SourceSansPro-SemiBold.ttf │ │ │ │ ├── ic_launcher-web.png │ │ │ │ ├── java │ │ │ │ ├── com │ │ │ │ │ └── iota │ │ │ │ │ │ └── trinity │ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ │ └── MainApplication.java │ │ │ │ ├── module │ │ │ │ │ └── share │ │ │ │ │ │ ├── ShareSecure.java │ │ │ │ │ │ └── ShareSecurePackage.java │ │ │ │ └── org │ │ │ │ │ └── iota │ │ │ │ │ └── mobile │ │ │ │ │ ├── Argon2Android.java │ │ │ │ │ ├── Converter.java │ │ │ │ │ ├── EntangledAndroid.java │ │ │ │ │ ├── IOTAMobilePackage.java │ │ │ │ │ ├── Interface.java │ │ │ │ │ └── NativeUtilsAndroid.java │ │ │ │ ├── jniLibs │ │ │ │ ├── arm64-v8a │ │ │ │ │ └── libdummy.so │ │ │ │ ├── armeabi-v7a │ │ │ │ │ └── libdummy.so │ │ │ │ ├── x86 │ │ │ │ │ └── libdummy.so │ │ │ │ └── x86_64 │ │ │ │ │ └── libdummy.so │ │ │ │ └── res │ │ │ │ ├── drawable │ │ │ │ ├── background_splash.xml │ │ │ │ └── icon.png │ │ │ │ ├── layout │ │ │ │ └── launch_screen.xml │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ ├── ic_launcher_round.png │ │ │ │ └── icon.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ ├── ic_launcher_round.png │ │ │ │ └── icon.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ ├── ic_launcher_round.png │ │ │ │ └── icon.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ ├── ic_launcher_round.png │ │ │ │ └── icon.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ ├── ic_launcher_round.png │ │ │ │ └── icon.png │ │ │ │ ├── values │ │ │ │ ├── colors.xml │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ └── styles.xml │ │ │ │ └── xml │ │ │ │ └── filepaths.xml │ │ ├── build.gradle │ │ ├── fastlane │ │ │ ├── Appfile │ │ │ ├── Fastfile │ │ │ ├── Pluginfile │ │ │ ├── README.md │ │ │ └── actions │ │ │ │ ├── increment_version_name.rb │ │ │ │ └── set_meta_data.rb │ │ ├── gradle.properties │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── keystores │ │ │ ├── BUCK │ │ │ └── debug.keystore.properties │ │ └── settings.gradle │ ├── app.json │ ├── index.js │ ├── ios │ │ ├── Argon2 │ │ │ ├── Argon2Core.swift │ │ │ ├── Argon2IOS.m │ │ │ └── Argon2IOS.swift │ │ ├── Config │ │ │ ├── buildnumber.xcconfig │ │ │ ├── iotaWallet-debug-config.xcconfig │ │ │ ├── iotaWallet-release-config.xcconfig │ │ │ ├── iotaWalletTests-debug-config.xcconfig │ │ │ └── iotaWalletTests-release-config.xcconfig │ │ ├── EntangledIOS │ │ │ ├── EntangledIOS.h │ │ │ ├── EntangledIOS.m │ │ │ ├── EntangledIOSUtils.h │ │ │ ├── EntangledIOSUtils.m │ │ │ ├── EntangledKit.framework │ │ │ │ ├── EntangledKit │ │ │ │ ├── Headers │ │ │ │ │ ├── EntangledKit.h │ │ │ │ │ └── Interface.h │ │ │ │ └── Modules │ │ │ │ │ └── module.modulemap │ │ │ └── bindings.h │ │ ├── Gemfile │ │ ├── Gemfile.lock │ │ ├── Launch Screen.storyboard │ │ ├── NativeUtils │ │ │ ├── NativeUtilsIOS.m │ │ │ └── NativeUtilsIOS.swift │ │ ├── Podfile │ │ ├── Podfile.lock │ │ ├── SourceSansPro-Bold.ttf │ │ ├── SourceSansPro-Light.ttf │ │ ├── SourceSansPro-Regular.ttf │ │ ├── ar.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── cs.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── da.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── de.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── el.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── en.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── es-419.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── es.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── fastlane │ │ │ ├── Deliverfile │ │ │ ├── Fastfile │ │ │ ├── Pluginfile │ │ │ ├── README.md │ │ │ ├── Snapfile │ │ │ ├── SnapshotHelper.swift │ │ │ └── metadata │ │ │ │ └── en-GB │ │ │ │ ├── description.txt │ │ │ │ ├── keywords.txt │ │ │ │ ├── name.txt │ │ │ │ ├── promotional_text.txt │ │ │ │ ├── release_notes.txt │ │ │ │ ├── subtitle.txt │ │ │ │ └── support_url.txt │ │ ├── fi.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── fr.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── he.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── hi.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── id.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── iotaWallet-tvOS │ │ │ └── Info.plist │ │ ├── iotaWallet-tvOSTests │ │ │ └── Info.plist │ │ ├── iotaWallet.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ ├── iotaWallet-AppStore.xcscheme │ │ │ │ ├── iotaWallet-Beta.xcscheme │ │ │ │ ├── iotaWallet-Debug.xcscheme │ │ │ │ ├── iotaWallet-tvOS.xcscheme │ │ │ │ └── iotaWalletUITests.xcscheme │ │ ├── iotaWallet.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── WorkspaceSettings.xcsettings │ │ ├── iotaWallet │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Empty.swift │ │ │ ├── Images.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Icon-App-20x20@1x.png │ │ │ │ │ ├── Icon-App-20x20@2x-1.png │ │ │ │ │ ├── Icon-App-20x20@2x.png │ │ │ │ │ ├── Icon-App-20x20@3x.png │ │ │ │ │ ├── Icon-App-29x29@1x-1.png │ │ │ │ │ ├── Icon-App-29x29@1x.png │ │ │ │ │ ├── Icon-App-29x29@2x-1.png │ │ │ │ │ ├── Icon-App-29x29@2x.png │ │ │ │ │ ├── Icon-App-29x29@3x.png │ │ │ │ │ ├── Icon-App-40x40@1x.png │ │ │ │ │ ├── Icon-App-40x40@2x-1.png │ │ │ │ │ ├── Icon-App-40x40@2x.png │ │ │ │ │ ├── Icon-App-40x40@3x.png │ │ │ │ │ ├── Icon-App-60x60@2x.png │ │ │ │ │ ├── Icon-App-60x60@3x.png │ │ │ │ │ ├── Icon-App-76x76@1x.png │ │ │ │ │ ├── Icon-App-76x76@2x.png │ │ │ │ │ ├── Icon-App-83.5x83.5@2x.png │ │ │ │ │ └── ItunesArtwork@2x.png │ │ │ │ ├── AppIconBeta.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── icon-ios-1024@1x.png │ │ │ │ │ ├── icon-ios-20@2x.png │ │ │ │ │ ├── icon-ios-20@3x.png │ │ │ │ │ ├── icon-ios-29@2x.png │ │ │ │ │ ├── icon-ios-29@3x.png │ │ │ │ │ ├── icon-ios-40@2x.png │ │ │ │ │ ├── icon-ios-40@3x.png │ │ │ │ │ ├── icon-ios-60@2x.png │ │ │ │ │ └── icon-ios-60@3x.png │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── iota-logo-white.png │ │ │ │ │ ├── iota-logo-white_2x.png │ │ │ │ │ └── iota-logo-white_3x.png │ │ │ │ ├── LaunchImage.launchimage │ │ │ │ │ └── Contents.json │ │ │ │ └── SplashIcon.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── iota-logo-white.png │ │ │ │ │ ├── iota-logo-white_2x.png │ │ │ │ │ └── iota-logo-white_3x.png │ │ │ ├── Info.plist │ │ │ ├── iotaWallet-Bridging-Header.h │ │ │ ├── iotaWallet.entitlements │ │ │ └── main.m │ │ ├── iotaWalletTests │ │ │ ├── Info.plist │ │ │ └── iotaWalletTests.m │ │ ├── iotaWalletUITests │ │ │ ├── Info.plist │ │ │ ├── SnapshotHelper.swift │ │ │ └── iotaWalletUITests.swift │ │ ├── it.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── ja.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── ko.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── localizations │ │ │ ├── ar.xliff │ │ │ ├── bg.xliff │ │ │ ├── ca.xliff │ │ │ ├── cs.xliff │ │ │ ├── da.xliff │ │ │ ├── de.xliff │ │ │ ├── de_CH.xliff │ │ │ ├── el.xliff │ │ │ ├── en.xliff │ │ │ ├── es-419.xliff │ │ │ ├── es.xliff │ │ │ ├── es_419.xliff │ │ │ ├── et.xliff │ │ │ ├── fa.xliff │ │ │ ├── fi.xliff │ │ │ ├── fr.xliff │ │ │ ├── he.xliff │ │ │ ├── hi.xliff │ │ │ ├── hr.xliff │ │ │ ├── hu.xliff │ │ │ ├── id.xliff │ │ │ ├── it.xliff │ │ │ ├── ja.xliff │ │ │ ├── ka.xliff │ │ │ ├── kn.xliff │ │ │ ├── ko.xliff │ │ │ ├── lt.xliff │ │ │ ├── lv.xliff │ │ │ ├── mi.xliff │ │ │ ├── ml.xliff │ │ │ ├── nb.xliff │ │ │ ├── nl.xliff │ │ │ ├── no.xliff │ │ │ ├── pl.xliff │ │ │ ├── pt-BR.xliff │ │ │ ├── pt-PT.xliff │ │ │ ├── pt.xliff │ │ │ ├── pt_BR.xliff │ │ │ ├── ro.xliff │ │ │ ├── ru.xliff │ │ │ ├── sk.xliff │ │ │ ├── sl.xliff │ │ │ ├── sr_CS.xliff │ │ │ ├── sr_Latn.xliff │ │ │ ├── sv.xliff │ │ │ ├── ta.xliff │ │ │ ├── th.xliff │ │ │ ├── tr.xliff │ │ │ ├── ur.xliff │ │ │ ├── vi.xliff │ │ │ ├── zh-Hans.xliff │ │ │ └── zh-Hant.xliff │ │ ├── lv.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── nb.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── nl.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── pl.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── pt-BR.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── pt-PT.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── ro.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── ru.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── sk.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── sl.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── sv.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── tr.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── ur.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ ├── zh-Hans.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ │ └── zh-Hant.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── LaunchScreen.xib │ ├── nodejs-assets │ │ └── nodejs-project │ │ │ ├── main.js │ │ │ ├── package.json │ │ │ └── yarn.lock │ ├── package.json │ ├── patches │ │ ├── buffer+4.9.1.patch │ │ ├── bugsnag-react-native+2.23.6.patch │ │ ├── react-native+0.59.10.patch │ │ ├── react-native-camera+1.5.1.patch │ │ ├── react-native-device-info+0.13.0.patch │ │ ├── react-native-document-picker+3.3.2.patch │ │ ├── react-native-keychain+3.0.0.patch │ │ └── react-native-schemes-manager+2.0.0.patch │ ├── rn-cli.config.js │ ├── safetynet.sh │ ├── scripts │ │ └── build-entangled-android.sh │ ├── shim.js │ ├── src │ │ ├── libs │ │ │ ├── SeedStore │ │ │ │ ├── Keychain.js │ │ │ │ ├── SeedStoreCore.js │ │ │ │ └── index.js │ │ │ ├── bugsnag.js │ │ │ ├── crypto.js │ │ │ ├── device.js │ │ │ ├── dimensions.js │ │ │ ├── keychain.js │ │ │ ├── nativeModules.js │ │ │ ├── navigation.js │ │ │ ├── progressSteps.js │ │ │ ├── realm.js │ │ │ ├── safetynet.js │ │ │ └── store.js │ │ └── ui │ │ │ ├── components │ │ │ ├── AmountTextInput.js │ │ │ ├── AnimatedComponent.js │ │ │ ├── BackPress.js │ │ │ ├── BiometricInfoModal.js │ │ │ ├── Button.js │ │ │ ├── Chart.js │ │ │ ├── Checksum.js │ │ │ ├── ChecksumModal.js │ │ │ ├── CtaButton.js │ │ │ ├── CustomQRCode.js │ │ │ ├── CustomTextInput.js │ │ │ ├── DeepLinking.js │ │ │ ├── Dropdown.js │ │ │ ├── DualFooterButtons.js │ │ │ ├── DynamicStatusBar.js │ │ │ ├── EnterPassword.js │ │ │ ├── EnterPasswordOnLogin.js │ │ │ ├── FingerprintModal.js │ │ │ ├── Header.js │ │ │ ├── InfoBox.js │ │ │ ├── KeyboardMonitor.js │ │ │ ├── Letter.js │ │ │ ├── Logout.js │ │ │ ├── LogoutConfirmationModal.js │ │ │ ├── ManualRefresh.js │ │ │ ├── Migration.js │ │ │ ├── ModalButtons.js │ │ │ ├── ModalComponent.js │ │ │ ├── ModalView.js │ │ │ ├── MultiTextInput.js │ │ │ ├── NotificationButton.js │ │ │ ├── NotificationLogModal.js │ │ │ ├── OldProgressBar.js │ │ │ ├── PasswordFields.js │ │ │ ├── PasswordValidationModal.js │ │ │ ├── Poll.js │ │ │ ├── PrintModal.js │ │ │ ├── QrScanner.js │ │ │ ├── RootDetectionModal.js │ │ │ ├── SafeAreaView.js │ │ │ ├── ScramblingLetter.js │ │ │ ├── ScramblingText.js │ │ │ ├── SeedInfoModal.js │ │ │ ├── SeedPicker.js │ │ │ ├── SeedVaultExportComponent.js │ │ │ ├── SeedVaultImportComponent.js │ │ │ ├── SendProgressBar.js │ │ │ ├── SettingsBackButton.js │ │ │ ├── SettingsContent.js │ │ │ ├── SettingsDualFooter.js │ │ │ ├── SettingsRow.js │ │ │ ├── SettingsRowsContainer.js │ │ │ ├── SettingsSeparator.js │ │ │ ├── SimpleTransactionRow.js │ │ │ ├── SingleFooterButton.js │ │ │ ├── Slider.js │ │ │ ├── SnapshotTransitionInfoModal.js │ │ │ ├── StatefulDropdownAlert.js │ │ │ ├── Tab.js │ │ │ ├── TabContent.js │ │ │ ├── Tabs.js │ │ │ ├── TextWithLetterSpacing.js │ │ │ ├── Toggle.js │ │ │ ├── TopBar.js │ │ │ ├── TransactionFilters.js │ │ │ ├── TransactionHistoryModal.js │ │ │ ├── TransactionRow.js │ │ │ ├── TransferConfirmationModal.js │ │ │ ├── UnitInfoModal.js │ │ │ ├── UserActivity.js │ │ │ ├── UserInactivity.js │ │ │ ├── WithDropdownAlert.js │ │ │ └── WithStatusBar.js │ │ │ ├── routes │ │ │ ├── entry.js │ │ │ └── navigation.js │ │ │ ├── theme │ │ │ ├── fonts.js │ │ │ ├── general.js │ │ │ └── icons.js │ │ │ └── views │ │ │ ├── onboarding │ │ │ ├── EnterSeed.js │ │ │ ├── LanguageSetup.js │ │ │ ├── NewSeedSetup.js │ │ │ ├── OnboardingComplete.js │ │ │ ├── PrintBlankTemplate.js │ │ │ ├── PrivacyPolicy.js │ │ │ ├── SaveSeedConfirmation.js │ │ │ ├── SaveYourSeed.js │ │ │ ├── SeedReentry.js │ │ │ ├── SeedVaultBackup.js │ │ │ ├── SetAccountName.js │ │ │ ├── SetPassword.js │ │ │ ├── TermsAndConditions.js │ │ │ ├── WalletSetup.js │ │ │ ├── Welcome.js │ │ │ └── WriteSeedDown.js │ │ │ └── wallet │ │ │ ├── About.js │ │ │ ├── AccountManagement.js │ │ │ ├── AddCustomNode.js │ │ │ ├── AddNewAccount.js │ │ │ ├── AdvancedSettings.js │ │ │ ├── AutoPromotion.js │ │ │ ├── Balance.js │ │ │ ├── BiometricAuthentication.js │ │ │ ├── ChangePassword.js │ │ │ ├── CurrencySelection.js │ │ │ ├── DeepLinking.js │ │ │ ├── DeleteAccount.js │ │ │ ├── EditAccountName.js │ │ │ ├── ForceChangePassword.js │ │ │ ├── Help.js │ │ │ ├── History.js │ │ │ ├── Home.js │ │ │ ├── InactivityLogout.js │ │ │ ├── LanguageSelection.js │ │ │ ├── Loading.js │ │ │ ├── Login.js │ │ │ ├── MainSettings.js │ │ │ ├── ManualSync.js │ │ │ ├── ModeSelection.js │ │ │ ├── NodeSettings.js │ │ │ ├── Receive.js │ │ │ ├── SecuritySettings.js │ │ │ ├── SeedVaultSettings.js │ │ │ ├── Send.js │ │ │ ├── Settings.js │ │ │ ├── SnapshotTransition.js │ │ │ ├── StateExport.js │ │ │ ├── ThemeCustomisation.js │ │ │ ├── UseExistingSeed.js │ │ │ ├── ViewAddresses.js │ │ │ ├── ViewSeed.js │ │ │ ├── WalletResetConfirmation.js │ │ │ └── WalletResetRequirePassword.js │ ├── testConfig.js │ └── yarn.lock └── shared │ ├── .babelrc │ ├── .eslintrc.yml │ ├── .snyk │ ├── __tests__ │ ├── __samples__ │ │ ├── accounts.js │ │ ├── addresses.js │ │ ├── bundles.js │ │ ├── transactions.js │ │ └── trytes.js │ ├── actions │ │ ├── accounts.spec.js │ │ └── transfers.spec.js │ ├── beforeAll.spec.js │ ├── libs │ │ ├── i18n.spec.js │ │ ├── iota │ │ │ ├── accounts.spec.js │ │ │ ├── addresses.spec.js │ │ │ ├── extendedApi.spec.js │ │ │ ├── inputs.spec.js │ │ │ ├── quorum.spec.js │ │ │ ├── recovery.spec.js │ │ │ ├── transfers.spec.js │ │ │ └── utils.spec.js │ │ └── utils.spec.js │ ├── middlewares │ │ ├── alerts.spec.js │ │ └── network.spec.js │ ├── reducers │ │ ├── accounts.spec.js │ │ ├── alerts.spec.js │ │ ├── home.spec.js │ │ ├── marketData.spec.js │ │ ├── polling.spec.js │ │ ├── progress.spec.js │ │ ├── settings.spec.js │ │ ├── ui.spec.js │ │ └── wallet.spec.js │ ├── selectors │ │ ├── accounts.spec.js │ │ └── global.spec.js │ └── storage │ │ └── node.spec.js │ ├── actions │ ├── accounts.js │ ├── alerts.js │ ├── home.js │ ├── keychain.js │ ├── marketData.js │ ├── migrations.js │ ├── polling.js │ ├── progress.js │ ├── recovery.js │ ├── settings.js │ ├── transfers.js │ ├── ui.js │ └── wallet.js │ ├── animations │ ├── fingerprint.json │ ├── index.js │ ├── language.json │ ├── ledger.json │ ├── loading.json │ ├── logout.json │ ├── onboardingComplete.json │ ├── progressLoading.json │ ├── progressSuccess.json │ ├── sending.json │ ├── sendingDesktop.json │ ├── spinner.json │ └── welcome.json │ ├── config.js │ ├── containers │ ├── components │ │ ├── Chart.js │ │ └── List.js │ ├── global │ │ └── Alerts.js │ ├── settings │ │ ├── Currency.js │ │ └── Node.js │ └── wallet │ │ └── Send.js │ ├── custom-fonts │ ├── SourceCodePro-Medium.ttf │ ├── SourceSansPro-Bold.ttf │ ├── SourceSansPro-Light.ttf │ ├── SourceSansPro-Regular.json │ ├── SourceSansPro-Regular.ttf │ ├── SourceSansPro-SemiBold.ttf │ └── icons │ │ ├── Linearicons-Free.eot │ │ ├── Linearicons-Free.svg │ │ ├── Linearicons-Free.ttf │ │ ├── Linearicons-Free.woff │ │ └── Linearicons-Free.woff2 │ ├── icons │ ├── Icons.svg │ ├── Icons.ttf │ ├── generate.js │ ├── icons.js │ └── icons │ │ ├── addresses.svg │ │ ├── advanced.svg │ │ ├── arrowDown.svg │ │ ├── arrowLeft.svg │ │ ├── arrowRight.svg │ │ ├── arrowUp.svg │ │ ├── attention.svg │ │ ├── biometric.svg │ │ ├── bookmark.svg │ │ ├── camera.svg │ │ ├── cameraFlip.svg │ │ ├── chart.svg │ │ ├── chevronDown.svg │ │ ├── chevronLeft.svg │ │ ├── chevronRight.svg │ │ ├── chevronUp.svg │ │ ├── copy.svg │ │ ├── cross.svg │ │ ├── currency.svg │ │ ├── edit.svg │ │ ├── eye.svg │ │ ├── eyeSlash.svg │ │ ├── fingerprint.svg │ │ ├── fingerprintDisabled.svg │ │ ├── help.svg │ │ ├── history.svg │ │ ├── info.svg │ │ ├── iota.svg │ │ ├── key.svg │ │ ├── keyVertical.svg │ │ ├── language.svg │ │ ├── link.svg │ │ ├── logout.svg │ │ ├── minus.svg │ │ ├── mode.svg │ │ ├── node.svg │ │ ├── notification.svg │ │ ├── password.svg │ │ ├── plus.svg │ │ ├── plusAlt.svg │ │ ├── pow.svg │ │ ├── print.svg │ │ ├── receive.svg │ │ ├── search.svg │ │ ├── security.svg │ │ ├── send.svg │ │ ├── settings.svg │ │ ├── settingsAlt.svg │ │ ├── snapshot.svg │ │ ├── sync.svg │ │ ├── theme.svg │ │ ├── tick.svg │ │ ├── tickRound.svg │ │ ├── trash.svg │ │ ├── twoFA.svg │ │ ├── user.svg │ │ ├── vault.svg │ │ ├── wallet.svg │ │ └── write.svg │ ├── images │ ├── PaperWallets.js │ ├── checkbox-checked-black.png │ ├── checkbox-checked-white.png │ ├── checkbox-unchecked-black.png │ ├── checkbox-unchecked-white.png │ ├── circle-black.png │ ├── circle-white.png │ ├── dot-circle-black.png │ ├── dot-circle-white.png │ ├── error.png │ ├── infoIcon.png │ ├── successIcon.png │ └── warnIcon.png │ ├── libs │ ├── crypto.js │ ├── currency.js │ ├── date.js │ ├── errors.js │ ├── exports.js │ ├── global.js │ ├── html.js │ ├── i18n.js │ ├── i18next.js │ ├── iota │ │ ├── NodesManager.js │ │ ├── accounts.js │ │ ├── addresses.js │ │ ├── converter.js │ │ ├── extendedApi.js │ │ ├── index.js │ │ ├── inputs.js │ │ ├── quorum.js │ │ ├── recovery.js │ │ ├── transfers.js │ │ └── utils.js │ ├── migrations.js │ ├── originalRequire.js │ ├── password.js │ ├── storageToStateMappers.js │ ├── utils.js │ └── versions.json │ ├── locales │ ├── ar │ │ └── translation.json │ ├── bg │ │ └── translation.json │ ├── ca │ │ └── translation.json │ ├── cs │ │ └── translation.json │ ├── da │ │ └── translation.json │ ├── de-CH │ │ └── translation.json │ ├── de │ │ └── translation.json │ ├── el │ │ └── translation.json │ ├── en │ │ └── translation.json │ ├── es-ES │ │ └── translation.json │ ├── es-LA │ │ └── translation.json │ ├── et │ │ └── translation.json │ ├── fa │ │ └── translation.json │ ├── fi │ │ └── translation.json │ ├── fr │ │ └── translation.json │ ├── he │ │ └── translation.json │ ├── hi │ │ └── translation.json │ ├── hr │ │ └── translation.json │ ├── hu │ │ └── translation.json │ ├── id │ │ └── translation.json │ ├── it │ │ └── translation.json │ ├── ja │ │ └── translation.json │ ├── ka │ │ └── translation.json │ ├── kn │ │ └── translation.json │ ├── ko │ │ └── translation.json │ ├── lt │ │ └── translation.json │ ├── lv │ │ └── translation.json │ ├── mi │ │ └── translation.json │ ├── ml │ │ └── translation.json │ ├── nl │ │ └── translation.json │ ├── no │ │ └── translation.json │ ├── pl │ │ └── translation.json │ ├── pt-BR │ │ └── translation.json │ ├── pt-PT │ │ └── translation.json │ ├── ro │ │ └── translation.json │ ├── ru │ │ └── translation.json │ ├── sk │ │ └── translation.json │ ├── sl │ │ └── translation.json │ ├── sr │ │ └── translation.json │ ├── sv-SE │ │ └── translation.json │ ├── ta │ │ └── translation.json │ ├── th │ │ └── translation.json │ ├── tr │ │ └── translation.json │ ├── ur │ │ └── translation.json │ ├── vi │ │ └── translation.json │ ├── zh-CN │ │ └── translation.json │ └── zh-TW │ │ └── translation.json │ ├── markdown │ ├── dePrivacyPolicyAndroid.js │ ├── dePrivacyPolicyIOS.js │ ├── deTermsAndConditionsAndroid.js │ ├── deTermsAndConditionsIOS.js │ ├── enPrivacyPolicyAndroid.js │ ├── enPrivacyPolicyIOS.js │ ├── enTermsAndConditionsAndroid.js │ ├── enTermsAndConditionsIOS.js │ └── index.js │ ├── middlewares │ ├── alerts.js │ ├── modal.js │ ├── network.js │ └── version.js │ ├── package.json │ ├── reducers │ ├── accounts.js │ ├── alerts.js │ ├── home.js │ ├── keychain.js │ ├── marketData.js │ ├── polling.js │ ├── progress.js │ ├── settings.js │ ├── ui.js │ └── wallet.js │ ├── schemas │ ├── default.js │ ├── index.js │ ├── v0 │ │ └── index.js │ ├── v1 │ │ └── index.js │ ├── v10 │ │ └── index.js │ ├── v2 │ │ └── index.js │ ├── v3 │ │ └── index.js │ ├── v4 │ │ └── index.js │ ├── v5 │ │ └── index.js │ ├── v6 │ │ └── index.js │ ├── v7 │ │ └── index.js │ ├── v8 │ │ └── index.js │ └── v9 │ │ └── index.js │ ├── selectors │ ├── accounts.js │ └── global.js │ ├── storage │ └── index.js │ ├── store.js │ ├── themes │ ├── paper-wallet-filled.svg │ ├── paper-wallet.svg │ ├── sync.js │ ├── themes.js │ └── themes │ │ ├── Classic.js │ │ ├── Contemporary.js │ │ ├── Dark.js │ │ ├── Default.js │ │ ├── Electric.js │ │ ├── Ionic.js │ │ ├── Light.js │ │ ├── Mint.js │ │ └── SteelBlue.js │ ├── types │ └── index.js │ └── yarn.lock ├── trinity.png └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 4 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | android/* 2 | ios/* 3 | node_modules/* 4 | **/node_modules/* 5 | *.min.js 6 | src/mobile/shim.js 7 | dist/ 8 | src/shared/locales/* 9 | !src/shared/locales/en/translation.json 10 | src/mobile/nodejs-assets/nodejs-project/sample-main.js 11 | src/mobile/ios/* 12 | src/mobile/android/* 13 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.pbxproj -text 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Discord 4 | url: https://discord.iota.org/ 5 | about: Please ask and answer questions here. 6 | - name: Security vulnerabilities 7 | url: security@iota.org 8 | about: Please report security vulnerabilities here. -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Request a feature for Trinity 3 | about: Request a feature 4 | --- 5 | 6 | ## Description 7 | 8 | Briefly describe the feature that you are requesting. 9 | 10 | ## Motivation 11 | 12 | Explain why this feature is needed. 13 | 14 | ## Requirements 15 | 16 | Write a list of what you want this feature to do. 17 | 18 | 1. 19 | 2. 20 | 3. 21 | 22 | ## Open questions (optional) 23 | 24 | Use this section to ask any questions that are related to the feature. 25 | 26 | ## Are you planning to do it yourself in a pull request? 27 | 28 | Yes/No. 29 | -------------------------------------------------------------------------------- /.github/SUPPORT.md: -------------------------------------------------------------------------------- 1 | # Community resources 2 | 3 | If you have a general or technical question, you can use one of the following resources instead of submitting an issue: 4 | 5 | - [**Developer documentation:**](https://docs.iota.org/) For official information about developing with IOTA technology 6 | - [**Discord:**](https://discord.iota.org/) For real-time chats with the developers and community members 7 | - [**IOTA cafe:**](https://iota.cafe/) For technical discussions with the Research and Development Department at the IOTA Foundation 8 | - [**StackExchange:**](https://iota.stackexchange.com/) For technical and troubleshooting questions -------------------------------------------------------------------------------- /.github/codeql/codeql-config.yml: -------------------------------------------------------------------------------- 1 | name: "CodeQL Config" 2 | 3 | queries: 4 | - uses: security-and-quality 5 | -------------------------------------------------------------------------------- /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | name: "CodeQL" 2 | 3 | on: 4 | push: 5 | branches: 6 | - develop 7 | pull_request: 8 | schedule: 9 | - cron: '0 0 * * *' 10 | 11 | jobs: 12 | CodeQL-Build: 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | - name: Checkout repository 17 | uses: actions/checkout@v2 18 | with: 19 | fetch-depth: 2 20 | 21 | - run: git checkout HEAD^2 22 | if: ${{ github.event_name == 'pull_request' }} 23 | 24 | - name: Initialize CodeQL 25 | uses: github/codeql-action/init@v1 26 | with: 27 | languages: javascript 28 | config-file: ./.github/codeql/codeql-config.yml 29 | 30 | - name: Perform CodeQL Analysis 31 | uses: github/codeql-action/analyze@v1 32 | -------------------------------------------------------------------------------- /.github/workflows/rollback_desktop.yml: -------------------------------------------------------------------------------- 1 | name: Rollback Trinity Desktop Release 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | rollback: 8 | runs-on: ubuntu-18.04 9 | steps: 10 | - name: Restore previous latest.yml files 11 | # Replace current latest.ymls with the ones in previous/ 12 | run: | 13 | aws s3 mv s3://iotaledger-files/trinity/desktop/releases/previous/ s3://iotaledger-files/trinity/desktop/releases/ --exclude "*" --include "latest*.yml" --recursive 14 | env: 15 | AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} 16 | AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} 17 | AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} 18 | -------------------------------------------------------------------------------- /.github/workflows/test_shared.yml: -------------------------------------------------------------------------------- 1 | name: Trinity Shared Tests 2 | 3 | on: 4 | pull_request: 5 | paths: 6 | - '*' 7 | - 'src/shared/**' 8 | - '.github/workflows/test_shared.yml' 9 | branches-ignore: 10 | - 'l10n_develop' 11 | 12 | jobs: 13 | test-shared: 14 | runs-on: ubuntu-18.04 15 | 16 | steps: 17 | - uses: actions/checkout@v2 18 | 19 | - name: Debug 20 | run: echo ${{ github.ref }} ${{ github.head_ref }} ${{ github.base_ref }} 21 | 22 | - name: Set up Node.js 23 | uses: actions/setup-node@v1 24 | with: 25 | node-version: 10.x 26 | 27 | - name: Install shared dependencies 28 | run: | 29 | yarn 30 | yarn deps:shared 31 | 32 | - name: Run ESLint 33 | run: yarn lint:shared 34 | 35 | - name: Run tests 36 | run: yarn test:shared 37 | -------------------------------------------------------------------------------- /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | yarn lint-staged 2 | yarn lint 3 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | src/mobile/android 2 | src/mobile/ios 3 | src/mobile/logo-spin/logo-spin-glow-blnk.hyperesources 4 | package.json 5 | src/shared/locales/* 6 | !src/shared/locales/en/translation.json 7 | src/desktop/dist/* 8 | npm-shrinkwrap.json 9 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "singleQuote": true, 4 | "tabWidth": 4, 5 | "trailingComma": "all", 6 | "arrowParens": "always" 7 | } 8 | -------------------------------------------------------------------------------- /.tool-versions: -------------------------------------------------------------------------------- 1 | nodejs 8.9.1 2 | -------------------------------------------------------------------------------- /crowdin.yml: -------------------------------------------------------------------------------- 1 | files: 2 | - source: /src/shared/locales/en/translation.json 3 | translation: /src/shared/locales/%two_letters_code%/translation.json 4 | languages_mapping: 5 | two_letters_code: 6 | zh-CN: zh-CN 7 | zh-TW: zh-TW 8 | es-ES: es-ES 9 | pt-PT: pt-PT 10 | sv-SE: sv-SE 11 | pt-BR: pt-BR 12 | es-419: es-LA 13 | - source: /src/mobile/ios/localizations/en.xliff 14 | translation: /src/mobile/ios/localizations/%osx_locale%.xliff 15 | -------------------------------------------------------------------------------- /docs/copyrightHeader: -------------------------------------------------------------------------------- 1 | /******************************************************************************** 2 | * Copyright (c) 2019 IOTA Foundation 3 | * 4 | * This program and the accompanying materials are made available under the 5 | * terms of the Eclipse Public License 2.0 which is available at 6 | * http://www.eclipse.org/legal/epl-2.0, or the Apache Software License 2.0 7 | * which is available at https://www.apache.org/licenses/LICENSE-2.0. 8 | * 9 | * SPDX-License-Identifier: Apache-2.0 OR EPL-2.0 10 | ********************************************************************************/ 11 | -------------------------------------------------------------------------------- /scripts/post-merge-githook.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # MIT © Sindre Sorhus - sindresorhus.com 3 | 4 | # git hook to run a command after `git pull` if a specified file was changed 5 | # Run `chmod +x post-merge` to make it executable then put it into `.git/hooks/`. 6 | 7 | changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)" 8 | 9 | check_run() { 10 | echo "$changed_files" | grep --quiet "$1" && eval "$2" 11 | } 12 | 13 | # Example usage 14 | # In this example it's used to run `yarn` if yarn.lock changed 15 | check_run yarn.lock "yarn install" || true 16 | -------------------------------------------------------------------------------- /src/desktop/.gitignore: -------------------------------------------------------------------------------- 1 | package-lock.json 2 | node_modules/ 3 | *npm-debug.log 4 | *.DS_Store 5 | out/ 6 | yarn.lock 7 | -------------------------------------------------------------------------------- /src/desktop/.yarnrc: -------------------------------------------------------------------------------- 1 | version-tag-prefix desktop-v 2 | -------------------------------------------------------------------------------- /src/desktop/__mocks__/fileMock.js: -------------------------------------------------------------------------------- 1 | export default {}; 2 | -------------------------------------------------------------------------------- /src/desktop/__mocks__/markdownMock.js: -------------------------------------------------------------------------------- 1 | export default `### Foo 2 | - Bar 3 | - Baz`; 4 | -------------------------------------------------------------------------------- /src/desktop/__mocks__/styleMock.js: -------------------------------------------------------------------------------- 1 | const handler = { 2 | get: function(_target, name) { 3 | return name; 4 | }, 5 | }; 6 | 7 | const proxy = new Proxy({}, handler); 8 | 9 | export default proxy; 10 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/components/__snapshots__/balance.test.jsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Balance component Render the component 1`] = ` 4 |
7 |

8 | foo 9 |

10 |

13 | 5.5 14 | 15 | Mi 16 | 17 |

18 |

19 | $5.50 20 |

21 |
22 | `; 23 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/components/__snapshots__/button.test.jsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Button component Render the component 1`] = ` 4 | 40 | 41 | 42 | 43 | `; 44 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/global/__snapshots__/alerts.test.jsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Alerts component Render the component 1`] = ` 4 |
7 |
11 | 12 | 16 | 17 |

18 | Foo 19 |

20 |

21 | Bar 22 |

23 |
24 |
25 | `; 26 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/global/__snapshots__/seedExport.test.jsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`SeedExport component Render the component 1`] = ` 4 |
8 |
9 |

10 | 14 | seedVault:exportSeedVault 15 |

16 |

17 | seedVault:seedVaultExplanation 18 |

19 |
20 | 36 |
37 | `; 38 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/global/__snapshots__/updateProgress.test.jsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`UpdateProgress component Render the component 1`] = ` 4 | 9 |
10 |

11 | updates:downloadingUpdate 12 |

13 |
14 | 15 | 16 | `; 17 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/global/titlebar.test.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { shallow } from 'enzyme'; 3 | 4 | import Titlebar from 'ui/global/Titlebar'; 5 | 6 | const props = { 7 | path: '/', 8 | }; 9 | 10 | global.Electron = { 11 | getOS: () => 'win32', 12 | }; 13 | 14 | describe('Titlebar component', () => { 15 | test('Render the component', () => { 16 | const wrapper = shallow(); 17 | 18 | expect(wrapper).toMatchSnapshot(); 19 | }); 20 | 21 | test('Render dark titlebar', () => { 22 | const wrapper = shallow(); 23 | 24 | expect(wrapper.find('.dark')).toHaveLength(1); 25 | }); 26 | 27 | test('Render light titlebar', () => { 28 | const wrapper = shallow(); 29 | 30 | expect(wrapper.find('.light')).toHaveLength(1); 31 | }); 32 | }); 33 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/__snapshots__/accountName.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/onboarding/__snapshots__/accountName.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/__snapshots__/accountPassword.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/onboarding/__snapshots__/accountPassword.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/__snapshots__/done.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/onboarding/__snapshots__/done.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/__snapshots__/login.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/onboarding/__snapshots__/login.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/__snapshots__/seedGenerate.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/onboarding/__snapshots__/seedGenerate.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/__snapshots__/seedIntro.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/onboarding/__snapshots__/seedIntro.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/__snapshots__/seedSave.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/onboarding/__snapshots__/seedSave.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/__snapshots__/seedVerify.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/onboarding/__snapshots__/seedVerify.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/__snapshots__/welcome.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/onboarding/__snapshots__/welcome.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/accountName.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Onboarding account name view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('onboarding/account-name', false); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'accountName.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/accountPassword.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Onboarding account password view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('onboarding/account-password', false); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'accountPassword.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/done.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Onboarding done view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('onboarding/done', false, 3000); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'done.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/login.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Onboarding login view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('onboarding/login', false); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'login.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/seedGenerate.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Onboarding seed generate view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('onboarding/seed-generate', false); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.5', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'seedGenerate.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/seedIntro.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Onboarding seed intro view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('onboarding/seed-intro', false); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'seedIntro.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/seedSave.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Onboarding seed save view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('onboarding/seed-save', false); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'seedSave.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/seedStore/__snapshots__/ledger.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/onboarding/seedStore/__snapshots__/ledger.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/seedStore/ledger.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Onboarding ledger view', () => { 2 | test( 3 | 'Render view', 4 | async () => { 5 | const snapshot = await global.__screenshot('onboarding/seed-ledger', false); 6 | 7 | expect(snapshot).toMatchImageSnapshot({ 8 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 9 | failureThreshold: '0.05', 10 | failureThresholdType: 'percent', 11 | customSnapshotIdentifier: 'ledger.test.jsx', 12 | }); 13 | }, 14 | 10000, 15 | ); 16 | }); 17 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/seedVerify.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Onboarding seed verify view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('onboarding/seed-verify', false); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'seedVerify.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/onboarding/welcome.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Onboarding welcome view', () => { 2 | beforeEach(() => { 3 | Object.defineProperty(navigator, 'language', { value: 'en-GB', writable: true }); 4 | }); 5 | 6 | test('Render view', async () => { 7 | const snapshot = await global.__screenshot('onboarding', false); 8 | 9 | expect(snapshot).toMatchImageSnapshot({ 10 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 11 | failureThreshold: '0.05', 12 | failureThresholdType: 'percent', 13 | customSnapshotIdentifier: 'welcome.test.jsx', 14 | }); 15 | }, 10000); 16 | }); 17 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/settings/__snapshots__/advanced.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/settings/__snapshots__/advanced.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/settings/__snapshots__/currency.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/settings/__snapshots__/currency.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/settings/__snapshots__/language.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/settings/__snapshots__/language.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/settings/__snapshots__/mode.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/settings/__snapshots__/mode.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/settings/__snapshots__/node.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/settings/__snapshots__/node.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/settings/__snapshots__/password.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/settings/__snapshots__/password.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/settings/__snapshots__/theme.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/settings/__snapshots__/theme.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/settings/account/__snapshots__/addresses.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/settings/account/__snapshots__/addresses.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/settings/account/addresses.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Settings account addresses view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('settings/account/addresses/0', true); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'addresses.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/settings/advanced.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Settings advanced view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('settings/advanced', true); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'advanced.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/settings/currency.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Settings currency view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('settings/currency', false); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'currency.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/settings/language.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Settings language view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('settings/language', false); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'language.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/settings/mode.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Settings mode view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('settings/mode', true); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'mode.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/settings/node.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Settings node view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('settings/node', false); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.10', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'node.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/settings/password.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Settings password view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('settings/password', true); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'password.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/settings/theme.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Settings theme view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('settings/theme', false); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'theme.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/wallet/__snapshots__/dashboard.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/wallet/__snapshots__/dashboard.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/wallet/__snapshots__/receive.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/wallet/__snapshots__/receive.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/wallet/__snapshots__/send.test.jsx-snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/__tests__/ui/views/wallet/__snapshots__/send.test.jsx-snap.png -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/wallet/dashboard.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Wallet dashboard view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('wallet/dashboard', true); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'dashboard.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/wallet/receive.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Wallet receive view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('wallet/receive', true, 600); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'receive.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/__tests__/ui/views/wallet/send.test.jsx: -------------------------------------------------------------------------------- 1 | describe('Wallet send view', () => { 2 | test('Render view', async () => { 3 | const snapshot = await global.__screenshot('wallet/send', true, 600); 4 | 5 | expect(snapshot).toMatchImageSnapshot({ 6 | customSnapshotsDir: `${__dirname}/__snapshots__/`, 7 | failureThreshold: '0.05', 8 | failureThresholdType: 'percent', 9 | customSnapshotIdentifier: 'send.test.jsx', 10 | }); 11 | }, 10000); 12 | }); 13 | -------------------------------------------------------------------------------- /src/desktop/assets/RC/backdrop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/assets/RC/backdrop.png -------------------------------------------------------------------------------- /src/desktop/assets/RC/backdrop@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/assets/RC/backdrop@2x.png -------------------------------------------------------------------------------- /src/desktop/assets/RC/background.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/assets/RC/background.tiff -------------------------------------------------------------------------------- /src/desktop/assets/RC/icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/assets/RC/icon-1024.png -------------------------------------------------------------------------------- /src/desktop/assets/RC/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/assets/RC/icon.icns -------------------------------------------------------------------------------- /src/desktop/assets/RC/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/assets/RC/icon.ico -------------------------------------------------------------------------------- /src/desktop/assets/RC/trayTemplate@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/assets/RC/trayTemplate@2x.png -------------------------------------------------------------------------------- /src/desktop/assets/backdrop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/assets/backdrop.png -------------------------------------------------------------------------------- /src/desktop/assets/backdrop@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/assets/backdrop@2x.png -------------------------------------------------------------------------------- /src/desktop/assets/background.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/assets/background.tiff -------------------------------------------------------------------------------- /src/desktop/assets/icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/assets/icon-1024.png -------------------------------------------------------------------------------- /src/desktop/assets/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/assets/icon.icns -------------------------------------------------------------------------------- /src/desktop/assets/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/assets/icon.ico -------------------------------------------------------------------------------- /src/desktop/assets/trayTemplate@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/desktop/assets/trayTemplate@2x.png -------------------------------------------------------------------------------- /src/desktop/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | [ 4 | '@babel/preset-env', 5 | { 6 | targets: { 7 | chrome: '66', 8 | }, 9 | }, 10 | ], 11 | '@babel/preset-react', 12 | ], 13 | plugins: [ 14 | ['@babel/plugin-proposal-class-properties', { loose: true }], 15 | '@babel/plugin-proposal-object-rest-spread', 16 | ], 17 | }; 18 | -------------------------------------------------------------------------------- /src/desktop/bugsnag.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | exit 0 3 | -------------------------------------------------------------------------------- /src/desktop/entitlements.mac.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.cs.allow-dyld-environment-variables 6 | 7 | com.apple.security.cs.allow-unsigned-executable-memory 8 | 9 | com.apple.security.device.camera 10 | 11 | com.apple.security.device.usb 12 | 13 | com.apple.security.files.user-selected.read-write 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/desktop/native/libs/Realm.js: -------------------------------------------------------------------------------- 1 | import Realm from 'realm'; 2 | 3 | // Don't report Realm JS analytics data 4 | // @see https://github.com/realm/realm-js/blob/master/lib/submit-analytics.js#L28 5 | process.env.REALM_DISABLE_ANALYTICS = 'true'; 6 | 7 | export default Realm; 8 | -------------------------------------------------------------------------------- /src/desktop/native/preload/development.js: -------------------------------------------------------------------------------- 1 | import { ipcRenderer as ipc } from 'electron'; 2 | import Electron from './Electron'; 3 | 4 | // Define environment mode as Development 5 | Electron.mode = 'dev'; 6 | 7 | // Inject screenshot proxy call 8 | Electron.screenshot = (filename) => { 9 | ipc.send('screenshot', `shots/${filename}.png`); 10 | }; 11 | 12 | // Disable default drag&drop 13 | document.addEventListener('dragover', (e) => e.preventDefault()); 14 | document.addEventListener('drop', (e) => e.preventDefault()); 15 | 16 | global.Electron = Electron; 17 | -------------------------------------------------------------------------------- /src/desktop/native/preload/production.js: -------------------------------------------------------------------------------- 1 | import Electron from './Electron'; 2 | 3 | // Define environment mode as Production 4 | Electron.mode = 'prod'; 5 | 6 | // Disable default drag&drop 7 | document.addEventListener('dragover', (e) => e.preventDefault()); 8 | document.addEventListener('drop', (e) => e.preventDefault()); 9 | 10 | // Disable eval 11 | // eslint-disable-next-line 12 | window.eval = global.eval = function() {}; 13 | 14 | global.Electron = Electron; 15 | -------------------------------------------------------------------------------- /src/desktop/native/preload/tray.js: -------------------------------------------------------------------------------- 1 | import Electron from './Electron'; 2 | 3 | // Define environment mode as Tray 4 | Electron.mode = 'tray'; 5 | 6 | // Disable default drag&drop 7 | document.addEventListener('dragover', (e) => e.preventDefault()); 8 | document.addEventListener('drop', (e) => e.preventDefault()); 9 | 10 | global.Electron = Electron; 11 | -------------------------------------------------------------------------------- /src/desktop/scripts/jestLibs.js: -------------------------------------------------------------------------------- 1 | import Enzyme from 'enzyme'; 2 | import Adapter from 'enzyme-adapter-react-16'; 3 | import { toMatchImageSnapshot } from 'jest-image-snapshot'; 4 | 5 | expect.extend({ toMatchImageSnapshot }); 6 | 7 | Enzyme.configure({ 8 | adapter: new Adapter(), 9 | }); 10 | -------------------------------------------------------------------------------- /src/desktop/scripts/jestSetup.js: -------------------------------------------------------------------------------- 1 | const puppeteer = require('puppeteer'); 2 | const mkdirp = require('mkdirp'); 3 | const path = require('path'); 4 | const fs = require('fs'); 5 | const os = require('os'); 6 | const express = require('express'); 7 | 8 | const DIR = path.join(os.tmpdir(), 'jest_puppeteer_global_setup'); 9 | 10 | module.exports = async function() { 11 | const browser = await puppeteer.launch(); 12 | 13 | const app = express(); 14 | 15 | app.use(express.static(path.join(__dirname, '../dist'))); 16 | app.get('*', (_request, response) => { 17 | response.sendFile(path.join(__dirname, '../dist/index.html')); 18 | }); 19 | 20 | const server = app.listen(1074); 21 | 22 | global.__BROWSER__ = browser; 23 | global.__SERVER__ = server; 24 | 25 | mkdirp.sync(DIR); 26 | fs.writeFileSync(path.join(DIR, 'wsEndpoint'), browser.wsEndpoint()); 27 | }; 28 | -------------------------------------------------------------------------------- /src/desktop/scripts/jestTeardown.js: -------------------------------------------------------------------------------- 1 | const os = require('os'); 2 | const rimraf = require('rimraf'); 3 | const path = require('path'); 4 | 5 | const DIR = path.join(os.tmpdir(), 'jest_puppeteer_global_setup'); 6 | module.exports = async function() { 7 | await global.__BROWSER__.close(); 8 | await global.__SERVER__.close(); 9 | 10 | rimraf.sync(DIR); 11 | }; 12 | -------------------------------------------------------------------------------- /src/desktop/src/libs/SeedStore/index.js: -------------------------------------------------------------------------------- 1 | import Keychain from './Keychain'; 2 | import Ledger from './Ledger'; 3 | 4 | export default { 5 | keychain: Keychain, 6 | ledger: Ledger, 7 | }; 8 | -------------------------------------------------------------------------------- /src/desktop/src/libs/constants.js: -------------------------------------------------------------------------------- 1 | import { version } from '../../package.json'; 2 | 3 | /** 4 | * Use different account aliases for Relase Candidate versions 5 | */ 6 | export const __RC__ = version.toLowerCase().indexOf('rc') > 0 && process.env.NODE_ENV !== 'test' ? '-rc' : ''; 7 | 8 | /** 9 | * Main account encryption key alias 10 | */ 11 | export const ALIAS_MAIN = `Trinity${__RC__}`; 12 | 13 | /** 14 | * Seed account encryption key alias 15 | */ 16 | export const ALIAS_ACCOUNT = `account${__RC__}`; 17 | 18 | /** 19 | * Realm database encryption key alias 20 | */ 21 | export const ALIAS_REALM = `realm_enc_key${__RC__}`; 22 | 23 | /** 24 | * Legacy credentials key alias 25 | */ 26 | export const ALIAS_LEGACY = `moonpay_credentials${__RC__}`; 27 | -------------------------------------------------------------------------------- /src/desktop/src/ui/components/Checksum.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { ADDRESS_LENGTH, VALID_SEED_REGEX } from 'libs/iota/utils'; 4 | 5 | /** 6 | * Returns address with highlighted checksum 7 | */ 8 | const Checksum = ({ address }) => { 9 | const validAddress = 10 | typeof address === 'string' && address.length === ADDRESS_LENGTH && address.match(VALID_SEED_REGEX); 11 | 12 | return ( 13 | 14 | {!validAddress ? address : address.substr(0, 81)} 15 | {validAddress && {address.substr(81)}} 16 | 17 | ); 18 | }; 19 | 20 | Checksum.propTypes = { 21 | /** Target address */ 22 | address: PropTypes.string.isRequired, 23 | }; 24 | 25 | export default Checksum; 26 | -------------------------------------------------------------------------------- /src/desktop/src/ui/components/Info.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import Icon from 'ui/components/Icon'; 4 | import css from './info.scss'; 5 | 6 | /** 7 | * Info block component 8 | */ 9 | export default class Info extends React.PureComponent { 10 | static propTypes = { 11 | /** Info block content */ 12 | children: PropTypes.node.isRequired, 13 | }; 14 | 15 | static defaultProps = { 16 | displayIcon: true, 17 | }; 18 | 19 | render() { 20 | const { children } = this.props; 21 | 22 | return ( 23 |
24 | 25 | {children} 26 |
27 | ); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/desktop/src/ui/components/Loading.scss: -------------------------------------------------------------------------------- 1 | .loading { 2 | display: flex; 3 | position: fixed; 4 | width: 100vw; 5 | height: 100vh; 6 | top: 0px; 7 | left: 0px; 8 | align-items: center; 9 | justify-content: center; 10 | background: var(--body-bg); 11 | -webkit-app-region: drag; 12 | 13 | &.inline { 14 | position: relative; 15 | } 16 | 17 | &.transparent { 18 | background: none; 19 | } 20 | 21 | > div { 22 | text-align: center; 23 | pointer-events: none; 24 | } 25 | h1 { 26 | margin: 45px 0 12px; 27 | font-size: 24px; 28 | color: var(--body); 29 | } 30 | h2 { 31 | font-size: 16px; 32 | color: var(--body); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/desktop/src/ui/components/Tab.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | import PropTypes from 'prop-types'; 4 | import css from './tab.scss'; 5 | 6 | /** 7 | * Tab component 8 | */ 9 | export default class Tab extends React.PureComponent { 10 | static propTypes = { 11 | /** Tab text */ 12 | children: PropTypes.string.isRequired, 13 | /** Determines whether the tab is active */ 14 | active: PropTypes.bool, 15 | /** @ignore */ 16 | onClick: PropTypes.func.isRequired, 17 | }; 18 | 19 | static defaultProps = { 20 | active: false, 21 | }; 22 | 23 | render() { 24 | const { children, active, onClick } = this.props; 25 | 26 | return ( 27 | 28 | {children} 29 | 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/desktop/src/ui/components/Tooltip.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import Icon from 'ui/components/Icon'; 4 | import css from './tooltip.scss'; 5 | 6 | /** 7 | * Inline hover tooltip component 8 | */ 9 | export default class Tooltip extends React.PureComponent { 10 | static propTypes = { 11 | /** Tooltip text */ 12 | tip: PropTypes.string.isRequired, 13 | /** Optional tooltip title */ 14 | title: PropTypes.string, 15 | }; 16 | 17 | render() { 18 | return ( 19 |
20 | 21 |
22 | {this.props.title ? {this.props.title} : null} 23 | {this.props.tip} 24 |
25 |
26 | ); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/desktop/src/ui/components/clipboard.scss: -------------------------------------------------------------------------------- 1 | .clipboard, 2 | .clipboard * { 3 | cursor: pointer; 4 | } 5 | -------------------------------------------------------------------------------- /src/desktop/src/ui/components/dropzone.scss: -------------------------------------------------------------------------------- 1 | .dropzone { 2 | display: flex; 3 | position: fixed; 4 | flex-direction: column; 5 | align-items: center; 6 | justify-content: center; 7 | top: 0px; 8 | left: 0px; 9 | width: 100vw; 10 | height: 100vh; 11 | background: var(--body-bg); 12 | pointer-events: none; 13 | z-index: 10; 14 | opacity: 0; 15 | &.active { 16 | opacity: 1; 17 | } 18 | 19 | svg { 20 | display: block; 21 | margin-bottom: 20px; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/desktop/src/ui/components/icon.scss: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Icons'; 3 | src: url('~icons/Icons.ttf') format('truetype'); 4 | font-weight: normal; 5 | font-style: normal; 6 | } 7 | 8 | .icon { 9 | font-family: 'Icons'; 10 | font-style: normal; 11 | font-weight: normal; 12 | font-variant: normal; 13 | text-transform: none; 14 | -webkit-font-smoothing: antialiased; 15 | -moz-osx-font-smoothing: grayscale; 16 | } 17 | 18 | .seedVault { 19 | .bg { 20 | fill: var(--body-bg); 21 | } 22 | .mg { 23 | fill: var(--body-alt); 24 | } 25 | .fg { 26 | fill: var(--box-body); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/desktop/src/ui/components/logo.scss: -------------------------------------------------------------------------------- 1 | .logo { 2 | position: relative; 3 | display: inline-block; 4 | @media print { 5 | display: none; 6 | } 7 | svg path { 8 | fill: var(--body); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/desktop/src/ui/components/progress.scss: -------------------------------------------------------------------------------- 1 | .progress { 2 | p { 3 | line-height: 18px; 4 | font-size: 13px; 5 | text-align: center; 6 | margin-bottom: 6px; 7 | } 8 | > div { 9 | position: relative; 10 | display: inline-block; 11 | margin: 0 auto; 12 | width: 100%; 13 | height: 14px; 14 | border: 2px solid var(--primary); 15 | border-radius: 8px; 16 | .bar { 17 | display: block; 18 | height: 100%; 19 | background: var(--primary); 20 | transition: width 2s cubic-bezier(0.55, 0, 0.1, 1); 21 | } 22 | } 23 | 24 | &.large { 25 | margin-bottom: 38px; 26 | small { 27 | display: block; 28 | margin-top: 12px; 29 | font-size: 14px; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/desktop/src/ui/components/seedPrint.scss: -------------------------------------------------------------------------------- 1 | .print { 2 | display: none; 3 | 4 | @media print { 5 | display: block; 6 | img, 7 | svg, 8 | div { 9 | position: fixed; 10 | top: 0px; 11 | left: 0px; 12 | width: 100vw; 13 | height: 100vh; 14 | } 15 | svg text { 16 | font-family: 'SourceCodePro'; 17 | font-size: 20px; 18 | fill: #231f20; 19 | } 20 | canvas { 21 | position: absolute; 22 | left: 50%; 23 | top: 81.5%; 24 | width: 9vh !important; 25 | height: 9vh !important; 26 | transform: translate(-175%, 0); 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /src/desktop/src/ui/components/tab.scss: -------------------------------------------------------------------------------- 1 | .tab { 2 | cursor: pointer; 3 | width: 100%; 4 | padding: 12px 0; 5 | font-weight: 400; 6 | border: 1px solid var(--input-bg); 7 | box-sizing: border-box; 8 | text-align: center; 9 | background: var(--dark-color); 10 | opacity: 0.5; 11 | } 12 | 13 | .active { 14 | border: none; 15 | opacity: 1; 16 | background: var(--body-bg); 17 | } 18 | -------------------------------------------------------------------------------- /src/desktop/src/ui/components/waves.scss: -------------------------------------------------------------------------------- 1 | .wave { 2 | position: absolute; 3 | bottom: 0px; 4 | left: 0px; 5 | width: 100vw; 6 | > div { 7 | content: ''; 8 | width: 100%; 9 | height: 100%; 10 | position: absolute; 11 | top: 0px; 12 | left: 0px; 13 | background-size: auto 100%; 14 | background-position: left bottom; 15 | background-repeat: repeat-x; 16 | transition: background-position 3s cubic-bezier(0.075, 0.82, 0.165, 1); 17 | } 18 | > div:last-child { 19 | background-position: 50% bottom; 20 | } 21 | 22 | @media print { 23 | display: none; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/desktop/src/ui/global/seedExport.scss: -------------------------------------------------------------------------------- 1 | .seedExport { 2 | h1 { 3 | position: absolute; 4 | top: 0px; 5 | left: 0px; 6 | text-align: center; 7 | width: 100%; 8 | 9 | svg { 10 | display: block; 11 | margin: 0 auto 16px; 12 | } 13 | } 14 | section { 15 | padding-top: 275px; 16 | position: relative; 17 | height: 540px; 18 | } 19 | .fieldSection { 20 | position: relative; 21 | height: 540px; 22 | padding-top: 250px; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/desktop/src/ui/index.scss: -------------------------------------------------------------------------------- 1 | @import 'style/reset'; 2 | @import 'style/typography'; 3 | @import 'style/animations'; 4 | 5 | html, 6 | body { 7 | margin: 0; 8 | padding: 0; 9 | width: 100vw; 10 | height: 100vh; 11 | overflow: hidden; 12 | } 13 | 14 | body { 15 | color: var(--body); 16 | background: var(--body-bg); 17 | 18 | @media print { 19 | background: #fff; 20 | } 21 | } 22 | 23 | main { 24 | display: flex; 25 | width: 100vw; 26 | height: 100vh; 27 | } 28 | -------------------------------------------------------------------------------- /src/desktop/src/ui/style/_reset.scss: -------------------------------------------------------------------------------- 1 | *, 2 | *:after, 3 | *:before { 4 | margin: 0; 5 | padding: 0; 6 | border: 0; 7 | font-weight: 300; 8 | font-size: 100%; 9 | box-sizing: border-box; 10 | user-select: none; 11 | cursor: default; 12 | outline: none; 13 | &:focus { 14 | outline: none; 15 | } 16 | } 17 | a, 18 | a *, 19 | *:before, 20 | *:after { 21 | cursor: pointer; 22 | text-decoration: none; 23 | } 24 | input, 25 | textarea { 26 | cursor: text; 27 | } 28 | 29 | mark { 30 | background: none; 31 | } 32 | -------------------------------------------------------------------------------- /src/desktop/src/ui/views/onboarding/seedStore/index.scss: -------------------------------------------------------------------------------- 1 | .ledger { 2 | section { 3 | > div:first-of-type { 4 | display: flex; 5 | max-width: 385px; 6 | margin: 0 auto; 7 | } 8 | p + p { 9 | margin-top: -15px; 10 | font-weight: 600; 11 | color: var(--primary); 12 | } 13 | small { 14 | display: block; 15 | height: 18px; 16 | font-size: 14px; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/desktop/src/ui/views/settings/account/addresses.scss: -------------------------------------------------------------------------------- 1 | .addresses { 2 | p { 3 | font-family: 'SourceCodePro'; 4 | font-size: 12px; 5 | word-break: break-word; 6 | 7 | mark { 8 | color: var(--primary); 9 | } 10 | } 11 | 12 | li { 13 | display: flex; 14 | strong { 15 | flex: 1 0 65px; 16 | text-align: right; 17 | } 18 | } 19 | 20 | .spent { 21 | text-decoration: line-through; 22 | color: var(--negative); 23 | 24 | mark { 25 | color: var(--negative); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/desktop/src/ui/views/settings/account/seed.scss: -------------------------------------------------------------------------------- 1 | .seed { 2 | display: block; 3 | width: 100%; 4 | font-family: SourceCodePro; 5 | line-height: 32px; 6 | word-wrap: break-word; 7 | 8 | small { 9 | display: block; 10 | } 11 | 12 | strong { 13 | font-weight: 600; 14 | letter-spacing: 1px; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/desktop/webpack.config/index.js: -------------------------------------------------------------------------------- 1 | module.exports = (env = 'development') => { 2 | return require(`./config.${env}`); // eslint-disable-line import/no-dynamic-require 3 | }; 4 | -------------------------------------------------------------------------------- /src/mobile/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["module:metro-react-native-babel-preset"], 3 | "plugins": [ 4 | [ 5 | "module-resolver", 6 | { 7 | "cwd": "babelrc", 8 | "root": [".", "src"], 9 | "extensions": [".ios.js", ".android.js", ".js", ".json"] 10 | } 11 | ], 12 | "jest-hoist" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /src/mobile/.buckconfig: -------------------------------------------------------------------------------- 1 | 2 | [android] 3 | target = Google Inc.:Google APIs:23 4 | 5 | [maven_repositories] 6 | central = https://repo1.maven.org/maven2 7 | -------------------------------------------------------------------------------- /src/mobile/.eslintrc.yml: -------------------------------------------------------------------------------- 1 | rules: 2 | import/named: 0 3 | -------------------------------------------------------------------------------- /src/mobile/.gitattributes: -------------------------------------------------------------------------------- 1 | *.pbxproj -text 2 | -------------------------------------------------------------------------------- /src/mobile/.snyk: -------------------------------------------------------------------------------- 1 | # Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities. 2 | version: v1.13.3 3 | ignore: {} 4 | # patches apply the minimum changes required to fix a vulnerability 5 | patch: {} 6 | -------------------------------------------------------------------------------- /src/mobile/.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /src/mobile/.yarnrc: -------------------------------------------------------------------------------- 1 | version-tag-prefix mobile-v 2 | -------------------------------------------------------------------------------- /src/mobile/__mocks__/react-native-device-info.js: -------------------------------------------------------------------------------- 1 | const DeviceInfo = jest.genMockFromModule('react-native-device-info'); 2 | 3 | DeviceInfo.getModel = () => 'mock-device'; 4 | DeviceInfo.getDeviceId = () => 'mock-device-id'; 5 | DeviceInfo.getVersion = () => 'foo'; 6 | DeviceInfo.getBuildNumber = () => 1; 7 | DeviceInfo.getDeviceLocale = () => 'en_UK'; 8 | 9 | export default DeviceInfo; 10 | -------------------------------------------------------------------------------- /src/mobile/__mocks__/theme.js: -------------------------------------------------------------------------------- 1 | import Theme from 'shared-modules/themes/themes'; 2 | 3 | export default Theme.Default; 4 | -------------------------------------------------------------------------------- /src/mobile/__tests__/.eslintrc.yml: -------------------------------------------------------------------------------- 1 | rules: 2 | react/forbid-foreign-prop-types: 0 3 | -------------------------------------------------------------------------------- /src/mobile/android/Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "fastlane" 4 | gem "nokogiri" 5 | 6 | eval_gemfile('./fastlane/Pluginfile') if File.exist?('./fastlane/Pluginfile') 7 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/beta/ic_launcher-web.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/beta/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/beta/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/beta/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/beta/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/beta/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/beta/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/beta/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/beta/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/beta/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/beta/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/beta/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/beta/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/beta/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/beta/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/beta/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/beta/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/ic_launcher-web.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/drawable/background_splash.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/drawable/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/res/drawable/icon.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/debug/res/xml/network_security_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | localhost 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/assets/fonts/Icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/assets/fonts/Icons.ttf -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/assets/fonts/SourceCodePro-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/assets/fonts/SourceCodePro-Medium.ttf -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/assets/fonts/SourceSansPro-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/assets/fonts/SourceSansPro-Bold.ttf -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/assets/fonts/SourceSansPro-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/assets/fonts/SourceSansPro-Light.ttf -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/assets/fonts/SourceSansPro-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/assets/fonts/SourceSansPro-Regular.ttf -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/assets/fonts/SourceSansPro-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/assets/fonts/SourceSansPro-SemiBold.ttf -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/java/org/iota/mobile/Converter.java: -------------------------------------------------------------------------------- 1 | package org.iota.mobile; 2 | 3 | import com.facebook.react.bridge.ReadableArray; 4 | import com.facebook.react.bridge.WritableArray; 5 | import com.facebook.react.bridge.WritableNativeArray; 6 | 7 | 8 | public class Converter { 9 | 10 | public static WritableArray byteArrayToWritableArray(byte[] byteArray) { 11 | WritableArray writableArray = new WritableNativeArray(); 12 | for (int i = 0; i < byteArray.length; i++) { 13 | writableArray.pushInt(byteArray[i]); 14 | } 15 | return writableArray; 16 | } 17 | 18 | public static byte[] readableArrayToByteArray(ReadableArray readableArray) { 19 | byte[] byteArr = new byte[readableArray.size()]; 20 | for (int i = 0; i < readableArray.size(); i++) { 21 | byteArr[i] = (byte)readableArray.getInt(i); 22 | } 23 | return byteArr; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/java/org/iota/mobile/Interface.java: -------------------------------------------------------------------------------- 1 | package org.iota.mobile; 2 | 3 | public class Interface { 4 | public static native String iota_pow_trytes(String trytes, int mwm); 5 | public static native String[] iota_pow_bundle(String[] bundle, String trunk, String branch, int mwm); 6 | public static native String iota_sign_address_gen_trytes(String seed, int index, int security); 7 | public static native byte[] iota_sign_address_gen_trits(byte[] seed, int index, int security); 8 | public static native String iota_sign_signature_gen_trytes(String seed, int index, int security, String bundleHash); 9 | public static native byte[] iota_sign_signature_gen_trits(byte[] seed, int index, int security, byte[] bundleHash); 10 | public static native String iota_digest(String trytes); 11 | } 12 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/jniLibs/arm64-v8a/libdummy.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/jniLibs/arm64-v8a/libdummy.so -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/jniLibs/armeabi-v7a/libdummy.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/jniLibs/armeabi-v7a/libdummy.so -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/jniLibs/x86/libdummy.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/jniLibs/x86/libdummy.so -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/jniLibs/x86_64/libdummy.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/jniLibs/x86_64/libdummy.so -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable/background_splash.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/drawable/icon.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/layout/launch_screen.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 13 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-hdpi/icon.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-mdpi/icon.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-xhdpi/icon.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-xxhdpi/icon.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xxxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/app/src/main/res/mipmap-xxxhdpi/icon.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | #181818 5 | #181818 6 | 7 | #FFFFFF 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #181818 4 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 14 | 17 | 18 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/xml/filepaths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/mobile/android/fastlane/Appfile: -------------------------------------------------------------------------------- 1 | json_key_file("") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one 2 | package_name("com.iota.trinity") # e.g. com.krausefx.app 3 | -------------------------------------------------------------------------------- /src/mobile/android/fastlane/Fastfile: -------------------------------------------------------------------------------- 1 | actions_path 'actions/' 2 | default_platform :android 3 | 4 | def add_bugsnag_api_key(bugsnag_key) 5 | UI.important 'Adding Bugsnag API key' 6 | set_meta_data(attribute: 'com.bugsnag.android.API_KEY', value: bugsnag_key) 7 | end 8 | 9 | lane :release do 10 | package_json = load_json(json_path: '../package.json') 11 | version = package_json['version'] 12 | increment_version_code 13 | increment_version_name(version_name: version) 14 | end 15 | 16 | lane :configure_release do 17 | if is_ci? 18 | add_bugsnag_api_key(ENV['BUGSNAG_API_KEY']) 19 | else 20 | UI.error('This lane should only be run on CI!') 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /src/mobile/android/fastlane/Pluginfile: -------------------------------------------------------------------------------- 1 | # Autogenerated by fastlane 2 | # 3 | # Ensure this file is checked in to source control! 4 | 5 | gem 'fastlane-plugin-load_json' 6 | gem 'fastlane-plugin-increment_version_code' 7 | -------------------------------------------------------------------------------- /src/mobile/android/fastlane/README.md: -------------------------------------------------------------------------------- 1 | fastlane documentation 2 | ================ 3 | # Installation 4 | 5 | Make sure you have the latest version of the Xcode command line tools installed: 6 | 7 | ``` 8 | xcode-select --install 9 | ``` 10 | 11 | Install _fastlane_ using 12 | ``` 13 | [sudo] gem install fastlane -NV 14 | ``` 15 | or alternatively using `brew install fastlane` 16 | 17 | # Available Actions 18 | ### release 19 | ``` 20 | fastlane release 21 | ``` 22 | 23 | ### configure_release 24 | ``` 25 | fastlane configure_release 26 | ``` 27 | 28 | 29 | ---- 30 | 31 | This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run. 32 | More information about fastlane can be found on [fastlane.tools](https://fastlane.tools). 33 | The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools). 34 | -------------------------------------------------------------------------------- /src/mobile/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /src/mobile/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Oct 30 10:26:46 GMT 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-5.4.1-all.zip 7 | -------------------------------------------------------------------------------- /src/mobile/android/keystores/BUCK: -------------------------------------------------------------------------------- 1 | keystore( 2 | name = "debug", 3 | properties = "debug.keystore.properties", 4 | store = "debug.keystore", 5 | visibility = [ 6 | "PUBLIC", 7 | ], 8 | ) 9 | -------------------------------------------------------------------------------- /src/mobile/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 | -------------------------------------------------------------------------------- /src/mobile/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iotaWallet", 3 | "displayName": "iotaWallet" 4 | } 5 | -------------------------------------------------------------------------------- /src/mobile/index.js: -------------------------------------------------------------------------------- 1 | import { AppRegistry } from 'react-native'; 2 | import Wallet from './src/ui/routes/entry'; 3 | import { isAndroid } from './src/libs/device'; 4 | 5 | if (isAndroid) { 6 | // This Intl API is not available in android 7 | // It needs to be polyfilled 8 | require('intl'); 9 | 10 | require('intl/locale-data/jsonp/en-US'); 11 | } 12 | 13 | AppRegistry.registerComponent('iotaWallet', () => Wallet); 14 | -------------------------------------------------------------------------------- /src/mobile/ios/Argon2/Argon2IOS.m: -------------------------------------------------------------------------------- 1 | // 2 | // Argon2IOS.m 3 | // iotaWallet 4 | // 5 | // Created by Rajiv Shah on 7/31/18. 6 | // Copyright © 2018 IOTA Foundation. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface RCT_EXTERN_MODULE(Argon2IOS, NSObject) 13 | // Export hash method to RN 14 | RCT_EXTERN_METHOD(hash:(NSArray*)password salt:(NSString *)salt params:(NSDictionary *)params resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject); 15 | 16 | // Create a GCD queue for Argon2 17 | -(dispatch_queue_t)methodQueue 18 | { 19 | return dispatch_queue_create("com.iota.trinity.Argon2IOS", DISPATCH_QUEUE_SERIAL); 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /src/mobile/ios/Config/buildnumber.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // buildnumber.xcconfig 3 | // iotaWallet 4 | // 5 | // Created by Rajiv Shah on 11/9/17. 6 | // Copyright © 2017 Facebook. All rights reserved. 7 | // 8 | BUILD_NUMBER = 1 9 | -------------------------------------------------------------------------------- /src/mobile/ios/Config/iotaWallet-debug-config.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // iotaWallet-debug-config.xcconfig 3 | // iotaWallet 4 | // 5 | // Created by Rajiv Shah on 11/9/17. 6 | // Copyright © 2017 Facebook. All rights reserved. 7 | // 8 | #include "buildnumber.xcconfig" 9 | #include "../Pods/Target Support Files/Pods-iotaWallet/Pods-iotaWallet.debug.xcconfig" 10 | -------------------------------------------------------------------------------- /src/mobile/ios/Config/iotaWallet-release-config.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // iotaWallet-release-config.xcconfig 3 | // iotaWallet 4 | // 5 | // Created by Rajiv Shah on 11/9/17. 6 | // Copyright © 2017 Facebook. All rights reserved. 7 | // 8 | #include "buildnumber.xcconfig" 9 | #include "../Pods/Target Support Files/Pods-iotaWallet/Pods-iotaWallet.release.xcconfig" 10 | -------------------------------------------------------------------------------- /src/mobile/ios/Config/iotaWalletTests-debug-config.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // iotaWalletTests-debug-config.xcconfig 3 | // iotaWalletTests 4 | // 5 | // Created by Rajiv Shah on 11/9/17. 6 | // Copyright © 2017 Facebook. All rights reserved. 7 | // 8 | #include "buildnumber.xcconfig" 9 | #include "../Pods/Target Support Files/Pods-iotaWalletTests/Pods-iotaWalletTests.debug.xcconfig" 10 | -------------------------------------------------------------------------------- /src/mobile/ios/Config/iotaWalletTests-release-config.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // iotaWalletTests-release-config.xcconfig 3 | // iotaWalletTests 4 | // 5 | // Created by Rajiv Shah on 11/9/17. 6 | // Copyright © 2017 Facebook. All rights reserved. 7 | // 8 | #include "buildnumber.xcconfig" 9 | #include "../Pods/Target Support Files/Pods-iotaWalletTests/Pods-iotaWalletTests.release.xcconfig" 10 | -------------------------------------------------------------------------------- /src/mobile/ios/EntangledIOS/EntangledIOS.h: -------------------------------------------------------------------------------- 1 | // 2 | // EntangledIOS.h 3 | // iotaWallet 4 | // 5 | // Created by Rajiv Shah on 4/6/18. 6 | // 7 | 8 | #import 9 | #import 10 | #import 11 | 12 | @interface EntangledIOS: NSObject 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /src/mobile/ios/EntangledIOS/EntangledKit.framework/EntangledKit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/EntangledIOS/EntangledKit.framework/EntangledKit -------------------------------------------------------------------------------- /src/mobile/ios/EntangledIOS/EntangledKit.framework/Headers/EntangledKit.h: -------------------------------------------------------------------------------- 1 | #import "Interface.h" 2 | -------------------------------------------------------------------------------- /src/mobile/ios/EntangledIOS/EntangledKit.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module EntangledKit { 2 | umbrella header "EntangledKit.h" 3 | export * 4 | module * { export * } 5 | } 6 | -------------------------------------------------------------------------------- /src/mobile/ios/EntangledIOS/bindings.h: -------------------------------------------------------------------------------- 1 | // 2 | // bindings.h 3 | // iotaWallet 4 | // 5 | // Created by Rajiv Shah on 4/6/18. 6 | // Copyright © 2018 IOTA Foundation. All rights reserved. 7 | // 8 | #ifndef __MOBILE_INTERFACE_BINDINGS_H_ 9 | #define __MOBILE_INTERFACE_BINDINGS_H_ 10 | 11 | #include 12 | 13 | #ifdef __cplusplus 14 | extern "C" { 15 | #endif 16 | 17 | char* do_pow(const char* trytes, int mwm); 18 | char* generate_address(const char* seed, const size_t index, 19 | const size_t security); 20 | char* generate_signature(const char* seed, const size_t index, 21 | const size_t security, const char* bundleHash); 22 | 23 | #ifdef __cplusplus 24 | } 25 | #endif 26 | 27 | #endif /* bindings_h */ 28 | -------------------------------------------------------------------------------- /src/mobile/ios/Gemfile: -------------------------------------------------------------------------------- 1 | # Autogenerated by fastlane 2 | # 3 | # Ensure this file is checked in to source control! 4 | 5 | source 'https://rubygems.org' 6 | 7 | gem 'cocoapods', '~> 1.10' 8 | gem 'fastlane' 9 | 10 | eval_gemfile('./fastlane/Pluginfile') if File.exist?('./fastlane/Pluginfile') 11 | -------------------------------------------------------------------------------- /src/mobile/ios/NativeUtils/NativeUtilsIOS.m: -------------------------------------------------------------------------------- 1 | // 2 | // NativeUtilsIOS.m 3 | // iotaWallet 4 | // 5 | // Created by Rajiv Shah on 3/27/20. 6 | // Copyright © 2020 IOTA Foundation. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface RCT_EXTERN_MODULE(NativeUtilsIOS, NSObject) 13 | 14 | RCT_EXTERN_METHOD(getSystemUptime:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject); 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /src/mobile/ios/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | install! 'cocoapods', :disable_input_output_paths => true 5 | 6 | target 'iotaWallet' do 7 | # Uncomment the next line if you're using Swift or would like to use dynamic frameworks 8 | use_frameworks! 9 | pod 'CatCrypto', :git => 'https://github.com/rajivshah3/CatCrypto.git', :branch => 'trinity' 10 | 11 | target 'iotaWalletTests' do 12 | inherit! :search_paths 13 | # Pods for testing 14 | end 15 | 16 | end 17 | 18 | target 'iotaWallet-tvOS' do 19 | # Uncomment the next line if you're using Swift or would like to use dynamic frameworks 20 | # use_frameworks! 21 | 22 | # Pods for iotaWallet-tvOS 23 | 24 | target 'iotaWallet-tvOSTests' do 25 | inherit! :search_paths 26 | # Pods for testing 27 | end 28 | 29 | end 30 | -------------------------------------------------------------------------------- /src/mobile/ios/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - CatCrypto (0.3.0) 3 | 4 | DEPENDENCIES: 5 | - CatCrypto (from `https://github.com/rajivshah3/CatCrypto.git`, branch `trinity`) 6 | 7 | EXTERNAL SOURCES: 8 | CatCrypto: 9 | :branch: trinity 10 | :git: https://github.com/rajivshah3/CatCrypto.git 11 | 12 | CHECKOUT OPTIONS: 13 | CatCrypto: 14 | :commit: d0eb6e13f19f99144fec8be1455d5a0c0f20a0ad 15 | :git: https://github.com/rajivshah3/CatCrypto.git 16 | 17 | SPEC CHECKSUMS: 18 | CatCrypto: 7e3a6e0a03b699845b38cdc09d34a8127466c5e0 19 | 20 | PODFILE CHECKSUM: 9e2398d883f05de98fa19bdcb8253c52dc792396 21 | 22 | COCOAPODS: 1.10.0 23 | -------------------------------------------------------------------------------- /src/mobile/ios/SourceSansPro-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/SourceSansPro-Bold.ttf -------------------------------------------------------------------------------- /src/mobile/ios/SourceSansPro-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/SourceSansPro-Light.ttf -------------------------------------------------------------------------------- /src/mobile/ios/SourceSansPro-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/SourceSansPro-Regular.ttf -------------------------------------------------------------------------------- /src/mobile/ios/ar.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/ar.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/cs.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* (No Comment) */ 2 | "CFBundleDisplayName" = "Trinity"; 3 | 4 | /* (No Comment) */ 5 | "CFBundleName" = "$(PRODUCT_NAME)"; 6 | 7 | /* (No Comment) */ 8 | "NSCameraUsageDescription" = "Trinity potřebuje přístup k fotoaparátu, aby jste mohli skenovat QR kód."; 9 | 10 | /* (No Comment) */ 11 | "NSFaceIDUsageDescription" = "Trinity potřebuje přístup k identifikaci tváří pro aktivaci biometrické autentizace."; 12 | 13 | /* (No Comment) */ 14 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. Všechna práva vyhrazena."; 15 | 16 | -------------------------------------------------------------------------------- /src/mobile/ios/cs.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/da.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* (No Comment) */ 2 | "CFBundleDisplayName" = "Trinity"; 3 | 4 | /* (No Comment) */ 5 | "CFBundleName" = "$(PRODUCT_NAME)"; 6 | 7 | /* (No Comment) */ 8 | "NSCameraUsageDescription" = "Trinity kræver adgang til kameraet for at aktivere QR scanning."; 9 | 10 | /* (No Comment) */ 11 | "NSFaceIDUsageDescription" = "Trinity kræver adgang til ansigt-ID for at aktivere biometriske godkendelse."; 12 | 13 | /* (No Comment) */ 14 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. Alle rettigheder forbeholdes."; 15 | 16 | -------------------------------------------------------------------------------- /src/mobile/ios/da.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/de.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/de.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/el.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/el.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/en.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/es-419.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/es-419.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/es.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* (No Comment) */ 2 | "CFBundleDisplayName" = "Trinity"; 3 | 4 | /* (No Comment) */ 5 | "CFBundleName" = "$(PRODUCT_NAME)"; 6 | 7 | /* (No Comment) */ 8 | "NSCameraUsageDescription" = "Trinity requiere acceso a la cámara para activar el escaneo de QR."; 9 | 10 | /* (No Comment) */ 11 | "NSFaceIDUsageDescription" = "Trinity requiere acceso a Face ID para activar la autenticación biométrica."; 12 | 13 | /* (No Comment) */ 14 | "NSHumanReadableCopyright" = "Fundación IOTA 2018. Todos los derechos reservados."; 15 | 16 | -------------------------------------------------------------------------------- /src/mobile/ios/es.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/fastlane/Deliverfile: -------------------------------------------------------------------------------- 1 | # The Deliverfile allows you to store various App Store Connect metadata 2 | # For more information, check out the docs 3 | # https://docs.fastlane.tools/actions/deliver/ 4 | 5 | app_identifier 'com.iota.trinity' 6 | skip_binary_upload true 7 | skip_screenshots true 8 | skip_metadata false 9 | skip_app_version_update true 10 | submit_for_review false 11 | precheck_include_in_app_purchases false 12 | -------------------------------------------------------------------------------- /src/mobile/ios/fastlane/Pluginfile: -------------------------------------------------------------------------------- 1 | # Autogenerated by fastlane 2 | # 3 | # Ensure this file is checked in to source control! 4 | 5 | gem 'fastlane-plugin-bugsnag' 6 | gem 'fastlane-plugin-load_json' 7 | gem 'fastlane-plugin-localization' 8 | gem 'fastlane-plugin-clean_testflight_testers' 9 | -------------------------------------------------------------------------------- /src/mobile/ios/fastlane/metadata/en-GB/description.txt: -------------------------------------------------------------------------------- 1 | The Trinity wallet is a new, user-friendly wallet for IOTA. IOTA is a distributed ledger technology that is feeless, decentralised, and scalable. 2 | 3 | Application features include: 4 | 5 | - State-of-the-art security 6 | - Multi-account management 7 | - Pricing and chart data 8 | - Biometric login 9 | - Automatic node selection 10 | - Auto-reattachment and promotion 11 | 12 | For help, please refer to https://docs.iota.org/trinity 13 | -------------------------------------------------------------------------------- /src/mobile/ios/fastlane/metadata/en-GB/keywords.txt: -------------------------------------------------------------------------------- 1 | IOTA, Tangle, Ledger, Trinity, Token, Wallet, DLT 2 | -------------------------------------------------------------------------------- /src/mobile/ios/fastlane/metadata/en-GB/name.txt: -------------------------------------------------------------------------------- 1 | Trinity Wallet 2 | -------------------------------------------------------------------------------- /src/mobile/ios/fastlane/metadata/en-GB/promotional_text.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/fastlane/metadata/en-GB/release_notes.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/fastlane/metadata/en-GB/subtitle.txt: -------------------------------------------------------------------------------- 1 | The user-friendly IOTA wallet 2 | -------------------------------------------------------------------------------- /src/mobile/ios/fastlane/metadata/en-GB/support_url.txt: -------------------------------------------------------------------------------- 1 | https://docs.iota.org/trinity 2 | -------------------------------------------------------------------------------- /src/mobile/ios/fi.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* (No Comment) */ 2 | "CFBundleDisplayName" = "Trinity"; 3 | 4 | /* (No Comment) */ 5 | "CFBundleName" = "$(PRODUCT_NAME)"; 6 | 7 | /* (No Comment) */ 8 | "NSCameraUsageDescription" = "Trinity tarvitsee käyttöoikeuden kameraasi, jotta QR-skannausta voidaan käyttää."; 9 | 10 | /* (No Comment) */ 11 | "NSFaceIDUsageDescription" = "Trinity tarvitsee käyttöoikeuden FACE ID -asetuksiin, jotta kasvontunnistus voidaan aktivoida."; 12 | 13 | /* (No Comment) */ 14 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 15 | 16 | -------------------------------------------------------------------------------- /src/mobile/ios/fi.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/fr.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/fr.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/he.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/he.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/hi.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/hi.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/id.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/id.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet-tvOSTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.6.2 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 108 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/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 | 12 | @interface AppDelegate : UIResponder 13 | 14 | @property (nonatomic, strong) UIWindow *window; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Empty.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Empty.swift 3 | // iotaWallet 4 | // 5 | // Created by Rajiv Shah on 6/19/18. 6 | // Copyright © 2018 IOTA Foundation. All rights reserved. 7 | // 8 | // Do not delete this file! 9 | // It is necessary in order to mitigate a linker error in Xcode 10 | -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@2x-1.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@1x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@1x-1.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x-1.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x-1.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-1024@1x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-20@2x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-20@3x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-29@2x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-29@3x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-40@2x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-40@3x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-60@2x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/AppIconBeta.appiconset/icon-ios-60@3x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "iota-logo-white.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "iota-logo-white_2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "iota-logo-white_3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/LaunchImage.imageset/iota-logo-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/LaunchImage.imageset/iota-logo-white.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/LaunchImage.imageset/iota-logo-white_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/LaunchImage.imageset/iota-logo-white_2x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/LaunchImage.imageset/iota-logo-white_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/LaunchImage.imageset/iota-logo-white_3x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "minimum-system-version" : "7.0", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "orientation" : "portrait", 11 | "idiom" : "iphone", 12 | "minimum-system-version" : "7.0", 13 | "subtype" : "retina4", 14 | "scale" : "2x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/SplashIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "iota-logo-white.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "iota-logo-white_2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "iota-logo-white_3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/SplashIcon.imageset/iota-logo-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/SplashIcon.imageset/iota-logo-white.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/SplashIcon.imageset/iota-logo-white_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/SplashIcon.imageset/iota-logo-white_2x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/Images.xcassets/SplashIcon.imageset/iota-logo-white_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/mobile/ios/iotaWallet/Images.xcassets/SplashIcon.imageset/iota-logo-white_3x.png -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/iotaWallet-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/iotaWallet.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.default-data-protection 6 | NSFileProtectionComplete 7 | com.apple.developer.icloud-container-identifiers 8 | 9 | com.apple.developer.ubiquity-kvstore-identifier 10 | $(TeamIdentifierPrefix)$(CFBundleIdentifier) 11 | keychain-access-groups 12 | 13 | $(AppIdentifierPrefix)org.reactjs.native.example.iotaWallet 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/mobile/ios/iotaWallet/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 | -------------------------------------------------------------------------------- /src/mobile/ios/iotaWalletTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.6.2 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 108 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/mobile/ios/iotaWalletUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.6.2 19 | CFBundleVersion 20 | 108 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/mobile/ios/it.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/it.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/ja.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* (No Comment) */ 2 | "CFBundleDisplayName" = "Trinity"; 3 | 4 | /* (No Comment) */ 5 | "CFBundleName" = "$(PRODUCT_NAME)"; 6 | 7 | /* (No Comment) */ 8 | "NSCameraUsageDescription" = "QRコード読込を有効にするには、カメラへのアクセスが必要です。"; 9 | 10 | /* (No Comment) */ 11 | "NSFaceIDUsageDescription" = "生体認証を有効にするには、Face IDへのアクセスが必要です。"; 12 | 13 | /* (No Comment) */ 14 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 15 | 16 | -------------------------------------------------------------------------------- /src/mobile/ios/ja.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/ko.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/ko.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/lv.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/lv.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/nb.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/nb.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/nl.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* (No Comment) */ 2 | "CFBundleDisplayName" = "Trinity"; 3 | 4 | /* (No Comment) */ 5 | "CFBundleName" = "$(PRODUCT_NAME)"; 6 | 7 | /* (No Comment) */ 8 | "NSCameraUsageDescription" = "Trinity heeft toegang tot de camera nodig voor QR-scannen."; 9 | 10 | /* (No Comment) */ 11 | "NSFaceIDUsageDescription" = "Trinity heeft toegang tot Face ID nodig voor biometrische verificatie."; 12 | 13 | /* (No Comment) */ 14 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. Alle rechten voorbehouden."; 15 | 16 | -------------------------------------------------------------------------------- /src/mobile/ios/nl.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/pl.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* (No Comment) */ 2 | "CFBundleDisplayName" = "Trinity"; 3 | 4 | /* (No Comment) */ 5 | "CFBundleName" = "$(PRODUCT_NAME)"; 6 | 7 | /* (No Comment) */ 8 | "NSCameraUsageDescription" = "Trinity wymaga dostępu do kamery, aby umożliwić skanowanie kodów QR."; 9 | 10 | /* (No Comment) */ 11 | "NSFaceIDUsageDescription" = "Trinity wymaga dostępu do Face ID, aby aktywować uwierzytelnianie biometryczne."; 12 | 13 | /* (No Comment) */ 14 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. Wszelkie prawa zastrzeżone."; 15 | 16 | -------------------------------------------------------------------------------- /src/mobile/ios/pl.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/pt-BR.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/pt-BR.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/pt-PT.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/pt-PT.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/ro.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/ro.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/ru.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/ru.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/sk.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* (No Comment) */ 2 | "CFBundleDisplayName" = "Trinity"; 3 | 4 | /* (No Comment) */ 5 | "CFBundleName" = "$(PRODUCT_NAME)"; 6 | 7 | /* (No Comment) */ 8 | "NSCameraUsageDescription" = "Trinity potrebuje prístup k fotoaparátu, aby ste mohli skenovať QR kód."; 9 | 10 | /* (No Comment) */ 11 | "NSFaceIDUsageDescription" = "Trinity potrebuje prístup k identifikácii tvárou pre aktiváciu biometrické autentizácie."; 12 | 13 | /* (No Comment) */ 14 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. Všetky práva vyhradené."; 15 | 16 | -------------------------------------------------------------------------------- /src/mobile/ios/sk.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/sl.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/sl.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/sv.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* (No Comment) */ 2 | "CFBundleDisplayName" = "Trinity"; 3 | 4 | /* (No Comment) */ 5 | "CFBundleName" = "$(PRODUCT_NAME)"; 6 | 7 | /* (No Comment) */ 8 | "NSCameraUsageDescription" = "Trinity kräver åtkomst till kameran för att aktivera QR skanning."; 9 | 10 | /* (No Comment) */ 11 | "NSFaceIDUsageDescription" = "Trinity kräver åtkomst till Face ID för att aktivera biometrisk autentisering."; 12 | 13 | /* (No Comment) */ 14 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 15 | 16 | -------------------------------------------------------------------------------- /src/mobile/ios/sv.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/tr.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/tr.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/ur.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/ur.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/zh-Hans.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* (No Comment) */ 2 | "CFBundleDisplayName" = "Trinity"; 3 | 4 | /* (No Comment) */ 5 | "CFBundleName" = "$(PRODUCT_NAME)"; 6 | 7 | /* (No Comment) */ 8 | "NSCameraUsageDescription" = "Trinity 需要访问相机权限以启用二维码扫描功能。"; 9 | 10 | /* (No Comment) */ 11 | "NSFaceIDUsageDescription" = "Trinity需要访问Face ID权限以启用生物特征认功能。"; 12 | 13 | /* (No Comment) */ 14 | "NSHumanReadableCopyright" = "2018 IOTA 基金会。保留所有权利。"; 15 | 16 | -------------------------------------------------------------------------------- /src/mobile/ios/zh-Hans.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/ios/zh-Hant.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | iotaWallet 4 | 5 | Created by Rajiv Shah on 3/24/18. 6 | Copyright © 2018 IOTA Foundation. All rights reserved. 7 | */ 8 | "NSHumanReadableCopyright" = "2018 IOTA Foundation. All rights reserved."; 9 | "NSCameraUsageDescription" = "Trinity requires access to the camera in order to enable QR scanning."; 10 | "NSFaceIDUsageDescription" = "Trinity requires access to Face ID in order to enable biometric authentication."; 11 | 12 | -------------------------------------------------------------------------------- /src/mobile/ios/zh-Hant.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/mobile/nodejs-assets/nodejs-project/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nodejs-project", 3 | "version": "1.0.0", 4 | "description": "Trinity nodejs-assets", 5 | "main": "main.js", 6 | "dependencies": { 7 | "argon2": "^0.19.3", 8 | "kdbxweb": "^1.2.4" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/mobile/patches/buffer+4.9.1.patch: -------------------------------------------------------------------------------- 1 | diff --git a/node_modules/buffer/index.js b/node_modules/buffer/index.js 2 | index 0fcd80a..a205935 100644 3 | --- a/node_modules/buffer/index.js 4 | +++ b/node_modules/buffer/index.js 5 | @@ -1054,7 +1054,8 @@ function utf16leSlice (buf, start, end) { 6 | return res 7 | } 8 | 9 | -Buffer.prototype.slice = function slice (start, end) { 10 | +if (!Buffer.prototype.slice) { 11 | +Object.defineProperty(Buffer.prototype, 'slice', function slice (start, end) { 12 | var len = this.length 13 | start = ~~start 14 | end = end === undefined ? len : ~~end 15 | @@ -1088,6 +1089,7 @@ Buffer.prototype.slice = function slice (start, end) { 16 | } 17 | 18 | return newBuf 19 | +}); 20 | } 21 | 22 | /* 23 | -------------------------------------------------------------------------------- /src/mobile/patches/react-native-camera+1.5.1.patch: -------------------------------------------------------------------------------- 1 | diff --git a/node_modules/react-native-camera/ios/RN/RNCamera.m b/node_modules/react-native-camera/ios/RN/RNCamera.m 2 | index 603849a..5f6d631 100644 3 | --- a/node_modules/react-native-camera/ios/RN/RNCamera.m 4 | +++ b/node_modules/react-native-camera/ios/RN/RNCamera.m 5 | @@ -295,7 +295,7 @@ - (void)updateZoom { 6 | return; 7 | } 8 | 9 | - device.videoZoomFactor = (device.activeFormat.videoMaxZoomFactor - 1.0) * self.zoom + 1.0; 10 | + device.videoZoomFactor = MIN(MAX(self.zoom, 1), device.activeFormat.videoMaxZoomFactor); 11 | 12 | [device unlockForConfiguration]; 13 | } 14 | -------------------------------------------------------------------------------- /src/mobile/patches/react-native-document-picker+3.3.2.patch: -------------------------------------------------------------------------------- 1 | diff --git a/node_modules/react-native-document-picker/index.js b/node_modules/react-native-document-picker/index.js 2 | index c87eb62..95ab12c 100644 3 | --- a/node_modules/react-native-document-picker/index.js 4 | +++ b/node_modules/react-native-document-picker/index.js 5 | @@ -2,7 +2,7 @@ 6 | import { Platform, NativeModules } from 'react-native'; 7 | const { RNDocumentPicker } = NativeModules; 8 | 9 | -if (!RNDocumentPicker) { 10 | +if (!RNDocumentPicker && process.env.NODE_ENV !== 'test') { 11 | // Use a timeout to ensure the warning is displayed in the YellowBox 12 | setTimeout(() => { 13 | console.warn( 14 | -------------------------------------------------------------------------------- /src/mobile/rn-cli.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const metroBlacklist = require('metro-config/src/defaults/blacklist'); 3 | 4 | const alternateRoots = [path.join(__dirname, '../shared')]; 5 | const blacklist = metroBlacklist([ 6 | /nodejs-assets\/.*/, 7 | /android\/build\/.*/, 8 | /android\/app\/build\/.*/, 9 | /ios\/build\/.*/, 10 | ]); 11 | 12 | module.exports = { 13 | watchFolders: alternateRoots, 14 | resolver: { 15 | blacklistRE: blacklist, 16 | extraNodeModules: { 17 | 'react-native': path.resolve(__dirname, 'node_modules/react-native'), 18 | }, 19 | }, 20 | transformer: { 21 | getTransformOptions: async () => ({ 22 | transform: { 23 | experimentalImportSupport: false, 24 | inlineRequires: false, 25 | }, 26 | }), 27 | }, 28 | }; 29 | -------------------------------------------------------------------------------- /src/mobile/safetynet.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # fail if any commands fail 3 | set -e 4 | 5 | # Add SafetyNet API key to utils/safetynet.js 6 | cat src/libs/safetynet.js | sed -e "s/fakeAPIkey/$SAFETYNET_KEY/" | tee src/libs/safetynet.js 7 | -------------------------------------------------------------------------------- /src/mobile/scripts/build-entangled-android.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | out=bazel-bin/mobile/android 4 | url=https://github.com/iotaledger/entangled 5 | branch=develop 6 | 7 | for i in '$@' ; do 8 | if [[ $i == '--clean' ]] ; then 9 | bazel clean 10 | fi 11 | done 12 | 13 | if [ -d entangled ]; then 14 | cd entangled 15 | 16 | git fetch origin $branch && git checkout $branch && git submodule update --recursive 17 | else 18 | git clone $url && cd entangled && git checkout $branch && git submodule update --init --recursive 19 | fi 20 | 21 | if [ $? -eq '0' ]; then 22 | bazel build --fat_apk_cpu='armeabi-v7a,arm64-v8a,x86,x86_64' --copt=-O3 //mobile/android:dummy 23 | 24 | echo A | unzip $out/dummy.apk -d $out/dummy && cp -r $out/dummy/lib/ ../../android/app/src/main/jniLibs 25 | fi 26 | -------------------------------------------------------------------------------- /src/mobile/src/libs/SeedStore/index.js: -------------------------------------------------------------------------------- 1 | import Keychain from './Keychain'; 2 | 3 | export default { 4 | keychain: Keychain, 5 | }; 6 | -------------------------------------------------------------------------------- /src/mobile/src/libs/bugsnag.js: -------------------------------------------------------------------------------- 1 | import { Client, Configuration } from 'bugsnag-react-native'; 2 | import packageJson from '../../package.json'; 3 | 4 | const configuration = new Configuration(); 5 | configuration.appVersion = packageJson.version; 6 | 7 | export const bugsnag = new Client(configuration); 8 | 9 | /** 10 | * Leaves navigation breadcrumbs to help determine what screen an error occurred on 11 | * If an error occurs, the most recent breadcrumbs are attached along with the crash report 12 | * @param {string} component Component name 13 | */ 14 | export const leaveNavigationBreadcrumb = (component) => { 15 | bugsnag.leaveBreadcrumb('Navigated to ' + component, { 16 | type: 'navigation', 17 | component: component, 18 | }); 19 | }; 20 | -------------------------------------------------------------------------------- /src/mobile/src/libs/dimensions.js: -------------------------------------------------------------------------------- 1 | import { Dimensions } from 'react-native'; 2 | import ExtraDimensions from 'react-native-extra-dimensions-android'; 3 | import { isAndroid, isIPhoneX } from 'libs/device'; 4 | 5 | global.height = isAndroid 6 | ? ExtraDimensions.get('REAL_WINDOW_HEIGHT') - ExtraDimensions.get('SOFT_MENU_BAR_HEIGHT') 7 | : Dimensions.get('window').height; 8 | 9 | // StatusBar area where we avoid drawing 10 | const iPhoneXTop = 44; 11 | // Area below tabs where we avoid drawing 12 | const iPhoneXBottom = 34; 13 | 14 | if (isIPhoneX) { 15 | global.height -= iPhoneXTop + iPhoneXBottom; 16 | } 17 | 18 | export const width = Dimensions.get('window').width; 19 | export const height = global.height; 20 | -------------------------------------------------------------------------------- /src/mobile/src/libs/safetynet.js: -------------------------------------------------------------------------------- 1 | import { isPlayServicesAvailable, generateNonce, sendAndVerifyAttestation } from 'react-native-google-safetynet'; 2 | 3 | // NOTE: This is a fake API key, thus SafetyNet attestation may fail even if the device is not rooted 4 | // It is replaced by the correct API key during the deployment process 5 | const API_KEY = 'fakeAPIkey'; 6 | 7 | /** 8 | * Send an attestation request to SafetyNet 9 | * @return {Promise} 10 | */ 11 | const doAttestationFromSafetyNet = () => { 12 | return isPlayServicesAvailable() 13 | .then((result) => { 14 | if (result === true) { 15 | return generateNonce(24); 16 | } 17 | 18 | throw new Error('play services not available.'); 19 | }) 20 | .then((nonce) => sendAndVerifyAttestation(nonce, API_KEY)); 21 | }; 22 | 23 | export default doAttestationFromSafetyNet; 24 | -------------------------------------------------------------------------------- /src/mobile/src/ui/components/Letter.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { Text } from 'react-native'; 4 | 5 | const Letter = (props) => { 6 | const { children, spacing, textStyle } = props; 7 | 8 | const letterStyles = [textStyle, { paddingRight: spacing }]; 9 | 10 | return {children}; 11 | }; 12 | 13 | Letter.propTypes = { 14 | /** Letter children content */ 15 | children: PropTypes.string.isRequired, 16 | /** Letter spacing */ 17 | spacing: PropTypes.number.isRequired, 18 | /** Letter text styles */ 19 | textStyle: PropTypes.array, 20 | }; 21 | 22 | export default Letter; 23 | -------------------------------------------------------------------------------- /src/mobile/src/ui/components/WithStatusBar.js: -------------------------------------------------------------------------------- 1 | import React, { PureComponent } from 'react'; 2 | import { View } from 'react-native'; 3 | import DynamicStatusBar from 'ui/components/DynamicStatusBar'; 4 | 5 | export default function withStatusBar(WrappedComponent) { 6 | class EnhancedComponent extends PureComponent { 7 | render() { 8 | return ( 9 | 10 | 11 | 12 | 13 | ); 14 | } 15 | } 16 | 17 | return EnhancedComponent; 18 | } 19 | -------------------------------------------------------------------------------- /src/mobile/src/ui/theme/fonts.js: -------------------------------------------------------------------------------- 1 | export default { 2 | primary: 'SourceSansPro-Bold', 3 | secondary: 'SourceSansPro-Regular', 4 | tertiary: 'SourceSansPro-Light', 5 | }; 6 | -------------------------------------------------------------------------------- /src/mobile/src/ui/theme/icons.js: -------------------------------------------------------------------------------- 1 | import { createIconSet } from 'react-native-vector-icons'; 2 | import icons from 'shared-modules/icons/icons'; 3 | 4 | const Icon = createIconSet(icons, 'Icons'); 5 | 6 | export default Icon; 7 | -------------------------------------------------------------------------------- /src/mobile/testConfig.js: -------------------------------------------------------------------------------- 1 | import { configure } from 'enzyme'; 2 | import Adapter from 'enzyme-adapter-react-16'; 3 | import { i18nextInit } from 'shared-modules/libs/i18next'; 4 | 5 | configure({ adapter: new Adapter() }); 6 | i18nextInit(); 7 | -------------------------------------------------------------------------------- /src/shared/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/preset-env" 4 | ], 5 | "plugins": [ 6 | "@babel/plugin-proposal-object-rest-spread", 7 | "@babel/plugin-transform-react-jsx", 8 | "@babel/plugin-syntax-dynamic-import", 9 | "@babel/plugin-syntax-import-meta", 10 | "@babel/plugin-proposal-class-properties", 11 | "@babel/plugin-proposal-json-strings", 12 | [ 13 | "@babel/plugin-proposal-decorators", 14 | { 15 | "legacy": true 16 | } 17 | ], 18 | "@babel/plugin-proposal-function-sent", 19 | "@babel/plugin-proposal-export-namespace-from", 20 | "@babel/plugin-proposal-numeric-separator", 21 | "@babel/plugin-proposal-throw-expressions" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /src/shared/.eslintrc.yml: -------------------------------------------------------------------------------- 1 | rules: 2 | import/no-useless-path-segments: 0 3 | -------------------------------------------------------------------------------- /src/shared/.snyk: -------------------------------------------------------------------------------- 1 | # Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities. 2 | version: v1.14.1 3 | # ignores vulnerabilities until expiry date; change duration by modifying expiry date 4 | ignore: 5 | 'npm:chownr:20180731': 6 | - '*': 7 | reason: Fix is not available 8 | expires: 2019-03-31T00:00:00.000Z 9 | # patches apply the minimum changes required to fix a vulnerability 10 | patch: 11 | SNYK-JS-AXIOS-174505: 12 | - figma-parser > axios: 13 | patched: '2019-05-05T21:43:37.166Z' 14 | -------------------------------------------------------------------------------- /src/shared/__tests__/__samples__/accounts.js: -------------------------------------------------------------------------------- 1 | import { addressData } from './addresses'; 2 | import transactions from './transactions'; 3 | 4 | export const NAME = 'TEST'; 5 | export const TYPE = 'ledger'; 6 | 7 | export default { 8 | onboardingComplete: true, 9 | accountInfo: { 10 | [NAME]: { 11 | addressData, 12 | transactions, 13 | meta: { type: TYPE }, 14 | }, 15 | }, 16 | setupInfo: { 17 | [NAME]: { 18 | usedExistingSeed: true, 19 | }, 20 | }, 21 | tasks: { 22 | [NAME]: { 23 | displayedSnapshotTransitionGuide: true, 24 | }, 25 | }, 26 | }; 27 | -------------------------------------------------------------------------------- /src/shared/__tests__/beforeAll.spec.js: -------------------------------------------------------------------------------- 1 | import { i18nextInit } from '../libs/i18next'; 2 | 3 | beforeEach(async () => { 4 | /** 5 | * Initialize i18next 6 | */ 7 | await i18nextInit(); 8 | }); 9 | -------------------------------------------------------------------------------- /src/shared/actions/home.js: -------------------------------------------------------------------------------- 1 | import { HomeActionTypes } from '../types'; 2 | 3 | /** 4 | * Dispatch to set active home screen route for mobile 5 | * 6 | * @method changeHomeScreenRoute 7 | * @param {string} payload 8 | * 9 | * @returns {{type: {string}, payload: {string} }} 10 | */ 11 | export const changeHomeScreenRoute = (payload) => ({ 12 | type: HomeActionTypes.CHANGE_HOME_SCREEN_CHILD_ROUTE, 13 | payload, 14 | }); 15 | 16 | /** 17 | * Dispatch to show/hide dashboard top bar on mobile 18 | * 19 | * @method toggleTopBarDisplay 20 | * 21 | * @returns {{type: {string} }} 22 | */ 23 | export const toggleTopBarDisplay = () => ({ 24 | type: HomeActionTypes.TOGGLE_TOP_BAR_DISPLAY, 25 | }); 26 | -------------------------------------------------------------------------------- /src/shared/custom-fonts/SourceCodePro-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/custom-fonts/SourceCodePro-Medium.ttf -------------------------------------------------------------------------------- /src/shared/custom-fonts/SourceSansPro-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/custom-fonts/SourceSansPro-Bold.ttf -------------------------------------------------------------------------------- /src/shared/custom-fonts/SourceSansPro-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/custom-fonts/SourceSansPro-Light.ttf -------------------------------------------------------------------------------- /src/shared/custom-fonts/SourceSansPro-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/custom-fonts/SourceSansPro-Regular.ttf -------------------------------------------------------------------------------- /src/shared/custom-fonts/SourceSansPro-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/custom-fonts/SourceSansPro-SemiBold.ttf -------------------------------------------------------------------------------- /src/shared/custom-fonts/icons/Linearicons-Free.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/custom-fonts/icons/Linearicons-Free.eot -------------------------------------------------------------------------------- /src/shared/custom-fonts/icons/Linearicons-Free.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/custom-fonts/icons/Linearicons-Free.ttf -------------------------------------------------------------------------------- /src/shared/custom-fonts/icons/Linearicons-Free.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/custom-fonts/icons/Linearicons-Free.woff -------------------------------------------------------------------------------- /src/shared/custom-fonts/icons/Linearicons-Free.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/custom-fonts/icons/Linearicons-Free.woff2 -------------------------------------------------------------------------------- /src/shared/icons/Icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/icons/Icons.ttf -------------------------------------------------------------------------------- /src/shared/icons/icons/arrowDown.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/arrowLeft.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/arrowRight.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/arrowUp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/attention.svg: -------------------------------------------------------------------------------- 1 | Warning2 -------------------------------------------------------------------------------- /src/shared/icons/icons/bookmark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/copy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/cross.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/edit.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/key.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/logout.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /src/shared/icons/icons/node.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/password.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /src/shared/icons/icons/plusAlt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 1024-Plus 7 | 9 | 10 | -------------------------------------------------------------------------------- /src/shared/icons/icons/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /src/shared/icons/icons/send.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/snapshot.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/sync.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/tick.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/tickRound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/icons/icons/user.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/shared/images/checkbox-checked-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/images/checkbox-checked-black.png -------------------------------------------------------------------------------- /src/shared/images/checkbox-checked-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/images/checkbox-checked-white.png -------------------------------------------------------------------------------- /src/shared/images/checkbox-unchecked-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/images/checkbox-unchecked-black.png -------------------------------------------------------------------------------- /src/shared/images/checkbox-unchecked-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/images/checkbox-unchecked-white.png -------------------------------------------------------------------------------- /src/shared/images/circle-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/images/circle-black.png -------------------------------------------------------------------------------- /src/shared/images/circle-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/images/circle-white.png -------------------------------------------------------------------------------- /src/shared/images/dot-circle-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/images/dot-circle-black.png -------------------------------------------------------------------------------- /src/shared/images/dot-circle-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/images/dot-circle-white.png -------------------------------------------------------------------------------- /src/shared/images/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/images/error.png -------------------------------------------------------------------------------- /src/shared/images/infoIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/images/infoIcon.png -------------------------------------------------------------------------------- /src/shared/images/successIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/images/successIcon.png -------------------------------------------------------------------------------- /src/shared/images/warnIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/src/shared/images/warnIcon.png -------------------------------------------------------------------------------- /src/shared/libs/exports.js: -------------------------------------------------------------------------------- 1 | import passwordStrength from 'zxcvbn'; 2 | import moment from 'moment'; 3 | 4 | export { passwordStrength as zxcvbn, moment }; 5 | -------------------------------------------------------------------------------- /src/shared/libs/global.js: -------------------------------------------------------------------------------- 1 | global.onboardingSeed = new Int8Array(); 2 | global.passwordHash = new Uint8Array(); 3 | -------------------------------------------------------------------------------- /src/shared/libs/originalRequire.js: -------------------------------------------------------------------------------- 1 | module.exports = require; 2 | -------------------------------------------------------------------------------- /src/shared/markdown/index.js: -------------------------------------------------------------------------------- 1 | import enPrivacyPolicyAndroid from './enPrivacyPolicyAndroid'; 2 | import dePrivacyPolicyAndroid from './dePrivacyPolicyAndroid'; 3 | import enTermsAndConditionsAndroid from './enTermsAndConditionsAndroid'; 4 | import deTermsAndConditionsAndroid from './deTermsAndConditionsAndroid'; 5 | import enPrivacyPolicyIOS from './enPrivacyPolicyIOS'; 6 | import dePrivacyPolicyIOS from './dePrivacyPolicyIOS'; 7 | import enTermsAndConditionsIOS from './enTermsAndConditionsIOS'; 8 | import deTermsAndConditionsIOS from './deTermsAndConditionsIOS'; 9 | 10 | export { 11 | enPrivacyPolicyAndroid, 12 | dePrivacyPolicyAndroid, 13 | enTermsAndConditionsAndroid, 14 | deTermsAndConditionsAndroid, 15 | enPrivacyPolicyIOS, 16 | dePrivacyPolicyIOS, 17 | enTermsAndConditionsIOS, 18 | deTermsAndConditionsIOS, 19 | }; 20 | -------------------------------------------------------------------------------- /src/shared/middlewares/alerts.js: -------------------------------------------------------------------------------- 1 | import includes from 'lodash/includes'; 2 | 3 | const alertsMiddleware = (store) => (next) => (action) => { 4 | if (includes(action.type, 'ALERTS/SHOW') || includes(action.type, 'ALERTS/HIDE')) { 5 | // Only dispatch new alerts if it wallet has a connection 6 | if (store.getState().wallet.hasConnection) { 7 | next(action); 8 | } 9 | } else { 10 | next(action); 11 | } 12 | }; 13 | 14 | export default alertsMiddleware; 15 | -------------------------------------------------------------------------------- /src/shared/middlewares/modal.js: -------------------------------------------------------------------------------- 1 | import includes from 'lodash/includes'; 2 | 3 | const modalMiddleware = (store) => (next) => (action) => { 4 | if (includes(action.type, 'TOGGLE_MODAL_ACTIVITY')) { 5 | const { wallet, ui } = store.getState(); 6 | 7 | if (wallet.hasConnection) { 8 | next(action); 9 | } else { 10 | // Alow modal to close if there is no connection 11 | if (ui.isModalActive) { 12 | next(action); 13 | } 14 | } 15 | } else { 16 | next(action); 17 | } 18 | }; 19 | 20 | export default modalMiddleware; 21 | -------------------------------------------------------------------------------- /src/shared/schemas/v0/index.js: -------------------------------------------------------------------------------- 1 | import defaultSchemas from '../default'; 2 | 3 | export default defaultSchemas; 4 | -------------------------------------------------------------------------------- /src/shared/schemas/v2/index.js: -------------------------------------------------------------------------------- 1 | import merge from 'lodash/merge'; 2 | import map from 'lodash/map'; 3 | import v1Schema from '../v1'; 4 | 5 | const migration = (_, newRealm) => { 6 | const walletData = newRealm.objectForPrimaryKey('Wallet', 1); 7 | 8 | // Bump wallet version. 9 | walletData.version = 2; 10 | }; 11 | 12 | export default map(v1Schema, (schema) => { 13 | if (schema.name === 'WalletSettings') { 14 | return merge({}, schema, { 15 | properties: { 16 | /** 17 | * Determines if deep linking is enabled 18 | */ 19 | deepLinking: { 20 | type: 'bool', 21 | default: false, 22 | }, 23 | }, 24 | }); 25 | } 26 | 27 | return schema; 28 | }); 29 | 30 | export { migration }; 31 | -------------------------------------------------------------------------------- /src/shared/schemas/v4/index.js: -------------------------------------------------------------------------------- 1 | import merge from 'lodash/merge'; 2 | import map from 'lodash/map'; 3 | import v3Schema from '../v3'; 4 | 5 | const migration = (_, newRealm) => { 6 | const walletData = newRealm.objectForPrimaryKey('Wallet', 3); 7 | 8 | // Bump wallet version. 9 | walletData.version = 4; 10 | }; 11 | 12 | export default map(v3Schema, (schema) => { 13 | if (schema.name === 'Transaction') { 14 | return merge({}, schema, { 15 | properties: { 16 | /** 17 | * Determines if tx had fatal error on retry 18 | */ 19 | fatalErrorOnRetry: { 20 | type: 'bool', 21 | default: false, 22 | }, 23 | }, 24 | }); 25 | } 26 | 27 | return schema; 28 | }); 29 | 30 | export { migration }; 31 | -------------------------------------------------------------------------------- /src/shared/schemas/v5/index.js: -------------------------------------------------------------------------------- 1 | import merge from 'lodash/merge'; 2 | import map from 'lodash/map'; 3 | import v4Schema from '../v4'; 4 | 5 | const migration = (_, newRealm) => { 6 | const walletData = newRealm.objectForPrimaryKey('Wallet', 4); 7 | 8 | // Bump wallet version. 9 | walletData.version = 5; 10 | }; 11 | 12 | export default map(v4Schema, (schema) => { 13 | if (schema.name === 'WalletSettings') { 14 | return merge({}, schema, { 15 | properties: { 16 | /* 17 | * Desktop: Use system proxy settings 18 | */ 19 | ignoreProxy: { 20 | type: 'bool', 21 | default: false, 22 | }, 23 | }, 24 | }); 25 | } 26 | 27 | return schema; 28 | }); 29 | 30 | export { migration }; 31 | -------------------------------------------------------------------------------- /src/shared/schemas/v8/index.js: -------------------------------------------------------------------------------- 1 | import omit from 'lodash/omit'; 2 | import map from 'lodash/map'; 3 | import v7Schema from '../v7'; 4 | 5 | const migration = (_, newRealm) => { 6 | const walletData = newRealm.objectForPrimaryKey('Wallet', 7); 7 | 8 | // Bump wallet version. 9 | walletData.version = 8; 10 | }; 11 | 12 | export default map(v7Schema, (schema) => { 13 | if (schema.name === 'WalletSettings') { 14 | return omit(schema, 'properties.availableCurrencies'); 15 | } 16 | 17 | return schema; 18 | }); 19 | 20 | export { migration }; 21 | -------------------------------------------------------------------------------- /src/shared/themes/themes.js: -------------------------------------------------------------------------------- 1 | import Default from './themes/Default'; 2 | import Classic from './themes/Classic'; 3 | import Electric from './themes/Electric'; 4 | import Mint from './themes/Mint'; 5 | import Ionic from './themes/Ionic'; 6 | import SteelBlue from './themes/SteelBlue'; 7 | import Contemporary from './themes/Contemporary'; 8 | import Dark from './themes/Dark'; 9 | import Light from './themes/Light'; 10 | 11 | const themes = { 12 | Default: Default, 13 | Classic: Classic, 14 | Mint: Mint, 15 | Electric: Electric, 16 | Ionic: Ionic, 17 | SteelBlue: SteelBlue, 18 | Contemporary: Contemporary, 19 | Dark: Dark, 20 | Light: Light, 21 | }; 22 | 23 | export default themes; 24 | -------------------------------------------------------------------------------- /trinity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iotaledger-archive/trinity-wallet/c0a7683eb186fae9a53b312303f6cc09a3bb0b61/trinity.png --------------------------------------------------------------------------------