ScopeLift / umbra-protocol

🌕🌑 Privacy Preserving Shielded Payments On The Ethereum Blockchain
https://app.umbra.cash
MIT License
356 stars 91 forks source link

Detect Umbra relayer/API version change and force reload #653

Closed jferas closed 4 months ago

jferas commented 6 months ago

Resolves #309

Added most recently obtained version of Umbra relayer/API to local storage..

At startup, on creation of Umbra relayer/API.. and on every interaction between the front-end and the API.. the API version is returned in the API's response to the front-end, and the version and local storage are used in the following way:

  1. Attempt to read the most recently saved API version from local storage.
  2. If the version does not exist in local storage, save the most recently received version from the API to local storage.
  3. If the version does exist in local storage, compare it to the version received from the API.. if the major/minor numbers differ, the following actions are taken: a. The saved API version in local storage is cleared. b. The user is alerted. c. The user is forced to reload the front-end web app. d. On that reload, because the saved version in local storage is not present, the save described in step 2 above will occur.

Currently the alert to the user is just that.. a javascript "alert".. but can probably be done in a more "Vue-centric" way.

netlify[bot] commented 4 months ago

Deploy Preview for jolly-shaw-20fe62 ready!

Name Link
Latest commit bc5c9d8be15ee2f8f8ff367f76e9162a85b31958
Latest deploy log https://app.netlify.com/sites/jolly-shaw-20fe62/deploys/662aadc6aaec5b00087116d1
Deploy Preview https://deploy-preview-653--jolly-shaw-20fe62.netlify.app
Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

github-actions[bot] commented 4 months ago

Coverage after merging frontend-reload-on-api-version-change into master will be

81.12%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
contracts-periphery/src
   UmbraBatchSend.sol100%100%100%100%
   UniswapWithdrawHook.sol81.82%100%66.67%83.33%14
umbra-js/src
   ethers.ts76.27%100%61.11%100%
   types.ts50%100%0%100%
umbra-js/src/classes
   KeyPair.ts98.65%96.49%100%100%31–32
   RandomNumber.ts100%100%100%100%
   StealthKeyRegistry.ts100%100%100%100%
   TxHistoryProvider.ts77.55%76.47%66.67%79.31%11, 11, 19–20, 31, 38, 44, 53, 57, 8
   Umbra.ts75.41%63.69%82.93%82.09%105, 135–136, 157, 229–231, 315–318, 380, 394, 401–403, 405–406, 409–410, 428, 430, 432, 432, 432, 432–433, 433, 433–435, 450, 450, 450–451, 455, 458, 478, 496–498, 585, 602, 615–616, 626–627, 640, 643–644, 674–675, 751, 755, 755, 755–758, 758, 758, 758, 758, 758, 758–759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 761, 761, 761–762, 765, 765, 765, 765, 765–766, 769, 778, 778, 787, 790, 790, 790–792, 805, 809, 812–813, 819–821, 828, 828, 828–831, 862, 867–868, 868–869
umbra-js/src/typechain
   index.ts70.59%100%37.50%100%
umbra-js/src/typechain/factories
   index.ts100%100%100%100%
umbra-js/src/typechain/factories/@openzeppelin
   index.ts100%100%100%100%
umbra-js/src/typechain/factories/@openzeppelin/contracts
   index.ts100%100%100%100%
umbra-js/src/typechain/factories/@openzeppelin/contracts/access
   Ownable__factory.ts50%100%0%66.67%70, 76
   index.ts50%100%0%100%
umbra-js/src/typechain/factories/@openzeppelin/contracts/token
   index.ts100%100%100%100%
umbra-js/src/typechain/factories/@openzeppelin/contracts/token/ERC20
   ERC20__factory.ts29.03%0%12.50%47.06%310, 314, 314, 314–315, 317, 326, 326, 326, 333, 333, 333, 336, 339, 345
   IERC20__factory.ts50%100%0%66.67%201, 204
   index.ts50%100%0%100%
umbra-js/src/typechain/factories/contracts
   IUmbraHookReceiver__factory.ts50%100%0%66.67%61, 67
   MockHook__factory.ts22.58%0%0%41.18%107, 111, 111, 111–112, 114, 121, 121, 121, 126, 126, 126, 129, 132, 138, 144
   StealthKeyRegistry__factory.ts22.58%0%0%41.18%202, 206, 206, 206–207, 209, 216, 216, 216, 221, 221, 221, 224, 227, 233, 239
   TestToken__factory.ts64.52%66.67%50%70.59%329–330, 348, 351, 354, 360, 366
   Umbra__factory.ts70.97%66.67%62.50%76.47%495–496, 525, 529, 532, 538
   index.ts50%100%0%100%
umbra-js/src/utils
   cns.ts50%33.33%50%55%33–36, 40, 40, 40, 40, 40–41, 44–46
   constants.ts100%100%100%100%
   ens.ts36.11%25%33.33%40%25–27, 35, 56–57, 57, 57–58, 63–64, 66, 70, 70, 70, 70, 70–71, 75–77
   utils.ts76.67%68.66%76.92%82%109–111, 113–115, 121, 139–140, 169, 190, 246, 253–260, 260, 260, 260, 260, 260, 260–261, 263, 294, 296–297, 306, 306, 306–307, 309, 312, 321–322, 363, 380, 380, 380, 400, 429, 431, 436, 448, 448–449, 454, 456–457, 468–472, 478, 480, 522–523, 523, 523–525, 525, 525, 536, 59–60, 779–780, 792–793, 85, 93, 93
umbra-js/test
   testPrivateKeys.ts100%100%100%100%
   utils.ts100%100%100%100%