This PR closes #86 [Add RIP-20 Support to Android RVN Wallet]
Raven Core blog post: RIP-20 proposal
I decided on the name "Fast-restore key" for the field, but I am open to changing this. I'll happily update all the verbiage and references if there is another name to use.
Implemented:
UI elements on paper key activity, after the 12'th word, indicating the value and purpose of the fast-restore key
UI elements on restore activity, prompting for the user's fast-restore key, and explaining the purpose. (optional and validated)
BRSharedPrefs for tracking known seed timestamp knownSeedTime_RVN
Corresponding blockchain initialization code, to get it to start based on the known entered timestamp
Constants defining the genesis timestamp and fast sync intervals in case we would like to tweak these later.
Added about a dozen checkpoints (spans of 4 block-weeks) to BRPeerManager.c to allow more places that new syncs will be able to use.
English translation file entries for UI elements
The primary functionality is fully working and useable currently. A brand new wallet is synced in under 10 minutes now (in emulator.) The time can be brought down more by having additional checkpoints in the header file, perhaps even automatically updated. There are plenty of ways this could be achieved, but for the moment I went with monthly checkpoints.
Remaining:
[ ] Review
[ ] Test cases if needed
[ ] ???
Additional thoughts:
Just a few random things I thought about while developing this.
Might be a good idea to add some kind of parity check to the code, just to prevent random entry. The UI already prevents codes outside of the current time, but that only goes so far.
Another thought was a dialog popup confirming the rough time when restoring from a code. IE: "Your fast-restore key will begin syncing from about mm/dd/yyyy. Does this sound accurate?" or something to that effect, allowing the user to roughly confirm the creation date of the wallet.
This PR closes #86 [Add RIP-20 Support to Android RVN Wallet] Raven Core blog post: RIP-20 proposal I decided on the name "Fast-restore key" for the field, but I am open to changing this. I'll happily update all the verbiage and references if there is another name to use.
Implemented:
knownSeedTime_RVN
BRPeerManager.c
to allow more places that new syncs will be able to use.The primary functionality is fully working and useable currently. A brand new wallet is synced in under 10 minutes now (in emulator.) The time can be brought down more by having additional checkpoints in the header file, perhaps even automatically updated. There are plenty of ways this could be achieved, but for the moment I went with monthly checkpoints.
Remaining:
Additional thoughts:
Raven Address: RYW4MmiT2jDdZPa499VQiPANZdStxGt8y5
Screenshots: