metamask / metamask-mobile Goto Github PK
View Code? Open in Web Editor NEWMobile web browser providing access to websites that use the Ethereum blockchain
Home Page: https://metamask.io
License: Other
Mobile web browser providing access to websites that use the Ethereum blockchain
Home Page: https://metamask.io
License: Other
08-02 01:49:35.398 26490-26490/com.metamask D/CustomWebview: Uncaught SyntaxError: Unexpected end of input
Questions
Settings:
Accounts:
+
?The Browser component executes an asynchronous filesystem read in its componentDidMount
method. This operation (or any other asynchronous operation) breaks the Istanbul code coverage produced by Jest and can't be ignored using any flavor of ignore syntax. If this single statement is commented out manually, 100% code coverage is achieved, hinting at a transpilation error.
Ideally, we should find a way to ignore this line or work around this issue to achieve 100% coverage.
react-native-keychain already uses the android keystore system which is good enough but apple's keychain has been hacked in the pass so we shouldn't store plain text.
One potenital solution is to use the encryptor (which uses AES internally) and generate a key based on the device id
1
2
3
Questions
We might want to use this: https://github.com/oblador/react-native-keychain
We will need it to generate appstore / playstore builds and release betas
We should change the name of the inpage script from npage/inpage.js
to entry/entry.js
.
The build output of the version of aes-js
we use produces invalid JavaScript that breaks the Metro bundler. For now, we're monkey-patching this as part of our postinstall script, but we should probably update the dependency to make this nicer.
In a mobile wallet this is a must.
We should use: https://github.com/react-native-community/react-native-camera
We should warn users of the security risks of storing private keys with a jailbroken / rooted device
Android WebViews are safely polyfilled during startup, but they rely on a timeout to avoid being overwritten by the bridge once it loads. We need to be able to polyfill and let users call postMessage
immediately, not after an arbitrary timeout. We should look to monkey-patch the underlying native code like we do for iOS.
We need to be generating appstore / playstore builds on every PR so we don't get surprises at the time of releasing.
LOTS of things breaks while building in release mode and we want to know as early as possible
Questions
We can use this library: https://github.com/naoufal/react-native-touch-id
This is a living doc, you are welcome to edit without permission.
Numbers correspond to the open questions in each section.
1
2
2
Questions
1
2
3
Questions
1
2
3
4
5
Questions
5
1
4
2
3
Questions
1
2
3
6
Questions
Questions
1
1
Questions
+
?1
1
2
3
4
Questions
Since we switched from WebView
to WKWebView
, we lost the built-in loading spinner between page loads. We should re-enable one, or if that's not possible, replace the "refresh" icon with a loading spinner during page loads.
relates to MetaMask/Design#36
This will allow us to release updates over the air (without having to re-submit a new build to the App Store / Play Store)
5
1
4
2
3
Questions
We should externalize blockies.js somehow.
If GABA isn't compiled to CommonJS, the Metro bundler blows up. We should look into this, as GABA should ideally be imported into this project as ES. This is a Metro-specific issue.
Consider using https://blog.reactnativecoach.com/the-definitive-guide-to-redux-persist-84738167975
Questions
This is the equivalent of sentry. Helpful to find / debug issues once we start releasing betas
2
3
Open Questions
and make sure all the conversions are using it.
Once it's done make sure we're doing it everywhere by making a project wide search for USD and $
This is required to be able to persist data between sessions
The extension is doing exactly that right here:https://github.com/MetaMask/metamask-extension/blob/develop/app/scripts/background.js#L257
This will make the android injection, since it would be a fallback in case the polyfill via onProgressChange fails (haven't seen it failing anymore tho)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.