Skip to content

Commit 592283c

Browse files
authored
Merge branch 'main' into sidepanel-icon
2 parents 576d0e1 + c3cb78d commit 592283c

File tree

71 files changed

+971
-923
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+971
-923
lines changed

CHANGELOG.md

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,72 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [13.9.0]
11+
12+
### Added
13+
14+
- Added feature flag support to temporarily hide Monad (and other networks) from the “Add Popular Network” list. (#37532)
15+
- Update bitcoin snap to 1.4.4 (#37537)
16+
- Added claims list and view page (#35800)
17+
- Added `Reset Wallet` feature for social-login unlock to reset the wallet if user encounters unrecoverable errors. (#36223)
18+
- Enabled revocation flow of advance permissions (#37209)
19+
- Updated the unlock wallet flow with animation changes. (#37412)
20+
- Introduce burn/null recipient address blocker alert (#37531)
21+
- Points estimate for swaps/bridges (#37529)
22+
- Updates wallet ready page (#36839)
23+
- Adds MONAD network with bridge & swap support (#37283)
24+
- Changed how DeFi positions are fetch in the client to reduce amount of calls (#37215)
25+
- Implemented the Rive animation setup using the `@rive-app/react-canvas` package and updated the welcome page by (#36113)
26+
integrating the Rive animation and enhancing the UI
27+
- Fix subscription crypto approval screen loading flicker (#37409)
28+
- Added network and account selector to claims form (#37434)
29+
- Add back button to Settings inner pages (#37486)
30+
- Show rewards balance (#37361)
31+
- Added support for trust signals on spender addresses within Confirmations. (#36431)
32+
- Changed order of assets when their fiat balances are the same (#37457)
33+
- Register subscription and redirect to shield settings after shield crypto approval confirmation (#36748)
34+
- Handle shield deep link link.metamask.io/shield (#37446)
35+
- Handle claims submit backend errors (#37391)
36+
- UI and functionality improvement for file uploader (#37353)
37+
- Enables the bitcoin swaps features (#37587)
38+
- Move "Discover" button to global menu (#37551)
39+
- Upgrade @metamask-permissions-snap from `0.4.1` to `0.5.0` an @metamask/permissions-kernel-snap from `0.4.0` to `0.5.0` (#37534)
40+
41+
### Fixed
42+
43+
- Fixes a bug that makes users see duplicate tokens in search tokens modal when on popular networks. (#37568)
44+
- Fix incorrect shield crypto approval calculation (#37572)
45+
- Fixes styles for the fox icon when selecting future ETH as a gas token (#37577)
46+
- Fixes a bug where when a user no longer owns an NFT it still shows up in the list when clicking Send button from home page. (#37558)
47+
- Verify that network is bridge-enabled before navigating to the Bridge page (#37556)
48+
- Fixed the padding in the transaction simulation details (#37511)
49+
- Sets a default network order for the receiving addresses. (#37467)
50+
- Fix the broken link of Ledger connection toturial. (#37216)
51+
- Updated the error handling for invalid SRP (#37470)
52+
- Fix intermittent stripe checkout succeed subscription not shown (#37453)
53+
- Updated default pair for BTC (#37512)
54+
- Fixed the smart transaction link (#37461)
55+
- Fixed a crash that could occur during wallet initialization when connecting to dapps (#37234)
56+
- Fixed string sanitize for bidirectional Unicode control characters to hide in signature requests (#37056)
57+
- Simulation Details - Displayed "No changes" in a single line (#37464)
58+
- Fix showing ENS recipient if it's typed in the send flow (#37047)
59+
- Use correct href for phishing page proceed anyway button (#36871)
60+
- Token name truncation (#37429)
61+
- Re-add connection indicator to bip44 account cell (#36423)
62+
- Fixed issue where approval changes were sometimes missing in transaction simulations for batch transactions. (#37347)
63+
- Defer UI actions until swap SSE quotes are fully loaded (#37336)
64+
- @metamask/message-signing-snap to version 1.1.4 (#37579)
65+
- Decrease time before activating QuickNode when Infura is degraded or unavailable; decrease time before allowing users to (#37002)
66+
interact with a custom network following connection issues
67+
- Update default bridge slippage to 2% (#37367)
68+
- Stops reloading of animation once completed (#37581)
69+
- Fixes error saying alIgnoredTokens is undefined (#37660)
70+
- Fixes unexpected error modal shown after user has cancelled the social login in firefox (#37658)
71+
- Fixes infinite spinner shown on send flow when sending very low BTC (#37657)
72+
- Fixed a bug causing advanced permissions requests on mainnet to fail before showing the permission picker (#37675)
73+
- Fixes BTC redeposits not shown in individual asset activity (#37732)
74+
- Automatically creates new account types on wallet unlock (#37762)
75+
1076
## [13.8.0]
1177

1278
### Added
@@ -1069,7 +1135,8 @@ authorized by the user.` error until the user fully revoked dapp
10691135
- This changelog was split off with 12.22.0
10701136
- All older changes can be found in [docs/CHANGELOG_older.md](https://github.com/MetaMask/metamask-extension/blob/main/docs/CHANGELOG_older.md)
10711137

1072-
[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v13.8.0...HEAD
1138+
[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v13.9.0...HEAD
1139+
[13.9.0]: https://github.com/MetaMask/metamask-extension/compare/v13.8.0...v13.9.0
10731140
[13.8.0]: https://github.com/MetaMask/metamask-extension/compare/v13.7.0...v13.8.0
10741141
[13.7.0]: https://github.com/MetaMask/metamask-extension/compare/v13.6.0...v13.7.0
10751142
[13.6.0]: https://github.com/MetaMask/metamask-extension/compare/v13.5.0...v13.6.0

app/_locales/en/messages.json

Lines changed: 20 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/_locales/en_GB/messages.json

Lines changed: 20 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/_locales/ga/messages.json

Lines changed: 0 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/scripts/background.js

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@ import {
2323
ENVIRONMENT_TYPE_POPUP,
2424
ENVIRONMENT_TYPE_NOTIFICATION,
2525
ENVIRONMENT_TYPE_FULLSCREEN,
26-
///: BEGIN:ONLY_INCLUDE_IF(build-experimental)
2726
ENVIRONMENT_TYPE_SIDEPANEL,
28-
///: END:ONLY_INCLUDE_IF
2927
PLATFORM_FIREFOX,
3028
MESSAGE_TYPE,
3129
} from '../../shared/constants/app';
@@ -153,9 +151,7 @@ const isFirefox = getPlatform() === PLATFORM_FIREFOX;
153151
let openPopupCount = 0;
154152
let notificationIsOpen = false;
155153
let uiIsTriggering = false;
156-
///: BEGIN:ONLY_INCLUDE_IF(build-experimental)
157154
let sidePanelIsOpen = false;
158-
///: END:ONLY_INCLUDE_IF
159155
const openMetamaskTabsIDs = {};
160156
const requestAccountTabIds = {};
161157
let controller;
@@ -1169,9 +1165,7 @@ export function setupController(
11691165
openPopupCount > 0 ||
11701166
Boolean(Object.keys(openMetamaskTabsIDs).length) ||
11711167
notificationIsOpen ||
1172-
///: BEGIN:ONLY_INCLUDE_IF(build-experimental)
11731168
sidePanelIsOpen ||
1174-
///: END:ONLY_INCLUDE_IF
11751169
false
11761170
);
11771171
};
@@ -1259,7 +1253,6 @@ export function setupController(
12591253
});
12601254
}
12611255

1262-
///: BEGIN:ONLY_INCLUDE_IF(build-experimental)
12631256
if (processName === ENVIRONMENT_TYPE_SIDEPANEL) {
12641257
sidePanelIsOpen = true;
12651258
finished(portStream, () => {
@@ -1269,7 +1262,6 @@ export function setupController(
12691262
onCloseEnvironmentInstances(isClientOpen, ENVIRONMENT_TYPE_SIDEPANEL);
12701263
});
12711264
}
1272-
///: END:ONLY_INCLUDE_IF
12731265

12741266
if (processName === ENVIRONMENT_TYPE_NOTIFICATION) {
12751267
notificationIsOpen = true;
@@ -1615,9 +1607,7 @@ async function triggerUi() {
16151607
!uiIsTriggering &&
16161608
(isVivaldi || openPopupCount === 0) &&
16171609
!currentlyActiveMetamaskTab &&
1618-
///: BEGIN:ONLY_INCLUDE_IF(build-experimental)
16191610
!sidePanelIsOpen &&
1620-
///: END:ONLY_INCLUDE_IF
16211611
true
16221612
) {
16231613
uiIsTriggering = true;
@@ -1682,7 +1672,6 @@ function onInstall() {
16821672
platform.openExtensionInBrowser();
16831673
}
16841674
}
1685-
///: BEGIN:ONLY_INCLUDE_IF(build-experimental)
16861675
// Only register sidepanel context menu for browsers that support it (Chrome/Edge/Brave)
16871676
// and when the feature flag is enabled
16881677
if (
@@ -1704,7 +1693,6 @@ if (
17041693
}
17051694
});
17061695
}
1707-
///: END:ONLY_INCLUDE_IF
17081696

17091697
// // On first install, open a new tab with MetaMask
17101698
// async function onInstall() {
@@ -1786,7 +1774,6 @@ function onNavigateToTab() {
17861774
});
17871775
}
17881776

1789-
///: BEGIN:ONLY_INCLUDE_IF(build-experimental)
17901777
// Sidepanel-specific functionality
17911778
// Set initial side panel behavior based on user preference
17921779
const initSidePanelBehavior = async () => {
@@ -1974,7 +1961,6 @@ browser.tabs.onUpdated.addListener(async (tabId) => {
19741961

19751962
return {};
19761963
});
1977-
///: END:ONLY_INCLUDE_IF
19781964

19791965
function setupSentryGetStateGlobal(store) {
19801966
global.stateHooks.getSentryAppState = function () {

app/scripts/controllers/app-state-controller.ts

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,10 @@ import {
4949
GetAddressSecurityAlertResponse,
5050
AddAddressSecurityAlertResponse,
5151
} from '../../../shared/lib/trust-signals';
52-
import { DefaultSubscriptionPaymentOptions } from '../../../shared/types';
52+
import {
53+
DefaultSubscriptionPaymentOptions,
54+
ShieldSubscriptionMetricsPropsFromUI,
55+
} from '../../../shared/types';
5356
import type {
5457
Preferences,
5558
PreferencesControllerGetStateAction,
@@ -128,6 +131,12 @@ export type AppStateControllerState = {
128131
pendingShieldCohortTxType: string | null;
129132
defaultSubscriptionPaymentOptions?: DefaultSubscriptionPaymentOptions;
130133

134+
/**
135+
* The properties for the Shield subscription metrics.
136+
* Since we can't access some of these properties in the background, we need to get them from the UI.
137+
*/
138+
shieldSubscriptionMetricsProps?: ShieldSubscriptionMetricsPropsFromUI;
139+
131140
/**
132141
* Whether the wallet reset is in progress.
133142
*/
@@ -644,6 +653,12 @@ const controllerMetadata: StateMetadata<AppStateControllerState> = {
644653
includeInDebugSnapshot: false,
645654
usedInUi: false,
646655
},
656+
shieldSubscriptionMetricsProps: {
657+
includeInStateLogs: false,
658+
persist: true,
659+
includeInDebugSnapshot: false,
660+
usedInUi: false,
661+
},
647662
};
648663

649664
export class AppStateController extends BaseController<
@@ -1585,4 +1600,17 @@ export class AppStateController extends BaseController<
15851600
defaultSubscriptionPaymentOptions;
15861601
});
15871602
}
1603+
1604+
/**
1605+
* Update the Shield subscription metrics properties which are not accessible in the background directly.
1606+
*
1607+
* @param shieldSubscriptionMetricsProps - The Shield subscription metrics properties.
1608+
*/
1609+
setShieldSubscriptionMetricsProps(
1610+
shieldSubscriptionMetricsProps: ShieldSubscriptionMetricsPropsFromUI,
1611+
): void {
1612+
this.update((state) => {
1613+
state.shieldSubscriptionMetricsProps = shieldSubscriptionMetricsProps;
1614+
});
1615+
}
15881616
}

app/scripts/controllers/preferences-controller.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ export type Preferences = {
114114
sortCallback: string;
115115
};
116116
useNativeCurrencyAsPrimaryCurrency: boolean;
117-
useSidePanelAsDefault?: boolean; // Only available in build-experimental
117+
useSidePanelAsDefault?: boolean;
118118
};
119119

120120
// Omitting properties that already exist in the PreferencesState, as part of the preferences property.
@@ -222,9 +222,7 @@ export const getDefaultPreferencesControllerState =
222222
sortCallback: 'stringNumeric',
223223
},
224224
useNativeCurrencyAsPrimaryCurrency: true,
225-
///: BEGIN:ONLY_INCLUDE_IF(build-experimental)
226225
useSidePanelAsDefault: false,
227-
///: END:ONLY_INCLUDE_IF
228226
},
229227
securityAlertsEnabled: true,
230228
selectedAddress: '',

0 commit comments

Comments
 (0)