Skip to content

Commit fbeb5a2

Browse files
committed
Merge branch 'master' into Version-v11.12.0
2 parents c640199 + e260197 commit fbeb5a2

File tree

25 files changed

+330
-45
lines changed

25 files changed

+330
-45
lines changed

CHANGELOG.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,56 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
## [Unreleased]
88

99
## [11.12.0]
10+
## [11.11.3]
11+
12+
## [11.11.2]
13+
### Changed
14+
- Update the image in the Staking button What's New popup ([#23330](https://github.com/MetaMask/metamask-extension/pull/23330))
15+
16+
### Fixed
17+
- [MMI] Fixed bug that prevents MMI users from submitting multiple Txs ([#23342](https://github.com/MetaMask/metamask-extension/pull/23342))
18+
- Fix the display of the native currency token symbol in the asset list
19+
- ([#23355](https://github.com/MetaMask/metamask-extension/pull/23355))
20+
- ([#23327](https://github.com/MetaMask/metamask-extension/pull/23327))
21+
22+
## [11.11.1]
23+
### Added
24+
- Adds a staking button to the mainnet Ethereum token list item ([#22347](https://github.com/MetaMask/metamask-extension/pull/22347))
25+
26+
## [11.11.0]
27+
### Added
28+
- Added 'Pet Names' feature, allowing users to see preferred or suggested nicknames in the places of addesses
29+
- Added 'What's New' popup for Petnames feature ([#22780](https://github.com/MetaMask/metamask-extension/pull/22780))
30+
- Introduced toggle for Petnames in experimental settings ([#22456](https://github.com/MetaMask/metamask-extension/pull/22456))
31+
- UI enhancements for initial petnames release, including new "Recognized" category and visual refinements ([#22772](https://github.com/MetaMask/metamask-extension/pull/22772))
32+
- Enhanced token name display with pet names ([#22734](https://github.com/MetaMask/metamask-extension/pull/22734))
33+
- Added title to Personal Sign component in confirmation design ([#22749](https://github.com/MetaMask/metamask-extension/pull/22749))
34+
- Added progress indicator for scanning QR codes with hardware wallets ([#20947](https://github.com/MetaMask/metamask-extension/pull/20947))
35+
36+
### Changed
37+
- Moved security alerts from Experimental to Security & Privacy settings ([#22813](https://github.com/MetaMask/metamask-extension/pull/22813))
38+
- Updated BlockaidBannerAlert to support false positive reporting for failed types ([#22742](https://github.com/MetaMask/metamask-extension/pull/22742))
39+
- Enhanced BlockaidBannerAlert functionality and display ([#22625](https://github.com/MetaMask/metamask-extension/pull/22625))
40+
- Disabled smart swaps for Snap accounts ([#22731](https://github.com/MetaMask/metamask-extension/pull/22731))
41+
- Disabled MetaMask on Battle.net to fix a 2FA login issue ([#20396](https://github.com/MetaMask/metamask-extension/pull/20396))
42+
- Revised warning copy for mismatched chainID and currency symbol when adding custom networks ([#22648](https://github.com/MetaMask/metamask-extension/pull/22648))
43+
- Improved UX to display multiple custom networks with the same ID but different RPC URLs in network selection ([#22693](https://github.com/MetaMask/metamask-extension/pull/22693))
44+
- Updated the connections icon to display the connected dapp icon ([#22634](https://github.com/MetaMask/metamask-extension/pull/22634))
45+
- Added title to Personal Sign page ([#22749](https://github.com/MetaMask/metamask-extension/pull/22749))
46+
- Update padding in accounts details modal ([#22775](https://github.com/MetaMask/metamask-extension/pull/22775))
47+
- [MMI] Refactored display of custodian deep link to improve efficiency and fix potential race conditions ([#22825](https://github.com/MetaMask/metamask-extension/pull/22825))
48+
- [MMI] Hid the new buy & receive button under MMI build for a cleaner interface ([#22384](https://github.com/MetaMask/metamask-extension/pull/22384))
49+
50+
### Fixed
51+
- Fixed cancel transaction signing from activity list ([#22676](https://github.com/MetaMask/metamask-extension/pull/22676))
52+
- Fixed incorrect account name display in account details and receive list ([#22844](https://github.com/MetaMask/metamask-extension/pull/22844))
53+
- Fixed IPFS NFTs fetching issue for manually imported NFTs ([#22627](https://github.com/MetaMask/metamask-extension/pull/22627))
54+
- Fixed "send max" ETH calculation issue to adjust for gas changes ([#22694](https://github.com/MetaMask/metamask-extension/pull/22694))
55+
- Fixed sign button color and updated deprecated components in SignatureRequestOriginalWarning for visual consistency ([#22741](https://github.com/MetaMask/metamask-extension/pull/22741))
56+
57+
## [11.10.1]
58+
### Fixed
59+
- Fix custom network editing, via Settings, for some networks ([#23140](https://github.com/MetaMask/metamask-extension/pull/23140))
1060

1161
## [11.10.0]
1262
### Added
@@ -4393,6 +4443,12 @@ Update styles and spacing on the critical error page ([#20350](https://github.c
43934443

43944444
[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v11.12.0...HEAD
43954445
[11.12.0]: https://github.com/MetaMask/metamask-extension/compare/v11.10.0...v11.12.0
4446+
[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v11.11.3...HEAD
4447+
[11.11.3]: https://github.com/MetaMask/metamask-extension/compare/v11.11.2...v11.11.3
4448+
[11.11.2]: https://github.com/MetaMask/metamask-extension/compare/v11.11.1...v11.11.2
4449+
[11.11.1]: https://github.com/MetaMask/metamask-extension/compare/v11.11.0...v11.11.1
4450+
[11.11.0]: https://github.com/MetaMask/metamask-extension/compare/v11.10.1...v11.11.0
4451+
[11.10.1]: https://github.com/MetaMask/metamask-extension/compare/v11.10.0...v11.10.1
43964452
[11.10.0]: https://github.com/MetaMask/metamask-extension/compare/v11.9.5...v11.10.0
43974453
[11.9.5]: https://github.com/MetaMask/metamask-extension/compare/v11.9.4...v11.9.5
43984454
[11.9.4]: https://github.com/MetaMask/metamask-extension/compare/v11.9.3...v11.9.4
45.7 KB
Loading

app/images/velas.svg

Lines changed: 1 addition & 0 deletions
Loading

app/scripts/constants/contracts.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ export const SINGLE_CALL_BALANCES_ADDRESSES = {
1111
[CHAIN_IDS.AVALANCHE]: '0xD023D153a0DFa485130ECFdE2FAA7e612EF94818',
1212
[CHAIN_IDS.FANTOM]: '0x07f697424ABe762bB808c109860c04eA488ff92B',
1313
[CHAIN_IDS.ARBITRUM]: '0x151E24A486D7258dd7C33Fb67E4bB01919B7B32c',
14+
[CHAIN_IDS.BLAST]: '0xfd5730e96f9dffae40d99b77015bd42816280998',
1415
};

app/scripts/migrations/105.test.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,15 @@ import { migrate } from './105';
66
const MOCK_ADDRESS = '0x0';
77
const MOCK_ADDRESS_2 = '0x1';
88

9+
const sentryCaptureExceptionMock = jest.fn();
10+
11+
global.sentry = {
12+
startSession: jest.fn(),
13+
endSession: jest.fn(),
14+
toggleSession: jest.fn(),
15+
captureException: sentryCaptureExceptionMock,
16+
};
17+
918
function addressToUUID(address: string): string {
1019
return uuid({
1120
random: sha256FromString(address).slice(0, 16),
@@ -257,5 +266,24 @@ describe('migration #105', () => {
257266
},
258267
});
259268
});
269+
270+
it('captures an exception if the selectedAddress state is invalid', async () => {
271+
const oldData = {
272+
PreferencesController: {
273+
identities: {},
274+
selectedAddress: undefined,
275+
},
276+
};
277+
const oldStorage = {
278+
meta: { version: 103 },
279+
data: oldData,
280+
};
281+
await migrate(oldStorage);
282+
283+
expect(sentryCaptureExceptionMock).toHaveBeenCalledTimes(1);
284+
expect(sentryCaptureExceptionMock).toHaveBeenCalledWith(
285+
new Error(`state.PreferencesController?.selectedAddress is undefined`),
286+
);
287+
});
260288
});
261289
});

app/scripts/migrations/105.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,14 @@ function createSelectedAccountForAccountsController(
102102
) {
103103
const selectedAddress = state.PreferencesController?.selectedAddress;
104104

105+
if (typeof selectedAddress !== 'string') {
106+
global.sentry?.captureException?.(
107+
new Error(
108+
`state.PreferencesController?.selectedAddress is ${selectedAddress}`,
109+
),
110+
);
111+
}
112+
105113
const selectedAccount = Object.values<InternalAccount>(
106114
state.AccountsController.internalAccounts.accounts,
107115
).find((account: InternalAccount) => {

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "metamask-crx",
3-
"version": "11.12.0",
3+
"version": "11.11.3",
44
"private": true,
55
"repository": {
66
"type": "git",
@@ -224,7 +224,7 @@
224224
},
225225
"dependencies": {
226226
"@babel/runtime": "^7.23.2",
227-
"@blockaid/ppom_release": "^1.4.1",
227+
"@blockaid/ppom_release": "^1.4.4",
228228
"@ensdomains/content-hash": "^2.5.7",
229229
"@ethereumjs/common": "^3.1.1",
230230
"@ethereumjs/tx": "^4.1.1",
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { Hex } from '@metamask/utils';
2+
import { CHAIN_IDS } from './network';
3+
4+
/**
5+
* A map of first-party contract names to their addresses on various chains.
6+
*/
7+
export const FIRST_PARTY_CONTRACT_NAMES: Record<string, Record<Hex, Hex>> = {
8+
'MetaMask Validator Staking': {
9+
[CHAIN_IDS.MAINNET]: '0xDc71aFFC862fceB6aD32BE58E098423A7727bEbd',
10+
},
11+
'MetaMask Pool Staking': {
12+
[CHAIN_IDS.MAINNET]: '0x1f6692E78dDE07FF8da75769B6d7c716215bC7D0',
13+
},
14+
'MetaMask Pool Staking (v1)': {
15+
[CHAIN_IDS.MAINNET]: '0xc7bE520a13dC023A1b34C03F4Abdab8A43653F7B',
16+
},
17+
'MetaMask Bridge': {
18+
[CHAIN_IDS.MAINNET]: '0x0439e60F02a8900a951603950d8D4527f400C3f1',
19+
[CHAIN_IDS.OPTIMISM]: '0xB90357f2b86dbfD59c3502215d4060f71DF8ca0e',
20+
[CHAIN_IDS.BSC]: '0xaEc23140408534b378bf5832defc426dF8604B59',
21+
[CHAIN_IDS.POLYGON]: '0x3A0b42cE6166abB05d30DdF12E726c95a83D7a16',
22+
[CHAIN_IDS.ZKSYNC_ERA]: '0x357B5935482AD8a4A2e181e0132aBd1882E16520',
23+
[CHAIN_IDS.BASE]: '0xa20ECbC821fB54064aa7B5C6aC81173b8b34Df71',
24+
[CHAIN_IDS.ARBITRUM]: '0x23981fC34e69eeDFE2BD9a0a9fCb0719Fe09DbFC',
25+
[CHAIN_IDS.AVALANCHE]: '0x29106d08382d3c73bF477A94333C61Db1142E1B6',
26+
[CHAIN_IDS.LINEA_MAINNET]: '0xE3d0d2607182Af5B24f5C3C2E4990A053aDd64e3',
27+
},
28+
'MetaMask Swaps': {
29+
[CHAIN_IDS.MAINNET]: '0x881D40237659C251811CEC9c364ef91dC08D300C',
30+
[CHAIN_IDS.BSC]: '0x1a1ec25DC08e98e5E93F1104B5e5cdD298707d31',
31+
[CHAIN_IDS.POLYGON]: '0x1a1ec25DC08e98e5E93F1104B5e5cdD298707d31',
32+
[CHAIN_IDS.AVALANCHE]: '0x1a1ec25DC08e98e5E93F1104B5e5cdD298707d31',
33+
[CHAIN_IDS.ARBITRUM]: '0x9dDA6Ef3D919c9bC8885D5560999A3640431e8e6',
34+
[CHAIN_IDS.OPTIMISM]: '0x9dDA6Ef3D919c9bC8885D5560999A3640431e8e6',
35+
[CHAIN_IDS.ZKSYNC_ERA]: '0xf504c1fe13d14DF615E66dcd0ABF39e60c697f34',
36+
[CHAIN_IDS.LINEA_MAINNET]: '0x9dDA6Ef3D919c9bC8885D5560999A3640431e8e6',
37+
},
38+
};

shared/constants/network.test.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { existsSync } from 'fs';
2+
import { join } from 'path';
3+
import { CHAIN_ID_TO_NETWORK_IMAGE_URL_MAP } from './network';
4+
5+
describe('NetworkConstants', () => {
6+
it('has images files that exist for defined networks', () => {
7+
Object.values(CHAIN_ID_TO_NETWORK_IMAGE_URL_MAP).forEach((image) =>
8+
expect(existsSync(join('app', image))).toBe(true),
9+
);
10+
});
11+
});

shared/constants/network.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ export const CHAIN_IDS = {
146146
ZKSYNC_ERA: '0x144',
147147
TEST_ETH: '0x539',
148148
ARBITRUM_GOERLI: '0x66eed',
149+
BLAST: '0x13e31',
149150
} as const;
150151

151152
const CHAINLIST_CHAIN_IDS_MAP = {
@@ -377,7 +378,7 @@ export const DEXALOT_SUBNET_IMAGE_URL = './images/dexalut-subnet.svg';
377378
export const DFK_CHAIN_IMAGE_URL = './images/dfk.png';
378379
export const DOGECHAIN_IMAGE_URL = './images/dogechain.jpeg';
379380
export const ENDURANCE_SMART_CHAIN_MAINNET_IMAGE_URL =
380-
'./images/endurance-smart-chain.png';
381+
'./images/endurance-smart-chain-mainnet.png';
381382
export const ETHEREUM_CLASSIC_MAINNET_IMAGE_URL = './images/eth_classic.svg';
382383
export const EVMOS_IMAGE_URL = './images/evmos.svg';
383384
export const FLARE_MAINNET_IMAGE_URL = './images/flare-mainnet.svg';
@@ -402,11 +403,11 @@ export const SHARDEUM_LIBERTY_2X_IMAGE_URL = './images/shardeum-2.svg';
402403
export const SHARDEUM_SPHINX_1X_IMAGE_URL = './images/shardeum-1.svg';
403404
export const SHIB_MAINNET_IMAGE_URL = './images/shiba.svg';
404405
export const SONGBIRD_MAINNET_IMAGE_URL = './images/songbird.svg';
405-
export const STEP_NETWORK_IMAGE_URL = './images/setp.svg';
406+
export const STEP_NETWORK_IMAGE_URL = './images/step.svg';
406407
export const TELOS_EVM_MAINNET_IMAGE_URL = './images/telos.svg';
407408
export const TENET_MAINNET_IMAGE_URL = './images/tenet.svg';
408409
export const VELAS_EVM_MAINNET_IMAGE_URL = './images/velas.svg';
409-
export const ZKATANA_MAINNET_IMAGE_URL = './images/zkatana.svg';
410+
export const ZKATANA_MAINNET_IMAGE_URL = './images/zkatana.png';
410411
export const ZORA_MAINNET_IMAGE_URL = './images/zora.svg';
411412

412413
export const INFURA_PROVIDER_TYPES = [
@@ -855,6 +856,7 @@ export const BUYABLE_CHAINS_MAP: {
855856
| typeof CHAIN_IDS.GNOSIS
856857
| typeof CHAIN_IDS.AURORA
857858
| typeof CHAIN_IDS.ARBITRUM_GOERLI
859+
| typeof CHAIN_IDS.BLAST
858860
>]: BuyableChainSettings;
859861
} = {
860862
[CHAIN_IDS.MAINNET]: {

0 commit comments

Comments
 (0)