numbersprotocol / capture-lite

A photo-sharing app with only verifiable photos and videos.
https://numbersprotocol.github.io/
GNU General Public License v3.0
25 stars 6 forks source link

[FR] Ask user to backup private key and logout/login if "the change of backend user wallet is detected". OR when user press delete account #969

Closed sync-by-unito[bot] closed 1 year ago

sync-by-unito[bot] commented 2 years ago

✓ [FR] Users can import their own wallet Follow up on "[FR] Users can import their own wallet"

User story:

As a Capture User, I want the App can remind me to backup private key when I delete my account so that I can still access onchain assets and truly own my wallet.

┆Issue is synchronized with this Asana task by Unito ┆Created By: Tammy Yang

sync-by-unito[bot] commented 2 years ago

➤ Tammy Yang commented:

Scott YanSherry Chung please review and provide feedback

sync-by-unito[bot] commented 2 years ago

➤ James Chien commented:

Need to know the versions or the upgrading scenario of this issue (e.g. issue happens when version X upgrade to version Y)

sync-by-unito[bot] commented 2 years ago

➤ Scott Yan commented:

James ChienTammy Yang 這一個 task 0.39.0 之後重新登入登出都會使用固定 wallet address 不會變動了

  1. 也確認過當時已經有送出過 notification
  2. 確認在近期上架的三個版本 ( 0.39.1 , 0.40.3 , 0.41.0 ) 不會有登入登出更換 wallet 的狀況 後來確認了這個 issue 是指當 Users 自己去 import their own wallet 之後要特別注意請 user 要存下先前的 privit key 否則之後在驗證先前拍攝的 capture 會因為 signature 不同造成不可預期的問題 ( 但是目前讓 " 使用者更改成自己的 wallet " 這個功能我們有 api 但並沒有實作所以使用者目前沒有辦法更改 )
sync-by-unito[bot] commented 2 years ago

➤ Sherry Chung commented:

Scott Yan 所以這個 issue 應該是等到實作 "讓 user 可以將 Capture App 裡的 wallet 更換為自己的其他 wallet " 時,才會遇到的,對吧?

sync-by-unito[bot] commented 2 years ago

➤ Scott Yan commented:

Sherry Chung yes

sync-by-unito[bot] commented 2 years ago

➤ Sherry Chung commented:

Scott Yan 我看 backend 這個 task 的實作已經完成了 ✓ [FR] Users can import their own wallet ( https://app.asana.com/0/1201016280880508/1201113410642781/f ) Capture App 的更新則是放在 sprint backlog Support wallet login (Capture App) ( https://app.asana.com/0/1201016280880500/1201231785234244/f )

所以釐清一下,這個 issue 應該只有需要在使用者嘗試更改 Wallet 時,"於 Capture App 跳出通知 Norification,請 user 確認已備份先前的 Private key 後再動作"。 確認上述無誤的話,此 Task 應該跟 Support wallet login (Capture App) ( https://app.asana.com/0/1201016280880500/1201231785234244/f ) 有依存關係。應該搬回到 sprint backlog cc Tammy YangJames Chien

sync-by-unito[bot] commented 2 years ago

➤ Scott Yan commented:

Sherry Chung 更準確一點的說 " 當我們提供使用者更換 wallet address " 這個功能才要注意這個問題 , 因為 Support wallet login (Capture App) ( https://app.asana.com/0/1201016280880500/1201231785234244 ) 並不會更改 wallet

sync-by-unito[bot] commented 1 year ago

➤ Sam commented:

Scott Yan, in this comment ( https://app.asana.com/0/0/1201181881071907/1201456498076693/f ).

User already can import own wallet in capture app? I could't find any.

sync-by-unito[bot] commented 1 year ago

➤ Sam commented:

Tammy Yang, in what cases user wallet can be changed?

sync-by-unito[bot] commented 1 year ago

➤ Kenny Hung commented:

Tammy YangSam(cc Scott Yan) Just confirm because the Capture App doesn't have this feature of let user change their integrity wallet currently. You mean Sam should add this feature and include this task? If not, maybe this task should be dropped.

sync-by-unito[bot] commented 1 year ago

➤ Tammy Yang commented:

Kenny Hung Can use update wallet using CaptureClub?

sync-by-unito[bot] commented 1 year ago

➤ Kenny Hung commented:

No, Both CC & Capture App can't update wallet.

sync-by-unito[bot] commented 1 year ago

➤ Sam commented:

Kenny Hung (cc: Scott Yan) this task can not be part of current sprint (release) becase we don't have a way to import/export wallet in capture app.

sync-by-unito[bot] commented 1 year ago

➤ Tammy Yang commented:

Move this to sprint backlog as there is no way for user to import wallet yet

sync-by-unito[bot] commented 1 year ago

➤ Sam commented:

Olga, I have a question how backend can inform front end that user wallet was changed?

sync-by-unito[bot] commented 1 year ago

➤ Olga commented:

Sam user wallet is changed through active API https://dia-backend-dev.numbersprotocol.io/api/v3/redoc/#operation/wallets_asset-wallet_create ( https://dia-backend-dev.numbersprotocol.io/api/v3/redoc/#operation/wallets_asset-wallet_create ) so maybe front end know.

sync-by-unito[bot] commented 1 year ago

➤ Sam commented:

Tammy Yang, every time app launches I will check thishttps://dia-backend-dev.numbersprotocol.io/api/v3/redoc/#operation/wallets_asset-wallet_read ( https://dia-backend-dev.numbersprotocol.io/api/v3/redoc/#operation/wallets_asset-wallet_read ) endpoint to compare local and remote private keys.

case 1: if local and remote private keys match => do nothing. case 2: If local and remote private keys does not match => do something.

Kenny Hung, can you please clarify QA expectation what should happen in case 2? Should I just show pop up dialog with some text and action buttons or ...? Here is the claap ( https://app.claap.io/numbers-protocol/qa-tammy-what-ui-should-i-show-when-private-key-change-detected-c-O35CsUM4Uy-ADwo8rAoBQr8 ) with some proposal, and miro ( https://miro.com/app/board/o9J_knEiIYo=/?moveToWidget=3458764542690117971&cot=14 ).

sync-by-unito[bot] commented 1 year ago

➤ Kenny Hung commented:

Sam(cc Tammy Yang) I found this is something misunderstanding, it task should be when user "delete account" & change their integrity wallet, should ask user to backup private key.

sync-by-unito[bot] commented 1 year ago

➤ Sam commented:

Tammy Yang, as far as I know we do not have feature to allow user import their wallets right?

So we only have to "ask backup private key" when users tries to "delete account"?

sync-by-unito[bot] commented 1 year ago

➤ Tammy Yang commented:

Sam yes. I have added the user story to the description:

As a Capture User, I want the App can remind me to backup private key when I delete my account so that I can still access onchain assets and truly own my wallet.

Let me know if it's not yet clear.

sync-by-unito[bot] commented 1 year ago

➤ Sam commented:

Tammy Yang, Okay now it's clear. UI part is open for proposals?

sync-by-unito[bot] commented 1 year ago

➤ Kenny Hung commented:

Tammy Yang (cc Sam) I think the flow maybe like this? https://miro.com/app/board/o9J_knEiIYo=/?moveToWidget=3458764542712824223&cot=14 ( https://miro.com/app/board/o9J_knEiIYo=/?moveToWidget=3458764542712824223&cot=14 )

sync-by-unito[bot] commented 1 year ago

➤ Tammy Yang commented:

Kenny Hung updated

sync-by-unito[bot] commented 1 year ago

➤ Sam commented:

What if user decides to postpone account deletion when we show backup private key. Miro comment ( https://miro.com/app/board/o9J_knEiIYo=/?openComment=3458764542847471174 )

sync-by-unito[bot] commented 1 year ago

➤ Kenny Hung commented:

Tammy Yang (cc Sam ) Sam's comment on miro ( https://miro.com/app/board/o9J_knEiIYo=/?openComment=3458764542847471174 ), I think should be good, maybe could add them in the future sprint?

sync-by-unito[bot] commented 1 year ago

➤ Sam commented:

Kenny Hung I think no need to add anything. Current implementation is good. For example when you confirm delete it will show back private key if user don’t want to delete account he can click outside of the box and it will dismiss

sync-by-unito[bot] commented 1 year ago

➤ Kenny Hung commented:

Sam (cc Tammy Yang) 0.73.1 it doesn't follow the miro flow, when user press "I have copied my private key". Then just the pop-up disappear instead of continue the original delete account flow.

sync-by-unito[bot] commented 1 year ago

➤ Sam commented:

Kenny Hung, I fixed it will publish to firebase app distribution in a moment.