Coder Social home page Coder Social logo

mymonero-app-js's People

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  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

mymonero-app-js's Issues

Desktop: add window top accent/highlight

box shadow would be "inset 0 0.5px 0 0 rgba(255,255,255,0.10)" but where/how to add this in order to be to-design is the question. design pic available. the inset box shadow, per design, curves along the window's corner radius

ux idea: send tab form clear on tab item

when already on send page, if redundantly tapping send tab, clear screen - UNLESS currently sending or otherwise locked

for info, look at how popping to root on redundant tab item tap is done

the very first stack nav and modal animations seem choppy

I figured and instrumented that part of this was loading emojione - but optimized that. Animation still seems choppy. Instrumentation shows velocity.js taking time, but not clear if that's just the caller of what takes time.

Possibly look into translate3d instead of left/top animations; connected to Cordova optimization issue

Implement local notifications on tx/balance events and Settings custom switch

  • in Settings: implement notify me when, sync w/server fields w/switch control (per design; pic available) … steal slider/toggle/switch from http://mds.sh/readable/

related issue: #40

As info sent by server on pending/confirming txs gets fixed…

  • finalize work to detect various tx + balance change events and pop notifications (Wallet.js)
    ** tx is changed to confirmed
    ** new tx comes in with positive balance (this is blocekd by current issue with txs changing and having wrong vals)

https://www.npmjs.com/package/node-notifier

  • bounce dock when new tx comes in, tx confirmed, etc

  • badge number? related issue: #44

user visibility into wallet from seed vs addr+keys

it’s not possible in the UI to add a wallet w/only addr & view key but… if a wallet has no account_seed or its acct seed is "" then its mnemonic cannot be shown and it should be messaged that the wallet was imported with public addr, view key, and spend key only

app badge

set app badge for number of unseen notifications BUT ONLY when app is in bg (electron should be easy but how to do that in cordova?) - and clear the badge when user comes back to unlocked app and after they unlock the app - shouldn't really be any badges on a locked app anyway - so maybe just clear badge no matter what when user comes back to app

related issue: #17

Import Transactions button visibility state rigor

after server updated to support - detect flags account actually has started importing and/or done importing; after account has fully caught up once, flip needs import flag back to 0 (or just use new flags rather than keep local state); toggle Catching Up/blocks behind -> Importing/% left and also to prevent showing "Catching up" before a needed import actually done

Idea: Addtl 'require password' usages

require password in order to send funds? require password to delete everything? require password to remove wallet? require password to view wallet secrets?

Contact metadata issue: proposal & request for feedback

So, @fluffypony will give an update in a little while with more expansive info to explain why we are posting this as a Github Issue with a request for feedback.

(tl;dr) Name/emoji + XMR/OA address + optl payment ID != Complete Contact abstraction for a real Monero wallet app.

For starters, I'd like to lay out the actual issue I found.

We designed the Contacts model in the information architecture to exist ideally as an opaque/black-box UI abstraction over transaction recipient information plus some metadata like Name/Avatar. In other words, we wanted users to be able to intuitively understand things in terms of sending to and receiving from people (Contacts) instead of managing specific payment ids.

What this would mean in the UI is that a savvy user could input manual payment IDs into a Contact but on the Send Funds and Create Funds Request screens, the user would be able to simply select their desired funds recipient or requestee and let MyMonero handle the payment IDs. However, after having built the Send Funds screen, an issue was noticed.

Let's say I have created a Contact for @fluffypony, and he has created a Contact for me in his app. We just use XMR addresses, so the app generates payment IDs for us. I could have alternatively used Riccardo's OA address, but he doesn't specify a payment ID there at time of writing.

If Riccardo wanted to send me 1 XMR, he would go to the Send tab, enter '1', pick me as a contact, hit Send, and he'd be done.

But suppose I just did some dog-sitting for him while he was traveling, and he needs to send me 2 XMR for dog food. I would generate a kind of invoice for him in the form of a Request, by selecting Riccardo as the recipient in the Request contact picker. The payment ID which I want him to use in his sending of funds to me is placed in the Funds Request URI/QR code. That is so that when I get his transaction back in my history, I can tell it came from him, with the known payment ID.

So I send him the Request QR, he drags it onto his Send screen, and it locates me as a contact in his address book and shows me on-screen. But there's an issue there. If we use the payment ID info from Riccardo's contact record for me in his app, it will have a different payment ID than what I sent in the Request.

Aside: For that reason, the application code for the Send Funds page explicitly chooses the payment ID which exists on the Request, if any, and only uses the payment ID for the Contact if the user is explicitly choosing that user. (See d5b60f6)

So, in summary, there's an issue of ambiguity in specifying what a payment ID on a Contact means. The payment ID that Riccardo would have on his contact record 'Paul' would be for when he wants to "Receive from" the Contact, but the payment ID that Riccardo receives from me on a Request QR would be for when he wants to "Send to" that Contact. This implies the existence of at least two categories of payment IDs which should be stored on a Contact.

Storing payment IDs as such, a Contact would no longer map to a singular payment ID.

And, since a user might reasonably want to be able associate a given transaction with a Contact (i.e. by right-clicking on it in tx history and tagging it with the Contact), or because I may send Riccardo different requests, for different jobs done, Contact records probably need to be able to track a list of payment IDs per each category.

However, with the advent of Monero subaddresses, and the existing preference of encrypted payment IDs via integrated addresses, it wasn't clear whether this level of support for clear payment IDs ought to be implemented.

There are additional IA concerns which Ric will highlight.

implement form-inputfield-local validation error display per design where applicable

this is currently already implemented in component form on the existing password entry and new password entry views

currently, validation errors are currently generally being displayed via the inline message layer - the dismiss-able orange box atop most forms

displaying them on specific fields probably will require enhancing the business logic to specify which input key(s) was/were problematic

review design to see where else this is implemented

Send Funds screen tooltip copy

  1. put actual fixed mixin amount in a tooltip copy on Send Funds; rename mentions of mixin to 'ring size'

  2. expand/add tooltip explaining funds will be locked on both sending and receiving side for short period of time until transaction is confirmed and that monero constructs transactions by using outputs the sender has available, so additional funds may be locked while pending but will be returned as change

hold request URL while user unlocking app?

possibly handle receiving URL on launch of app by hanging onto it while user is entering their pin… but that can become complex due to state so must be implemented carefully

Vet/harden CSP used on Cordova

an oddly permissive CSP was needed to get scripts executing under Corcova - esp in latest safari - see if we can restrict it more, perhaps by usage of hashes - will need to discover more info about what's actually being refused ; also, do we really need to allow gstatic? (i had read we do)

see local_modules/MainWindow/index.cordova.html

wallets list empty state while pw already entered

wallets list empty state: when pw has already been entered but no wallets present use different emoji and message - configure before set visible saying not "welcome" but something more like "no wallets… yet"

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.