Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 4 commits into from
Apr 25, 2024

Conversation

jferas
Copy link
Contributor

@jferas jferas commented Feb 28, 2024

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.

@jferas jferas requested review from alexkeating, mds1 and garyghayrat and removed request for mds1 February 28, 2024 22:03
Copy link
Member

@garyghayrat garyghayrat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a nit, but otherwise working great. Thank you john!

Copy link
Collaborator

@alexkeating alexkeating left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple small nits then should be good to merge.

frontend/src/utils/umbra-api.ts Outdated Show resolved Hide resolved
frontend/src/utils/umbra-api.ts Outdated Show resolved Hide resolved
@jferas jferas force-pushed the frontend-reload-on-api-version-change branch from fb40c3d to 1270aea Compare April 3, 2024 15:35
@jferas jferas requested a review from alexkeating April 3, 2024 15:36
@jferas jferas changed the base branch from better-handling-when-api-down to master April 22, 2024 16:21
@jferas jferas force-pushed the frontend-reload-on-api-version-change branch from 1270aea to dfe462d Compare April 22, 2024 16:23
Copy link

netlify bot commented Apr 22, 2024

Deploy Preview for jolly-shaw-20fe62 ready!

Name Link
🔨 Latest commit bc5c9d8
🔍 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.

@jferas jferas force-pushed the frontend-reload-on-api-version-change branch from dfe462d to bc5c9d8 Compare April 25, 2024 19:23
Copy link

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%

@garyghayrat garyghayrat merged commit 5e5239d into master Apr 25, 2024
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Force users to refresh the frontend when there has been a breaking backend change
3 participants