consensys / rimble-app-demo Goto Github PK
View Code? Open in Web Editor NEWReact Ethereum dApp demonstrating onboarding and transaction UX
Home Page: https://rimble-app-demo.netlify.com/
License: MIT License
React Ethereum dApp demonstrating onboarding and transaction UX
Home Page: https://rimble-app-demo.netlify.com/
License: MIT License
After the user receives a blocking modal, like low balance, the transaction should continue when the blocking issue is resolved.
As a user, the app should be formatted with padding and margins for mobile with vertical scrolling only. All modals should also be changed to single column layouts.
When I attempt to connect to a dApp while using a desktop browser without MetaMask I want to be told to install MetaMask so I can use the dApp in my current browser
When I cancel a connection request I want to know what my options are so I have the opportunity to change my mind or proceed to continue without connecting
Appears when a user initiates an on-chain action (like transaction) and is currently on the wrong network. Will auto-close when the network is correct. Should appear prior to a Connection Modal if on wrong network. Should resume the user-initiated action (like connect or transact).
Triggers the Connection Modal. Would also be responsible for triggering any
eth.personal.sign(nonce)-type metamask
.
This can be a standard button that says "Connect" for now.
As per the screenshot...
Using:
Current behaviour:
This is the second/third time I've gone through the connection flow. The connection confirmation has been stored so I haven't been asked again.
The Rimble screens are still displaying as if I need to accept the connection request when the signature request is displaying in MetaMask.
Expected behaviour:
The Rimble screens should sync up with the MetaMask screens so that if MetaMask is asking for a signature, we should display the "Verify your account screen".
In that sense the screens are not in a fixed order, but depend on what is happening in the connection process.
As a user I should see information helping me understand that there is not a browser-connected wallet with steps to resolve.
Show user connected status. Shows user short address. Shows current balance. If balance is low, style the balance in red. Currency internationalization? Maybe click on summary block, show dropdown with option to Disconnect. Can also be space for dApp specific-functionality/navigation. (no blockie here)
When I am able to connect I want to understand more about what connecting involves and which account I should connect with so I don't come into any problems once I'm connected.
Identify and clean up areas that need it.
Some areas to address are listed below:
When a user initiates an on-chain action, or continued from a Connect Button action. Shows user public address. Show QR code action button. Continue button to close the modal. Can be cancelled/closed. Show the current network status.
A user should see a network indicator displaying the connected network name and associated color.
Follow metamask’s network colors
Main - green
Ropsten - red
Kovan - purple
Rinkby - yellow
Using:
Current behaviour:
Passive network banner hides the instructions of the Rimble demo.
Expected behaviour:
Passive network banner should not prevent the user from reading all page content. Although pinned to the bottom, it should allow the reader to scroll and read the bottom of the page and display underneath.
When I need to accept a connection request in MetaMask I want to know what to do so that I can continue connecting and if MetaMask doesn't pop up automatically I want to know how to accept the connection request
THINKING: in the future this screen may allow users to select their method of connecting (MetaMask, Ledger or WalletConnect) so we should re-present this choice to users who cancel the Connection Ethereum account modal.
Appears when a user rejects the signed personal message. Return user to Verify Your Account Modal as primary action.
Appears when there is an eth.personal.sign
prompt in MetaMask. Should show public address user’s eth address. If user cancels from MetaMask prompt, go to Connection Cancelled During Verification Modal. Should recommend specific verbiage for the MetaMask prompt. When successful, show toast with truncated user address.
Appears if the user clicks “Cancel” from a MetaMask Connect prompt and informs them that they can continue as guest or try to re-connect.
As a user I should see an informative message that my current browser does not support web3/blockchain/ethereum with steps to resolve.
Triggered when user hits “Connect” button. Connect with MetaMask button is primary action. Modal can be cancelled/closed. Should include current network indicator.
As a user there should be a current value in the count of the primary card.
Closely related to #82
This issue pertains to the transaction state work we've been looking into.
We need to figure out:
It's better to help a small percentage of users rectify a mistake rather than ask all users to double and triple check their Txs
Pictured below is:
I believe this is important. The window for cancelling a transaction will likely be small so if we can save users seconds by allowing them to do this from the dApp UI this should make life easier for them.
Team decision needed: remove close icon or make the icon close the modal.
When I attempt to connect to a dApp and I'm on a browser that can't support Web3 (even by installing MetaMask) I want to be told which browser to use so I can connect.
Replace the current "I am signing my one time nonce: {nonce}"
with...
Hi there from Rimble! To connect, sign this message to prove you have access to this account. This won’t cost you any Ether. To stop hackers pretending to be you, here’s a unique message ID they won't be able to guess: {nonce}
Variation for the connection modal displaying different content, which is triggered when a user initiates an on-chain action. Connect with MetaMask button is primary action. Modal can be cancelled/closed. Should include current network indicator. Might not make through testing.
Closely related to #83
This issue pertains to the transaction state work we've been looking into.
We need to figure out:
MetaMask offers the user the option to "speed up" said transaction... which I believe resubmits the transaction with the same `nonce` in the hope it will be confirmed quicker than the previous stalled transaction which will then fail because the `nonce` will be invalid.
Alternatively...
Currently looks horrible in Cipher and also doesn't work.
Should we be practicing mobile-first design and development practices?
As a user attempting to interact with any web3 functionality on the dapp, a modal should fire a warning that the current browser does not have a wallet connected and there should be a link to download metamask.
As a user there should be a current value in the count of the primary card.
Appears after user clicks the “Connect with MetaMask” button from the Connection Modal. Prompts MetaMask with Connect prompt.
When a user is connected to the wrong network, she should see a bottom full-width banner which informs user to switch network.
Banner is persistent and cannot be dismissed
Banner is automatically dismissed when the user switches to the correct network
When I cancel a signature request I want to know what my options are so I have the opportunity to change my mind or proceed to continue without signing
When I attempt to connect to a dApp and I'm on the wrong network I want to know which network I should be on and where to change it so that I can start connecting
Button appearing with Connection modal(s) that triggers a MetaMask connection request.
As a user attempting to interact with any web3 functionality on the dapp, a modal should fire a warning that the current browser is not web3 capable with link to download web3 capable browser.
After the first Connect popover window appears, all subsequent MetaMask requests are no longer presented in a popover window but appear as a numbered pill over the MetaMask extension icon in the browser.
Possibly related to polling for account updates.
I was running the demo por the first time and got the error: Attempted import error: 'PublicAddress' is not exported from 'rimble-ui'.
I've found the new component is called EthAddress
so I replaced it on LowFundsModal.js
. That solved the problem for the kick-start.
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.