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

Feat(Multichain): add feature flag checks when adding a new network [SW-240] #4288

Merged
merged 8 commits into from
Oct 2, 2024

Conversation

jmealy
Copy link
Contributor

@jmealy jmealy commented Sep 30, 2024

What it solves

Resolves: https://www.notion.so/safe-global/Add-feature-toggle-for-adding-networks-10e8180fe57380b4b27df647dae49742

How this PR fixes it

  • adds new feature flag MULTI_CHAIN_SAFE_ADD_NETWORK.
  • Checks that the current safe network has the feature enabled anywhere we show the option to add a network.
  • Checks that other networks have the feature enabled before showing them as an option to add to the group.

How to test it

  • When the feature flag is not enabled on the current chain, you should not see the option to add a network:
    • in the safe list context menu
    • at the bottom of multichain groups in the safe list
    • in the network selector
  • When the feature flag is enabled on the current chain but not enabled on another compatible chain, disabled chains should not be shown:
    • in the network selector
    • in the add network modal

Screenshots

image

Checklist

  • I've tested the branch on mobile 📱
  • I've documented how it affects the analytics (if at all) 📊
  • I've written a unit/e2e test for it (if applicable) 🧑‍💻

Copy link

@jmealy jmealy changed the base branch from dev to epic/multichain-safes September 30, 2024 14:47
Copy link

github-actions bot commented Sep 30, 2024

Branch preview

⏳ Deploying a preview site...

Copy link

github-actions bot commented Sep 30, 2024

📦 Next.js Bundle Analysis for safe-wallet-web

This analysis was generated by the Next.js Bundle Analysis action. 🤖

⚠️ Global Bundle Size Increased

Page Size (compressed)
global 1004.54 KB (🟡 +49.72 KB)
Details

The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!

Fifteen Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load
/ 511 B (🟢 -24.37 KB) 1005.04 KB
/address-book 26.09 KB (🟡 +5 B) 1.01 MB
/apps/open 54.7 KB (-1 B) 1.03 MB
/balances 30.95 KB (🟡 +14 B) 1.01 MB
/balances/nfts 19.18 KB (-1 B) 1023.73 KB
/home 60.54 KB (🟡 +839 B) 1.04 MB
/new-safe/advanced-create 36.49 KB (🟡 +1.36 KB) 1.02 MB
/new-safe/create 35.75 KB (🟡 +1.36 KB) 1.02 MB
/new-safe/load 16.41 KB (🟡 +10 B) 1020.96 KB
/settings/modules 9.79 KB (🟡 +1 B) 1014.33 KB
/settings/notifications 27.03 KB (-1 B) 1.01 MB
/settings/setup 35.98 KB (🟡 +5 B) 1.02 MB
/transactions/tx 21.07 KB (-2 B) 1 MB
/welcome 6.8 KB (🟢 -1 B) 1011.34 KB
/welcome/accounts 379 B (🟢 -1 B) 1004.92 KB
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this.

Copy link

github-actions bot commented Sep 30, 2024

Coverage report

St.
Category Percentage Covered / Total
🟡 Statements
78.05% (-0.02% 🔻)
12418/15910
🔴 Branches
58.13% (-0.05% 🔻)
3229/5555
🟡 Functions
65.46% (-0.02% 🔻)
1958/2991
🟡 Lines
79.55% (-0.02% 🔻)
11208/14089
Show files with reduced coverage 🔻
St.
File Statements Branches Functions Lines
🟢
... / multiChainSafe.ts
92.96% (-5.53% 🔻)
85.71% (-10.29% 🔻)
94.74% (-5.26% 🔻)
96.43% (-3.57% 🔻)
🟢
... / useSafeCreationData.ts
98.57% (-0.08% 🔻)
95.65% (-0.5% 🔻)
100% 100%

Test suite run success

1550 tests passing in 206 suites.

Report generated by 🧪jest coverage report action from 3e98ca9

Copy link
Member

@schmanu schmanu left a comment

Choose a reason for hiding this comment

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

I think feature flags should ideally hide the feature completely.

So in this case disabling the new feature should:

  • Hide the "Add new network" button in the sidebar
    • In the context menu and multichain groups
  • Not offer adding networks through the network selector

@jmealy jmealy force-pushed the multichain-replay-feature-flag branch from 5372d33 to e5c02db Compare October 1, 2024 08:37
@jmealy jmealy marked this pull request as ready for review October 1, 2024 08:45
@jmealy jmealy requested a review from schmanu October 1, 2024 09:05
@jmealy jmealy merged commit 6cd64f8 into epic/multichain-safes Oct 2, 2024
8 of 12 checks passed
@jmealy jmealy deleted the multichain-replay-feature-flag branch October 2, 2024 10:42
@github-actions github-actions bot locked and limited conversation to collaborators Oct 2, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants