Git Product home page Git Product logo

oxen-wallet's Introduction

Oxen Wallet

The Oxen Wallet is a Fork of the Cake Wallet.

Build

  1. Get Dependencies from pub

    flutter pub get
  2. Run the build_runner

    flutter pub run build_runner build
  3. To download the latest build of the Oxen Dependencies run

    ./tool/download-android-deps.sh https://oxen.rocks/oxen-io/oxen-core/oxen-stable-android-deps-LATEST.tar.xz
    ./tool/download-ios-deps.sh https://oxen.rocks/oxen-io/oxen-core/oxen-stable-ios-deps-LATEST.tar.xz
    

    Or build the Oxen Dependencies and copy the Android deps into oxen_coin/ios/External/android/oxen and the ios into oxen_coin/ios/External/ios/oxen

  4. Generate Launcher Icons

    flutter pub run flutter_launcher_icons:main
  5. Create Encryption Keys (Only needed if .secrets-.json is empty)

    dart tool/create_secrets.dart
  6. Add Key to the application

    dart tool/secrets.dart
  7. Run the app

    flutter run

Copyright

Copyright (c) 2020 Konstantin Ullrich.
Copyright (c) 2020 Cake Technologies LLC.

oxen-wallet's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

oxen-wallet's Issues

Support Staking

Stake transactions are handled with a Prio 1 (Slow)

  • Show your current Stakes
  • Create a new Stake
  • Request an Unsteak

Optionally round decimals

Add an option to round the balance to 2 or 4 decimals.

Suggested via Telegram by rtide and CryptoFirefly

Today is not Yesterday

The transaction history lists transactions of today under yesterday

Today isn't yesterday
Not yet anyway
~ Jon from Telegram (Wise Philosopher) 

iOS using dot/comma when sending Oxen

On iOS it seems the wallet software only accepts "dot" when you don't want to send an even $Oxen amount. Keyboard only shows "comma" as option (even if choosing English (USA) keyboard), which makes it impossible right now to send uneven $Oxen amounts.

20210411_065321000_iOS

Migrate to new Dialog Design

Use OxenDialog instead of the default AlertDialog

  • Confirm Reconnect
  • Confirm Nodechange
  • Confirm Change Language
  • presentPicker

The UI freezes during start of the sync

Suspicion: Blockchain Sync should run parallel to the UI, but there is some bug that makes it start in the same thread as the UI. So the UI stops rendering until the blockchain sync is started.

Reported by _ on telegram

Update TransactionHistory and TransactionDetails

  • Make it easier to distinguish Staking-Transactions from normal I/O-Transactions.
  • Make it easier to distinguish ONS-Transactions from normal I/O-Transactions.
  • Add Subaddess-label to Transaction details
  • Add Fees to Transaction details

Node URL update

The node.loki-pool.com:18081 url needs to be updated to: explorer.oxen.aussie-pools.com:18081

Get all available SN

Request then via get_service_nodes and then look for

!active && !funded && requested_unlock_height == 0 && total_reserved < staking_requirement

If this is not true then there are no free spots for contribution (i.e. it is only reserved spots).
unless your wallet is listed in contributors with an amount of 0 -- that indicates an unfilled spot reserved for you.

Error when building

When building i got this error always.

Running Gradle task 'assembleRelease'...                                                                                                                                       
FAILURE: Build failed with an exception.                                                                           
                                                                                                                   
* What went wrong:                                                                                                 
Execution failed for task ':oxen_coin:externalNativeBuildRelease'.                                                 
> Build command failed.                                                                                            
  Error while executing process /home/aphustine/cmake/3.10.2.4988404/bin/ninja with arguments {-C /home/aphustine/oxen-mobile-wallet/oxen_coin/android/.cxx/cmake/release/armeabi-v7a oxen_coin}
  ninja: Entering directory `/home/aphustine/oxen-mobile-wallet/oxen_coin/android/.cxx/cmake/release/armeabi-v7a'  
  [1/1] Linking CXX shared library /home/aphustine/oxen-mobile-wallet/build/oxen_coin/intermediates/cmake/release/obj/armeabi-v7a/liboxen_coin.so
  FAILED: /home/aphustine/oxen-mobile-wallet/build/oxen_coin/intermediates/cmake/release/obj/armeabi-v7a/liboxen_coin.so 
  : && /home/aphustine/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=armv7-none-linux-androideabi21 --gcc-toolchain=/home/aphustine/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/aphustine/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security  -std=c++17 -O0 -fno-limit-debug-info  -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libgcc_real.a -Wl,--exclude-libs,libatomic.a -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--exclude-libs,libunwind.a -Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,liboxen_coin.so -o /home/aphustine/oxen-mobile-wallet/build/oxen_coin/intermediates/cmake/release/obj/armeabi-v7a/liboxen_coin.so CMakeFiles/oxen_coin.dir/jni/oxen_jni.cpp.o  ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a -latomic -lm && :
  ld: error: undefined symbol: epee::mlocker::lock(void*, unsigned int)                                            
  >>> referenced by mlocker.h:71 (/home/aphustine/loki-core/contrib/epee/include/epee/mlocker.h:71)                
  >>>               wallet.cpp.o:(epee::mlocked<tools::scrubbed<crypto::ec_scalar> >::mlocked()) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced by mlocker.h:73 (/home/aphustine/loki-core/contrib/epee/include/epee/mlocker.h:73)                
  >>>               wallet.cpp.o:(epee::mlocked<tools::scrubbed<crypto::ec_scalar> >::mlocked(epee::mlocked<tools::scrubbed<crypto::ec_scalar> > const&)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced by mlocker.h:75 (/home/aphustine/loki-core/contrib/epee/include/epee/mlocker.h:75)                
  >>>               stake_unlock_result.cpp.o:(epee::mlocked<tools::scrubbed<crypto::ec_scalar> >::mlocked(epee::mlocked<tools::scrubbed<crypto::ec_scalar> > const&&)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
                                                                                                                   
  ld: error: undefined symbol: epee::mlocker::unlock(void*, unsigned int)                                          
  >>> referenced by mlocker.h:77 (/home/aphustine/loki-core/contrib/epee/include/epee/mlocker.h:77)                
  >>>               wallet.cpp.o:(epee::mlocked<tools::scrubbed<crypto::ec_scalar> >::~mlocked()) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
                                                                                                                   
  ld: error: undefined symbol: boost::archive::detail::basic_serializer_map::insert(boost::archive::detail::basic_serializer const*)
  >>> referenced by archive_serializer_map.ipp:44 (/home/aphustine/loki-core/build/release.armeabi-v7a/static-deps/include/boost/archive/impl/archive_serializer_map.ipp:44)
  >>>               wallet.cpp.o:(boost::archive::detail::archive_serializer_map<boost::archive::portable_binary_iarchive>::insert(boost::archive::detail::basic_serializer const*)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced by archive_serializer_map.ipp:44 (/home/aphustine/loki-core/build/release.armeabi-v7a/static-deps/include/boost/archive/impl/archive_serializer_map.ipp:44)
  >>>               wallet.cpp.o:(boost::archive::detail::archive_serializer_map<boost::archive::portable_binary_oarchive>::insert(boost::archive::detail::basic_serializer const*)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
                                                                                                                   
  ld: error: undefined symbol: boost::archive::detail::basic_serializer_map::erase(boost::archive::detail::basic_serializer const*)
  >>> referenced by archive_serializer_map.ipp:60 (/home/aphustine/loki-core/build/release.armeabi-v7a/static-deps/include/boost/archive/impl/archive_serializer_map.ipp:60)
  >>>               wallet.cpp.o:(boost::archive::detail::archive_serializer_map<boost::archive::portable_binary_iarchive>::erase(boost::archive::detail::basic_serializer const*)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced by archive_serializer_map.ipp:60 (/home/aphustine/loki-core/build/release.armeabi-v7a/static-deps/include/boost/archive/impl/archive_serializer_map.ipp:60)
    >>>               wallet.cpp.o:(boost::archive::detail::archive_serializer_map<boost::archive::portable_binary_oarchive>::erase(boost::archive::detail::basic_serializer const*)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
                                                                                                                   
  ld: error: undefined symbol: boost::archive::detail::basic_serializer_map::find(boost::serialization::extended_type_info const&) const
  >>> referenced by archive_serializer_map.ipp:70 (/home/aphustine/loki-core/build/release.armeabi-v7a/static-deps/include/boost/archive/impl/archive_serializer_map.ipp:70)
  >>>               wallet.cpp.o:(boost::archive::detail::archive_serializer_map<boost::archive::portable_binary_iarchive>::find(boost::serialization::extended_type_info const&)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced by archive_serializer_map.ipp:70 (/home/aphustine/loki-core/build/release.armeabi-v7a/static-deps/include/boost/archive/impl/archive_serializer_map.ipp:70)
  >>>               wallet.cpp.o:(boost::archive::detail::archive_serializer_map<boost::archive::portable_binary_oarchive>::find(boost::serialization::extended_type_info const&)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
                                                                                                                   
  ld: error: undefined symbol: i18n_translate(char const*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)
  >>> referenced by i18n.h:37 (/home/aphustine/loki-core/src/common/i18n.h:37)                                     
  >>>               wallet.cpp.o:(tr(char const*)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
                                                                                                                   
  ld: error: undefined symbol: el::base::Storage::getELPP()                                                        
  >>> referenced by wallet.cpp:162 (/home/aphustine/loki-core/src/wallet/api/wallet.cpp:162)                       
  >>>               wallet.cpp.o:(Wallet::Wallet2CallbackImpl::on_money_received(unsigned long long, crypto::hash const&, cryptonote::transaction const&, unsigned long long, cryptonote::subaddress_index const&, unsigned long long, bool)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced by wallet.cpp:179 (/home/aphustine/loki-core/src/wallet/api/wallet.cpp:179)                       
  >>>               wallet.cpp.o:(Wallet::Wallet2CallbackImpl::on_unconfirmed_money_received(unsigned long long, crypto::hash const&, cryptonote::transaction const&, unsigned long long, cryptonote::subaddress_index const&)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced by wallet.cpp:200 (/home/aphustine/loki-core/src/wallet/api/wallet.cpp:200)                       
  >>>               wallet.cpp.o:(Wallet::Wallet2CallbackImpl::on_money_spent(unsigned long long, crypto::hash const&, cryptonote::transaction const&, unsigned long long, cryptonote::transaction const&, cryptonote::subaddress_index const&)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced 121 more times                                                                                    
                                                                                                                   
  ld: error: undefined symbol: el::base::VRegistry::allowed(el::Level, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)
  >>> referenced by wallet.cpp:162 (/home/aphustine/loki-core/src/wallet/api/wallet.cpp:162)                       
  >>>               wallet.cpp.o:(Wallet::Wallet2CallbackImpl::on_money_received(unsigned long long, crypto::hash const&, cryptonote::transaction const&, unsigned long long, cryptonote::subaddress_index const&, unsigned long long, bool)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
    >>> referenced by wallet.cpp:162 (/home/aphustine/loki-core/src/wallet/api/wallet.cpp:162)                       
  >>>               wallet.cpp.o:(Wallet::Wallet2CallbackImpl::on_money_received(unsigned long long, crypto::hash const&, cryptonote::transaction const&, unsigned long long, cryptonote::subaddress_index const&, unsigned long long, bool)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced by wallet.cpp:179 (/home/aphustine/loki-core/src/wallet/api/wallet.cpp:179)                       
  >>>               wallet.cpp.o:(Wallet::Wallet2CallbackImpl::on_unconfirmed_money_received(unsigned long long, crypto::hash const&, cryptonote::transaction const&, unsigned long long, cryptonote::subaddress_index const&)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced by wallet.cpp:200 (/home/aphustine/loki-core/src/wallet/api/wallet.cpp:200)                       
  >>>               wallet.cpp.o:(Wallet::Wallet2CallbackImpl::on_money_spent(unsigned long long, crypto::hash const&, cryptonote::transaction const&, unsigned long long, cryptonote::transaction const&, cryptonote::subaddress_index const&)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced 111 more times                                                                                    
                                                                                                                   
  ld: error: undefined symbol: cryptonote::print_money(unsigned long long, unsigned int)                           
  >>> referenced by wallet.cpp:162 (/home/aphustine/loki-core/src/wallet/api/wallet.cpp:162)                       
  >>>               wallet.cpp.o:(Wallet::Wallet2CallbackImpl::on_money_received(unsigned long long, crypto::hash const&, cryptonote::transaction const&, unsigned long long, cryptonote::subaddress_index const&, unsigned long long, bool)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced by wallet.cpp:179 (/home/aphustine/loki-core/src/wallet/api/wallet.cpp:179)                       
  >>>               wallet.cpp.o:(Wallet::Wallet2CallbackImpl::on_unconfirmed_money_received(unsigned long long, crypto::hash const&, cryptonote::transaction const&, unsigned long long, cryptonote::subaddress_index const&)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced by wallet.cpp:200 (/home/aphustine/loki-core/src/wallet/api/wallet.cpp:200)                       
  >>>               wallet.cpp.o:(Wallet::Wallet2CallbackImpl::on_money_spent(unsigned long long, crypto::hash const&, cryptonote::transaction const&, unsigned long long, cryptonote::transaction const&, cryptonote::subaddress_index const&)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced 27 more times                                                                                     
                                                                                                                   
  ld: error: undefined symbol: el::base::Writer::processDispatch()                                                 
  >>> referenced by easylogging++.h:3263 (/home/aphustine/loki-core/external/easylogging++/easylogging++.h:3263)   
  >>>               wallet.cpp.o:(el::base::Writer::~Writer()) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
                                                                                                                   
  ld: error: undefined symbol: epee::wipeable_string::wipeable_string(char const*, unsigned int)                   
  >>> referenced by wallet.cpp:275 (/home/aphustine/loki-core/src/wallet/api/wallet.cpp:275)                       
  >>>               wallet.cpp.o:(Wallet::Wallet2CallbackImpl::on_device_pin_request()) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced by wallet.cpp:287 (/home/aphustine/loki-core/src/wallet/api/wallet.cpp:287)                       
  >>>               wallet.cpp.o:(Wallet::Wallet2CallbackImpl::on_device_passphrase_request(bool&)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced by wallet.cpp:885 (/home/aphustine/loki-core/src/wallet/api/wallet.cpp:885)                       
  >>>               wallet.cpp.o:(Wallet::WalletImpl::setDevicePin(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)) in archive ../../../../../ios/External/android/oxen/lib/armeabi-v7a/libwallet_api.a
  >>> referenced 2 more time

Use Incognito Keyboard for seed input

when I try restoring a wallet with the seed phrase, the keyboard doesn't automatically go into incognito mode because the text field isn't marked as sensitive, thus learning the words and creating a security risk

Suggested by Deniz Demir via Telegram

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.