.eslintrc.js
.github
    ISSUE_TEMPLATE
        bug_report.md
        feature_request.md
    workflows
        bundlediff-ios.yml
        bundlediff-web.yml
        daily-build.yml
        lint.yml
        release-android.yml
        release-desktop.yml
        release-ext.yml
        release-ios.yml
        release-web.yml
        test-web.yml
.lintstagedrc.js
.prettierrc.js
@types
    electron-config.d.ts
    globals.d.ts
    lib.es5.d.ts
    third-party.d.ts
    types.d.ts
README.md
babel.config.js
clean_workspace.sh
data
    onekey.networklist.json
    token-3501.json
    token-96.json
development
    babelTools.js
    build-ios-stats.js
    build-networklist.js
    copy-injected.sh
    developmentConsts.js
    env.js
    indexHtmlParameter.js
    module-resolver
        react-native-fast-image-mock
            index.js
        react-native-keyboard-manager-mock
            index.js
        react-native-restart-mock
            index.js
    resetCache.js
    webpackTools.js
docs
    BUG_RULES.md
    ISSUE_TEMPLATE.md
    i18n
        README.de.md
        README.fr.md
        README.it.md
        README.jp.md
        README.zh-cn.md
jest.config.js
package.json
packages
    app
        android
            app
                google-services.json
                src
                    GooglePlay
                        AndroidManifest.xml
                    debug
                        AndroidManifest.xml
                        java
                            so
                                onekey
                                    app
                                        wallet
                                            ReactNativeFlipper.java
                    main
                        AndroidManifest.xml
                        java
                            so
                                onekey
                                    app
                                        wallet
                                            MainApplication.java
                                            newarchitecture
                                                MainApplicationReactNativeHost.java
                                                components
                                                    MainComponentsRegistry.java
                                                modules
                                                    MainApplicationTurboModuleManagerDelegate.java
                                            onekeyLite
                                                entitys
                                                    CardInfo.java
                                                    CardResponse.java
                                                    ParsedCertInfo.java
                                                    SecureChanelParam.java
                                            utils
                                                HexUtils.java
                                                Utils.java
                        jni
                            MainApplicationModuleProvider.cpp
                            MainApplicationModuleProvider.h
                            MainApplicationTurboModuleManagerDelegate.cpp
                            MainApplicationTurboModuleManagerDelegate.h
                            MainComponentsRegistry.cpp
                            MainComponentsRegistry.h
                            OnLoad.cpp
                        res
                            drawable
                                rn_edit_text_material.xml
                                splashscreen.xml
                            layout
                                view_home_page.xml
                            mipmap-anydpi-v26
                                ic_launcher.xml
                                ic_launcher_round.xml
                            values-night
                                colors.xml
                            values-v29
                                styles.xml
                            values
                                colors.xml
                                strings.xml
                                styles.xml
            gradlew.bat
            lib-keys-secret
                src
                    main
                        AndroidManifest.xml
                        cpp
                            CMakeLists.txt
                            keys.c
                            validation.c
                            validation.h
            lib-tabview
                src
                    main
                        AndroidManifest.xml
                        java
                            so
                                onekey
                                    app
                                        wallet
                                            widget
                                                SlidingTabLayout.java
                                                SlidingTabLayout2.java
                                                SlidingTabLayoutBase.java
                                                listener
                                                    CustomTabEntity.java
                                                    OnTabSelectListener.java
                                                transition
                                                    ITabScaleTransformer.java
                                                    TabScaleTransformer.java
                        res
                            layout
                                layout_tab.xml
                            values
                                attrs.xml
            readme.md
        app.json
        babel.config.js
        eas.json
        firebase.json
        ios
            OneKeyWallet
                AppDelegate.h
                Category
                    NSData+StringToData.h
                    NSString+OKAdd.h
                    RCTRootView+Orientation.h
                    UIColor+Hex.h
                Frameworks
                    GPChannelSDKCore.framework
                        Headers
                            GPChannelSDK.h
                            GPChannelSDKCore.h
                Images.xcassets
                    AppIcon.appiconset
                        Contents.json
                    Contents.json
                    SplashScreen.imageset
                        Contents.json
                    SplashScreenBackground.colorset
                        Contents.json
                NFC
                    GPChannelSDKCoreHeaders
                        GPChannelSDK.h
                        GPChannelSDKCore.h
                    OKNFCBridge.h
                    OKNFCLite.h
                    OKNFCUtility.h
                OneKeyWallet-Bridging-Header.h
                RNBridge
                    JPushManager.h
                    NFCConfig.h
                    OKLiteManager.h
                    RNLiteCallBackManager.h
                    SplashScreenManager.h
                noop-file.swift
            Other
                OKTools.h
            PagingView
                PagingView.h
                PagingViewContainer.h
                PagingViewManager.h
                RCTScrollView+swizzled.h
                RNTabView.h
        metro.config.js
        package.json
        react-native.config.js
        scripts
            eas-build-pre-install.sh
        shim.js
        src
            hardware
                OnekeyLite
                    index.ts
                    types.d.ts
            types
                NativeModules.d.ts
            views
                NestedTabView
                    types.ts
        tsconfig.json
    components
        .svgrrc.json
        config
            default.js
        package.json
        src
            CollapsibleTabView
                types.ts
            Icon
                script.js
            Modal
                Container
                    useModalClose.ts
            NetImage
                type.ts
            Provider
                device.ts
                hooks.ts
                theme.ts
            hooks
                useClickDocumentClose.ts
                useDropdownPosition.ts
            locale
                ar.json
                bn.json
                de.json
                en-US.json
                es.json
                fil.json
                fr_FR.json
                hi_IN.json
                index.ts
                it_IT.json
                ja_JP.json
                ko_KR.json
                mn_MN.json
                pt.json
                ru.json
                th_TH.json
                uk_UA.json
                vi.json
                zh-CN.json
                zh_HK.json
            utils
                ClipboardUtils.ts
                SelectAutoHide.ts
                index.ts
        svg
            illus
                arrow-bottom-left.svg
                arrow-top-right.svg
                brand-logo.svg
                crown-badge.svg
                diamond-badge.svg
                empty-nft.svg
                face-id.svg
                finger-print.svg
                logo-primary.svg
                logo.svg
                metamask.svg
                nft-peg.svg
                star-badge.svg
                tx-status-failure-circle.svg
                tx-status-success-circle.svg
                tx-status-warning-circle.svg
                walletconnect-logo.svg
            outline
                Restore.svg
                Shrink.svg
                academic-cap.svg
                activity.svg
                adjustments.svg
                annotation.svg
                archive.svg
                arrow-circle-down.svg
                arrow-circle-left.svg
                arrow-circle-right.svg
                arrow-circle-up.svg
                arrow-down.svg
                arrow-left.svg
                arrow-narrow-down.svg
                arrow-narrow-left.svg
                arrow-narrow-right.svg
                arrow-narrow-up.svg
                arrow-right.svg
                arrow-sm-down.svg
                arrow-sm-left.svg
                arrow-sm-right.svg
                arrow-sm-up.svg
                arrow-up.svg
                arrows-expand.svg
                at-symbol.svg
                backspace.svg
                badge-check.svg
                ban.svg
                beaker.svg
                bell-off.svg
                bell.svg
                book-open.svg
                bookmark-alt.svg
                bookmark.svg
                briefcase.svg
                cake.svg
                calculator.svg
                calendar.svg
                camera.svg
                cash.svg
                chart-bar.svg
                chart-pie.svg
                chart-square-bar.svg
                chart-square-line.svg
                chat-alt-2.svg
                chat-alt.svg
                chat.svg
                check-circle.svg
                check.svg
                chevron-double-down.svg
                chevron-double-left.svg
                chevron-double-right.svg
                chevron-double-up.svg
                chevron-down.svg
                chevron-left.svg
                chevron-right.svg
                chevron-up.svg
                chip.svg
                clipboard-check.svg
                clipboard-copy.svg
                clipboard-list.svg
                clipboard.svg
                clock.svg
                close-circle.svg
                close.svg
                cloud-download.svg
                cloud-upload.svg
                cloud.svg
                code.svg
                cog.svg
                collection.svg
                color-swatch.svg
                compass.svg
                connect-off.svg
                connect.svg
                credit-card.svg
                cube-transparent.svg
                cube.svg
                currency-bangladeshi.svg
                currency-dollar.svg
                currency-euro.svg
                currency-pound.svg
                currency-rupee.svg
                currency-yen.svg
                cursor-click.svg
                customer-support.svg
                database.svg
                desktop-computer.svg
                device-mobile.svg
                device-tablet.svg
                discord.svg
                document-add.svg
                document-download.svg
                document-duplicate.svg
                document-remove.svg
                document-report.svg
                document-search.svg
                document-text.svg
                document.svg
                dots-circle-horizontal.svg
                dots-horizontal.svg
                dots-vertical.svg
                download.svg
                duplicate.svg
                emoji-happy.svg
                emoji-sad.svg
                exclamation-circle.svg
                exclamation.svg
                expand.svg
                external-link.svg
                eye-off.svg
                eye.svg
                face-id.svg
                fast-forward.svg
                film.svg
                filter.svg
                finger-print.svg
                fire.svg
                flag.svg
                folder-add.svg
                folder-download.svg
                folder-open.svg
                folder-remove.svg
                folder.svg
                gift.svg
                globe-alt.svg
                globe.svg
                hand.svg
                hashtag.svg
                heart.svg
                home.svg
                identification.svg
                import.svg
                inbox-in.svg
                inbox.svg
                information-circle.svg
                key.svg
                library.svg
                light-bulb.svg
                lightning-bolt.svg
                link.svg
                loading-indicator.svg
                location-marker.svg
                lock-closed.svg
                lock-open.svg
                lock.svg
                login.svg
                logout.svg
                mail-open.svg
                mail.svg
                map.svg
                menu-alt-1.svg
                menu-alt-2.svg
                menu-alt-3.svg
                menu-alt-4.svg
                menu.svg
                microphone.svg
                minus-circle.svg
                minus-sm.svg
                minus.svg
                moon.svg
                music-note.svg
                newspaper.svg
                office-building.svg
                onekey-lite.svg
                packup.svg
                paper-airplane.svg
                paper-clip.svg
                pause.svg
                pencil-alt.svg
                pencil.svg
                phone-incoming.svg
                phone-missed-call.svg
                phone-outgoing.svg
                phone.svg
                photograph.svg
                play.svg
                plus-circle.svg
                plus-sm.svg
                plus.svg
                presentation-chart-bar.svg
                presentation-chart-line.svg
                printer.svg
                puzzle.svg
                qrcode.svg
                question-mark-circle.svg
                question-mark.svg
                receipt-refund.svg
                receipt-tax.svg
                refresh.svg
                reply.svg
                rewind.svg
                rss.svg
                save-as.svg
                save.svg
                scale.svg
                scan.svg
                scissors.svg
                search-circle.svg
                search.svg
                selector.svg
                server.svg
                share.svg
                shield-check.svg
                shield-exclamation.svg
                shopping-bag.svg
                shopping-cart.svg
                sort-ascending.svg
                sort-descending.svg
                sparkles.svg
                speakerphone.svg
                star.svg
                status-offline.svg
                status-online.svg
                stop.svg
                sun.svg
                support.svg
                switch-horizontal.svg
                switch-vertical.svg
                table.svg
                tag.svg
                template.svg
                terminal.svg
                thumb-down.svg
                thumb-up.svg
                ticket.svg
                translate.svg
                trash.svg
                trending-down.svg
                trending-up.svg
                truck.svg
                twitter.svg
                umbrella.svg
                upload.svg
                user-add.svg
                user-circle.svg
                user-group.svg
                user-remove.svg
                user.svg
                users.svg
                variable.svg
                video-camera.svg
                view-boards.svg
                view-grid-add.svg
                view-grid.svg
                view-list.svg
                volume-off.svg
                volume-up.svg
                wallet-add.svg
                wallet.svg
                wifi.svg
                zoom-in.svg
                zoom-out.svg
            solid
                academic-cap.svg
                adjustments.svg
                android.svg
                annotation.svg
                app-store.svg
                archive.svg
                arrow-circle-down.svg
                arrow-circle-left.svg
                arrow-circle-right.svg
                arrow-circle-up.svg
                arrow-down.svg
                arrow-left.svg
                arrow-narrow-down.svg
                arrow-narrow-left.svg
                arrow-narrow-right.svg
                arrow-narrow-up.svg
                arrow-right.svg
                arrow-sm-down.svg
                arrow-sm-left.svg
                arrow-sm-right.svg
                arrow-sm-up.svg
                arrow-up.svg
                arrows-expand.svg
                at-symbol.svg
                backspace.svg
                badge-check.svg
                ban.svg
                beaker.svg
                bell-off.svg
                bell.svg
                book-open.svg
                bookmark-alt.svg
                bookmark.svg
                briefcase.svg
                cake.svg
                calculator.svg
                calendar.svg
                camera.svg
                cash.svg
                chart-bar.svg
                chart-pie.svg
                chart-square-bar.svg
                chat-alt-2.svg
                chat-alt.svg
                chat.svg
                check-box-icon-checked-disable.svg
                check-box-icon-checked.svg
                check-box-icon-default-disable.svg
                check-box-icon-default.svg
                check-circle.svg
                check.svg
                chevron-double-down.svg
                chevron-double-left.svg
                chevron-double-right.svg
                chevron-double-up.svg
                chevron-down.svg
                chevron-left.svg
                chevron-right.svg
                chevron-up.svg
                chip.svg
                clipboard-check.svg
                clipboard-copy.svg
                clipboard-list.svg
                clipboard.svg
                clock.svg
                close-circle.svg
                close.svg
                cloud-download.svg
                cloud-upload.svg
                cloud.svg
                code.svg
                cog.svg
                collection.svg
                color-swatch.svg
                credit-card.svg
                cube-transparent.svg
                cube.svg
                currency-bangladeshi.svg
                currency-dollar.svg
                currency-euro.svg
                currency-pound.svg
                currency-rupee.svg
                currency-yen.svg
                cursor-click.svg
                database.svg
                desktop-computer.svg
                device-mobile.svg
                device-tablet.svg
                dialog-icon-type-danger.svg
                dialog-icon-type-info.svg
                document-add.svg
                document-download.svg
                document-duplicate.svg
                document-remove.svg
                document-report.svg
                document-search.svg
                document-text.svg
                document.svg
                dots-circle-horizontal.svg
                dots-horizontal.svg
                dots-vertical.svg
                download.svg
                duplicate.svg
                emoji-happy.svg
                emoji-sad.svg
                exclamation-circle.svg
                exclamation.svg
                extensions.svg
                external-link.svg
                eye-off.svg
                eye.svg
                fast-forward.svg
                film.svg
                filter.svg
                finger-print.svg
                fire.svg
                flag.svg
                folder-add.svg
                folder-download.svg
                folder-open.svg
                folder-remove.svg
                folder.svg
                gift.svg
                globe-alt.svg
                globe.svg
                hand.svg
                hashtag.svg
                heart.svg
                home.svg
                identification.svg
                inbox-in.svg
                inbox.svg
                information-circle.svg
                key.svg
                library.svg
                light-bulb.svg
                lightning-bolt.svg
                link.svg
                location-marker.svg
                lock-closed.svg
                lock-open.svg
                login.svg
                logout.svg
                mail-open.svg
                mail.svg
                map.svg
                menu-alt-1.svg
                menu-alt-2.svg
                menu-alt-3.svg
                menu-alt-4.svg
                menu.svg
                microphone.svg
                minus-circle.svg
                minus-sm.svg
                minus.svg
                moon.svg
                music-note.svg
                nav-activity.svg
                nav-bank-card.svg
                nav-buy.svg
                nav-discovery.svg
                nav-home.svg
                nav-menu.svg
                nav-receive.svg
                nav-sell.svg
                nav-send.svg
                nav-settings.svg
                nav-swap.svg
                newspaper.svg
                office-building.svg
                offline.svg
                option-list-all.svg
                paper-airplane.svg
                paper-clip.svg
                pause.svg
                pencil-alt.svg
                pencil.svg
                phone-incoming.svg
                phone-missed-call.svg
                phone-outgoing.svg
                phone.svg
                photograph.svg
                pin.svg
                play.svg
                plus-circle.svg
                plus-sm.svg
                plus.svg
                presentation-chart-bar.svg
                presentation-chart-line.svg
                printer.svg
                puzzle.svg
                qrcode.svg
                question-mark-circle.svg
                receipt-refund.svg
                receipt-tax.svg
                refresh.svg
                reply.svg
                restore.svg
                rewind.svg
                rss.svg
                save-as.svg
                save.svg
                scale.svg
                scan.svg
                scissors.svg
                search-circle.svg
                search.svg
                selector.svg
                server.svg
                share.svg
                shield-check.svg
                shield-exclamation.svg
                shopping-bag.svg
                shopping-cart.svg
                sort-ascending.svg
                sort-descending.svg
                sparkles.svg
                speakerphone.svg
                star.svg
                status-offline.svg
                status-online.svg
                stop.svg
                sun.svg
                support.svg
                switch-horizontal.svg
                switch-vertical.svg
                table.svg
                tag.svg
                template.svg
                terminal.svg
                thumb-down.svg
                thumb-up.svg
                ticket.svg
                translate.svg
                trash.svg
                trending-down.svg
                trending-up.svg
                truck.svg
                upload.svg
                user-add.svg
                user-circle.svg
                user-group.svg
                user-remove.svg
                user.svg
                users.svg
                variable.svg
                video-camera.svg
                view-boards.svg
                view-grid-add.svg
                view-grid.svg
                view-list.svg
                volume-off.svg
                volume-up.svg
                wifi.svg
                zoom-in.svg
                zoom-out.svg
        tsconfig.json
    desktop
        app.json
        babel.config.js
        electron-builder.config.js
        package.json
        public
            static
                images
                    svg
                        12-words.svg
                        18-words.svg
                        24-words.svg
                        404.svg
                        TUnknown.svg
                        analytics.svg
                        back.svg
                        classic-T1.svg
                        classic-all-done-1.svg
                        classic-bridge-check.svg
                        classic-bridge-question-1.svg
                        classic-bridge-question.svg
                        classic-device-confirm.svg
                        classic-device-initialized-1.svg
                        classic-existing-user.svg
                        classic-firmware-init-1.svg
                        classic-firmware-success-1.svg
                        classic-how-to-enter-bootloader-model-1.svg
                        classic-model-1.svg
                        classic-new-device.svg
                        classic-new-user.svg
                        classic-one-device-confirm.svg
                        classic-pin-ask-1.svg
                        classic-pin-success-1.svg
                        classic-recovery-advanced.svg
                        classic-set-up-pin-dialog.svg
                        classic-used-device.svg
                        classic-writing-seed.svg
                        connect-device.svg
                        create-new.svg
                        device-another-session.svg
                        disconnect-device.svg
                        hologram-warning.svg
                        mini-T1.svg
                        mini-bridge-check.svg
                        mini-bridge-question-1.svg
                        mini-bridge-question.svg
                        mini-device-confirm.svg
                        mini-existing-user.svg
                        mini-how-to-enter-bootloader-model-1.svg
                        mini-model-1.svg
                        mini-new-user.svg
                        mini-pin-ask-1.svg
                        mini-recovery-advanced.svg
                        mini-set-up-pin-dialog.svg
                        mini-wallet-empty.svg
                        recover-from-seed.svg
                        recovery-basic.svg
                        reload.svg
                        seed-card-shamir.svg
                        seed-card-single.svg
                        spinner.svg
                        uni-empty-page.svg
                        uni-error.svg
                        uni-success.svg
                        uni-warning.svg
                        wallet-empty.svg
                        welcome.svg
        scripts
            build.js
            dev.js
            notarize.js
        src-electron
            app.ts
            config.ts
            preload.ts
            process
                BaseProcess.ts
                Bridge.ts
                index.ts
            tsconfig.json
        tsconfig.json
        webpack.config.js
    engine
        @types
            tronweb.d.ts
        package.json
        src
            apiProxyUtils.ts
            constants.ts
            dbs
                base.ts
                index.ts
                indexed
                    index.ts
                    indexeddb.ts
                realms
                    index.ts
                    realm.ts
                    schemas
                        AccountSchema.ts
                        ContextSchema.ts
                        CredentialSchema.ts
                        DeviceSchema.ts
                        HistoryEntrySchema.ts
                        NetworkSchema.ts
                        TokenSchema.ts
                        WalletSchema.ts
                        index.ts
                simple
                    entity
                        SimpleDbEntityBase.ts
                        SimpleDbEntityHistory.ts
                        SimpleDbEntityLastActivity.ts
                        SimpleDbEntityLocalTokens.ts
                        SimpleDbEntityNFT.ts
                        SimpleDbEntityPresetTokens.ts
                        SimpleDbEntityPwKey.ts
                        SimpleDbEntitySwap.ts
                        SimpleDbEntityWalletConnect.ts
                    simpleDb.ts
            endpoint.ts
            engineUtils.ts
            errors.ts
            hardware.ts
            index.ts
            limits.ts
            managers
                account.ts
                backup.ts
                covalent.ts
                derivation.ts
                device.ts
                impl.ts
                network.ts
                nft.ts
                notification.ts
                token.ts
                wallet.ts
            presets
                base.ts
                index.ts
                network.ts
            priceController.ts
            proxy.ts
            types
                account.ts
                backup.ts
                base.ts
                covalent.ts
                credential.ts
                device.ts
                history.ts
                index.ts
                message.ts
                network.ts
                nft.ts
                token.ts
                wallet.ts
            validators.ts
            vaults
                VaultBase.ts
                VaultContext.ts
                VaultFactory.ts
                VaultHelperBase.ts
                factory.ts
                impl
                    _sample
                        KeyringHardware.ts
                        KeyringHd.ts
                        KeyringImported.ts
                        KeyringWatching.ts
                        Vault.ts
                        VaultHelper.ts
                        settings.ts
                    apt
                        KeyringHardware.ts
                        KeyringHd.ts
                        KeyringImported.ts
                        KeyringWatching.ts
                        Vault.ts
                        VaultHelper.ts
                        builder_utils.ts
                        settings.ts
                        types.ts
                        utils.ts
                    btc
                        KeyringHardware.ts
                        KeyringHd.ts
                        KeyringImported.ts
                        KeyringWatching.ts
                        Vault.ts
                        VaultHelper.ts
                        settings.ts
                        types.ts
                        utils.ts
                    cfx
                        KeyringHardware.ts
                        KeyringHd.ts
                        KeyringImported.ts
                        KeyringWatching.ts
                        Vault.ts
                        VaultHelper.ts
                        settings.ts
                    evm
                        KeyringHardware.ts
                        KeyringHd.ts
                        KeyringImported.ts
                        KeyringWatching.ts
                        Vault.ts
                        VaultHelper.ts
                        decoder
                            abi.ts
                            covalentParser.ts
                            decoder.ts
                            gasParser.ts
                            history.ts
                            historyParser.ts
                            payloadParser.ts
                            types.ts
                            util.ts
                        settings.ts
                        types.ts
                    near
                        KeyringHardware.ts
                        KeyringHd.ts
                        KeyringImported.ts
                        KeyringWatching.ts
                        Vault.ts
                        VaultHelper.ts
                        settings.ts
                        types.ts
                        utils.ts
                    sol
                        KeyringHardware.ts
                        KeyringHd.ts
                        KeyringImported.ts
                        KeyringWatching.ts
                        Vault.ts
                        VaultHelper.ts
                        settings.ts
                        types.ts
                        utils.ts
                    stc
                        KeyringHardware.ts
                        KeyringHd.ts
                        KeyringImported.ts
                        KeyringWatching.ts
                        Vault.ts
                        VaultHelper.ts
                        settings.ts
                        types.ts
                        utils.ts
                    tron
                        KeyringHardware.ts
                        KeyringHd.ts
                        KeyringImported.ts
                        KeyringWatching.ts
                        Vault.ts
                        VaultHelper.ts
                        settings.ts
                        types.ts
                        utils.ts
                keyring
                    KeyringBase.ts
                    KeyringHardwareBase.ts
                    KeyringHdBase.ts
                    KeyringImportedBase.ts
                    KeyringSoftwareBase.ts
                    KeyringWatchingBase.ts
                types.ts
                utils
                    feeInfoUtils.ts
                    hexUtils.ts
                    tokenUtils.ts
        tsconfig.json
    ext
        README.md
        babel.config.js
        development
            build.js
            devServer.js
            devUtils.js
            env.js
            nextWebpack.js
            pluginsCopy.js
            pluginsHtml.js
            serverPort.js
            sourcemapServer.js
            withTM.js
            zip.js
        package.json
        src
            assets
                img
                    logo.svg
                theme-preload.js
                ui-popup-boot.html
                ui-popup-boot.js
            background
                serviceWorker.ts
            entry
                background.ts
                content-script.css
                content-script.ts
                shared-polyfill.ts
                ui-devtools.ts
            manifest
                chrome.js
                chrome_v3.js
                firefox.js
                index.js
                shared.js
            manifest_legacy
                _base.json
                brave.json
                chrome.json
                firefox.json
                opera.json
            ui
                hotReload.ts
                popupSizeFix.ts
                resizeEventOptimize.ts
                uiJsBridge.ts
        tsconfig.json
        webpack.config.js
        webpack.expo.config.js
    kit
        assets
            animations
                confirm-on-onekey-classic.json
                confirm-on-onekey-mini.json
                confirm-on-onekey-pro.json
                confirm-on-onekey-touch.json
                enter-pin-code-on-onekey-classic.json
                enter-pin-code-on-onekey-mini.json
                enter-pin-code-on-onekey-pro.json
                enter-pin-code-on-onekey-touch.json
                lottie-onekey-classic-enter-passphrase-on-device.json
                lottie-onekey-classic-in-bootloader-mode.json
                lottie-onekey-mini-enter-passphrase-on-device.json
                lottie-onekey-mini-in-bootloader-mode-disconnect-your-device.json
                lottie-onekey-mini-in-bootloader-mode.json
                lottie-onekey-pro-enter-passphrase-on-device.json
                lottie-onekey-touch-enter-passphrase-on-device.json
                lottie_connect_onekey_by_bluetooth.json
                lottie_connect_onekey_by_usb.json
                lottie_hardware_onekey_classic_confirm.json
                lottie_hardware_onekey_classic_enter_pin_code.json
                lottie_hardware_onekey_mini_confirm.json
                lottie_hardware_onekey_mini_enter_pin_code.json
                lottie_onekey_lite_nfc_complete.json
                lottie_onekey_lite_nfc_connect.json
                lottie_onekey_lite_nfc_transfer.json
                lottie_onekey_lite_nfc_transmitting.json
                lottie_searching.json
                lottie_send_success_feedback.json
        package.json
        src
            background
                BackgroundApi.ts
                BackgroundApiBase.ts
                BackgroundApiProxy.ts
                BackgroundApiProxyBase.ts
                IBackgroundApi.ts
                README.md
                decorators.ts
                instance
                    backgroundApiInit.ts
                    backgroundApiProxy.ts
                providers
                    ProviderApiAptos.ts
                    ProviderApiBase.ts
                    ProviderApiEthereum.ts
                    ProviderApiNear.ts
                    ProviderApiPrivate.ts
                    ProviderApiSolana.ts
                    ProviderApiStarcoin.ts
                    ProviderApiWalletConnect.ts
                    backgroundProviders.ts
                services
                    ServiceAccount.ts
                    ServiceAccountSelector.ts
                    ServiceApp.ts
                    ServiceBase.ts
                    ServiceCloudBackup.ts
                    ServiceCloudBackup.types.ts
                    ServiceCronJob.ts
                    ServiceDapp.ts
                    ServiceHardware.ts
                    ServiceHistory.ts
                    ServiceNFT.ts
                    ServiceNameResolver.ts
                    ServiceNetwork.ts
                    ServiceOnboarding.ts
                    ServicePassword.ts
                    ServicePromise.ts
                    ServiceSocket.ts
                    ServiceStaking.ts
                    ServiceSwap.ts
                    ServiceToken.ts
                    ServiceWalletConnect.ts
                    serviceNotification.ts
                utils.ts
            components
                Header
                    AccountSelectorChildren
                        accountSelectorConsts.ts
                NetworkAccountSelector
                    hooks
                        useAccountSelectorEffects.ts
                        useAccountSelectorInfo.ts
                        useAccountSelectorSectionData.ts
                        useCreateAccountInWallet.ts
                        useDeviceStatusOfHardwareWallet.ts
                Protected
                    types.ts
                WalletConnect
                    OneKeyWalletConnector.ts
                    WalletConnectClient.ts
                    WalletConnectClientForDapp.ts
                    WalletConnectClientForWallet.ts
                    WalletConnectSessionStorage.ts
                    types.ts
                    utils
                        terminateWcConnection.ts
                        walletConnectUtils.ts
                    walletConnectConsts.ts
                WalletSelector
                    hooks
                        useIsPassphraseMode.ts
                        useWalletSelectorEffects.ts
                        useWalletSelectorSectionData.ts
                        useWalletSelectorStatus.ts
            config
                index.ts
            hooks
                index.ts
                redux.ts
                useAddressName.ts
                useAnimation.ts
                useAppNavigation.ts
                useClipboard.ts
                useColorScheme.ts
                useCopyAddress.ts
                useDappApproveAction.ts
                useDappParams.ts
                useDebounce.ts
                useDecodedTx.ts
                useDisableNavigationAnimation.ts
                useDisableNavigationBack.ts
                useEffectOnUpdate.ts
                useEffectUpdateOnly.ts
                useFormOnChangeDebounced.ts
                useFormatDate.ts
                useHelpLink.ts
                useImportBackupPasswordModal.ts
                useInterval.ts
                useIsMounted.ts
                useLocalAuthentication.ts
                useLocalAuthenticationModal.ts
                useManageNetworks.ts
                useManageTokens.ts
                useNavigation.ts
                useNavigationActions.ts
                useNetwork.ts
                useOnboardingRequired.ts
                useOpenBlockBrowser.ts
                usePrevious.ts
                usePromiseResult.ts
                useStateMountedOnly.ts
                useSystemLocale.ts
                useThrottle.ts
                useTokenInfo.ts
                useTokens.ts
                useWalletName.ts
                useWebTabs.ts
            provider
                useAutoNavigateOnMount.ts
            routes
                Modal
                    routes.ts
                    types.ts
                deepLink.ts
                index.ts
                linking.ts
                routesEnum.ts
                types.ts
            store
                index.ts
                middlewares.ts
                persistWhiteList.ts
                reducers
                    _reducerSample.ts
                    autoUpdater.ts
                    cloudBackup.ts
                    contacts.ts
                    dapp.ts
                    data.ts
                    discover.ts
                    fiatMoney.ts
                    general.ts
                    hardware.ts
                    network.ts
                    nft.ts
                    reducerAccountSelector.ts
                    refresher.ts
                    runtime.ts
                    settings.ts
                    staking.ts
                    status.ts
                    swap.ts
                    tokens.ts
                    webTabs.ts
                typings.ts
            types
                emojis.d.ts
                images.d.ts
            utils
                emojiUtils.ts
                extUtils.ts
                gotoScanQrcode.ts
                hardware
                    OneKeyHardware.ts
                    constants
                        homescreens.ts
                        homescreensData.ts
                    deviceUtils.ts
                    errors.ts
                    hardwareInstance.ts
                    homescreens.ts
                    index.ts
                helper.ts
                locale.ts
                openUrl.ts
                priceUtils.ts
                updates
                    AppUpdates.ts
                    server
                        index.ts
                        type.ts
                    type.d.ts
                uriUtils.ts
            views
                AddressBook
                    routes.ts
                BackupWallet
                    types.d.ts
                Components
                    transactionRecord
                        utils.ts
                DappModals
                    types.ts
                Discover
                    Explorer
                        Search
                            useLimitHistories.ts
                            useSearchHistories.ts
                            useSearchLocalDapp.ts
                        explorerUtils.ts
                    Home
                        type.ts
                    type.ts
                EnableLocalAuthentication
                    types.ts
                FiatPay
                    Service
                        types.ts
                    types.ts
                FullTokenList
                    routes.d.ts
                Hardware
                    OnekeyLite
                        Detail
                            routes.d.ts
                        routes.d.ts
                Help
                    Request
                        types.ts
                ManageConnectedSites
                    types.ts
                ManageNetworks
                    types.ts
                ManageTokens
                    hooks.ts
                    types.ts
                Onboarding
                    hooks.ts
                    routes
                        enums.ts
                        types.ts
                    screens
                        CreateWallet
                            BehindTheScene
                                consts.ts
                Password
                    types.ts
                PriceChart
                    chartService.ts
                    value-chart
                        useChartThrottledPoints.ts
                PushNotification
                    hooks.ts
                    types.ts
                ReceiveToken
                    types.ts
                ScanQrcode
                    scanFromURLAsync.ts
                    scanFromURLAsync.web.ts
                    types.ts
                Send
                    sendConfirmConsts.ts
                    types.ts
                    useSendConfirmRouteParamsParsed.ts
                Staking
                    hooks
                        index.ts
                    typing.ts
                Swap
                    components
                        TokenSelector
                            context.ts
                    config.ts
                    hooks
                        useSwapTokenUtils.ts
                        useSwapUtils.ts
                        useTransactions.ts
                    quoter
                        0x.ts
                        index.ts
                        jupiter.ts
                        mdex.ts
                        socket.ts
                        swftc.ts
                    refs.ts
                    typings.ts
                    utils.ts
                TokenDetail
                    routes.d.ts
                TxDetail
                    types.ts
                    utils
                        getTxActionMeta.ts
                Wallet
                    HistoricalRecords
                        useHistoricalRecordsData.ts
                    NFT
                        NFTDetail
                            useUniqueToken.ts
                    type.ts
        tsconfig.json
    shared
        @types
            react-native-cloud-fs.d.ts
        package.json
        src
            analytics
                firebase.web.json
                index.ts
                index.web.ts
            cloudfs
                index.ios.ts
                index.ts
            crashlytics
                index.ts
                index.web.ts
            debug
                debugCodes.ts
            detector
                nfc
                    index.ts
                    index.web.ts
            eventBus
                appEventBus.ts
            haptics
                index.ts
                index.web.ts
            logger
                debugLogger.ts
            notification
                index.ts
            platformEnv.ts
            sharedUtils.ts
            storage
                ExtensionStorage.ts
                MockStorage.ts
                WebStorage.ts
                appStorage.ts
            web
                index.css
        tsconfig.json
        types
            index.ts
    web-embed
        app.json
        babel.config.js
        development
            InlineChunkHtmlPlugin.js
            combineSingleHtml.js
        package.json
        postbuild.sh
        tsconfig.json
        webpack.config.js
    web
        app.json
        babel.config.js
        package.json
        postbuild.sh
        tsconfig.json
        validation
            deeplink.android.json
            deeplink.ios.json
        webpack.config.js
test
    unit
        inpage-provider
            jsBridge.test.ts
tsconfig.json

# Chrome

```bash
# watch and build code
yarn ext

# >>>> wait building done...

# Install extension to Chrome manually: 
# - Open Chrome Browser, navigate to chrome://extensions/
# - Toggle on 「Developer mode」
# - Click button 「Load unpacked」
# - Choose folder ./app-monorepo/packages/ext/build/chrome/
```

# Firefox

```bash
# watch and build code
yarn ext --firefox

# >>>> wait building done...

# Start new Firefox instance with extension installed
# you need install web-ext first: 
#   npm install --global web-ext
yarn firefox
```
# TODO

- routes/routesEnum.ts ( background navigate() )
- @onekeyhq/app/src/hardware/OnekeyLite
- navigation url required hash url ( @react-navigation+native+6.0.6.patch useLinking.js )
  - deep linking in ios/android 
- EngineProvider.tsx to background
  - EngineProxy
  - listFiats() ReferenceError: XMLHttpRequest is not defined
    - cross-fetch ( cross-fetch+3.1.4.patch )
  - all api needs to be async promise
  - method params and return should be serialized
  - property not available
  - using @backgroundMethod() 
- axios
  - axios-fetch-adapter
- https://metamask.github.io/test-dapp/ Error: missing provider ( manifest v3 inject delay )
  - https://github.com/MetaMask/test-dapp
  - Network disable cache, Network throttling
- useSWR in background
- redux-persist in background
  - extensionStorage for redux
  - AsyncStorage -> appStorage
- backgroundApi safe check: 
  - other extension call; 
  - background and ui message with random password; 
- background redux state init (with engine init)
  - render UI after background redux state sync done
  - getImplFromNetworkId ERROR: networkId required (first time open UI after extension reload)
- @backgroundClass
  - Engine
  - BackgroundApi
  - ServiceApi
  - ProviderApi
- NetworkService\AccountService\DappService\PromiseService\EngineService
  - ServiceAccount
- axios singleton 
- JsBridgeBase: plain error object
- eth_accounts whitelist domain
- show popup close button when background not ready ( port ready & redux ready )
- internetReachability.ts
- persistor.purge();

- onBoarding Done.tsx
- import type from UI component

# DONE
<p align="center">
<img width="200" src="https://github.com/rayston92/graph_bed/blob/e3b2c938fc5b17d68531f69178908afb16266e6a/img/onekey_logo_badge_border.png?raw=trueg"/>
</p>

---

[![Github Stars](https://img.shields.io/github/stars/OneKeyHQ/app-monorepo?t&logo=github&style=for-the-badge&labelColor=000)](https://github.com/OneKeyHQ/app-monorepo/stargazers)
[![Version](https://img.shields.io/github/release/OneKeyHQ/app-monorepo.svg?style=for-the-badge&labelColor=000)](https://github.com/OneKeyHQ/app-monorepo/releases)
[![](https://img.shields.io/github/contributors-anon/OneKeyHQ/app-monorepo?style=for-the-badge&labelColor=000)](https://github.com/OneKeyHQ/app-monorepo/graphs/contributors)
[![Last commit](https://img.shields.io/github/last-commit/OneKeyHQ/app-monorepo.svg?style=for-the-badge&labelColor=000)](https://github.com/OneKeyHQ/app-monorepo/commits/onekey)
[![Issues](https://img.shields.io/github/issues-raw/OneKeyHQ/app-monorepo.svg?style=for-the-badge&labelColor=000)](https://github.com/OneKeyHQ/app-monorepo/issues?q=is%3Aissue+is%3Aopen)
[![Pull Requests](https://img.shields.io/github/issues-pr-raw/OneKeyHQ/app-monorepo.svg?style=for-the-badge&labelColor=000)](https://github.com/OneKeyHQ/app-monorepo/pulls?q=is%3Apr+is%3Aopen)
[![Discord](https://img.shields.io/discord/868309113942196295?style=for-the-badge&labelColor=000)](https://discord.gg/onekey)
[![Twitter Follow](https://img.shields.io/twitter/follow/OneKeyHQ?style=for-the-badge&labelColor=000)](https://twitter.com/OneKeyHQ)

<p align="center">
<img src="https://github.com/rayston92/graph_bed/blob/master/img/repo-hero-bg.png?raw=true"/>
</p>

## Community & Support

- [Community Forum](https://github.com/orgs/OneKeyHQ/discussions). Best for: help with building, discussion about best practices.
- [GitHub Issues](https://github.com/OneKeyHQ/app-monorepo/issues). Best for: bugs and errors you encounter using OneKey.
- [Discord](https://discord.gg/onekey). Best for: sharing your ideas and hanging out with the community.

## Repo Status

- ✅ Public: Production-ready

We really need your support, star or watch this repo for latest updates.

<kbd><img src="https://github.com/rayston92/graph_bed/blob/e3b2c938fc5b17d68531f69178908afb16266e6a/img/onekey_monorepo_star.gif?raw=true" alt="Star this repo"/></kbd>

## 🚀 Getting Onboard

1. Install [node.js LTS version  (>= 16)](https://nodejs.org/en/)
2. Install [yarn package management tool](https://yarnpkg.com/)(After installing the latest version of yarn, execute `yarn policies set-version 1.18.0` in the root directory)
3. Install [git lfs](https://git-lfs.github.com/) (some binaries are required for pulling and updating)
4. To start the iOS project, make sure that the local XCode version is greater than or equal to 13.3
5. To start the Android project, make sure that the local JDK version is greater than or equal to 11

After pulling the latest code via the git command line tool, install the project dependencies in the root directory via the `yarn` command

```
# Install all JS dependencies and submodule dependencies

yarn

# Install the expo command line tool globally

npm install -g expo-cli
```

## 🧑‍💻 Develop

Execute the following commands in the root directory to develop different business code

- `yarn web`: Develop web mode, which starts a static server on port 3000 locally
- `yarn ios`: connect to iphone device via USB for development debugging
- `yarn android`: develop android
- `yarn desktop`: development in desktop mode
- `yarn ext`: development in extension mode

## 🛠 Build for production

Execute the following commands in the root directory and build target for production. Make sure each platform starts correctly and environment variables are configured correctly.

- web: `cd packages/web && yarn build`, build the static files at packages/web/web-build, for production build, see [release-web.yml](./.github/workflows/release-web.yml) job for detail.
- ios: using expo server to build, see [release-ios.yml](./.github/workflows/release-ios.yml) job for detail.
- android: : using expo server to build, see [release-android.yml](./.github/workflows/release-android.yml) job for detail.
- desktop: : `cd packages/desktop && yarn build`, see [release-desktop.yml](./.github/workflows/release-desktop.yml) job for detail.
- ext: `cd packages/ext && yarn build:all`, see [release-ext.yml](./.github/workflows/release-ext.yml) job for detail.

## 🗂 Multi-repository directory structure

The repositories are organized using the monorepo model to keep the code on different ends centralized and unaffected, while making it as reusable as possible during the packaging and compilation process

- `packages/components` holds UI components
- `packages/kit` holds reusable page-level UI content
- `packages/app` APP code
- `packages/desktop` Desktop electron code
- `packages/web` web-side code
- `packages/ext` chrome extension & firefox addon code

## 🧲 Install dependencies

Each subdirectory under the `packages/` directory is a separate project, and the corresponding monorepo name is the value of the `name` field in the corresponding directory **package.json**.

When you need to install a dependency for a subdirectory, just use `yarn workspace @onekeyhq/web add axios`. With a prefix like `yarn workspace @onekeyhq/web`, the axios module can eventually be installed in the root directory in the web subproject.

Some of the dependencies have native parts, so you need to go into the `packages/app/ios` directory and do a `pod install` after installing the JS dependencies.

## 😷 Common problems

1. The app does not start

For any environment, module and dependency issues in the startup phase, it is recommended to use the command `yarn clean` in the root directory first. The command will clear all sub-dependencies, as well as the module cache of yarn, the cache of tools such as metro / babel, and then restart the project to try.

2. During the installation of dependencies or when adding new dependencies, yarn will prompt **error An unexpected error occurred: "expected workspace package to exist for**

Refer to https://github.com/yarnpkg/yarn/issues/7807, set the current environment yarn version to 1.18.0 through the command `yarn policies set-version 1.18.0`

## 🕋 Roadmap

Check out where we are now!

<kbd><img src="https://github.com/rayston92/graph_bed/blob/master/img/roadmap_light.png?raw=true" alt="Roadmap of OneKey"/></kbd>

## 💬 Docs in your languages
| Available Languages               |
| :--------------------------- |
| [Simplified Chinese / 简体中文](docs/i18n/README.zh-cn.md)|
| [German / Deutsch](docs/i18n/README.de.md)|
| [Japanese / 日本語](docs/i18n/README.jp.md)|
| [French / Français](docs/i18n/README.fr.md)|
| [Italian / Italiano](docs/i18n/README.it.md)|

## 🔰 Security

- Please read [Bug Bunty Rules](https://github.com/OneKeyHQ/app-monorepo/blob/onekey/docs/BUG_RULES.md), we have detailed the exact plan in this article.
- Please report suspected security vulnerabilities in private to dev@onekey.so
- Please do NOT create publicly viewable issues for suspected security vulnerabilities.
- As an open source project, although we are not yet profitable, we try to give some rewards to white hat hackers who disclose vulnerabilities to us in a timely manner.

## 🙋‍♂️We're Hiring!

<table>
    <thead>
        <tr>
            <th colspan="2"> We are hiring many roles (Remote)
            <a href="https://onekeyhq.atlassian.net/wiki/spaces/OC/overview">👉 Click here to check all open positions</a>
            </th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>
            <li>Remote (Live anywhere)</li>
            <li>Global Pay (Literally)</li>
            <li>ESOP (For everybody)</li>
            <li>Open Source (As you see)</li>
            <li>Awesome Colleagues (Hell Yeah!)</li>
            </td>
            <td>
            <li>远程 (生活在哪个城市都可以)</li>
            <li>全球一致的薪酬 (真的)</li>
            <li>全员持股计划 (每个人都有)</li>
            <li>开源 (如你所见)</li>
            <li>超级棒的同事 (爽呆!)</li>
            </td>
        </tr>
    </tbody>
</table>

## ✨ Salute!

[![](https://img.shields.io/github/contributors-anon/OneKeyHQ/app-monorepo?style=for-the-badge&labelColor=000)](https://github.com/OneKeyHQ/app-monorepo/graphs/contributors)

<a href="https://github.com/onekeyhq/app-monorepo/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=onekeyhq/app-monorepo&max=240&columns=24"/>
</a>

## ⚖️ License

OneKey is available under the [MIT](https://github.com/OneKeyHQ/app-monorepo/blob/onekey/LICENSE) license. 
Free for commercial and non-commercial use.
