swaponline / MultiCurrencyWallet

Bitcoin, Ethereum, ERC20 crypto wallets with 0x and atomic swap exchange.
https://swaponline.github.io
MIT License
479 stars 491 forks source link

send: confirmation screen #2757

Closed noxonsu closed 4 years ago

noxonsu commented 4 years ago

confirmation screen

The confirmation screen can be universal for a few scenarios:

  1. Confirmation of simple wallet transaction
  2. Multisignature wallets, when the other pary signs the trasaction
  3. 2FA comfirmation.

in the 3-rd option yo would see an additional "2FA" input where you enter the 2FA code.

image

After you click withdraw, transaction need to be created with flag "initiated", and should be recorder in the list of transaction and IMPORTANT:

It needs to be reference-able by URL, so when you click WITHRAW you see the new confirmation screen AND the URL changes in the address bar, and you can for example save that url somewhere, and then return it it, and sign the transaction later. And if its already signed, then going to that link will give you info when it was signed, and there would be no options to sign...

Even if you don't confirm the transaction, it should appear in the transaciton list with special background color with "confirmation required" tag.

So confirmation screen is multipurpose, intuitive, and logical.

So confirmaiton screen is pretty much the same as invoice, and actually IS an invoice

Confirmation screen is nothing but an transaction template, or initiated transaction with different stages, multipurpose and can be re-used for many different scenarios.

Muliisignature, 2FA, Invoice, slef-initiated transactionm, etc..

And just like a multisignature trnasaction thats signed by another party it must appear in your transaction list.

And in face, invoice also must appear in your trasaction list, why not? Only as an initiated trasnaction that hasn't been signed.

You can ofcourse by default forbid unknown wallets/people from generating invoices for you. So you are not getting spammed.

Self Initiated tradnsaction, inoices appear in main transaxction list, and can be cancelled (hidden).

We should have a propriatory service that takes care of keeping the list of transactions for everyone. This service must be multi-blockchain, and hide the complexity of blockchain-specific functionality.

So all transactions are now entirely different beasts. They can be tagged as "initiated", "signed", "partially signed", "confirmed", "confirmed 2" - confirmed by blockchain (2 confirmations). But the don't have to be in blockchain at all, they on every initiation need to remain in our transactions service. Blockchain-agnostic to the frontend. Frontend should only know how to sign blockchain-specific transactions and that's all.

noxonsu commented 4 years ago

The transactions details = confirmation screen. It should be the same thing basically.

We need to make design mock-ups for every scenario, both desktop and mobile.

This is the core of all.f