Coder Social home page Coder Social logo

eltcoin / eltwallet Goto Github PK

View Code? Open in Web Editor NEW
100.0 100.0 69.0 9.11 MB

Non-custodial decentralized mobile wallet

License: BSD 3-Clause "New" or "Revised" License

JavaScript 90.70% Java 2.03% Objective-C 3.75% Python 3.09% Shell 0.44%
cryptocurrency erc20 erc20-tokens ethereum ethereum-wallet react-native wallet

eltwallet's People

Contributors

renovate-bot avatar renovate[bot] avatar vfaramond avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eltwallet's Issues

iOS Release builds crashing after splash screen.

Hi,

When I try to build the app for iOS release, the app installs on the device but crashes after the splash screen. The following is the log while debugging:
`2018-06-13 00:47:05.681 [fatal][tid:main] No bundle URL present.

Make sure you're running a packager server or have included a .jsbundle file in your application bundle.
2018-06-13 00:47:05.684068+0530 eltwallet[56900:3182567] No bundle URL present.

Make sure you're running a packager server or have included a .jsbundle file in your application bundle.
2018-06-13 00:47:05.729202+0530 eltwallet[56900:3182567] *** Terminating app due to uncaught exception 'RCTFatalException: No bundle URL present.

Make sure you're running a packager server or have included a .jsbundle file in your application bundle.', reason: 'No bundle URL present.

Make sure you're running a packager server or have ...'
*** First throw call stack:
(
0 CoreFoundation 0x0000000105f4012b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x00000001043bff41 objc_exception_throw + 48
2 eltwallet 0x000000010366ceb5 RCTFormatError + 0
3 eltwallet 0x000000010365815a __28-[RCTCxxBridge handleError:]_block_invoke + 629
4 libdispatch.dylib 0x000000010ac862f7 _dispatch_call_block_and_release + 12
5 libdispatch.dylib 0x000000010ac8733d _dispatch_client_callout + 8
6 libdispatch.dylib 0x000000010ac925f9 _dispatch_main_queue_callback_4CF + 628
7 CoreFoundation 0x0000000105f02e39 CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 9
8 CoreFoundation 0x0000000105ec7462 __CFRunLoopRun + 2402
9 CoreFoundation 0x0000000105ec6889 CFRunLoopRunSpecific + 409
10 GraphicsServices 0x000000010cc4b9c6 GSEventRunModal + 62
11 UIKit 0x00000001089c65d6 UIApplicationMain + 159
12 eltwallet 0x0000000103642d6c main + 80
13 libdyld.dylib 0x000000010ad03d81 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) `

Are there any configurations which I need to set it right?

Thanks,
Kumar

Roadmap

I'm creating this issue to list a number of features I'd like to see added to Eltwallet.

Feel free to add your ideas here, we can create a formalised roadmap later once we're happy with a list of features to be implemented.

My ideas:

  • Display ETH and ERC20 pending transactions
  • Display a modal when user clicks on his balance (display conversions in different currencies)
  • Display a modal when user clicks on a transaction (display transaction info such as timestamp, tx hash, from and to addresses, gas and gas price)
  • Ability to manage multiple addresses
  • iOS quick actions (for send and receive)
  • iOS widget to display balances
  • Push notifications for ETH and ERC20 transactions
  • Social features (tie every address to a username and an avatar)

Note that some features can be made available if the user have a sufficient ELT balance on its wallet ๐Ÿ˜‰

What is the meaning of this log, It always appears continuously.

While I am running the app on iphone simulator, It shows following log continuously.

2018-04-27 09:14:16.641055+0800 eltwallet[4352:64030] [] nw_connection_get_connected_socket 443 Connection has no connected handler

Where this come up?
What will affect to the app work?
Thank you.

screenshot at apr 27 09-24-02

Update web3.js to v1

Is your feature request related to a problem? Please describe.
The project is still using v0.19 of web3.js. It will be nice if we can update the app to use web3 v1 currently in beta but suitable for production use (we only use basic features).

Update react-native-dialogs to v1

Is your feature request related to a problem? Please describe.
The project is using react-native-dialogs v0. It's better to update to v1 of the library.

Describe the solution you'd like
API of react-native-dialogs have changed from v0 to v1. The library README has real-world examples so it shouldn't be hard to update our code to use the new API.

Additional context
This library is only used for biometric authentication on Android.

Use react-navigation tabbar component

Is your feature request related to a problem? Please describe.
The project is using a custom tabbar component (src/screens/WalletHome/components/Footer). Using the one provided by react-navigation will allow us to let react-navigation handle layout difference between devices such as iPhone X.

Describe the solution you'd like
We can leverage react-navigation built-in tabs component by using a tab navigator.

Icon list

I like to know what is the icon list you use in the app. I need to add a new section and I want maintain the same UI.

How can send ERC20 token without setting up gas?

I downloaded android app, If I send any ERC20 token, it will not ask gas?
Are you sure you can send any ERC20 token between 2 ethereum wallet addresses ( from my ELT wallet app to any other address) ?
Thank you.

Pincode is able to be pressed again across the screen width.

Reproduce the issue as following steps:

  1. Press "Recover wallet" button.
  2. Enter pincode.
  3. repeat pincode.
  4. Press back button on Recover wallet screen.
  5. Press any key, it is able to press any key, and pin indicator is over the screen.
    What will be the expectable action at this case?
    I expected back button on recover wallet screen will take me the first screen.
    Thanks.

New app name and icon

After several submission on the App Store, Apple have rejected the app stating that Eltwallet is related to Eltcoin, a virtual currency that is not approved by Apple.

Therefore, we need to change the name to something more generic.

Feel free to share your ideas here and we can use reactions to vote ๐Ÿ‘

We'll also need a new app icon. ๐Ÿคฉ

Use a cross icon instead of an arrow for modal screens

Describe the bug
The Send, Receive and Camera screens use the modal mode of react-navigation. The use of a cross icon in the top right corner of the screen is more suitable than using a back arrow on the top left corner of the screen.

To Reproduce
Steps to reproduce the behavior:

  1. Create a new wallet
  2. Click on 'Send' or 'Receive'
  3. See back arrow on the top left corner of the screen

Expected behavior
The screen should display a cross icon on the top right of the screen.

Screenshots
img_0717

Cannot run iOS

Installing build/Build/Products/Debug-iphonesimulator/eltwallet.app
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):
Failed to install the requested application
An application bundle was not found at the provided path.
Provide a valid path to the desired application bundle.
Print: Entry, ":CFBundleIdentifier", Does Not Exist

Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/eltwallet.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist

Use react-navigation header component

Is your feature request related to a problem? Please describe.
The project is using a custom header component (src/components/Header). Using the one provided by react-navigation will allow us to let react-navigation handle layout difference between devices such as iPhone X.

Describe the solution you'd like
We can leverage react-navigation built-in header component by passing props to each screen (using title, headerLeft and headerRight screen props).

Additional context
Add any other context or screenshots about the feature request here.

runtime error

When I try to run the APP in Android I get the following error:

image

Error related to Segment

Describe the bug
When running the app at android studio, it shows the error as following:
you must pass your segment project's' write key
http://prntscr.com/lajjfu
To Reproduce
Steps to reproduce the behavior:
I added segment key, and ios does not show the error.

Desktop (please complete the following information):

  • OS: macOs HighSierra 10.13.6

Smartphone (please complete the following information):

  • Device: [e.g. android emulator]
  • Android Studio: new version 3.2.1

IOS is crashing on simulator with error.

Without any change, simply I run xcode project on iphone6S simulator, but it is crashing with following error logs.

2018-04-26 20:01:18.532 [fatal][tid:main] No bundle URL present.

Make sure you're running a packager server or have included a .jsbundle file in your application bundle.
2018-04-26 20:01:18.532173+0800 eltwallet[39423:412013] No bundle URL present.

Make sure you're running a packager server or have included a .jsbundle file in your application bundle.
2018-04-26 20:01:18.542386+0800 eltwallet[39423:412389] [] nw_connection_get_connected_socket 2 Connection has no connected handler

Looking forwards the solution.
Thank you in advance.

react-native run-android failed on Ubuntu

/usr/bin/react-native run-android
Scanning folders for symlinks in /home/frank/Documents/eltwallet/node_modules (10ms)
JS server already running.
Building and installing the app on the device (cd android && ./gradlew installDebug)...
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.gradle.internal.reflect.JavaMethod (file:/home/frank/.gradle/wrapper/dists/gradle-2.14.1-all/8bnwg5hd3w55iofp58khbp6yv/gradle-2.14.1/lib/gradle-base-services-2.14.1.jar) to method java.lang.ClassLoader.getPackages()
WARNING: Please consider reporting this to the maintainers of org.gradle.internal.reflect.JavaMethod
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Reading env from: .env
Failed to notify ProjectEvaluationListener.afterEvaluate(), but primary configuration failure takes precedence.
java.lang.IllegalStateException: buildToolsVersion is not specified.
at com.google.common.base.Preconditions.checkState(Preconditions.java:173)
at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:645)
at com.android.build.gradle.BasePlugin$10.call(BasePlugin.java:608)
at com.android.build.gradle.BasePlugin$10.call(BasePlugin.java:605)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:156)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:120)
at com.android.build.gradle.BasePlugin.lambda$createTasks$1(BasePlugin.java:603)
at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:93)
at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:82)
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:79)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:30)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy12.afterEvaluate(Unknown Source)
at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:67)
at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:61)
at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:540)
at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:93)
at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:47)
at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35)
at org.gradle.initialization.DefaultGradleLauncher$2.run(DefaultGradleLauncher.java:124)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:121)
at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:83)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:99)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:51)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:28)
at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:43)
at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:173)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:239)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:212)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:205)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
at org.gradle.launcher.Main.doAction(Main.java:33)
at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:55)
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:36)
at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:127)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)

FAILURE: Build failed with an exception.

  • What went wrong:
    A problem occurred evaluating project ':app'.

A problem occurred starting process 'command 'security''

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 3.312 secs
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html

Process finished with exit code 0

There is the functionality for Private Key QR code output ?

In this source, there seems not output of QR code for private key.
And when click share button, it shows only private key string.
But there is only option to recover wallet with private key QR code.
How do I think about this?
This source can send and receive any ERC20 token and ETH?

Run into reducer error after 'Add new token' done.

Error Message:

Error: You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.

Refer to this file:
src/utils/analytics.js
in function: getAnalyticsUserId() and this line: const userId = store.getState().walletAddress;

And I saw this in reducer 4 release log:
Throw if getState, subscribe, or unsubscribe called while dispatching

AnalyticsUtils.trackEvent encountered error as a result of the error above .
As a newbie to redux, I cannot fix the problem myself. Gonna read more about redux.

Anyway, thanks for the awesome repo!

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.