├── .gitignore ├── .metadata ├── LICENSE ├── README.md ├── android ├── .gitignore ├── app │ ├── build.gradle │ └── src │ │ ├── debug │ │ └── AndroidManifest.xml │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── defi_wallet │ │ │ │ └── MainActivity.kt │ │ └── res │ │ │ ├── drawable-v21 │ │ │ └── launch_background.xml │ │ │ ├── drawable │ │ │ └── launch_background.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── values-night │ │ │ └── styles.xml │ │ │ └── values │ │ │ └── styles.xml │ │ └── profile │ │ └── AndroidManifest.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ └── gradle-wrapper.properties └── settings.gradle ├── assets ├── active_checkbox_icon.svg ├── add_liquidity_icon.svg ├── arrow_down.svg ├── arrow_right.svg ├── arrow_right_long.svg ├── arrow_up.svg ├── asset_pair_bg_dark.svg ├── asset_pair_bg_light.svg ├── back_icon.svg ├── bg_splash_dark.svg ├── btc_dfx.svg ├── btc_guide.svg ├── btc_origin.svg ├── buying_crypto_logo.png ├── chart_icon.svg ├── check_icon.svg ├── chf.svg ├── close_icon.svg ├── connection.gif ├── contact_screen_logo.svg ├── copy_icon_pink.svg ├── copy_icon_reverse.svg ├── currencies │ ├── btc.svg │ ├── chf.svg │ ├── eur.svg │ └── usd.svg ├── d_logo.svg ├── defi.svg ├── defi_logo_lock.svg ├── dfx_logo.svg ├── edit_icon.svg ├── error_gif.gif ├── euro_logo.svg ├── explorer_icon.svg ├── failed_outline.svg ├── fast_fee.svg ├── first_step_buy_logo.png ├── first_step_buy_logo.svg ├── history │ ├── changed.svg │ ├── liquidity.svg │ ├── received.svg │ └── send.svg ├── home_arrow.svg ├── icon_photo.svg ├── icon_user.svg ├── icons │ ├── account_icon.svg │ ├── add.svg │ ├── add_black.svg │ ├── address_book.svg │ ├── address_book_icon.svg │ ├── arrow.png │ ├── arrow_back.svg │ ├── arrow_down.svg │ ├── arrow_phrase.svg │ ├── arrow_right.svg │ ├── arrow_up.svg │ ├── button_spinner.svg │ ├── buy.png │ ├── buy_disabled.png │ ├── buy_icon.svg │ ├── camera.png │ ├── cancel_icon.svg │ ├── change_icon.svg │ ├── change_icon_disabled.svg │ ├── check_green_icon.svg │ ├── check_icon.svg │ ├── circular_spinner.svg │ ├── compare_arrow.svg │ ├── copy.svg │ ├── cross.svg │ ├── delete_text_input.svg │ ├── dfx_logo_dark_theme.svg │ ├── dfx_logo_light_theme.svg │ ├── earn.png │ ├── earn_disabled.png │ ├── earn_icon.svg │ ├── edit.svg │ ├── edit_gradient.svg │ ├── filter_icon.svg │ ├── fullscreen_icon.svg │ ├── grid_view.svg │ ├── important_icon.svg │ ├── increase_limit.svg │ ├── increase_limits.png │ ├── info_icon.svg │ ├── jelly_theme_explore.svg │ ├── ledger.svg │ ├── light_mode.svg │ ├── list_bullets.svg │ ├── lock.svg │ ├── network.png │ ├── network_arrow_down.svg │ ├── network_icon.svg │ ├── night_mode.svg │ ├── open_in_new.svg │ ├── receive_icon.svg │ ├── sell.png │ ├── sell_icon.svg │ ├── send_icon.svg │ ├── setting.svg │ ├── staking_lock.svg │ ├── trash.svg │ ├── visibility.svg │ ├── visibility_off.svg │ ├── wallet.png │ ├── wallet_disabled.png │ ├── wallet_icon.svg │ └── yield_icon.svg ├── images │ ├── add_gradient.png │ ├── address_book.png │ ├── address_book_gray.png │ ├── address_book_pink.png │ ├── address_book_white.png │ ├── buy.png │ ├── buy_sell.png │ ├── copy_gradient.png │ ├── dark_circle_selector.png │ ├── defi_cake_hacking.png │ ├── defi_cake_hacking_1.png │ ├── defi_ledger_screen.png │ ├── defi_ledger_seed_phrase.png │ ├── defi_love_ledger.png │ ├── defi_no_seed_phrase.png │ ├── deposit.svg │ ├── dfi_staking.png │ ├── earn.png │ ├── ellipse.svg │ ├── ellipse3.png │ ├── increase.png │ ├── jelly_oops.png │ ├── jelly_protect.png │ ├── jelly_success.png │ ├── ledger_light.png │ ├── ledger_loading_dark.gif │ ├── ledger_loading_light_gray.gif │ ├── ledger_loading_light_white.gif │ ├── ledger_selected_light.png │ ├── light_circle_selector.png │ ├── liquidity.png │ ├── liquidity_chart.png │ ├── liquidity_chart_dark.png │ ├── list.svg │ ├── loader.gif │ ├── loader_dark_bg.gif │ ├── loader_white_bg.gif │ ├── lock_image.png │ ├── receive.png │ ├── search_gray.png │ ├── search_pink.png │ ├── selected_circle_selector.png │ ├── sell.png │ ├── send.png │ ├── swap.png │ ├── titorial_buy_group_third.svg │ ├── tokens │ │ ├── bch.png │ │ ├── btc.png │ │ ├── default.png │ │ ├── dfi.png │ │ ├── doge.png │ │ ├── dusd.png │ │ ├── eth.png │ │ ├── ltc.png │ │ ├── usdc.png │ │ └── usdt.png │ ├── tutorial_buy_background_dark.png │ ├── tutorial_buy_background_light.png │ ├── tutorial_buy_bank_build_rotate.svg │ ├── tutorial_buy_btc_gradient.svg │ ├── tutorial_buy_first.png │ ├── tutorial_buy_group_forth.svg │ ├── tutorial_buy_second.png │ ├── tutorial_dfx_rotate1.svg │ ├── welcome_background.png │ └── withdrawal.svg ├── important.svg ├── inactive_checkbox_icon.svg ├── info_icon.svg ├── info_outline_pink.svg ├── jelly_logo.svg ├── jelly_logo_dark.svg ├── jelly_logo_new.svg ├── jelly_logo_wallet.svg ├── medium_fee.svg ├── menu_icon.svg ├── open_in_full_icon.svg ├── open_in_full_icon_light.svg ├── pair_icons │ └── dfi_btc.png ├── paste_icon.svg ├── powered_of_dfx.svg ├── powered_of_dfx_dark.svg ├── radio │ ├── checked-blue.svg │ ├── checked-green.svg │ ├── checked-orange.svg │ ├── checked.svg │ └── unfocused.svg ├── receive_icon.svg ├── recived_icon.svg ├── remove_liquidity_icon.svg ├── rotate_rectangle.svg ├── second_step_buy_logo.png ├── second_step_buy_logo.svg ├── secure_placeholder_dark.svg ├── secure_placeholder_light.svg ├── send_icon.svg ├── senden_icon.svg ├── slow_fee.svg ├── staking_logo.svg ├── status_reload_icon.png ├── success_gif.gif ├── success_outline.svg ├── swap_icon.svg ├── third_step_buy_logo.png ├── third_step_buy_logo.svg ├── tokens │ ├── aapl.svg │ ├── amzn.svg │ ├── arkk.svg │ ├── baba.svg │ ├── bitcoin-cash.svg │ ├── bitcoin.svg │ ├── coinbase.svg │ ├── defi.svg │ ├── defi_blue.svg │ ├── dogecoin.svg │ ├── dusd.svg │ ├── eem.svg │ ├── ethereum.svg │ ├── fb.svg │ ├── gld.svg │ ├── gme.svg │ ├── googl.svg │ ├── litecoin.svg │ ├── msft.svg │ ├── nflx.svg │ ├── nvda.svg │ ├── pdbc.svg │ ├── pltr.svg │ ├── pubc.svg │ ├── qqq.svg │ ├── slv.svg │ ├── spy.svg │ ├── tlt.svg │ ├── tsla.svg │ ├── urth.svg │ ├── usdc.svg │ ├── usdt.svg │ ├── vnq.svg │ └── voo.svg ├── tutorial_buy_btc.svg ├── tutorial_buy_cursor.svg ├── tutorial_buy_dfi.svg ├── tutorial_buy_eth.svg ├── wallet_disable.svg ├── wallet_enable.svg ├── wallet_enable_pink.svg ├── welcome_logo.png └── welcome_logo.svg ├── fonts ├── GalanoGrotesque │ └── GalanoGrotesque-SemiBold.ttf ├── IBM_Plex_Sans │ ├── IBMPlexSans-Bold.ttf │ ├── IBMPlexSans-BoldItalic.ttf │ ├── IBMPlexSans-ExtraLight.ttf │ ├── IBMPlexSans-ExtraLightItalic.ttf │ ├── IBMPlexSans-Italic.ttf │ ├── IBMPlexSans-Light.ttf │ ├── IBMPlexSans-LightItalic.ttf │ ├── IBMPlexSans-Medium.ttf │ ├── IBMPlexSans-MediumItalic.ttf │ ├── IBMPlexSans-Regular.ttf │ ├── IBMPlexSans-SemiBold.ttf │ ├── IBMPlexSans-SemiBoldItalic.ttf │ ├── IBMPlexSans-Thin.ttf │ ├── IBMPlexSans-ThinItalic.ttf │ └── OFL.txt ├── RedHatDisplay │ ├── RedHatDisplay-Black.ttf │ ├── RedHatDisplay-BlackItalic.ttf │ ├── RedHatDisplay-Bold.ttf │ ├── RedHatDisplay-BoldItalic.ttf │ ├── RedHatDisplay-ExtraBold.ttf │ ├── RedHatDisplay-ExtraBoldItalic.ttf │ ├── RedHatDisplay-Italic.ttf │ ├── RedHatDisplay-Light.ttf │ ├── RedHatDisplay-LightItalic.ttf │ ├── RedHatDisplay-Medium.ttf │ ├── RedHatDisplay-MediumItalic.ttf │ ├── RedHatDisplay-Regular.ttf │ ├── RedHatDisplay-SemiBold.ttf │ └── RedHatDisplay-SemiBoldItalic.ttf └── red_hat_display │ ├── RedHatDisplay-Black.ttf │ ├── RedHatDisplay-BlackItalic.ttf │ ├── RedHatDisplay-Bold.ttf │ ├── RedHatDisplay-BoldItalic.ttf │ ├── RedHatDisplay-ExtraBold.ttf │ ├── RedHatDisplay-ExtraBoldItalic.ttf │ ├── RedHatDisplay-Italic.ttf │ ├── RedHatDisplay-Light.ttf │ ├── RedHatDisplay-LightItalic.ttf │ ├── RedHatDisplay-Medium.ttf │ ├── RedHatDisplay-MediumItalic.ttf │ ├── RedHatDisplay-Regular.ttf │ ├── RedHatDisplay-SemiBold.ttf │ └── RedHatDisplay-SemiBoldItalic.ttf ├── ios ├── .gitignore ├── Flutter │ ├── AppFrameworkInfo.plist │ ├── Debug.xcconfig │ └── Release.xcconfig ├── Podfile ├── Podfile.lock ├── Runner.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ └── xcshareddata │ │ └── xcschemes │ │ └── Runner.xcscheme ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings └── Runner │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── Icon-App-1024x1024@1x.png │ │ ├── Icon-App-20x20@1x.png │ │ ├── Icon-App-20x20@2x.png │ │ ├── Icon-App-20x20@3x.png │ │ ├── Icon-App-29x29@1x.png │ │ ├── Icon-App-29x29@2x.png │ │ ├── Icon-App-29x29@3x.png │ │ ├── Icon-App-40x40@1x.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 │ └── LaunchImage.imageset │ │ ├── Contents.json │ │ ├── LaunchImage.png │ │ ├── LaunchImage@2x.png │ │ ├── LaunchImage@3x.png │ │ └── README.md │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── Runner-Bridging-Header.h ├── lib ├── bloc │ ├── account │ │ ├── account_cubit.dart │ │ └── account_state.dart │ ├── address_book │ │ ├── address_book_cubit.dart │ │ └── address_book_state.dart │ ├── asset_selector │ │ ├── asset_selector_cubit.dart │ │ └── asset_selector_state.dart │ ├── auth │ │ ├── auth_bloc.dart │ │ └── auth_state.dart │ ├── available_amount │ │ ├── available_amount_cubit.dart │ │ └── available_amount_state.dart │ ├── bitcoin │ │ ├── bitcoin_cubit.dart │ │ └── bitcoin_state.dart │ ├── bridge │ │ ├── bridge_cubit.dart │ │ └── bridge_state.dart │ ├── fiat │ │ ├── fiat_cubit.dart │ │ └── fiat_state.dart │ ├── home │ │ ├── home_cubit.dart │ │ └── home_state.dart │ ├── lock │ │ ├── lock_cubit.dart │ │ └── lock_state.dart │ ├── network │ │ ├── network_cubit.dart │ │ └── network_state.dart │ ├── refactoring │ │ ├── earn │ │ │ ├── earn_cubit.dart │ │ │ └── earn_state.dart │ │ ├── exchange │ │ │ ├── exchange_cubit.dart │ │ │ └── exchange_state.dart │ │ ├── lm │ │ │ ├── lm_cubit.dart │ │ │ └── lm_state.dart │ │ ├── lock │ │ │ ├── lock_cubit.dart │ │ │ └── lock_state.dart │ │ ├── ramp │ │ │ ├── ramp_cubit.dart │ │ │ └── ramp_state.dart │ │ ├── rates │ │ │ ├── rates_cubit.dart │ │ │ └── rates_state.dart │ │ ├── transaction │ │ │ ├── tx_cubit.dart │ │ │ └── tx_state.dart │ │ └── wallet │ │ │ ├── wallet_cubit.dart │ │ │ └── wallet_state.dart │ ├── theme │ │ ├── theme_cubit.dart │ │ └── theme_state.dart │ ├── tokens │ │ ├── tokens_cubit.dart │ │ └── tokens_state.dart │ └── transaction │ │ ├── transaction_bloc.dart │ │ └── transaction_state.dart ├── client │ └── hive_names.dart ├── config │ └── config.dart ├── constants │ ├── input_formatters.dart │ └── specific_token_names.dart ├── helpers │ ├── access_token_helper.dart │ ├── addresses_helper.dart │ ├── balances_helper.dart │ ├── encrypt_helper.dart │ ├── fiat_helper.dart │ ├── history_helper.dart │ ├── history_new.dart │ ├── ledger_wallet_helper.dart │ ├── lock_helper.dart │ ├── logo_helper.dart │ ├── menu_helper.dart │ ├── mnemonic_words.dart │ ├── network_helper.dart │ ├── settings_helper.dart │ ├── tokens_helper.dart │ └── wallets_helper.dart ├── ledger │ └── jelly_ledger.dart ├── main.dart ├── mixins │ ├── dialog_mixin.dart │ ├── format_mixin.dart │ ├── network_mixin.dart │ ├── snack_bar_mixin.dart │ ├── storage_phrase_mixin.dart │ └── theme_mixin.dart ├── models │ ├── account_model.dart │ ├── address_balance_model.dart │ ├── address_book_model.dart │ ├── address_model.dart │ ├── asset_pair_model.dart │ ├── asset_style_model.dart │ ├── available_asset_model.dart │ ├── balance │ │ ├── balance_model.dart │ │ └── bitcoin │ │ │ └── blockcypher_balance_model.dart │ ├── balance_model.dart │ ├── crypto_route_model.dart │ ├── error │ │ └── error_model.dart │ ├── fiat_history_model.dart │ ├── fiat_model.dart │ ├── focus_model.dart │ ├── history_model.dart │ ├── iban_model.dart │ ├── kyc_model.dart │ ├── limit_model.dart │ ├── lock_analytics_model.dart │ ├── lock_asset_model.dart │ ├── lock_balance_model.dart │ ├── lock_minimal_deposits_model.dart │ ├── lock_reward_routes_model.dart │ ├── lock_staking_model.dart │ ├── lock_user_model.dart │ ├── lock_withdraw_model.dart │ ├── network │ │ ├── abstract_classes │ │ │ ├── abstract_account_model.dart │ │ │ ├── abstract_app_model.dart │ │ │ ├── abstract_bridge_model.dart │ │ │ ├── abstract_exchange_model.dart │ │ │ ├── abstract_lm_provider_model.dart │ │ │ ├── abstract_network_model.dart │ │ │ ├── abstract_on_off_ramp_model.dart │ │ │ ├── abstract_rates_model.dart │ │ │ └── abstract_staking_provider_model.dart │ │ ├── access_token_model.dart │ │ ├── account_model.dart │ │ ├── application_model.dart │ │ ├── bitcoin_implementation │ │ │ ├── bitcoin_network_model.dart │ │ │ └── bridge_model.dart │ │ ├── defichain_implementation │ │ │ ├── defichain_exchange_model.dart │ │ │ ├── defichain_lm_provider_model.dart │ │ │ ├── defichain_network_model.dart │ │ │ ├── dfx_ramp_model.dart │ │ │ ├── lock_staking_provider_model.dart │ │ │ └── yield_machine_staking_provider_model.dart │ │ ├── network_name.dart │ │ ├── ramp │ │ │ ├── ramp_kyc_model.dart │ │ │ ├── ramp_limit_model.dart │ │ │ ├── ramp_price_model.dart │ │ │ ├── ramp_token_model.dart │ │ │ └── ramp_user_model.dart │ │ ├── rates │ │ │ └── rates_model.dart │ │ ├── source_seed_model.dart │ │ ├── staking │ │ │ ├── staking_model.dart │ │ │ ├── staking_token_model.dart │ │ │ └── withdraw_model.dart │ │ └── staking_enum.dart │ ├── network_fee_model.dart │ ├── radiobutton_model.dart │ ├── settings_model.dart │ ├── staking_model.dart │ ├── test_pool_swap_model.dart │ ├── token │ │ ├── exchange_pair_model.dart │ │ ├── lp_pool_model.dart │ │ └── token_model.dart │ ├── token_model.dart │ ├── tx_error_model.dart │ ├── tx_list_model.dart │ ├── tx_loader_model.dart │ ├── tx_model.dart │ ├── tx_response_model.dart │ └── utxo_model.dart ├── my_app.dart ├── requests │ ├── balance_requests.dart │ ├── bitcoin │ │ └── blockcypher_requests.dart │ ├── btc_requests.dart │ ├── defichain │ │ ├── asset │ │ │ └── asset_requests.dart │ │ ├── dfi_balance_requests.dart │ │ ├── dfi_exchange_requests.dart │ │ ├── dfi_lm_requests.dart │ │ ├── dfi_token_requests.dart │ │ ├── dfi_transaction_requests.dart │ │ ├── ramp │ │ │ └── dfx_requests.dart │ │ └── staking │ │ │ ├── dfx_requests.dart │ │ │ └── lock_requests.dart │ ├── dfx_requests.dart │ ├── history_requests.dart │ ├── lock_requests.dart │ ├── token_requests.dart │ └── transaction_requests.dart ├── screens │ ├── address_book │ │ ├── address_book_screen_new.dart │ │ └── delete_contact_dialog.dart │ ├── auth │ │ ├── password_screen.dart │ │ ├── recovery │ │ │ └── recovery_screen.dart │ │ ├── signup │ │ │ ├── signup_account_screen.dart │ │ │ ├── signup_choose_theme_screen.dart │ │ │ ├── signup_done_screen.dart │ │ │ ├── signup_phrase_screen.dart │ │ │ └── signup_placeholder_screen.dart │ │ └── welcome_screen.dart │ ├── buy │ │ ├── buy_kyc_contact_screen.dart │ │ ├── buy_select_currency_screen.dart │ │ ├── buy_summary_screen.dart │ │ ├── iban_screen.dart │ │ └── tutorials │ │ │ ├── buy_tutorial_first_screen.dart │ │ │ ├── buy_tutorial_fourth_screen.dart │ │ │ ├── buy_tutorial_second_screen.dart │ │ │ └── buy_tutorial_third_screen.dart │ ├── dex │ │ ├── swap_guide_screen.dart │ │ ├── swap_status.dart │ │ └── widgets │ │ │ ├── review_details.dart │ │ │ ├── slippage_button.dart │ │ │ └── swap_price_details.dart │ ├── earn │ │ ├── earn_card.dart │ │ ├── earn_screen.dart │ │ └── earn_screen_wrapper.dart │ ├── error_screen.dart │ ├── history │ │ ├── history.dart │ │ ├── history_details.dart │ │ └── widgets │ │ │ ├── filter_list.dart │ │ │ ├── history_icon_type.dart │ │ │ └── icon_history_type.dart │ ├── home │ │ ├── home_screen.dart │ │ └── widgets │ │ │ ├── asset_list.dart │ │ │ ├── asset_select.dart │ │ │ ├── asset_select_field.dart │ │ │ ├── asset_select_swap.dart │ │ │ ├── full_size_icon.dart │ │ │ ├── rounded_divider.dart │ │ │ ├── tab_bar │ │ │ ├── tab_bar_body.dart │ │ │ └── tab_bar_header.dart │ │ │ └── transaction_history.dart │ ├── ledger │ │ ├── guide │ │ │ ├── connect_ledger_final_screen.dart │ │ │ ├── connect_ledger_first_screen.dart │ │ │ ├── connect_ledger_fourth_screen.dart │ │ │ ├── connect_ledger_second_screen.dart │ │ │ └── connect_ledger_third_screen.dart │ │ ├── ledger_check_screen.dart │ │ ├── ledger_error_dialog.dart │ │ └── loaders │ │ │ ├── ledger_auth_loader_screen.dart │ │ │ └── ledger_send_loader_screen.dart │ ├── liquidity │ │ ├── choose_pool_pair_screen.dart │ │ ├── liquidity_confirmation.dart │ │ ├── liquidity_pool_list.dart │ │ ├── liquidity_remove_screen.dart │ │ ├── liquidity_screen_new.dart │ │ ├── liquidity_select_pool.dart │ │ ├── liquidity_status.dart │ │ └── remove_liquidity.dart │ ├── lock_screen.dart │ ├── receive │ │ └── receive_screeen_new.dart │ ├── select_buy_or_sell │ │ └── buy_sell_screen.dart │ ├── sell │ │ ├── country_sell.dart │ │ ├── sell_initiated.dart │ │ ├── sell_kyc_first_screen.dart │ │ ├── sell_kyc_second_screen.dart │ │ ├── sell_kyc_third_screen.dart │ │ └── selling_screen.dart │ ├── send │ │ ├── send_screeen.dart │ │ └── send_summary_screen.dart │ ├── settings │ │ ├── accounts │ │ │ └── account_name_text_form.dart │ │ ├── preview_seed.dart │ │ ├── setting_language_screen.dart │ │ ├── setting_recovery_seed_screen.dart │ │ └── setting_screen.dart │ ├── staking │ │ ├── kyc │ │ │ ├── staking_kyc_mobile_screen.dart │ │ │ ├── staking_kyc_start_screen.dart │ │ │ ├── staking_new_kyc_process_screen.dart │ │ │ └── staking_select_verification_screen.dart │ │ ├── stake_unstake_screen.dart │ │ ├── staking_screen.dart │ │ └── yield_machine │ │ │ └── yield_machine_action_screen.dart │ ├── swap │ │ ├── swap_screen.dart │ │ └── swap_summary_screen.dart │ ├── tokens │ │ ├── add_token_confirm_screen.dart │ │ ├── add_token_screen.dart │ │ └── widgets │ │ │ └── search_field.dart │ └── ui_kit.dart ├── services │ ├── bitcoin │ │ └── btc_transaction_service.dart │ ├── bitcoin_service.dart │ ├── defichain │ │ └── dfi_transaction_service.dart │ ├── dfx_service.dart │ ├── errors │ │ └── sentry_service.dart │ ├── hd_wallet_service.dart │ ├── ledger_signing_service.dart │ ├── local_signing_service.dart │ ├── lock_service.dart │ ├── logger_service.dart │ ├── mnemonic_service.dart │ ├── navigation │ │ └── navigator_service.dart │ ├── password_service.dart │ ├── signing_service.dart │ ├── storage │ │ ├── hive_service.dart │ │ └── storage_service.dart │ └── transaction_service.dart ├── utils │ ├── app_theme │ │ └── app_theme.dart │ ├── convert.dart │ ├── custom_radio │ │ ├── base_select.dart │ │ └── custom_radio_button.dart │ ├── graph.dart │ ├── theme │ │ ├── src │ │ │ ├── app_colors.dart │ │ │ ├── app_gradients.dart │ │ │ ├── button_theme.dart │ │ │ ├── colors │ │ │ │ ├── dark_colors.dart │ │ │ │ └── light_colors.dart │ │ │ ├── constants.dart │ │ │ ├── dark_theme.dart │ │ │ ├── light_theme.dart │ │ │ ├── text_theme.dart │ │ │ ├── theme_colors.dart │ │ │ └── theme_text_styles.dart │ │ ├── theme.dart │ │ ├── theme_checker.dart │ │ └── theme_manager.dart │ └── wallet_checker.dart └── widgets │ ├── account_drawer │ ├── account_drawer.dart │ └── selected_account.dart │ ├── add_token │ └── token_list_tile.dart │ ├── address_book │ ├── address_book_buttons.dart │ ├── contact_tile.dart │ └── last_sent_tile.dart │ ├── assets │ ├── asset_icon.dart │ └── asset_logo.dart │ ├── auth │ ├── mnemonic_word.dart │ ├── welcome_positioned_logo.dart │ └── welcome_text_cover.dart │ ├── buttons │ ├── accent_button.dart │ ├── account_menu_button.dart │ ├── back_icon_button.dart │ ├── cancel_button.dart │ ├── flat_button.dart │ ├── new_action_button.dart │ ├── new_primary_button.dart │ ├── primary_button.dart │ ├── restore_button.dart │ └── small_primary_button.dart │ ├── common │ ├── app_radio_button.dart │ ├── app_tooltip.dart │ ├── balance_text.dart │ ├── bottom_snack_bar.dart │ ├── jelly_link_text.dart │ └── page_title.dart │ ├── defi_checkbox.dart │ ├── defi_switch.dart │ ├── dialogs │ ├── address_book_dialog.dart │ ├── choose_payout_strategy_dialog.dart │ ├── create_edit_account_dialog.dart │ ├── create_edit_contact_dialog.dart │ ├── modal_dialog.dart │ ├── pass_confirm_dialog.dart │ ├── redirect_to_lock_dialog.dart │ ├── restore_wallet_dialog.dart │ ├── select_payout_asset_dialog.dart │ ├── staking_add_asset_dialog.dart │ ├── tx_status_dialog.dart │ └── wallet_lock_dialog.dart │ ├── dotted_tab.dart │ ├── error_placeholder.dart │ ├── extension_welcome_bg.dart │ ├── fields │ ├── address_field_new.dart │ ├── amount_field.dart │ ├── asset_text_field.dart │ ├── custom_text_form_field.dart │ ├── decoration_text_field.dart │ ├── decoration_text_field_new.dart │ ├── decoration_text_field_swap.dart │ ├── defi_text_form_field.dart │ ├── iban_field.dart │ ├── input_field.dart │ ├── invested_field.dart │ ├── password │ │ └── caption_text.dart │ ├── password_field.dart │ ├── password_text_field.dart │ └── suffix_icon.dart │ ├── home │ ├── account_balance.dart │ ├── asset_card.dart │ ├── home_card.dart │ ├── home_extended_view.dart │ ├── home_sliver_app_bar.dart │ ├── home_tabs_scroll_view.dart │ └── transaction_status_bar.dart │ ├── liquidity │ ├── asset_pair.dart │ ├── asset_pair_details.dart │ ├── liquidity_asset_pair.dart │ ├── liquidity_chart.dart │ ├── main_liquidity_pair.dart │ ├── pool_asset_pair.dart │ ├── pool_grid_list.dart │ └── search_pool_pair_field.dart │ ├── loader │ ├── jumping_dots.dart │ ├── loader.dart │ └── loader_new.dart │ ├── name_account │ └── name_account.dart │ ├── password_bottom_sheet.dart │ ├── refactoring │ ├── fields │ │ ├── amount_field.dart │ │ ├── available_amount_text.dart │ │ └── converted_amount_text.dart │ └── selectors │ │ └── asset │ │ └── asset_selector.dart │ ├── responsive │ └── stretch_box.dart │ ├── scaffold_constrained_box.dart │ ├── scaffold_constrained_box_new.dart │ ├── scaffold_wrapper.dart │ ├── selectors │ ├── app_selector.dart │ ├── asset │ │ ├── asset_header_selector.dart │ │ ├── asset_item_selector.dart │ │ └── asset_selector.dart │ ├── asset_selector.dart │ ├── circle_selector_tile.dart │ ├── currency_selector.dart │ ├── custom_select_tile.dart │ ├── fees_selector.dart │ ├── iban_selector.dart │ ├── network │ │ ├── network_selector_button.dart │ │ └── network_selector_content.dart │ ├── network_selector.dart │ └── selector_tab_element.dart │ ├── send │ ├── asset_dropdown.dart │ └── fee_card.dart │ ├── settings │ └── settings_list_tile.dart │ ├── sliders │ └── polygon_slider_thumb.dart │ ├── staking │ ├── reward_icon.dart │ ├── reward_routes.dart │ ├── staking_card.dart │ ├── staking_header.dart │ ├── staking_tabs.dart │ └── yield_machine │ │ └── yield_machine_balances.dart │ ├── status │ └── status_transaction.dart │ ├── status_logo_and_title.dart │ ├── swap │ └── swap_account_selector_dialog.dart │ ├── ticker_text.dart │ └── toolbar │ ├── auth_app_bar.dart │ ├── auth_progress_bar.dart │ ├── icon_app_bar.dart │ ├── main_app_bar.dart │ ├── new_main_app_bar.dart │ └── welcome_app_bar.dart ├── pubspec.yaml ├── scripts └── create_build_web.py └── web ├── .parcelrc ├── background-wrapper.js ├── favicon.png ├── flutter_app.htm ├── icons ├── 128.png ├── 16.png └── 48.png ├── index-base.html ├── index.html ├── manifest ├── chrome.json ├── firefox.json └── index.json ├── package-lock.json ├── package.json ├── schema.json ├── set-version.js ├── src_ts ├── jellywallet.ts ├── ledger-base.ts └── ledger_tx.ts └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | **/ios/Flutter/.last_build_id 26 | .dart_tool/ 27 | .flutter-plugins 28 | .flutter-plugins-dependencies 29 | .packages 30 | .pub-cache/ 31 | .pub/ 32 | /build/ 33 | /scripts/client_secrets.json 34 | *.env 35 | 36 | # Web related 37 | 38 | /web/manifest.json 39 | 40 | # Symbolication related 41 | app.*.symbols 42 | 43 | # Obfuscation related 44 | app.*.map.json 45 | 46 | # Android Studio will place build artifacts here 47 | /android/app/debug 48 | /android/app/profile 49 | /android/app/release 50 | 51 | 52 | web/node_modules 53 | web/js 54 | web/dist 55 | web/.parcel-cache 56 | pubspec.lock 57 | /ios/Podfile.lock 58 | pubspec.lock 59 | /ios/Podfile.lock 60 | -------------------------------------------------------------------------------- /.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: b22742018b3edf16c6cadd7b76d9db5e7f9064b5 8 | channel: beta 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Fintonomy LTD 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/app/src/main/kotlin/com/example/defi_wallet/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.defi_wallet 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() { 6 | } 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-v21/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/values-night/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.6.21' 3 | repositories { 4 | google() 5 | jcenter() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:4.1.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | jcenter() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | project.evaluationDependsOn(':app') 25 | } 26 | 27 | task clean(type: Delete) { 28 | delete rootProject.buildDir 29 | } 30 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 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-6.7-all.zip 7 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties") 4 | def properties = new Properties() 5 | 6 | assert localPropertiesFile.exists() 7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } 8 | 9 | def flutterSdkPath = properties.getProperty("flutter.sdk") 10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" 12 | -------------------------------------------------------------------------------- /assets/active_checkbox_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/add_liquidity_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /assets/arrow_down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/arrow_right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/arrow_right_long.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /assets/arrow_up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/asset_pair_bg_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 9 | 11 | 12 | 13 | 14 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /assets/asset_pair_bg_light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 9 | 11 | 12 | 13 | 14 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /assets/back_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/bg_splash_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/buying_crypto_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/buying_crypto_logo.png -------------------------------------------------------------------------------- /assets/chart_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/check_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/chf.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /assets/close_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/connection.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/connection.gif -------------------------------------------------------------------------------- /assets/copy_icon_pink.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /assets/copy_icon_reverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/currencies/chf.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /assets/d_logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/defi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/edit_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/error_gif.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/error_gif.gif -------------------------------------------------------------------------------- /assets/euro_logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/explorer_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/failed_outline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/fast_fee.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/first_step_buy_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/first_step_buy_logo.png -------------------------------------------------------------------------------- /assets/history/received.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /assets/history/send.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /assets/home_arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/icon_user.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/icons/account_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/icons/add.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /assets/icons/add_black.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /assets/icons/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/icons/arrow.png -------------------------------------------------------------------------------- /assets/icons/arrow_back.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /assets/icons/arrow_down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /assets/icons/arrow_phrase.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /assets/icons/arrow_right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/icons/arrow_up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /assets/icons/button_spinner.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /assets/icons/buy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/icons/buy.png -------------------------------------------------------------------------------- /assets/icons/buy_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/icons/buy_disabled.png -------------------------------------------------------------------------------- /assets/icons/camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/icons/camera.png -------------------------------------------------------------------------------- /assets/icons/cancel_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 11 | 12 | -------------------------------------------------------------------------------- /assets/icons/check_green_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/icons/check_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /assets/icons/circular_spinner.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /assets/icons/copy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /assets/icons/cross.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/icons/earn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/icons/earn.png -------------------------------------------------------------------------------- /assets/icons/earn_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/icons/earn_disabled.png -------------------------------------------------------------------------------- /assets/icons/edit.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/icons/edit_gradient.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /assets/icons/filter_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /assets/icons/fullscreen_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /assets/icons/increase_limits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/icons/increase_limits.png -------------------------------------------------------------------------------- /assets/icons/network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/icons/network.png -------------------------------------------------------------------------------- /assets/icons/network_arrow_down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /assets/icons/open_in_new.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /assets/icons/receive_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /assets/icons/sell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/icons/sell.png -------------------------------------------------------------------------------- /assets/icons/send_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /assets/icons/trash.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /assets/icons/visibility.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /assets/icons/visibility_off.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /assets/icons/wallet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/icons/wallet.png -------------------------------------------------------------------------------- /assets/icons/wallet_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/icons/wallet_disabled.png -------------------------------------------------------------------------------- /assets/images/add_gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/add_gradient.png -------------------------------------------------------------------------------- /assets/images/address_book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/address_book.png -------------------------------------------------------------------------------- /assets/images/address_book_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/address_book_gray.png -------------------------------------------------------------------------------- /assets/images/address_book_pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/address_book_pink.png -------------------------------------------------------------------------------- /assets/images/address_book_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/address_book_white.png -------------------------------------------------------------------------------- /assets/images/buy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/buy.png -------------------------------------------------------------------------------- /assets/images/buy_sell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/buy_sell.png -------------------------------------------------------------------------------- /assets/images/copy_gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/copy_gradient.png -------------------------------------------------------------------------------- /assets/images/dark_circle_selector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/dark_circle_selector.png -------------------------------------------------------------------------------- /assets/images/defi_cake_hacking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/defi_cake_hacking.png -------------------------------------------------------------------------------- /assets/images/defi_cake_hacking_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/defi_cake_hacking_1.png -------------------------------------------------------------------------------- /assets/images/defi_ledger_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/defi_ledger_screen.png -------------------------------------------------------------------------------- /assets/images/defi_ledger_seed_phrase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/defi_ledger_seed_phrase.png -------------------------------------------------------------------------------- /assets/images/defi_love_ledger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/defi_love_ledger.png -------------------------------------------------------------------------------- /assets/images/defi_no_seed_phrase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/defi_no_seed_phrase.png -------------------------------------------------------------------------------- /assets/images/deposit.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/dfi_staking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/dfi_staking.png -------------------------------------------------------------------------------- /assets/images/earn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/earn.png -------------------------------------------------------------------------------- /assets/images/ellipse3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/ellipse3.png -------------------------------------------------------------------------------- /assets/images/increase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/increase.png -------------------------------------------------------------------------------- /assets/images/jelly_oops.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/jelly_oops.png -------------------------------------------------------------------------------- /assets/images/jelly_protect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/jelly_protect.png -------------------------------------------------------------------------------- /assets/images/jelly_success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/jelly_success.png -------------------------------------------------------------------------------- /assets/images/ledger_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/ledger_light.png -------------------------------------------------------------------------------- /assets/images/ledger_loading_dark.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/ledger_loading_dark.gif -------------------------------------------------------------------------------- /assets/images/ledger_loading_light_gray.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/ledger_loading_light_gray.gif -------------------------------------------------------------------------------- /assets/images/ledger_loading_light_white.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/ledger_loading_light_white.gif -------------------------------------------------------------------------------- /assets/images/ledger_selected_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/ledger_selected_light.png -------------------------------------------------------------------------------- /assets/images/light_circle_selector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/light_circle_selector.png -------------------------------------------------------------------------------- /assets/images/liquidity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/liquidity.png -------------------------------------------------------------------------------- /assets/images/liquidity_chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/liquidity_chart.png -------------------------------------------------------------------------------- /assets/images/liquidity_chart_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/liquidity_chart_dark.png -------------------------------------------------------------------------------- /assets/images/list.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/images/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/loader.gif -------------------------------------------------------------------------------- /assets/images/loader_dark_bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/loader_dark_bg.gif -------------------------------------------------------------------------------- /assets/images/loader_white_bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/loader_white_bg.gif -------------------------------------------------------------------------------- /assets/images/lock_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/lock_image.png -------------------------------------------------------------------------------- /assets/images/receive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/receive.png -------------------------------------------------------------------------------- /assets/images/search_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/search_gray.png -------------------------------------------------------------------------------- /assets/images/search_pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/search_pink.png -------------------------------------------------------------------------------- /assets/images/selected_circle_selector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/selected_circle_selector.png -------------------------------------------------------------------------------- /assets/images/sell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/sell.png -------------------------------------------------------------------------------- /assets/images/send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/send.png -------------------------------------------------------------------------------- /assets/images/swap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/swap.png -------------------------------------------------------------------------------- /assets/images/tokens/bch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/tokens/bch.png -------------------------------------------------------------------------------- /assets/images/tokens/btc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/tokens/btc.png -------------------------------------------------------------------------------- /assets/images/tokens/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/tokens/default.png -------------------------------------------------------------------------------- /assets/images/tokens/dfi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/tokens/dfi.png -------------------------------------------------------------------------------- /assets/images/tokens/doge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/tokens/doge.png -------------------------------------------------------------------------------- /assets/images/tokens/dusd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/tokens/dusd.png -------------------------------------------------------------------------------- /assets/images/tokens/eth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/tokens/eth.png -------------------------------------------------------------------------------- /assets/images/tokens/ltc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/tokens/ltc.png -------------------------------------------------------------------------------- /assets/images/tokens/usdc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/tokens/usdc.png -------------------------------------------------------------------------------- /assets/images/tokens/usdt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/tokens/usdt.png -------------------------------------------------------------------------------- /assets/images/tutorial_buy_background_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/tutorial_buy_background_dark.png -------------------------------------------------------------------------------- /assets/images/tutorial_buy_background_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/tutorial_buy_background_light.png -------------------------------------------------------------------------------- /assets/images/tutorial_buy_first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/tutorial_buy_first.png -------------------------------------------------------------------------------- /assets/images/tutorial_buy_second.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/tutorial_buy_second.png -------------------------------------------------------------------------------- /assets/images/welcome_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/images/welcome_background.png -------------------------------------------------------------------------------- /assets/inactive_checkbox_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/info_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/info_outline_pink.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/medium_fee.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/menu_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/open_in_full_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/open_in_full_icon_light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/pair_icons/dfi_btc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/pair_icons/dfi_btc.png -------------------------------------------------------------------------------- /assets/paste_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /assets/radio/checked-blue.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/radio/checked-green.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/radio/checked-orange.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/radio/checked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/radio/unfocused.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/receive_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/recived_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/remove_liquidity_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /assets/rotate_rectangle.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /assets/second_step_buy_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/second_step_buy_logo.png -------------------------------------------------------------------------------- /assets/secure_placeholder_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /assets/secure_placeholder_light.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /assets/send_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/senden_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/slow_fee.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/status_reload_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/status_reload_icon.png -------------------------------------------------------------------------------- /assets/success_gif.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/success_gif.gif -------------------------------------------------------------------------------- /assets/success_outline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/swap_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/third_step_buy_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/third_step_buy_logo.png -------------------------------------------------------------------------------- /assets/tokens/amzn.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 11 | 14 | 17 | 18 | -------------------------------------------------------------------------------- /assets/tokens/arkk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/tokens/bitcoin-cash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/tokens/dogecoin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/tokens/dusd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/tokens/eem.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 11 | 14 | 15 | -------------------------------------------------------------------------------- /assets/tokens/ethereum.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 12 | 14 | 15 | 17 | 18 | 20 | 22 | 23 | -------------------------------------------------------------------------------- /assets/tokens/nflx.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 11 | 14 | 17 | 18 | -------------------------------------------------------------------------------- /assets/tokens/pltr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/tokens/tlt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/tokens/urth.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/tokens/usdt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | -------------------------------------------------------------------------------- /assets/tokens/vnq.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /assets/tutorial_buy_cursor.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/wallet_disable.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/wallet_enable.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/wallet_enable_pink.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/welcome_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/assets/welcome_logo.png -------------------------------------------------------------------------------- /fonts/GalanoGrotesque/GalanoGrotesque-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/GalanoGrotesque/GalanoGrotesque-SemiBold.ttf -------------------------------------------------------------------------------- /fonts/IBM_Plex_Sans/IBMPlexSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/IBM_Plex_Sans/IBMPlexSans-Bold.ttf -------------------------------------------------------------------------------- /fonts/IBM_Plex_Sans/IBMPlexSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/IBM_Plex_Sans/IBMPlexSans-BoldItalic.ttf -------------------------------------------------------------------------------- /fonts/IBM_Plex_Sans/IBMPlexSans-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/IBM_Plex_Sans/IBMPlexSans-ExtraLight.ttf -------------------------------------------------------------------------------- /fonts/IBM_Plex_Sans/IBMPlexSans-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/IBM_Plex_Sans/IBMPlexSans-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /fonts/IBM_Plex_Sans/IBMPlexSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/IBM_Plex_Sans/IBMPlexSans-Italic.ttf -------------------------------------------------------------------------------- /fonts/IBM_Plex_Sans/IBMPlexSans-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/IBM_Plex_Sans/IBMPlexSans-Light.ttf -------------------------------------------------------------------------------- /fonts/IBM_Plex_Sans/IBMPlexSans-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/IBM_Plex_Sans/IBMPlexSans-LightItalic.ttf -------------------------------------------------------------------------------- /fonts/IBM_Plex_Sans/IBMPlexSans-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/IBM_Plex_Sans/IBMPlexSans-Medium.ttf -------------------------------------------------------------------------------- /fonts/IBM_Plex_Sans/IBMPlexSans-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/IBM_Plex_Sans/IBMPlexSans-MediumItalic.ttf -------------------------------------------------------------------------------- /fonts/IBM_Plex_Sans/IBMPlexSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/IBM_Plex_Sans/IBMPlexSans-Regular.ttf -------------------------------------------------------------------------------- /fonts/IBM_Plex_Sans/IBMPlexSans-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/IBM_Plex_Sans/IBMPlexSans-SemiBold.ttf -------------------------------------------------------------------------------- /fonts/IBM_Plex_Sans/IBMPlexSans-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/IBM_Plex_Sans/IBMPlexSans-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /fonts/IBM_Plex_Sans/IBMPlexSans-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/IBM_Plex_Sans/IBMPlexSans-Thin.ttf -------------------------------------------------------------------------------- /fonts/IBM_Plex_Sans/IBMPlexSans-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/IBM_Plex_Sans/IBMPlexSans-ThinItalic.ttf -------------------------------------------------------------------------------- /fonts/RedHatDisplay/RedHatDisplay-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/RedHatDisplay/RedHatDisplay-Black.ttf -------------------------------------------------------------------------------- /fonts/RedHatDisplay/RedHatDisplay-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/RedHatDisplay/RedHatDisplay-BlackItalic.ttf -------------------------------------------------------------------------------- /fonts/RedHatDisplay/RedHatDisplay-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/RedHatDisplay/RedHatDisplay-Bold.ttf -------------------------------------------------------------------------------- /fonts/RedHatDisplay/RedHatDisplay-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/RedHatDisplay/RedHatDisplay-BoldItalic.ttf -------------------------------------------------------------------------------- /fonts/RedHatDisplay/RedHatDisplay-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/RedHatDisplay/RedHatDisplay-ExtraBold.ttf -------------------------------------------------------------------------------- /fonts/RedHatDisplay/RedHatDisplay-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/RedHatDisplay/RedHatDisplay-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /fonts/RedHatDisplay/RedHatDisplay-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/RedHatDisplay/RedHatDisplay-Italic.ttf -------------------------------------------------------------------------------- /fonts/RedHatDisplay/RedHatDisplay-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/RedHatDisplay/RedHatDisplay-Light.ttf -------------------------------------------------------------------------------- /fonts/RedHatDisplay/RedHatDisplay-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/RedHatDisplay/RedHatDisplay-LightItalic.ttf -------------------------------------------------------------------------------- /fonts/RedHatDisplay/RedHatDisplay-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/RedHatDisplay/RedHatDisplay-Medium.ttf -------------------------------------------------------------------------------- /fonts/RedHatDisplay/RedHatDisplay-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/RedHatDisplay/RedHatDisplay-MediumItalic.ttf -------------------------------------------------------------------------------- /fonts/RedHatDisplay/RedHatDisplay-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/RedHatDisplay/RedHatDisplay-Regular.ttf -------------------------------------------------------------------------------- /fonts/RedHatDisplay/RedHatDisplay-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/RedHatDisplay/RedHatDisplay-SemiBold.ttf -------------------------------------------------------------------------------- /fonts/RedHatDisplay/RedHatDisplay-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/RedHatDisplay/RedHatDisplay-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /fonts/red_hat_display/RedHatDisplay-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/red_hat_display/RedHatDisplay-Black.ttf -------------------------------------------------------------------------------- /fonts/red_hat_display/RedHatDisplay-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/red_hat_display/RedHatDisplay-BlackItalic.ttf -------------------------------------------------------------------------------- /fonts/red_hat_display/RedHatDisplay-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/red_hat_display/RedHatDisplay-Bold.ttf -------------------------------------------------------------------------------- /fonts/red_hat_display/RedHatDisplay-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/red_hat_display/RedHatDisplay-BoldItalic.ttf -------------------------------------------------------------------------------- /fonts/red_hat_display/RedHatDisplay-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/red_hat_display/RedHatDisplay-ExtraBold.ttf -------------------------------------------------------------------------------- /fonts/red_hat_display/RedHatDisplay-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/red_hat_display/RedHatDisplay-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /fonts/red_hat_display/RedHatDisplay-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/red_hat_display/RedHatDisplay-Italic.ttf -------------------------------------------------------------------------------- /fonts/red_hat_display/RedHatDisplay-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/red_hat_display/RedHatDisplay-Light.ttf -------------------------------------------------------------------------------- /fonts/red_hat_display/RedHatDisplay-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/red_hat_display/RedHatDisplay-LightItalic.ttf -------------------------------------------------------------------------------- /fonts/red_hat_display/RedHatDisplay-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/red_hat_display/RedHatDisplay-Medium.ttf -------------------------------------------------------------------------------- /fonts/red_hat_display/RedHatDisplay-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/red_hat_display/RedHatDisplay-MediumItalic.ttf -------------------------------------------------------------------------------- /fonts/red_hat_display/RedHatDisplay-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/red_hat_display/RedHatDisplay-Regular.ttf -------------------------------------------------------------------------------- /fonts/red_hat_display/RedHatDisplay-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/red_hat_display/RedHatDisplay-SemiBold.ttf -------------------------------------------------------------------------------- /fonts/red_hat_display/RedHatDisplay-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/fonts/red_hat_display/RedHatDisplay-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /ios/.gitignore: -------------------------------------------------------------------------------- 1 | *.mode1v3 2 | *.mode2v3 3 | *.moved-aside 4 | *.pbxuser 5 | *.perspectivev3 6 | **/*sync/ 7 | .sconsign.dblite 8 | .tags* 9 | **/.vagrant/ 10 | **/DerivedData/ 11 | Icon? 12 | **/Pods/ 13 | **/.symlinks/ 14 | profile 15 | xcuserdata 16 | **/.generated/ 17 | Flutter/App.framework 18 | Flutter/Flutter.framework 19 | Flutter/Flutter.podspec 20 | Flutter/Generated.xcconfig 21 | Flutter/ephemeral/ 22 | Flutter/app.flx 23 | Flutter/app.zip 24 | Flutter/flutter_assets/ 25 | Flutter/flutter_export_environment.sh 26 | ServiceDefinitions.json 27 | Runner/GeneratedPluginRegistrant.* 28 | 29 | # Exceptions to above rules. 30 | !default.mode1v3 31 | !default.mode2v3 32 | !default.pbxuser 33 | !default.perspectivev3 34 | -------------------------------------------------------------------------------- /ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 11.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /lib/bloc/address_book/address_book_state.dart: -------------------------------------------------------------------------------- 1 | part of 'address_book_cubit.dart'; 2 | 3 | enum AddressBookStatusList { initial, loading, success, failure } 4 | 5 | class AddressBookState extends Equatable { 6 | final AddressBookStatusList status; 7 | final List? addressBookList; 8 | final List? lastSentList; 9 | 10 | AddressBookState({ 11 | this.status = AddressBookStatusList.initial, 12 | this.addressBookList, 13 | this.lastSentList, 14 | }); 15 | 16 | @override 17 | List get props => [ 18 | status, 19 | addressBookList, 20 | lastSentList, 21 | ]; 22 | 23 | AddressBookState copyWith({ 24 | AddressBookStatusList? status, 25 | List? addressBookList, 26 | List? lastSentList, 27 | }) { 28 | return AddressBookState( 29 | status: status ?? this.status, 30 | addressBookList: addressBookList ?? this.addressBookList, 31 | lastSentList: lastSentList ?? this.lastSentList, 32 | ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lib/bloc/asset_selector/asset_selector_cubit.dart: -------------------------------------------------------------------------------- 1 | import 'package:equatable/equatable.dart'; 2 | import 'package:flutter_bloc/flutter_bloc.dart'; 3 | import 'package:defi_wallet/models/token_model.dart'; 4 | 5 | part 'asset_selector_state.dart'; 6 | 7 | class AssetSelectorCubit extends Cubit { 8 | AssetSelectorCubit() : super(AssetSelectorState()); 9 | 10 | void updateCurrentAsset(TokensModel asset) { 11 | emit(state.copyWith( 12 | currentAsset: asset, 13 | )); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/bloc/asset_selector/asset_selector_state.dart: -------------------------------------------------------------------------------- 1 | part of 'asset_selector_cubit.dart'; 2 | 3 | enum AssetSelectorStatusList { initial, success, failure } 4 | 5 | class AssetSelectorState extends Equatable { 6 | final AssetSelectorStatusList status; 7 | final List? assets; 8 | final TokensModel? currentAsset; 9 | 10 | AssetSelectorState({ 11 | this.status = AssetSelectorStatusList.initial, 12 | this.assets, 13 | this.currentAsset, 14 | }); 15 | 16 | @override 17 | List get props => [ 18 | status, 19 | assets, 20 | currentAsset, 21 | ]; 22 | 23 | AssetSelectorState copyWith({ 24 | AssetSelectorStatusList? status, 25 | List? assets, 26 | TokensModel? currentAsset, 27 | }) { 28 | return AssetSelectorState( 29 | status: status ?? this.status, 30 | assets: assets ?? this.assets, 31 | currentAsset: currentAsset ?? this.currentAsset, 32 | ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lib/bloc/auth/auth_bloc.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | import 'package:flutter_bloc/flutter_bloc.dart'; 3 | import 'auth_state.dart'; 4 | 5 | class AuthBloc extends Cubit { 6 | AuthBloc() : super(AuthState(isLoading: false, mnemonic: [])); 7 | 8 | Future storeMnemonic(List mnemonic) async { 9 | state.copyWith(isLoading: true, mnemonic: mnemonic); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /lib/bloc/auth/auth_state.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | @immutable 4 | class AuthState { 5 | final bool? isLoading; 6 | List? mnemonic; 7 | 8 | AuthState({this.isLoading, this.mnemonic}); 9 | 10 | AuthState copyWith({ 11 | bool? isLoading = false, 12 | List? mnemonic, 13 | }) { 14 | return AuthState( 15 | isLoading: isLoading ?? this.isLoading, 16 | mnemonic: mnemonic ?? this.mnemonic, 17 | ); 18 | } 19 | } -------------------------------------------------------------------------------- /lib/bloc/available_amount/available_amount_state.dart: -------------------------------------------------------------------------------- 1 | part of 'available_amount_cubit.dart'; 2 | 3 | enum AvailableAmountStatusList { initial, loading, success, failure } 4 | 5 | class AvailableAmountState extends Equatable { 6 | final AvailableAmountStatusList status; 7 | final double? available; 8 | final double? availableTo; 9 | final double? availableFrom; 10 | 11 | 12 | AvailableAmountState({ 13 | this.status = AvailableAmountStatusList.initial, 14 | this.available, 15 | this.availableTo, 16 | this.availableFrom, 17 | }); 18 | 19 | @override 20 | List get props => [ 21 | status, 22 | available, 23 | availableTo, 24 | availableFrom, 25 | ]; 26 | 27 | AvailableAmountState copyWith({ 28 | final AvailableAmountStatusList? status, 29 | double? available, 30 | double? availableTo, 31 | double? availableFrom, 32 | }) { 33 | return AvailableAmountState( 34 | status: status ?? this.status, 35 | available: available ?? this.available, 36 | availableTo: availableTo ?? this.availableTo, 37 | availableFrom: availableFrom ?? this.availableFrom, 38 | ); 39 | } 40 | } -------------------------------------------------------------------------------- /lib/bloc/bridge/bridge_state.dart: -------------------------------------------------------------------------------- 1 | part of 'bridge_cubit.dart'; 2 | 3 | enum BridgeStatusList { initial, loading, success, failure } 4 | 5 | class BridgeState extends Equatable { 6 | final BridgeStatusList status; 7 | final BridgeModel? bridgeModel; 8 | 9 | BridgeState({ 10 | this.status = BridgeStatusList.initial, 11 | this.bridgeModel, 12 | }); 13 | 14 | @override 15 | List get props => [ 16 | status, 17 | bridgeModel, 18 | ]; 19 | 20 | BridgeState copyWith({ 21 | BridgeStatusList? status, 22 | BridgeModel? bridgeModel, 23 | }) { 24 | return BridgeState( 25 | status: status ?? this.status, 26 | bridgeModel: bridgeModel ?? this.bridgeModel, 27 | ); 28 | } 29 | } -------------------------------------------------------------------------------- /lib/bloc/home/home_cubit.dart: -------------------------------------------------------------------------------- 1 | import 'package:bloc/bloc.dart'; 2 | import 'package:equatable/equatable.dart'; 3 | import 'package:flutter/material.dart'; 4 | 5 | part 'home_state.dart'; 6 | 7 | class HomeCubit extends Cubit { 8 | HomeCubit() : super(HomeState()); 9 | 10 | onHide() { 11 | emit(state.copyWith( 12 | status: HomeStatusList.hide, 13 | )); 14 | } 15 | 16 | onShow() { 17 | emit(state.copyWith( 18 | status: HomeStatusList.show, 19 | )); 20 | } 21 | 22 | updateTabIndex({int index = 0}) { 23 | emit(state.copyWith( 24 | tabIndex: index, 25 | )); 26 | } 27 | 28 | updateScrollView({Widget? widget}) { 29 | emit(state.copyWith( 30 | scrollView: widget, 31 | isShownHome: widget == null, 32 | )); 33 | } 34 | 35 | updateExtendedSelector(bool value) { 36 | emit(state.copyWith( 37 | isShowExtendedNetworkSelector: value 38 | )); 39 | } 40 | 41 | updateExtendedDrawer(bool value) { 42 | emit(state.copyWith( 43 | isShowExtendedAccountDrawer: value 44 | )); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /lib/bloc/network/network_cubit.dart: -------------------------------------------------------------------------------- 1 | import 'package:bloc/bloc.dart'; 2 | import 'package:equatable/equatable.dart'; 3 | 4 | part 'network_state.dart'; 5 | 6 | class NetworkCubit extends Cubit { 7 | NetworkCubit() : super(NetworkState()); 8 | 9 | updateCurrentNetwork(NetworkList value) { 10 | emit(state.copyWith( 11 | currentNetwork: value, 12 | )); 13 | } 14 | 15 | updateCurrentTab(NetworkTabs value) { 16 | emit(state.copyWith( 17 | currentNetworkSelectorTab: value, 18 | )); 19 | } 20 | 21 | updateTestnetNetworksList(bool status) { 22 | emit(state.copyWith( 23 | isShownTestnet: status 24 | )); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /lib/bloc/refactoring/earn/earn_state.dart: -------------------------------------------------------------------------------- 1 | part of 'earn_cubit.dart'; 2 | 3 | enum EarnStatusList { initial, loading, success, restore, failure } 4 | 5 | class EarnState extends Equatable { 6 | final EarnStatusList status; 7 | final List? lmProviders; 8 | 9 | 10 | EarnState({ 11 | this.status = EarnStatusList.initial, 12 | 13 | this.lmProviders, 14 | }); 15 | 16 | @override 17 | List get props => [ 18 | status, 19 | lmProviders 20 | ]; 21 | 22 | EarnState copyWith({ 23 | EarnStatusList? status, 24 | List? lmProviders, 25 | }) { 26 | return EarnState( 27 | status: status ?? this.status, 28 | lmProviders: lmProviders ?? this.lmProviders, 29 | 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lib/bloc/theme/theme_cubit.dart: -------------------------------------------------------------------------------- 1 | import 'package:bloc/bloc.dart'; 2 | import 'package:defi_wallet/bloc/theme/theme_state.dart'; 3 | 4 | class ThemeCubit extends Cubit { 5 | ThemeCubit() : super(ThemeChangedState()); 6 | 7 | Future changeTheme() async { 8 | emit(ThemeChangedState()); 9 | } 10 | } -------------------------------------------------------------------------------- /lib/bloc/theme/theme_state.dart: -------------------------------------------------------------------------------- 1 | abstract class ThemeState {} 2 | 3 | class ThemeChangedState extends ThemeState {} -------------------------------------------------------------------------------- /lib/bloc/tokens/tokens_state.dart: -------------------------------------------------------------------------------- 1 | part of 'tokens_cubit.dart'; 2 | 3 | enum TokensStatusList { initial, loading, success, failure } 4 | 5 | class TokensState extends Equatable { 6 | final TokensStatusList status; 7 | final List? tokens; 8 | final List? foundTokens; 9 | TokensState({ 10 | this.status = TokensStatusList.initial, 11 | this.tokens, 12 | this.foundTokens, 13 | }); 14 | 15 | @override 16 | List get props => [ 17 | status, 18 | tokens, 19 | foundTokens, 20 | ]; 21 | 22 | TokensState copyWith({ 23 | TokensStatusList? status, 24 | List? tokens, 25 | List? foundTokens, 26 | }) { 27 | return TokensState( 28 | status: status ?? this.status, 29 | tokens: tokens ?? this.tokens, 30 | foundTokens: foundTokens ?? this.foundTokens, 31 | ); 32 | } 33 | } -------------------------------------------------------------------------------- /lib/bloc/transaction/transaction_state.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/models/tx_error_model.dart'; 2 | 3 | abstract class TransactionState { 4 | final TxErrorModel? txErrorModel; 5 | final int? txIndex; 6 | 7 | TransactionState(this.txErrorModel, {this.txIndex = 0}); 8 | } 9 | 10 | class TransactionInitialState extends TransactionState { 11 | TransactionInitialState(TxErrorModel? txErrorModel) 12 | : super(txErrorModel, txIndex: 0); 13 | } 14 | 15 | class TransactionLoadingState extends TransactionState { 16 | final TxErrorModel? txErrorModel; 17 | final int txIndex; 18 | 19 | TransactionLoadingState(this.txErrorModel, {this.txIndex = 0}) 20 | : super(txErrorModel, txIndex: txIndex); 21 | } 22 | 23 | class TransactionLoadedState extends TransactionState { 24 | final TxErrorModel? txErrorModel; 25 | final int txIndex; 26 | 27 | TransactionLoadedState(this.txErrorModel, {this.txIndex = 0}) 28 | : super(txErrorModel, txIndex: txIndex); 29 | } 30 | 31 | class TransactionErrorState extends TransactionState { 32 | final TxErrorModel? txErrorModel; 33 | final int txIndex; 34 | 35 | TransactionErrorState(this.txErrorModel, {this.txIndex = 0}) 36 | : super(txErrorModel, txIndex: txIndex); 37 | } 38 | -------------------------------------------------------------------------------- /lib/constants/input_formatters.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/services.dart'; 2 | 3 | List inputFormatters = [ 4 | FilteringTextInputFormatter.allow( 5 | RegExp("[0-9\.-]"), 6 | replacementString: ('.'), 7 | ), 8 | FilteringTextInputFormatter.deny( 9 | RegExp(r'\.\.+'), 10 | replacementString: '.', 11 | ), 12 | FilteringTextInputFormatter.deny( 13 | RegExp(r'^\.'), 14 | replacementString: '0.', 15 | ), 16 | FilteringTextInputFormatter.deny( 17 | RegExp(r'\.\d+\.'), 18 | ), 19 | FilteringTextInputFormatter.deny( 20 | RegExp(r'\d+-'), 21 | ), 22 | FilteringTextInputFormatter.deny( 23 | RegExp(r'-\.+'), 24 | ), 25 | FilteringTextInputFormatter.deny( 26 | RegExp(r'^0\d+'), 27 | ), 28 | ]; -------------------------------------------------------------------------------- /lib/helpers/addresses_helper.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/helpers/network_helper.dart'; 2 | import 'package:defi_wallet/helpers/settings_helper.dart'; 3 | import 'package:defi_wallet/models/address_model.dart'; 4 | import 'package:defichaindart/defichaindart.dart'; 5 | import 'package:http/http.dart' as http; 6 | 7 | class AddressesHelper { 8 | var networkHelper = NetworkHelper(); 9 | 10 | List getAddressStringFromListAddressModel( 11 | List addresses) { 12 | return addresses.map((address) => address.address!).toList(); 13 | } 14 | Future validateAddress(String address) async { 15 | return Address.validateAddress( 16 | address, networkHelper.getNetwork(SettingsHelper.settings.network!)); 17 | } 18 | 19 | Future validateBtcAddress(String address) async { 20 | NetworkType type = SettingsHelper.settings.network == 'mainnet' 21 | ? networkHelper.getNetwork('bitcoin') 22 | : networkHelper.getNetwork('bitcoin_testnet'); 23 | return Address.validateAddress(address, type); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /lib/helpers/fiat_helper.dart: -------------------------------------------------------------------------------- 1 | class FiatHelper { 2 | String getIbanFormat(String iban) { 3 | String ibanFormat = ''; 4 | int ibanLength = iban.length; 5 | int iterationStep = 4; 6 | int specialSelectedCounter = 20; 7 | 8 | for (int i = 0; i < ibanLength; i += iterationStep) { 9 | if (i != specialSelectedCounter) { 10 | ibanFormat += iban.substring(i, i + iterationStep) + ' '; 11 | } else { 12 | ibanFormat += iban.substring(i, i + iterationStep ~/ 2); 13 | } 14 | } 15 | return ibanFormat; 16 | } 17 | } -------------------------------------------------------------------------------- /lib/helpers/logo_helper.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_svg/flutter_svg.dart'; 3 | 4 | class LogoHelper { 5 | Widget getLogo() { 6 | return SvgPicture.asset( 7 | 'assets/jelly_logo.svg' 8 | ); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /lib/helpers/menu_helper.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/config/config.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class MenuHelper { 5 | double getHorizontalMargin(BuildContext context) { 6 | double width = MediaQuery.of(context).size.width; 7 | double horizontalMargin = 15; 8 | 9 | if (width > ScreenSizes.medium) { 10 | horizontalMargin += ((width - ScreenSizes.medium) / 2).round(); 11 | } 12 | 13 | return horizontalMargin; 14 | } 15 | } -------------------------------------------------------------------------------- /lib/helpers/network_helper.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/helpers/settings_helper.dart'; 2 | import 'package:defichaindart/defichaindart.dart'; 3 | import 'package:defichaindart/src/models/networks.dart' as networks; 4 | import 'package:bip32_defichain/bip32.dart' as bip32; 5 | class NetworkHelper { 6 | final SettingsHelper settingsHelper = SettingsHelper(); 7 | final localSettings = SettingsHelper.settings; 8 | 9 | String getNetworkString() { 10 | return localSettings.network!; 11 | } 12 | 13 | NetworkType getNetwork(String networkString) { 14 | switch (networkString) { 15 | case 'mainnet': 16 | return networks.defichain; 17 | case 'testnet': 18 | return networks.defichain_testnet; 19 | case 'bitcoin': 20 | return networks.bitcoin; 21 | case 'bitcoin_testnet': 22 | return networks.testnet; 23 | default: 24 | return networks.defichain; 25 | } 26 | } 27 | 28 | bip32.NetworkType getNetworkType(String networkString) { 29 | var network = getNetwork(networkString); 30 | return bip32.NetworkType( 31 | bip32: bip32.Bip32Type( 32 | private: network.bip32.private, 33 | public: network.bip32.public, 34 | ), 35 | wif: network.wif, 36 | ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /lib/main.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | 3 | import 'package:flutter/foundation.dart'; 4 | import 'package:flutter/material.dart'; 5 | import 'package:hive_flutter/hive_flutter.dart'; 6 | import 'package:flutter_dotenv/flutter_dotenv.dart'; 7 | import 'package:defi_wallet/models/error/error_model.dart'; 8 | import 'package:defi_wallet/my_app.dart'; 9 | import 'package:defi_wallet/services/errors/sentry_service.dart'; 10 | 11 | Future main() async { 12 | await runZonedGuarded( 13 | () async { 14 | WidgetsFlutterBinding.ensureInitialized(); 15 | // await dotenv.load(fileName: '.env'); 16 | await Hive.initFlutter(); 17 | if (kReleaseMode) { 18 | await SentryService.initSentry(); 19 | } 20 | runApp(App()); 21 | }, 22 | (exception, stackTrace) async { 23 | await SentryService.captureException( 24 | ErrorModel( 25 | file: 'main.dart', 26 | method: 'main', 27 | exception: exception.toString(), 28 | ), 29 | stackTrace: stackTrace, 30 | ); 31 | }, 32 | ); 33 | } 34 | -------------------------------------------------------------------------------- /lib/mixins/dialog_mixin.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/utils/theme/theme.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | mixin DialogMixin { 5 | Future showAppDialog(Widget widget, BuildContext context) { 6 | return showDialog( 7 | barrierColor: AppColors.tolopea.withOpacity(0.06), 8 | barrierDismissible: false, 9 | context: context, 10 | builder: (BuildContext dialogContext) { 11 | return widget; 12 | }, 13 | ); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/mixins/format_mixin.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/helpers/balances_helper.dart'; 2 | 3 | enum FormatNumberType { fiat, crypto, btc } 4 | 5 | mixin FormatMixin { 6 | final BalancesHelper balancesHelper = BalancesHelper(); 7 | 8 | String formatNumberStyling( 9 | double number, { 10 | FormatNumberType type = FormatNumberType.crypto, 11 | int? fixedCount, 12 | }) { 13 | if (fixedCount != null) 14 | return balancesHelper.numberStyling( 15 | number, 16 | fixed: true, 17 | fixedCount: fixedCount, 18 | ); 19 | else 20 | return balancesHelper.numberStyling(number, type: type); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lib/mixins/network_mixin.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/bloc/address_book/address_book_cubit.dart'; 2 | import 'package:defi_wallet/helpers/network_helper.dart'; 3 | import 'package:defi_wallet/helpers/settings_helper.dart'; 4 | import 'package:defi_wallet/models/network/network_name.dart'; 5 | import 'package:defi_wallet/models/settings_model.dart'; 6 | import 'package:defichaindart/defichaindart.dart'; 7 | import 'package:flutter_bloc/flutter_bloc.dart'; 8 | 9 | mixin NetworkMixin { 10 | String currentNetworkName() { 11 | SettingsModel settings = SettingsHelper.settings; 12 | String network = settings.network!; 13 | if (network == 'mainnet') { 14 | return (settings.isBitcoin!) ? 'Bitcoin Mainnet' : 'DefiChain Mainnet'; 15 | } else { 16 | return (settings.isBitcoin!) ? 'Bitcoin Testnet' : 'DefiChain Testnet'; 17 | } 18 | } 19 | 20 | NetworkTypeModel? addressNetwork(context, String address) { 21 | final addressCubit = BlocProvider.of(context); 22 | final networkType = addressCubit.getNetworkType(context, address); 23 | return networkType; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /lib/mixins/storage_phrase_mixin.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/client/hive_names.dart'; 2 | import 'package:hive_flutter/hive_flutter.dart'; 3 | 4 | mixin StoragePhraseMixin { 5 | Future savePhraseToStorage(String phrase) async => 6 | await _updateSavedData(phrase); 7 | 8 | Future clearPhraseInStorage() async => await _updateSavedData(null); 9 | 10 | Future _updateSavedData(String? data) async { 11 | var box = await Hive.openBox(HiveBoxes.client); 12 | await box.put(HiveNames.openedMnemonic, data); 13 | await box.close(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/mixins/theme_mixin.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/config/config.dart'; 2 | import 'package:defi_wallet/helpers/settings_helper.dart'; 3 | import 'package:flutter/material.dart'; 4 | 5 | mixin ThemeMixin { 6 | final SettingsHelper settingsHelper = SettingsHelper(); 7 | 8 | bool isDarkTheme() => SettingsHelper.settings.theme == 'Dark'; 9 | 10 | bool isFullScreen(BuildContext context) { 11 | return MediaQuery.of(context).size.width > ScreenSizes.medium; 12 | } 13 | 14 | bool isLargeScreen(BuildContext context) { 15 | return MediaQuery.of(context).size.width > ScreenSizes.large - 1; 16 | } 17 | 18 | bool isSmallScreen(BuildContext context) { 19 | return MediaQuery.of(context).size.width > ScreenSizes.small - 1; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /lib/models/address_balance_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/models/address_model.dart'; 2 | import 'package:defi_wallet/models/balance_model.dart'; 3 | import 'package:defichaindart/defichaindart.dart'; 4 | 5 | class AddressBalanceModel { 6 | String? address; 7 | List? balanceList; 8 | AddressModel? addressModel; 9 | 10 | AddressBalanceModel({this.address, this.balanceList, this.addressModel}); 11 | 12 | AddressBalanceModel.fromJson(Map json) { 13 | this.address = json["address"]; 14 | 15 | List balanceList = []; 16 | json["accounts"] 17 | .map((data) => balanceList.add(BalanceModel.fromJson(data))) 18 | .toList(); 19 | this.balanceList = balanceList; 20 | } 21 | } -------------------------------------------------------------------------------- /lib/models/asset_style_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class AssetStyleModel { 4 | String? tokenName; 5 | String? imgPath; 6 | bool? isUniqueLogo; 7 | double? rotateRadian; 8 | List? gradientColors; 9 | List? stops; 10 | 11 | AssetStyleModel({ 12 | this.tokenName, 13 | this.imgPath, 14 | this.isUniqueLogo, 15 | this.gradientColors, 16 | this.rotateRadian, 17 | this.stops, 18 | }); 19 | } 20 | -------------------------------------------------------------------------------- /lib/models/balance/bitcoin/blockcypher_balance_model.dart: -------------------------------------------------------------------------------- 1 | class BlockcypherBalanceModel{ 2 | int balance; 3 | int unconfirmedBalance; 4 | 5 | BlockcypherBalanceModel({ 6 | required this.balance, 7 | required this.unconfirmedBalance, 8 | }); 9 | } -------------------------------------------------------------------------------- /lib/models/balance_model.dart: -------------------------------------------------------------------------------- 1 | import 'dart:ui'; 2 | 3 | import 'package:defi_wallet/helpers/tokens_helper.dart'; 4 | 5 | class BalanceModel { 6 | String? token; 7 | int? balance; 8 | Color? color; 9 | bool? isHidden; 10 | bool? isPair; 11 | 12 | BalanceModel({this.token, this.balance, this.isHidden = false}){ 13 | this.color = TokensHelper().getColorByTokenName(this.token); 14 | this.isPair = this.token?.contains('-'); 15 | } 16 | 17 | BalanceModel.fromJson(Map json) { 18 | this.token = json["token"]; 19 | this.balance = json["balance"].toInt(); 20 | this.color = TokensHelper().getColorByTokenName(json["token"]); 21 | this.isHidden = json["isHidden"]; 22 | this.isPair = json["token"].contains('-'); 23 | } 24 | 25 | Map toJson() { 26 | final Map data = new Map(); 27 | data["token"] = this.token; 28 | data["balance"] = this.balance; 29 | data["isHidden"] = this.isHidden; 30 | 31 | return data; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /lib/models/crypto_route_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/utils/convert.dart'; 2 | 3 | class CryptoRouteModel { 4 | String? blockchainFrom; 5 | String? blockchainTo; 6 | String? assetFrom; 7 | String? assetTo; 8 | String? address; 9 | int? minDeposit; 10 | double? fee; 11 | 12 | CryptoRouteModel( 13 | {this.blockchainFrom, 14 | this.blockchainTo, 15 | this.assetFrom = 'BTC', 16 | this.assetTo, 17 | this.address, 18 | this.minDeposit, 19 | this.fee}); 20 | 21 | CryptoRouteModel.fromJson(Map json) { 22 | this.blockchainFrom = json["deposit"]['blockchain']; 23 | this.blockchainTo = json["asset"]['blockchain']; 24 | this.assetFrom = 'BTC'; 25 | this.assetTo = json["asset"]['dBTC']; 26 | this.address = json["deposit"]['address']; 27 | this.minDeposit = convertToSatoshi(json["minDeposits"][0]['amount']); 28 | this.fee = json["fee"]; 29 | 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /lib/models/error/error_model.dart: -------------------------------------------------------------------------------- 1 | class ErrorModel { 2 | final String? file; 3 | final String? method; 4 | final String? exception; 5 | 6 | ErrorModel({ 7 | this.file, 8 | this.method, 9 | this.exception, 10 | }); 11 | 12 | Map toJSON() { 13 | final Map data = new Map(); 14 | data['file'] = this.file ?? 'none'; 15 | data['method'] = this.method ?? 'none'; 16 | data['exception'] = this.exception ?? 'none'; 17 | return data; 18 | } 19 | 20 | factory ErrorModel.fromJSON(Map json) { 21 | return ErrorModel( 22 | file: json['file'] ?? '', 23 | method: json['method'] ?? '', 24 | exception: json['exception'] ?? '', 25 | ); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /lib/models/fiat_model.dart: -------------------------------------------------------------------------------- 1 | class FiatModel { 2 | int? id; 3 | String? name; 4 | bool? buyable; 5 | bool? sellable; 6 | 7 | 8 | FiatModel({ 9 | this.id, 10 | this.name, 11 | this.buyable, 12 | this.sellable, 13 | }); 14 | 15 | FiatModel.fromJson(Map json) { 16 | this.id = json["id"]; 17 | this.name = json["name"]; 18 | try { 19 | this.buyable = json["buyable"]; 20 | this.sellable = json["sellable"]; 21 | } catch (err) { 22 | this.buyable = null; 23 | this.sellable = null; 24 | } 25 | } 26 | 27 | Map toJson() { 28 | final Map data = new Map(); 29 | data["id"] = this.id; 30 | data["name"] = this.name; 31 | data["buyable"] = this.buyable; 32 | data["sellable"] = this.sellable; 33 | return data; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /lib/models/focus_model.dart: -------------------------------------------------------------------------------- 1 | class FocusModel { 2 | bool isFocus; 3 | FocusModel({this.isFocus = false}); 4 | 5 | void setFocus(FocusModel data, bool focus) { 6 | data.isFocus = focus; 7 | } 8 | } -------------------------------------------------------------------------------- /lib/models/history_model.dart: -------------------------------------------------------------------------------- 1 | class HistoryModel { 2 | String? token; 3 | int? value; 4 | bool? isSend; 5 | String? txid; 6 | String? blockTime; 7 | String? type; 8 | 9 | HistoryModel({this.isSend, this.value, this.token, this.txid, this.blockTime, this.type}); 10 | 11 | HistoryModel.fromJson(Map json) { 12 | this.value = json["value"]; 13 | this.token = json["token"]; 14 | this.isSend = json["isSend"]; 15 | this.blockTime = json["blockTime"]; 16 | this.type = json["type"]; 17 | this.txid = json["txid"]; 18 | } 19 | 20 | Map toJson() { 21 | final Map data = new Map(); 22 | data["token"] = this.token; 23 | data["isSend"] = this.isSend; 24 | data["value"] = this.value; 25 | data["txid"] = this.txid; 26 | data["blockTime"] = this.blockTime; 27 | data["type"] = this.type; 28 | return data; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lib/models/limit_model.dart: -------------------------------------------------------------------------------- 1 | class LimitModel { 2 | double? value; 3 | String? period; 4 | 5 | LimitModel({ 6 | this.value, 7 | this.period, 8 | }); 9 | 10 | LimitModel.fromJson(Map json) { 11 | try { 12 | this.value = json["limit"] + .0; 13 | this.period = json["period"]; 14 | } catch (_) { 15 | this.value = 0.0; 16 | this.period = 'Day'; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/models/lock_analytics_model.dart: -------------------------------------------------------------------------------- 1 | import 'dart:typed_data'; 2 | 3 | import 'package:defi_wallet/helpers/settings_helper.dart'; 4 | import 'package:defi_wallet/models/lock_reward_routes_model.dart'; 5 | import 'package:defi_wallet/services/hd_wallet_service.dart'; 6 | import 'package:defichaindart/defichaindart.dart'; 7 | 8 | class LockAnalyticsModel { 9 | String? updated; 10 | double? apr; 11 | double? apy; 12 | int? operatorCount; 13 | double? tvl; 14 | String? asset; 15 | 16 | LockAnalyticsModel( 17 | {this.updated, 18 | this.apr, this.apy, this.operatorCount, this.tvl, this.asset}); 19 | 20 | LockAnalyticsModel.fromJson(Map json) { 21 | this.updated = json["updated"]; 22 | this.apr = json["apr"]; 23 | this.apy = json["apy"]; 24 | this.operatorCount = json["operatorCount"]; 25 | this.tvl = json["tvl"]; 26 | this.asset = json["asset"]; 27 | } 28 | 29 | Map toJson() { 30 | final Map data = new Map(); 31 | data["updated"] = this.updated; 32 | data["apr"] = this.apr; 33 | data["apy"] = this.apy; 34 | data["operatorCount"] = this.operatorCount; 35 | data["tvl"] = this.tvl; 36 | data["asset"] = this.asset; 37 | 38 | return data; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /lib/models/lock_asset_model.dart: -------------------------------------------------------------------------------- 1 | 2 | class LockAssetModel { 3 | String? name; 4 | String? displayName; 5 | String? blockchain; 6 | String? type; 7 | String? category; 8 | bool? buyable; 9 | bool? sellable; 10 | 11 | LockAssetModel({ 12 | this.name, 13 | this.displayName, 14 | this.blockchain, 15 | this.type, 16 | this.category, 17 | this.buyable, 18 | this.sellable, 19 | }); 20 | 21 | LockAssetModel.fromJson(Map json) { 22 | this.name = json["name"]; 23 | this.displayName = json["displayName"]; 24 | this.blockchain = json["blockchain"]; 25 | this.type = json["type"]; 26 | this.category = json["category"]; 27 | this.buyable = json["buyable"]; 28 | this.sellable = json["sellable"]; 29 | } 30 | 31 | Map toJson() { 32 | final Map data = new Map(); 33 | data["name"] = this.name; 34 | data["displayName"] = this.displayName; 35 | data["blockchain"] = this.blockchain; 36 | data["type"] = this.type; 37 | data["category"] = this.category; 38 | data["buyable"] = this.buyable; 39 | data["sellable"] = this.sellable; 40 | 41 | return data; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /lib/models/lock_balance_model.dart: -------------------------------------------------------------------------------- 1 | class LockBalanceModel { 2 | String? asset; 3 | double? balance; 4 | double? pendingDeposits; 5 | double? pendingWithdrawals; 6 | 7 | 8 | LockBalanceModel({ 9 | this.asset, 10 | this.balance, 11 | this.pendingDeposits, 12 | this.pendingWithdrawals, 13 | }); 14 | 15 | LockBalanceModel.fromJson(Map json) { 16 | this.asset = json["asset"]; 17 | this.balance = json["balance"]; 18 | this.pendingDeposits = json["pendingDeposits"]; 19 | this.pendingWithdrawals = json["pendingWithdrawals"]; 20 | } 21 | 22 | Map toJson() { 23 | final Map data = new Map(); 24 | data["asset"] = this.asset; 25 | data["balance"] = this.balance; 26 | data["pendingDeposits"] = this.pendingDeposits; 27 | data["pendingWithdrawals"] = this.pendingWithdrawals; 28 | return data; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lib/models/lock_minimal_deposits_model.dart: -------------------------------------------------------------------------------- 1 | class LockMinimalDepositsModel { 2 | String? asset; 3 | double? amount; 4 | 5 | 6 | LockMinimalDepositsModel({ 7 | this.asset, 8 | this.amount, 9 | }); 10 | 11 | LockMinimalDepositsModel.fromJson(Map json) { 12 | this.asset = json["asset"]; 13 | this.amount = json["amount"]; 14 | } 15 | 16 | Map toJson() { 17 | final Map data = new Map(); 18 | data["asset"] = this.asset; 19 | data["amount"] = this.amount; 20 | return data; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lib/models/lock_user_model.dart: -------------------------------------------------------------------------------- 1 | import 'dart:typed_data'; 2 | 3 | import 'package:defi_wallet/helpers/settings_helper.dart'; 4 | import 'package:defi_wallet/services/hd_wallet_service.dart'; 5 | import 'package:defichaindart/defichaindart.dart'; 6 | 7 | class LockUserModel { 8 | String? address; 9 | String? kycStatus; 10 | String? kycLink; 11 | 12 | LockUserModel( 13 | {this.address, 14 | this.kycStatus}); 15 | 16 | LockUserModel.fromJson(Map json) { 17 | this.address = json["address"]; 18 | this.kycStatus = json["kycStatus"]; 19 | this.kycLink = json["kycLink"]; 20 | } 21 | 22 | Map toJson() { 23 | final Map data = new Map(); 24 | data["address"] = this.address; 25 | data["kycStatus"] = this.kycStatus; 26 | data["kycLink"] = this.kycLink; 27 | return data; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /lib/models/lock_withdraw_model.dart: -------------------------------------------------------------------------------- 1 | class LockWithdrawModel { 2 | int? id; 3 | String? signMessage; 4 | String? signature; 5 | double? amount; 6 | 7 | LockWithdrawModel({ 8 | this.id, 9 | this.signMessage, 10 | this.signature, 11 | this.amount, 12 | }); 13 | 14 | LockWithdrawModel.fromJson(Map json) { 15 | this.id = json["id"]; 16 | this.signMessage = json["signMessage"]; 17 | this.signature = json["signature"]; 18 | this.amount = json["amount"]; 19 | } 20 | 21 | Map toJson() { 22 | final Map data = new Map(); 23 | data["id"] = this.id; 24 | data["signMessage"] = this.signMessage; 25 | data["signature"] = this.signature; 26 | data["amount"] = this.amount; 27 | 28 | return data; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lib/models/network/abstract_classes/abstract_app_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/models/network/abstract_classes/abstract_account_model.dart'; 2 | import 'package:defi_wallet/models/network/abstract_classes/abstract_network_model.dart'; 3 | 4 | enum Language { 5 | english, 6 | german 7 | } 8 | 9 | abstract class AbstractAppModel { 10 | final List networkList; 11 | final List accountList; 12 | final AbstractAccountModel selectedAccount; 13 | final AbstractNetworkModel selectedNetwork; 14 | final Language language; 15 | 16 | AbstractAppModel( 17 | this.networkList, 18 | this.accountList, 19 | this.selectedAccount, 20 | this.selectedNetwork, 21 | this.language, 22 | ); 23 | } 24 | -------------------------------------------------------------------------------- /lib/models/network/abstract_classes/abstract_exchange_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/models/network/abstract_classes/abstract_account_model.dart'; 2 | import 'package:defi_wallet/models/network/abstract_classes/abstract_network_model.dart'; 3 | import 'package:defi_wallet/models/network/application_model.dart'; 4 | import 'package:defi_wallet/models/token/exchange_pair_model.dart'; 5 | import 'package:defi_wallet/models/token/token_model.dart'; 6 | import 'package:defi_wallet/models/tx_error_model.dart'; 7 | 8 | abstract class AbstractExchangeModel { 9 | Future> getAvailableExchangePairs( 10 | AbstractNetworkModel network, 11 | ); 12 | 13 | Future exchange( 14 | AbstractAccountModel account, 15 | AbstractNetworkModel network, 16 | String password, 17 | TokenModel fromToken, 18 | double amountFrom, 19 | double amountTo, 20 | TokenModel toToken, 21 | double slippage, 22 | ApplicationModel applicationModel); 23 | } 24 | -------------------------------------------------------------------------------- /lib/models/network/abstract_classes/abstract_lm_provider_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/models/network/abstract_classes/abstract_account_model.dart'; 2 | import 'package:defi_wallet/models/network/abstract_classes/abstract_network_model.dart'; 3 | import 'package:defi_wallet/models/network/application_model.dart'; 4 | import 'package:defi_wallet/models/token/lp_pool_model.dart'; 5 | import 'package:defi_wallet/models/tx_error_model.dart'; 6 | 7 | abstract class AbstractLmProviderModel { 8 | Future> getAvailableLmPools(AbstractNetworkModel network); 9 | 10 | List getPinnedLmPools(AbstractAccountModel account); 11 | 12 | void pinLmPool(AbstractAccountModel account, LmPoolModel pool); 13 | 14 | void unpinLmPool(AbstractAccountModel account, LmPoolModel pool); 15 | 16 | Future addBalance( 17 | AbstractAccountModel account, 18 | AbstractNetworkModel network, 19 | String password, 20 | LmPoolModel pool, 21 | List amounts, 22 | ApplicationModel applicationModel, 23 | ); 24 | 25 | Future removeBalance( 26 | AbstractAccountModel account, 27 | AbstractNetworkModel network, 28 | String password, 29 | LmPoolModel pool, 30 | double amount, 31 | ApplicationModel applicationModel, 32 | ); 33 | } 34 | -------------------------------------------------------------------------------- /lib/models/network/abstract_classes/abstract_rates_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/models/network/abstract_classes/abstract_network_model.dart'; 2 | import 'package:defi_wallet/models/token/lp_pool_model.dart'; 3 | import 'package:defi_wallet/models/token/token_model.dart'; 4 | 5 | abstract class AbstractRatesModel { 6 | late final List? tokens; 7 | late final List? poolPairs; 8 | 9 | AbstractRatesModel( 10 | this.tokens, 11 | this.poolPairs, 12 | ); 13 | 14 | loadTokens(AbstractNetworkModel network); 15 | } 16 | -------------------------------------------------------------------------------- /lib/models/network/ramp/ramp_limit_model.dart: -------------------------------------------------------------------------------- 1 | class RampLimitModel { 2 | double? value; 3 | String? period; 4 | 5 | RampLimitModel({ 6 | this.value, 7 | this.period, 8 | }); 9 | 10 | RampLimitModel.fromJson(Map json) { 11 | try { 12 | this.value = json["limit"] + .0; 13 | this.period = json["period"]; 14 | } catch (_) { 15 | this.value = 0.0; 16 | this.period = 'Day'; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/models/network/ramp/ramp_price_model.dart: -------------------------------------------------------------------------------- 1 | class Price { 2 | String currencyId; 3 | double? buyPrice; 4 | double? sellPrice; 5 | 6 | Price(this.currencyId, this.buyPrice, this.sellPrice); 7 | } -------------------------------------------------------------------------------- /lib/models/network/ramp/ramp_token_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/models/token/token_model.dart'; 2 | 3 | class RampTokenModel extends TokenModel { 4 | final TokenModel token; 5 | 6 | RampTokenModel({required this.token}) 7 | : super( 8 | id: token.id, 9 | symbol: token.symbol, 10 | name: token.name, 11 | displaySymbol: token.displaySymbol, 12 | networkName: token.networkName, 13 | ); 14 | } 15 | -------------------------------------------------------------------------------- /lib/models/network/ramp/ramp_user_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/models/network/ramp/ramp_limit_model.dart'; 2 | 3 | class RampUserModel { 4 | String? phone; 5 | String? email; 6 | String? kycHash; 7 | String? kycStatus; 8 | bool? isKycCompleted; 9 | RampLimitModel? limit; 10 | 11 | RampUserModel({ 12 | this.phone, 13 | this.email, 14 | this.kycHash, 15 | this.kycStatus, 16 | this.isKycCompleted, 17 | this.limit, 18 | }); 19 | 20 | RampUserModel.fromJson(Map json) { 21 | try { 22 | this.phone = json['phone']; 23 | this.email = json['mail']; 24 | this.kycHash = json['kycHash']; 25 | this.kycStatus = json['kycStatus']; 26 | this.isKycCompleted = json['kycDataComplete']; 27 | this.limit = RampLimitModel.fromJson(json['tradingLimit']); 28 | } catch (error) { 29 | this.phone = ''; 30 | this.email = ''; 31 | this.kycHash = ''; 32 | this.kycStatus = ''; 33 | this.isKycCompleted = false; 34 | this.limit = RampLimitModel(value: 0, period: 'day'); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /lib/models/network/staking/staking_token_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/models/token/token_model.dart'; 2 | 3 | class StakingTokenModel extends TokenModel { 4 | double? apr; 5 | double? apy; 6 | 7 | StakingTokenModel( 8 | {required this.apr, required this.apy, required TokenModel token}) 9 | : super( 10 | id: token.id, 11 | symbol: token.symbol, 12 | name: token.name, 13 | displaySymbol: token.displaySymbol, 14 | networkName: token.networkName, 15 | isUTXO: token.isUTXO); 16 | } -------------------------------------------------------------------------------- /lib/models/network/staking/withdraw_model.dart: -------------------------------------------------------------------------------- 1 | class WithdrawModel { 2 | int? id; 3 | String? signMessage; 4 | String? signature; 5 | double? amount; 6 | 7 | WithdrawModel({ 8 | this.id, 9 | this.signMessage, 10 | this.signature, 11 | this.amount, 12 | }); 13 | 14 | WithdrawModel.fromJson(Map json) { 15 | this.id = json["id"]; 16 | this.signMessage = json["signMessage"]; 17 | this.signature = json["signature"]; 18 | this.amount = json["amount"]; 19 | } 20 | 21 | Map toJson() { 22 | final Map data = new Map(); 23 | data["id"] = this.id; 24 | data["signMessage"] = this.signMessage; 25 | data["signature"] = this.signature; 26 | data["amount"] = this.amount; 27 | 28 | return data; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lib/models/network/staking_enum.dart: -------------------------------------------------------------------------------- 1 | enum StakingEnum { 2 | staking, 3 | yieldMachine; 4 | 5 | @override 6 | String toString() => this.name; 7 | 8 | bool isCompare(String value) { 9 | StakingEnum sourceEntry = 10 | StakingEnum.values.firstWhere((e) => e.toString() == value); 11 | return sourceEntry == this; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /lib/models/network_fee_model.dart: -------------------------------------------------------------------------------- 1 | class NetworkFeeModel { 2 | int? low; 3 | int? medium; 4 | int? high; 5 | 6 | NetworkFeeModel( 7 | {this.low, 8 | this.medium, 9 | this.high 10 | }); 11 | } 12 | -------------------------------------------------------------------------------- /lib/models/radiobutton_model.dart: -------------------------------------------------------------------------------- 1 | import 'dart:ui'; 2 | 3 | class RadioButton { 4 | final String? name; 5 | final Color? color; 6 | final double padding; 7 | RadioButton({this.name, this.color, this.padding = 0}); 8 | } -------------------------------------------------------------------------------- /lib/models/test_pool_swap_model.dart: -------------------------------------------------------------------------------- 1 | class TestPoolSwapModel { 2 | String? tokenFrom; 3 | String? tokenTo; 4 | double? amountFrom; 5 | double? amountTo; 6 | double? priceFrom; 7 | double? priceTo; 8 | int? fee; 9 | 10 | TestPoolSwapModel( 11 | {this.tokenFrom, 12 | this.tokenTo, 13 | this.amountFrom, 14 | this.amountTo, 15 | this.priceFrom, 16 | this.fee, 17 | this.priceTo}); 18 | 19 | TestPoolSwapModel.fromJson(Map json) { 20 | this.tokenFrom = json["tokenFrom"]; 21 | this.tokenTo = json["tokenTo"]; 22 | this.amountFrom = json["amountFrom"]; 23 | this.amountTo = json["amountTo"]; 24 | this.priceFrom = json["priceFrom"]; 25 | this.priceTo = json["priceTo"]; 26 | this.fee = json["fee"]; 27 | } 28 | 29 | Map toJson() { 30 | final Map data = new Map(); 31 | data["tokenFrom"] = this.tokenFrom; 32 | data["tokenTo"] = this.tokenTo; 33 | data["amountFrom"] = this.amountFrom; 34 | data["amountTo"] = this.amountTo; 35 | data["priceFrom"] = this.priceFrom; 36 | data["priceTo"] = this.priceTo; 37 | data["fee"] = this.fee; 38 | return data; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /lib/models/tx_error_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/models/tx_loader_model.dart'; 2 | 3 | class TxErrorModel { 4 | bool? isError; 5 | String? error; 6 | List? txLoaderList; 7 | 8 | TxErrorModel({ 9 | this.isError, 10 | this.error, 11 | this.txLoaderList, 12 | }); 13 | 14 | TxErrorModel.fromJson(Map json) { 15 | List txLoaderListJson = json["txLoaderList"]; 16 | this.isError = json["isError"]; 17 | this.error = json["error"]; 18 | List txLoaderList = List.generate( 19 | txLoaderListJson.length, 20 | (index) => TxLoaderModel.fromJson(txLoaderListJson[index]), 21 | ); 22 | this.txLoaderList = txLoaderList; 23 | } 24 | 25 | Map toJson() { 26 | final Map data = new Map(); 27 | data["isError"] = this.isError; 28 | data["error"] = this.error; 29 | data["txLoaderList"] = this.txLoaderList?.map((e) => e.toJson()).toList(); 30 | return data; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lib/models/tx_list_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/helpers/history_new.dart'; 2 | import 'package:defi_wallet/models/history_model.dart'; 3 | 4 | class TxListModel { 5 | final List? list; 6 | final String? transactionNext; 7 | final String? historyNext; 8 | 9 | TxListModel({this.list, this.transactionNext, this.historyNext}); 10 | } 11 | -------------------------------------------------------------------------------- /lib/models/tx_loader_model.dart: -------------------------------------------------------------------------------- 1 | enum TxStatus { waiting, error, success } 2 | enum TxType { swap, send, removeLiq, addLiq, convertUtxo } 3 | 4 | class TxLoaderModel { 5 | TxStatus? status; 6 | String? txId; 7 | String? txHex; 8 | TxType? type; 9 | 10 | 11 | TxLoaderModel({ 12 | this.status = TxStatus.waiting, 13 | this.txId, 14 | this.txHex, 15 | this.type, 16 | }); 17 | 18 | TxLoaderModel.fromJson(Map json) { 19 | this.status = TxStatus.values 20 | .firstWhere((e) => e.toString() == json["status"]); 21 | this.txId = json["txId"]; 22 | this.txHex = json["txHex"]; 23 | if (json["type"] == null) { 24 | this.type = TxType.convertUtxo; 25 | } else { 26 | this.type = TxType.values 27 | .firstWhere((e) => e.toString() == json["type"]); 28 | } 29 | } 30 | 31 | Map toJson() { 32 | final Map data = new Map(); 33 | data["status"] = this.status.toString(); 34 | data["txId"] = this.txId; 35 | data["txHex"] = this.txHex; 36 | data["type"] = this.type.toString(); 37 | return data; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /lib/models/tx_model.dart: -------------------------------------------------------------------------------- 1 | class TxModel { 2 | String? txid; 3 | String? type; 4 | String? hash; 5 | String? amount; 6 | String? token; 7 | int? time; 8 | List? amounts; 9 | 10 | TxModel( 11 | {this.txid, 12 | this.type, 13 | this.hash, 14 | this.amount, 15 | this.token, 16 | this.time, 17 | this.amounts}); 18 | 19 | TxModel.fromJson(Map json) { 20 | this.txid = json["txid"]; 21 | this.type = json["type"]; 22 | this.hash = json["block"]["hash"]; 23 | this.amount = json["value"] == null 24 | ? json["amounts"][0].split('@')[0] 25 | : json["value"]; 26 | this.token = json["amounts"] == null 27 | ? 'DFI' 28 | : json["amounts"][0].split('@')[1]; 29 | this.time = json["block"]["time"]; 30 | this.amounts = json["amounts"] == null 31 | ? [] 32 | : json["amounts"]; 33 | } 34 | 35 | Map toJson() { 36 | final Map data = new Map(); 37 | data["txid"] = this.txid; 38 | data["type"] = this.type; 39 | data["block"] = this.hash; 40 | data["amount"] = this.amount; 41 | data["token"] = this.token; 42 | data["time"] = this.time; 43 | data["amounts"] = this.amounts; 44 | return data; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /lib/models/tx_response_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/models/utxo_model.dart'; 2 | 3 | class TxResponseModel { 4 | List usingUTXO; 5 | List newUTXO; 6 | bool isError; 7 | String? error; 8 | String hex; 9 | int? amount; 10 | TxResponseModel({required this.usingUTXO, required this.newUTXO, required this.hex, required this.isError, this.error, this.amount}); 11 | } 12 | -------------------------------------------------------------------------------- /lib/models/utxo_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/utils/convert.dart'; 2 | import 'package:defichaindart/defichaindart.dart'; 3 | 4 | class UtxoModel { 5 | int? mintIndex; 6 | String? mintTxId; 7 | String? address; 8 | int? value; 9 | 10 | UtxoModel( 11 | {this.mintIndex, 12 | this.mintTxId, 13 | this.address, 14 | this.value}); 15 | 16 | UtxoModel.fromJson(Map json) { 17 | this.mintTxId = json["vout"]['txid']; 18 | this.mintIndex = json["vout"]['n']; 19 | this.address = json["address"]; 20 | this.value = convertToSatoshi(double.parse(json["vout"]["value"].toString())); 21 | } 22 | 23 | Map toJson() { 24 | var data = {}; 25 | data["vout"] = {}; 26 | data["vout"]['txid'] = this.mintTxId; 27 | data["vout"]['n'] = this.mintIndex; 28 | data["address"] = this.address; 29 | data["vout"]["value"] = convertFromSatoshi(this.value!); 30 | return data; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lib/screens/history/widgets/history_icon_type.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/screens/history/widgets/icon_history_type.dart'; 2 | import 'package:defi_wallet/utils/theme/theme.dart'; 3 | import 'package:flutter/material.dart'; 4 | 5 | class HistoryIconType extends StatelessWidget { 6 | final String type; 7 | 8 | const HistoryIconType({Key? key, required this.type}) : super(key: key); 9 | 10 | @override 11 | Widget build(BuildContext context) { 12 | return Container( 13 | width: 48, 14 | height: 48, 15 | padding: const EdgeInsets.all(16), 16 | decoration: BoxDecoration( 17 | borderRadius: BorderRadius.circular(48), 18 | gradient: historyTypeIconGradient, 19 | ), 20 | child: IconHistoryType( 21 | type: type, 22 | ), 23 | ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /lib/screens/history/widgets/icon_history_type.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_svg/flutter_svg.dart'; 3 | 4 | class IconHistoryType extends StatelessWidget { 5 | final String? type; 6 | 7 | const IconHistoryType({Key? key, this.type}) : super(key: key); 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | switch (type) { 12 | case 'SEND': 13 | case 'vin': 14 | return SvgPicture.asset( 15 | 'assets/history/send.svg', 16 | ); 17 | case 'RECEIVE': 18 | case 'vout': 19 | return SvgPicture.asset( 20 | 'assets/history/received.svg', 21 | ); 22 | case 'PoolSwap': 23 | return SvgPicture.asset( 24 | 'assets/history/changed.svg', 25 | ); 26 | case 'AddPoolLiquidity': 27 | return SvgPicture.asset( 28 | 'assets/history/liquidity.svg', 29 | ); 30 | case 'RemovePoolLiquidity': 31 | return SvgPicture.asset( 32 | 'assets/history/liquidity.svg', 33 | ); 34 | default: 35 | return SvgPicture.asset( 36 | 'assets/history/changed.svg', 37 | ); 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /lib/screens/home/widgets/full_size_icon.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/helpers/settings_helper.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:flutter_svg/flutter_svg.dart'; 4 | 5 | class FullSizeIcon extends StatelessWidget { 6 | final String lightIconPath = 'assets/open_in_full_icon_light.svg'; 7 | final String darkIconPath = 'assets/open_in_full_icon.svg'; 8 | final double iconWidth = 24; 9 | 10 | @override 11 | Widget build(BuildContext context) { 12 | String _iconPath; 13 | if (SettingsHelper.settings.theme == 'Auto') { 14 | _iconPath = MediaQuery.of(context).platformBrightness == Brightness.dark 15 | ? lightIconPath 16 | : darkIconPath; 17 | } else { 18 | _iconPath = SettingsHelper.settings.theme == 'Light' 19 | ? darkIconPath 20 | : lightIconPath; 21 | } 22 | return SvgPicture.asset( 23 | _iconPath, 24 | color: Theme.of(context).appBarTheme.actionsIconTheme!.color, 25 | width: iconWidth, 26 | ); 27 | } 28 | } -------------------------------------------------------------------------------- /lib/screens/home/widgets/rounded_divider.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class RoundedDivider extends CustomPainter { 4 | RoundedDivider(this.radius, {this.initialAngle = 0}); 5 | 6 | final double radius; 7 | final double initialAngle; 8 | 9 | @override 10 | void paint(Canvas canvas, Size size) { 11 | final _paint = Paint() 12 | ..strokeWidth = 1 13 | ..style = PaintingStyle.stroke; 14 | canvas.translate(size.width / 2, size.height / 2); 15 | canvas.drawCircle(Offset(-170, 8), radius, _paint); 16 | canvas.translate(0, -radius); 17 | } 18 | 19 | @override 20 | bool shouldRepaint(CustomPainter oldDelegate) => true; 21 | } 22 | -------------------------------------------------------------------------------- /lib/services/dfx_service.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/models/account_model.dart'; 2 | import 'package:defi_wallet/helpers/network_helper.dart'; 3 | import 'package:defichaindart/defichaindart.dart'; 4 | 5 | class DFXService { 6 | static const int walletId = 4; 7 | static const String referralCode = '007-666'; 8 | 9 | var networkHelper = NetworkHelper(); 10 | 11 | Map getAddressAndSignature( 12 | AccountModel account, 13 | ECPair keyPair, { 14 | bool isDefaultWalletId = true, 15 | }) { 16 | String str = 17 | 'By_signing_this_message,_you_confirm_that_you_are_the_sole_owner_of_the_provided_DeFiChain_address_and_are_in_possession_of_its_private_key._Your_ID:_${account.addressList![0].address}'; 18 | String address = account.addressList![0].address!; 19 | String signature = keyPair.signMessage(str, networkHelper.getNetwork('mainnet')); 20 | 21 | if (isDefaultWalletId) { 22 | return { 23 | 'address': address, 24 | 'signature': signature, 25 | }; 26 | } else { 27 | return { 28 | 'address': address, 29 | 'signature': signature, 30 | 'walletId': walletId, 31 | 'usedRef': referralCode, 32 | }; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /lib/services/errors/sentry_service.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/models/error/error_model.dart'; 2 | import 'package:flutter_dotenv/flutter_dotenv.dart'; 3 | import 'package:sentry_flutter/sentry_flutter.dart'; 4 | 5 | class SentryService { 6 | static captureException( 7 | ErrorModel errorModel, { 8 | dynamic stackTrace, 9 | }) async { 10 | await Sentry.captureException( 11 | errorModel.toJSON(), 12 | stackTrace: stackTrace, 13 | ); 14 | } 15 | 16 | static captureMessage( 17 | ErrorModel errorModel, 18 | ) async { 19 | await Sentry.captureMessage( 20 | errorModel.toJSON().toString(), 21 | ); 22 | } 23 | 24 | static Future initSentry() async { 25 | SentryFlutter.init( 26 | (options) { 27 | options.dsn = 'https://ebedfe3e227aff134bb53f684ab7e4c6@o4505679900901376.ingest.sentry.io/4505682134827008'; 28 | options.tracesSampleRate = 1.0; 29 | }, 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lib/services/logger_service.dart: -------------------------------------------------------------------------------- 1 | import 'package:sentry_flutter/sentry_flutter.dart'; 2 | import 'package:sentry/sentry.dart'; 3 | 4 | class LoggerService { 5 | static invokeInfoLogg(action) async { 6 | await Sentry.captureMessage(action); 7 | } 8 | } -------------------------------------------------------------------------------- /lib/services/mnemonic_service.dart: -------------------------------------------------------------------------------- 1 | import 'dart:typed_data'; 2 | import 'package:defi_wallet/client/hive_names.dart'; 3 | import 'package:defi_wallet/helpers/encrypt_helper.dart'; 4 | import 'package:defichaindart/defichaindart.dart'; 5 | import 'package:defi_wallet/helpers/mnemonic_words.dart'; 6 | import 'package:hive_flutter/hive_flutter.dart'; 7 | 8 | 9 | Uint8List convertMnemonicToSeed(List mnemonic) { 10 | return mnemonicToSeed(mnemonic.join(' ')); 11 | } 12 | 13 | Future> getMnemonic(String password) async{ 14 | var box = await Hive.openBox(HiveBoxes.client); 15 | var mnemonic = await box.get(HiveNames.savedMnemonic); 16 | return EncryptHelper.getDecryptedData(mnemonic, password).split(','); 17 | } 18 | 19 | bool isCorrectWord(String word) { 20 | return wordsList.contains(word); 21 | } -------------------------------------------------------------------------------- /lib/utils/convert.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/helpers/balances_helper.dart'; 2 | 3 | BalancesHelper balancesHelper = BalancesHelper(); 4 | 5 | int convertToSatoshi(double value) { 6 | return (value * 100000000).round(); 7 | } 8 | 9 | double convertFromSatoshi(int value, [int digits = 0]) { 10 | int fixedDigits = (digits == 0) ? 8 : digits; 11 | return double.parse((value / 100000000).toStringAsFixed(fixedDigits)); 12 | } 13 | 14 | String toFixed(double value, int digit) { 15 | return value.toStringAsFixed(digit); 16 | } -------------------------------------------------------------------------------- /lib/utils/theme/src/app_gradients.dart: -------------------------------------------------------------------------------- 1 | part of '../theme.dart'; 2 | 3 | LinearGradient historyTypeIconGradient = LinearGradient( 4 | transform: GradientRotation(3.4), 5 | stops: [0.5, 100], 6 | colors: [ 7 | AppColors.pinkColor.withOpacity(0.15), 8 | AppColors.electricViolet.withOpacity(0.15), 9 | ], 10 | ); 11 | 12 | getGradient( 13 | Color firstColor, 14 | Color secondColor, { 15 | bool isOpasity = false, 16 | }) { 17 | return LinearGradient( 18 | transform: GradientRotation(3.4), 19 | stops: [0.0817, 0.9243], 20 | colors: isOpasity ? [ 21 | firstColor.withOpacity(0.15), 22 | secondColor.withOpacity(0.15), 23 | ] : [ 24 | firstColor, 25 | secondColor, 26 | ], 27 | ); 28 | } 29 | -------------------------------------------------------------------------------- /lib/utils/theme/src/button_theme.dart: -------------------------------------------------------------------------------- 1 | part of '../theme.dart'; 2 | 3 | OutlinedButtonThemeData createButtonTheme(Color textColor) { 4 | return OutlinedButtonThemeData( 5 | style: OutlinedButton.styleFrom( 6 | textStyle: button, 7 | padding: const EdgeInsets.symmetric( 8 | horizontal: 22, 9 | vertical: 16, 10 | ), 11 | shape: RoundedRectangleBorder( 12 | borderRadius: BorderRadius.all( 13 | Radius.circular(buttonBorderRadius), 14 | ), 15 | side: BorderSide( 16 | color: Colors.transparent, 17 | ), 18 | ), 19 | backgroundColor: Colors.transparent, 20 | shadowColor: Colors.transparent, 21 | ), 22 | ); 23 | } 24 | -------------------------------------------------------------------------------- /lib/utils/theme/src/text_theme.dart: -------------------------------------------------------------------------------- 1 | part of '../theme.dart'; 2 | 3 | TextTheme createTextTheme(Color textColor) { 4 | return TextTheme( 5 | headline1: applyGeneralColor(headline1, textColor), 6 | headline2: headline2.apply(color: AppColors.moonRaker), 7 | headline3: applyGeneralColor(headline3, textColor), 8 | headline4: applyGeneralColor(headline4, textColor), 9 | headline5: applyGeneralColor(headline5, textColor), 10 | headline6: applyGeneralColor(headline6, textColor), 11 | subtitle1: applyGeneralColor(subtitle1, textColor), 12 | subtitle2: applyGeneralColor(subtitle2, textColor), 13 | button: applyGeneralColor(button, textColor), 14 | bodyText1: bodyText1, 15 | bodyText2: applyGeneralColor(bodyText2, textColor), 16 | caption: caption, 17 | ).apply( 18 | fontFamily: fontFamily, 19 | ); 20 | } 21 | 22 | TextStyle applyGeneralColor(TextStyle textStyle, Color color) => 23 | textStyle.apply(color: color); 24 | -------------------------------------------------------------------------------- /lib/utils/theme/theme.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'dart:math' as math; 3 | 4 | part 'src/constants.dart'; 5 | part 'src/app_colors.dart'; 6 | part 'src/app_gradients.dart'; 7 | part 'src/dark_theme.dart'; 8 | part 'src/light_theme.dart'; 9 | part 'src/text_theme.dart'; 10 | part 'src/button_theme.dart'; 11 | part 'src/theme_colors.dart'; 12 | part 'src/theme_text_styles.dart'; 13 | 14 | part 'src/colors/light_colors.dart'; 15 | part 'src/colors/dark_colors.dart'; -------------------------------------------------------------------------------- /lib/utils/theme/theme_manager.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:defi_wallet/bloc/theme/theme_cubit.dart'; 3 | import 'package:defi_wallet/helpers/settings_helper.dart'; 4 | import 'package:defi_wallet/models/settings_model.dart'; 5 | import 'package:flutter_bloc/flutter_bloc.dart'; 6 | 7 | class ThemeManager { 8 | static SettingsHelper settingsHelper = SettingsHelper(); 9 | 10 | static void changeTheme(BuildContext context) { 11 | SettingsModel localSettings = SettingsHelper.settings.clone(); 12 | String themeName = localSettings.theme == 'Light' ? 'Dark' : 'Light'; 13 | 14 | localSettings.theme = themeName; 15 | SettingsHelper.settings = localSettings; 16 | settingsHelper.saveSettings(); 17 | 18 | ThemeCubit themeCubit = BlocProvider.of(context); 19 | themeCubit.changeTheme(); 20 | } 21 | } -------------------------------------------------------------------------------- /lib/widgets/assets/asset_icon.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_svg/flutter_svg.dart'; 3 | 4 | class AssetIcon extends StatelessWidget { 5 | final String url; 6 | final Color color; 7 | 8 | AssetIcon({ 9 | Key? key, 10 | required this.url, 11 | required this.color, 12 | }) : super(key: key); 13 | 14 | @override 15 | Widget build(BuildContext context) { 16 | return Container( 17 | decoration: BoxDecoration( 18 | borderRadius: BorderRadius.circular(40), 19 | border: Border.all( 20 | width: 5, 21 | color: color.withOpacity(0.16), 22 | ), 23 | ), 24 | child: SvgPicture.asset(url), 25 | ); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /lib/widgets/buttons/cancel_button.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class CancelButton extends StatelessWidget { 4 | final Function()? callback; 5 | 6 | const CancelButton({Key? key, this.callback}) : super(key: key); 7 | 8 | @override 9 | Widget build(BuildContext context) { 10 | return Padding( 11 | padding: const EdgeInsets.only(right: 8), 12 | child: IconButton( 13 | highlightColor: Colors.transparent, 14 | focusColor: Colors.transparent, 15 | iconSize: 20, 16 | splashRadius: 18, 17 | icon: Icon(Icons.close, color: Theme.of(context).iconTheme.color), 18 | onPressed: callback ?? () => Navigator.of(context).pop(), 19 | ), 20 | ); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lib/widgets/buttons/primary_button.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/helpers/lock_helper.dart'; 2 | import 'package:defi_wallet/utils/app_theme/app_theme.dart'; 3 | import 'package:flutter/material.dart'; 4 | 5 | class PrimaryButton extends StatelessWidget { 6 | final String? label; 7 | final GlobalKey? globalKey; 8 | final Function()? callback; 9 | final bool? isCheckLock; 10 | 11 | const PrimaryButton( 12 | {Key? key, 13 | this.label, 14 | this.globalKey, 15 | this.callback, 16 | this.isCheckLock = true}) 17 | : super(key: key); 18 | 19 | @override 20 | Widget build(BuildContext context) { 21 | LockHelper lockHelper = LockHelper(); 22 | 23 | return SizedBox( 24 | height: 48, 25 | width: double.infinity, 26 | child: ElevatedButton( 27 | child: Text(label!), 28 | key: globalKey, 29 | onPressed: isCheckLock! 30 | ? () => 31 | lockHelper.provideWithLockChecker(context, () => callback!()) 32 | : callback, 33 | style: AppTheme.defiButton, 34 | ), 35 | ); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /lib/widgets/buttons/restore_button.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/widgets/buttons/new_primary_button.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class PendingButton extends StatefulWidget { 5 | final String text; 6 | final String pendingText; 7 | final callback; 8 | final globalKey; 9 | final isCheckLock; 10 | 11 | final double? width; 12 | 13 | const PendingButton(this.text, 14 | {Key? key, 15 | required this.callback, 16 | this.pendingText = 'Pending...', 17 | GlobalKey? this.globalKey, 18 | this.isCheckLock = true, 19 | this.width}) 20 | : super(key: key); 21 | 22 | @override 23 | PendingButtonState createState() => PendingButtonState(); 24 | } 25 | 26 | class PendingButtonState extends State { 27 | var pending = false; 28 | 29 | @override 30 | Widget build(BuildContext context) { 31 | return NewPrimaryButton( 32 | title: pending ? widget.pendingText : widget.text, 33 | globalKey: widget.globalKey, 34 | callback: (!pending && widget.callback != null) 35 | ? () async => widget.callback(this) 36 | : null, 37 | ); 38 | } 39 | 40 | void emitPending(b) { 41 | setState(() { 42 | pending = b; 43 | }); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /lib/widgets/common/bottom_snack_bar.dart: -------------------------------------------------------------------------------- 1 | import 'dart:ui'; 2 | 3 | import 'package:flutter/material.dart'; 4 | 5 | class BottomSnackBar extends StatelessWidget { 6 | final color; 7 | 8 | const BottomSnackBar({ 9 | Key? key, 10 | this.color = Colors.black, 11 | }) : super(key: key); 12 | 13 | @override 14 | Widget build(BuildContext context) { 15 | return SnackBar( 16 | elevation: 0, 17 | margin: const EdgeInsets.symmetric( 18 | horizontal: 18, 19 | vertical: 16, 20 | ), 21 | behavior: SnackBarBehavior.floating, 22 | content: BackdropFilter( 23 | filter: ImageFilter.blur(sigmaX: 1.0, sigmaY: 1.0), 24 | child: Row( 25 | children: [ 26 | // add your preferred icon here 27 | Icon( 28 | Icons.close, 29 | color: Colors.white, 30 | ), 31 | // add your preferred text content here 32 | Text('Text'), 33 | ], 34 | ), 35 | ), 36 | backgroundColor: color.withOpacity(0.08), 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /lib/widgets/common/jelly_link_text.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | import '../../utils/theme/theme.dart'; 4 | 5 | class JellyLinkText extends StatelessWidget { 6 | final List colors = [Color(0xFFFF00A3), Color(0xFFBC00C0)]; 7 | final double rectangle = 3.4; 8 | final Widget child; 9 | 10 | JellyLinkText({Key? key, required this.child}) : super(key: key); 11 | @override 12 | Widget build(BuildContext context) { 13 | return ShaderMask( 14 | shaderCallback: (Rect bounds) { 15 | final Map map = {}; 16 | map['begin'] = Alignment.topRight; 17 | map['end'] = Alignment.bottomLeft; 18 | 19 | return LinearGradient( 20 | stops: [0.5, 100.5], 21 | colors: colors, 22 | transform: GradientRotation(3.4), 23 | ).createShader(bounds); 24 | }, 25 | child: child, 26 | ); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lib/widgets/defi_switch.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/utils/theme/theme.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:flutter_switch/flutter_switch.dart'; 4 | 5 | class DefiSwitch extends StatefulWidget { 6 | final void Function(bool value) onToggle; 7 | final bool isEnable; 8 | 9 | DefiSwitch({ 10 | Key? key, 11 | required this.onToggle, 12 | this.isEnable = false, 13 | }) : super(key: key); 14 | 15 | @override 16 | State createState() => _DefiSwitchState(); 17 | } 18 | 19 | class _DefiSwitchState extends State { 20 | @override 21 | Widget build(BuildContext context) { 22 | return Container( 23 | width: 48, 24 | height: 24, 25 | decoration: BoxDecoration( 26 | gradient: widget.isEnable ? gradientBottomToUpCenter : null, 27 | borderRadius: BorderRadius.circular(12), 28 | ), 29 | child: FlutterSwitch( 30 | width: 48, 31 | height: 24, 32 | toggleSize: 19, 33 | padding: 2.5, 34 | inactiveColor: AppColors.toogleBgLight.withOpacity(0.2), 35 | activeColor: Colors.transparent, 36 | value: widget.isEnable, 37 | onToggle: (bool value) { 38 | widget.onToggle(value); 39 | }, 40 | ), 41 | ); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /lib/widgets/dialogs/modal_dialog.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class ModalDialog extends StatelessWidget { 4 | final String title; 5 | final List listBody; 6 | final Function() onClose; 7 | final Function() onSubmit; 8 | 9 | const ModalDialog({ 10 | Key? key, 11 | required this.title, 12 | required this.listBody, 13 | required this.onClose, 14 | required this.onSubmit, 15 | }) : super(key: key); 16 | 17 | @override 18 | Widget build(BuildContext context) { 19 | return AlertDialog( 20 | title: Text(title), 21 | content: SingleChildScrollView( 22 | child: ListBody( 23 | children: listBody, 24 | ), 25 | ), 26 | actions: [ 27 | TextButton( 28 | child: const Text('Cancel'), 29 | onPressed: () { 30 | Navigator.of(context).pop(); 31 | }, 32 | ), 33 | TextButton( 34 | child: const Text('Ok'), 35 | onPressed: () { 36 | onSubmit(); 37 | Navigator.of(context).pop(); 38 | }, 39 | ), 40 | ], 41 | ); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /lib/widgets/fields/input_field.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/utils/theme/theme.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class InputField extends StatelessWidget { 5 | final TextEditingController controller; 6 | final String hintText; 7 | final Widget? suffix; 8 | 9 | InputField({ 10 | Key? key, 11 | required this.controller, 12 | required this.hintText, 13 | this.suffix, 14 | }) : super(key: key); 15 | 16 | @override 17 | Widget build(BuildContext context) { 18 | return Container( 19 | child: TextFormField( 20 | controller: controller, 21 | decoration: InputDecoration( 22 | hoverColor: Theme.of(context).inputDecorationTheme.hoverColor, 23 | filled: true, 24 | fillColor: Theme.of(context).inputDecorationTheme.fillColor, 25 | enabledBorder: Theme.of(context).inputDecorationTheme.enabledBorder, 26 | focusedBorder: Theme.of(context).inputDecorationTheme.focusedBorder, 27 | hintText: hintText, 28 | suffixIconConstraints: BoxConstraints(minHeight: 24, minWidth: 24), 29 | suffixIcon: suffix, 30 | ), 31 | style: passwordField.apply( 32 | color: Theme.of(context).textTheme.headline1!.color!, 33 | ), 34 | ), 35 | ); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /lib/widgets/loader/loader.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/utils/app_theme/app_theme.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class Loader extends StatefulWidget { 5 | @override 6 | State createState() => _LoaderState(); 7 | } 8 | 9 | class _LoaderState extends State { 10 | @override 11 | Widget build(BuildContext context) { 12 | return Center(child: CircularProgressIndicator(color: AppTheme.pinkColor)); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /lib/widgets/refactoring/fields/available_amount_text.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/helpers/balances_helper.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class AvailableAmountText extends StatelessWidget { 5 | final double amount; 6 | 7 | const AvailableAmountText({super.key, required this.amount}); 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | final roundedAmount = BalancesHelper().numberStyling( 12 | amount, 13 | fixed: true, 14 | fixedCount: 8, 15 | ); 16 | 17 | return Text( 18 | 'Available: $roundedAmount', 19 | style: Theme.of(context).textTheme.headline6!.copyWith( 20 | fontWeight: FontWeight.w600, 21 | color: 22 | Theme.of(context).textTheme.headline6!.color!.withOpacity(0.3), 23 | ), 24 | ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /lib/widgets/responsive/stretch_box.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/config/config.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class StretchBox extends StatelessWidget { 5 | static const double defaultMaxWidth = ScreenSizes.small; 6 | static const double defaultMinWidth = ScreenSizes.xSmall; 7 | 8 | final Widget? child; 9 | final double maxWidth; 10 | final double minWidth; 11 | 12 | const StretchBox( 13 | {Key? key, 14 | this.child, 15 | this.minWidth = defaultMinWidth, 16 | this.maxWidth = defaultMaxWidth}) 17 | : super(key: key); 18 | 19 | @override 20 | Widget build(BuildContext context) { 21 | return ConstrainedBox( 22 | constraints: BoxConstraints( 23 | maxWidth: maxWidth, 24 | minWidth: minWidth, 25 | ), 26 | child: child, 27 | ); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /lib/widgets/scaffold_constrained_box.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/config/config.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class ScaffoldConstrainedBox extends StatefulWidget { 5 | final child; 6 | 7 | const ScaffoldConstrainedBox({Key? key, this.child}) : super(key: key); 8 | 9 | @override 10 | State createState() => _ScaffoldConstrainedBoxState(); 11 | } 12 | 13 | class _ScaffoldConstrainedBoxState extends State { 14 | @override 15 | Widget build(BuildContext context) { 16 | return Container( 17 | color: Theme.of(context).scaffoldBackgroundColor, 18 | child: Align( 19 | alignment: Alignment.center, 20 | child: ConstrainedBox( 21 | constraints: BoxConstraints(maxWidth: ScreenSizes.medium), 22 | child: widget.child, 23 | ), 24 | ), 25 | ); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /lib/widgets/selectors/asset_selector.dart: -------------------------------------------------------------------------------- 1 | import 'package:defi_wallet/mixins/theme_mixin.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class AssetSelector extends StatefulWidget { 5 | const AssetSelector({Key? key}) : super(key: key); 6 | 7 | @override 8 | State createState() => _AssetSelectorState(); 9 | } 10 | 11 | class _AssetSelectorState extends State with ThemeMixin { 12 | @override 13 | Widget build(BuildContext context) { 14 | return Container(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /web/.parcelrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@parcel/config-default"], 3 | "reporters": ["...", "parcel-reporter-static-files-copy"], 4 | "namers": ["parcel-namer-custom", "..."] 5 | } -------------------------------------------------------------------------------- /web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/web/favicon.png -------------------------------------------------------------------------------- /web/flutter_app.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /web/icons/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/web/icons/128.png -------------------------------------------------------------------------------- /web/icons/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/web/icons/16.png -------------------------------------------------------------------------------- /web/icons/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defichain-web-wallet/extension/0abc81bfa6fea1f42262c1ffffcda85c30e4e1a4/web/icons/48.png -------------------------------------------------------------------------------- /web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | defi_wallet 17 | 18 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /web/manifest/chrome.json: -------------------------------------------------------------------------------- 1 | { 2 | "content_security_policy": { 3 | "extension_pages": "script-src 'self'; object-src 'self'" 4 | }, 5 | "action": { 6 | "default_popup": "index.html", 7 | "default_icon": "/icons/128.png" 8 | }, 9 | "background": { 10 | "service_worker": "background-wrapper.js" 11 | }, 12 | "manifest_version": 3 13 | } -------------------------------------------------------------------------------- /web/manifest/firefox.json: -------------------------------------------------------------------------------- 1 | { 2 | "content_security_policy": "script-src 'self'; object-src 'self'", 3 | "browser_action": { 4 | "browser_style": true, 5 | "default_icon": "/icons/128.png", 6 | "default_title": "Jellywallet", 7 | "default_popup": "/index.html" 8 | }, 9 | "background": { 10 | "scripts": [ 11 | "background-wrapper.js" 12 | ] 13 | }, 14 | "manifest_version": 2 15 | } -------------------------------------------------------------------------------- /web/manifest/index.json: -------------------------------------------------------------------------------- 1 | {"name": "Jellywallet", "version": "2.2.2", "icons": {"16": "/icons/16.png", "48": "/icons/48.png", "128": "/icons/128.png"}, "description": "Jellywallet extension", "storage": {"managed_schema": "schema.json"}} -------------------------------------------------------------------------------- /web/schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "object", 3 | "properties": { 4 | "version": { 5 | "type": "string" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /web/set-version.js: -------------------------------------------------------------------------------- 1 | localStorage.setItem('version', '1.0.0'); -------------------------------------------------------------------------------- /web/src_ts/jellywallet.ts: -------------------------------------------------------------------------------- 1 | import { JellyWalletLedger } from "./ledger-base.js"; 2 | import { getLedgerDevices, isSupported, getFirstLedgerDevice } from "@ledgerhq/hw-transport-webusb/lib/webusb"; 3 | 4 | (window).jelly_init = () => { 5 | console.log("init jellywallet"); 6 | if (!(window).ledger) 7 | (window).ledger = new JellyWalletLedger(); 8 | }; 9 | 10 | 11 | (window).openAppInTab = () => { 12 | chrome.tabs.create({ 13 | 'url': chrome.runtime.getURL("index.html#window") 14 | }); 15 | } 16 | 17 | (window).isUsbSupported = async () => { 18 | if (await isSupported()) { 19 | try { 20 | var devices = await getFirstLedgerDevice(); 21 | if (devices) { 22 | return 0; 23 | } 24 | } 25 | catch(err) { 26 | const isInPopup = function() { 27 | return (typeof chrome != undefined && chrome.extension) ? 28 | chrome.extension.getViews({ type: "popup" }).length > 0 : null; 29 | } 30 | 31 | if(!isInPopup()) { 32 | return 2; 33 | } 34 | 35 | console.log(err); 36 | return 1; 37 | } 38 | } 39 | return 1; 40 | } -------------------------------------------------------------------------------- /web/src_ts/ledger_tx.ts: -------------------------------------------------------------------------------- 1 | 2 | export class LedgerTransaction { 3 | version: number; 4 | inputs: LedgerTransactionInput[]; 5 | outputs?: LedgerTransactionOutput[]; 6 | lockTime?: number; 7 | txId: string; 8 | 9 | 10 | index: number; 11 | sequenceNumber: number; 12 | redeemScript: string; 13 | witnesses: String; 14 | } 15 | 16 | 17 | export class LedgerTransactionRaw { 18 | txId: string; 19 | rawTx: string; 20 | 21 | index: number; 22 | redeemScript: string; 23 | } 24 | 25 | export class LedgerTransactionInput { 26 | prevout: string; 27 | script: string; 28 | sequence: number; 29 | tree?: string; 30 | 31 | index: number; 32 | order: number; 33 | 34 | } 35 | 36 | export class LedgerTransactionOutput { 37 | amount: number; 38 | script: string; 39 | } -------------------------------------------------------------------------------- /web/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "module": "commonjs", 5 | "outDir": "./js", 6 | "types": [ 7 | "node", 8 | "chrome" 9 | ], 10 | "declaration": true, 11 | "rootDir": "./src_ts", 12 | "allowJs": false, 13 | "strict": false, 14 | "noImplicitAny": true, 15 | "strictNullChecks": false, 16 | "strictFunctionTypes": false, 17 | "strictBindCallApply": false, 18 | "strictPropertyInitialization": false, 19 | "noImplicitThis": true, 20 | "alwaysStrict": false, 21 | "esModuleInterop": true, 22 | "noUnusedLocals": false, 23 | "noUnusedParameters": false, 24 | "allowSyntheticDefaultImports": true 25 | }, 26 | "include": [ 27 | "**/*.ts" ], 28 | "exclude": [ 29 | "**/*.spec.ts", 30 | "node_modules/**/*" 31 | ] 32 | } 33 | --------------------------------------------------------------------------------