Comments (9)
Nvm, done changes in my project to handle this case
from react-web3.
Cool.
This library depends on web3 already being available on the window context, and I don't think it makes sense for it to choose a node/network for you.
from react-web3.
Hi, I'm Dan from MetaMask! I think this issue should be re-opened, and I'm willing to maybe make the change myself.
I think this is a great component, I actually use it in a small web dapp I made.
OP is correct here, there is a breaking change that this module should account for. The best article for detailing the difference is here.
The short of it
Although web3 may be available, when accounts are not available, you should call let accounts = await ethereum.enable()
to ask the user to sign in. This is both an improved user experience (no more telling the user to unlock metamask, just show the prompt), and improves privacy, because it means MetaMask is no longer showing accounts to sites that don't get explicit permission.
I actually came here to fork and maybe just add this change myself, so in a way I'm just commenting here first to make sure you'd approve the change. We made this protocol change in tandem with Mist, Coinbase, Cipher, imToken, and every other web3 browser that participates in the EIP process, so this should be considered the new preferred sign-in UX.
from react-web3.
@danfinlay Thanks for your input! I would 100% approve that change if you were kind enough to add this. I will reopen the issue for this.
from react-web3.
Sorry, I got held up on some basic things in your build system:
Error in ./test/provider-styles.test.js
Module parse failed: /Users/danfinlay/Documents/Development/ethereum/node_modules/react-web3/test/provider-styles.test.js Unexpected token (14:6)
You may need an appropriate loader to handle this file type.
| it('should load default stylesheet', () => {
| const wrapper = mount(
| <Web3Provider>
Maybe there's a dev dependency missing?
from react-web3.
Was this when running npm test
? My instinct tells me this is due to whatever bundler was involved (e.g. webpack) not recognizing JSX, most likely because the file is using .js
extension rather than .jsx
. In the webpack config that is included in this package, webpack is configured to parse JSX in both .js
and .jsx
files
from react-web3.
Was this when running npm test?
Yes.
In the webpack config that is included in this package, webpack is configured to parse JSX in both .js and .jsx files
Just weird b/c I do the same thing in other projects w/o this problem. I'll try to revisit later.
from react-web3.
My issue was that the file path included an underscore, and that apparently breaks babel-loader:
babel/babel-loader#173
from react-web3.
Wow weird. Never would’ve guessed. Thanks
from react-web3.
Related Issues (20)
- Typo HOT 1
- react-web3 not picking up user switching accounts HOT 4
- [email protected] - 'cb is not a function' HOT 6
- Make compatible with web3 1.0 HOT 5
- enable to use ethjs? HOT 1
- Q: Does the child context mean I no longer have to import web3? HOT 4
- Upgrade to React 16.2? HOT 4
- Chrome problems with Metamask HOT 1
- web3 1.0: MetaMask throws `TypeError: e is not a function` if web3 is imported HOT 3
- doesn't work with mist HOT 1
- How to detect if a user logout of metamisk? HOT 1
- how can i start project.. HOT 1
- Is there any way to customize the error message? HOT 3
- No eth account available being displayed for a couple of milliseconds when page is being loaded. HOT 4
- Relies on legacy React context API HOT 1
- How can i use react-redux and Web3Provider both work together? HOT 1
- Throws error if no web3 at window
- How to read account balance?
- Warning: Failed child context type: Invalid child context `web3.networkId` of type `string` supplied to `Web3Provider`, expected `number`. in Web3Provider (at src/index.js:13)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-web3.