From 72841605bfbce8f9547528e48635a16874245a49 Mon Sep 17 00:00:00 2001 From: Dan J Miller Date: Thu, 30 May 2024 11:31:50 -0230 Subject: [PATCH 01/43] fix: Prevent token list controller from polling its api on network restart when basic functionality is off (#24886) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … when basic functionality is off ## **Description** When basic functionality was off, requests were still going to https://token-api.metaswap.codefi.network/tokens/ when networks were switched. This PR prevents that. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24886?quickstart=1) ## **Manual testing steps** 1. Build this branch 2. Install and onboard 3. go through onboarding and toggle off Basic Functionality in "Advanced Settings" 4. You should not see network requests (in the background console) to https://token-api.metaswap.codefi.network/tokens/ 5. Switch between a few networks. You still should not see requests to https://token-api.metaswap.codefi.network/tokens/ 6. Toggle basic functionality on. 7. Switch a network 8. You should now see requests to https://token-api.metaswap.codefi.network/tokens/ ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- app/scripts/metamask-controller.js | 1 + .../tests/privacy/basic-functionality.spec.js | 105 ++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 test/e2e/tests/privacy/basic-functionality.spec.js diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 46983c4f969e..7c3f8cb4f52f 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -5835,6 +5835,7 @@ export default class MetamaskController extends EventEmitter { toggleExternalServices(useExternal) { this.preferencesController.toggleExternalServices(useExternal); + this.tokenListController.updatePreventPollingOnNetworkRestart(!useExternal); if (useExternal) { this.tokenDetectionController.enable(); this.gasFeeController.enableNonRPCGasFeeApis(); diff --git a/test/e2e/tests/privacy/basic-functionality.spec.js b/test/e2e/tests/privacy/basic-functionality.spec.js new file mode 100644 index 000000000000..924e0e15d3df --- /dev/null +++ b/test/e2e/tests/privacy/basic-functionality.spec.js @@ -0,0 +1,105 @@ +const { strict: assert } = require('assert'); +const { + TEST_SEED_PHRASE, + withFixtures, + importSRPOnboardingFlow, + WALLET_PASSWORD, + tinyDelayMs, + defaultGanacheOptions, +} = require('../../helpers'); +const FixtureBuilder = require('../../fixture-builder'); + +async function mockApis(mockServer) { + return [ + await mockServer + .forGet('https://token-api.metaswap.codefi.network/tokens/1') + .thenCallback(() => { + return { + statusCode: 200, + body: [{ fakedata: true }], + }; + }), + ]; +} + +describe('MetaMask onboarding @no-mmi', function () { + it('should prevent network requests to basic functionality endpoints when the basica functionality toggle is off', async function () { + await withFixtures( + { + fixtures: new FixtureBuilder({ onboarding: true }).build(), + ganacheOptions: defaultGanacheOptions, + title: this.test.fullTitle(), + testSpecificMock: mockApis, + }, + async ({ driver, mockedEndpoint: mockedEndpoints }) => { + await driver.navigate(); + await importSRPOnboardingFlow( + driver, + TEST_SEED_PHRASE, + WALLET_PASSWORD, + ); + + await driver.clickElement({ text: 'Advanced configuration', tag: 'a' }); + await driver.clickElement( + '[data-testid="basic-functionality-toggle"] .toggle-button', + ); + await driver.clickElement('[id="basic-configuration-checkbox"]'); + await driver.clickElement({ text: 'Turn off', tag: 'button' }); + await driver.clickElement({ text: 'Done', tag: 'button' }); + + await driver.clickElement('[data-testid="network-display"]'); + + await driver.clickElement({ text: 'Ethereum Mainnet', tag: 'p' }); + await driver.delay(tinyDelayMs); + + for (let i = 0; i < mockedEndpoints.length; i += 1) { + const requests = await mockedEndpoints[i].getSeenRequests(); + + assert.equal( + requests.length, + 0, + `${mockedEndpoints[i]} should make requests after onboarding`, + ); + } + }, + ); + }); + + it('should not prevent network requests to basic functionality endpoints when the basica functionality toggle is on', async function () { + await withFixtures( + { + fixtures: new FixtureBuilder({ onboarding: true }).build(), + ganacheOptions: defaultGanacheOptions, + title: this.test.fullTitle(), + testSpecificMock: mockApis, + }, + async ({ driver, mockedEndpoint: mockedEndpoints }) => { + await driver.navigate(); + await importSRPOnboardingFlow( + driver, + TEST_SEED_PHRASE, + WALLET_PASSWORD, + ); + + await driver.clickElement({ text: 'Advanced configuration', tag: 'a' }); + + await driver.clickElement({ text: 'Done', tag: 'button' }); + + await driver.clickElement('[data-testid="network-display"]'); + + await driver.clickElement({ text: 'Ethereum Mainnet', tag: 'p' }); + await driver.delay(tinyDelayMs); + + for (let i = 0; i < mockedEndpoints.length; i += 1) { + const requests = await mockedEndpoints[i].getSeenRequests(); + + assert.equal( + requests.length, + 1, + `${mockedEndpoints[i]} should make requests after onboarding`, + ); + } + }, + ); + }); +}); From cff11d774ec31c101407fba3e601b5f892c3308e Mon Sep 17 00:00:00 2001 From: Derek Brans Date: Thu, 30 May 2024 11:59:47 -0400 Subject: [PATCH 02/43] fix: simulations unavailable native fiat rate (#24910) --- .../simulation-details/useBalanceChanges.test.ts | 13 +++++++++++++ .../simulation-details/useBalanceChanges.ts | 10 ++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/ui/pages/confirmations/components/simulation-details/useBalanceChanges.test.ts b/ui/pages/confirmations/components/simulation-details/useBalanceChanges.test.ts index 9846ab78f1f9..64d9632c75a7 100644 --- a/ui/pages/confirmations/components/simulation-details/useBalanceChanges.test.ts +++ b/ui/pages/confirmations/components/simulation-details/useBalanceChanges.test.ts @@ -338,6 +338,19 @@ describe('useBalanceChanges', () => { expect(result.current.value[0].fiatAmount).toBe(-663.3337769927953); }); + it('handles unavailable native fiat rate', async () => { + mockGetConversionRate.mockReturnValue(null); + const { result, waitForNextUpdate } = setupHook({ + ...dummyBalanceChange, + difference: DIFFERENCE_ETH_MOCK, + isDecrease: true, + }); + + await waitForNextUpdate(); + + expect(result.current.value[0].fiatAmount).toBe(FIAT_UNAVAILABLE); + }); + it('handles no native balance change', async () => { const { result, waitForNextUpdate } = setupHook(undefined); await waitForNextUpdate(); diff --git a/ui/pages/confirmations/components/simulation-details/useBalanceChanges.ts b/ui/pages/confirmations/components/simulation-details/useBalanceChanges.ts index 5d426acf2ffc..6f2a033cc567 100644 --- a/ui/pages/confirmations/components/simulation-details/useBalanceChanges.ts +++ b/ui/pages/confirmations/components/simulation-details/useBalanceChanges.ts @@ -113,16 +113,18 @@ async function fetchTokenFiatRates( // Compiles the balance change for the native asset function getNativeBalanceChange( nativeBalanceChange: SimulationBalanceChange | undefined, - nativeFiatRate: number, + nativeFiatRate: number | undefined, ): BalanceChange | undefined { if (!nativeBalanceChange) { return undefined; } const asset = NATIVE_ASSET_IDENTIFIER; const amount = getAssetAmount(nativeBalanceChange, NATIVE_DECIMALS); - const fiatAmount = amount - .times(convertNumberToStringWithPrecisionWarning(nativeFiatRate)) - .toNumber(); + const fiatAmount = nativeFiatRate + ? amount + .times(convertNumberToStringWithPrecisionWarning(nativeFiatRate)) + .toNumber() + : FIAT_UNAVAILABLE; return { asset, amount, fiatAmount }; } From e62e5c9bb19eed752504b2aa1fc0afe8b8e4b8ed Mon Sep 17 00:00:00 2001 From: Harika Jetpoluru <153644847+hjetpoluru@users.noreply.github.com> Date: Thu, 30 May 2024 12:51:14 -0400 Subject: [PATCH 03/43] docs: Add jsdoc comments for driver functions (#23699) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** As part of our documentation efforts, adding JSDoc comments to the driver function will enhance understanding of what the functions perform. Including examples for some functions is essential for better comprehension and usage, leading to improved coverage. This may also help in reducing flakiness and improving code consistency. Anyone onboarding and wishing to use automation with a customized Selenium driver should be able to manage effectively. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/23699?quickstart=1) ## **Related issues** Fixes: #23698 ## **Manual testing steps** [Click here to access README ](https://github.com/MetaMask/metamask-extension/blob/doc/add-jsdoc-comments/test/e2e/webdriver/README.md) ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: Howard Braham Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com> --- test/e2e/webdriver/README.md | 1308 +++++++++++++++++ test/e2e/webdriver/driver.js | 321 +++- .../e2e/webdriver/image/attributeSelector.png | Bin 0 -> 77297 bytes .../webdriver/image/attributeTagSelector.png | Bin 0 -> 244157 bytes test/e2e/webdriver/image/classSelector.png | Bin 0 -> 106972 bytes test/e2e/webdriver/image/idSelector.png | Bin 0 -> 233200 bytes test/e2e/webdriver/image/linkTextSelector.png | Bin 0 -> 124291 bytes test/e2e/webdriver/image/xpath-contains.png | Bin 0 -> 316241 bytes .../webdriver/image/xpath-css-selector.png | Bin 0 -> 328477 bytes test/e2e/webdriver/image/xpath.png | Bin 0 -> 236026 bytes 10 files changed, 1615 insertions(+), 14 deletions(-) create mode 100644 test/e2e/webdriver/README.md create mode 100644 test/e2e/webdriver/image/attributeSelector.png create mode 100644 test/e2e/webdriver/image/attributeTagSelector.png create mode 100644 test/e2e/webdriver/image/classSelector.png create mode 100644 test/e2e/webdriver/image/idSelector.png create mode 100644 test/e2e/webdriver/image/linkTextSelector.png create mode 100644 test/e2e/webdriver/image/xpath-contains.png create mode 100644 test/e2e/webdriver/image/xpath-css-selector.png create mode 100644 test/e2e/webdriver/image/xpath.png diff --git a/test/e2e/webdriver/README.md b/test/e2e/webdriver/README.md new file mode 100644 index 000000000000..39d7e01fd348 --- /dev/null +++ b/test/e2e/webdriver/README.md @@ -0,0 +1,1308 @@ +# About Driver + +Driver is a custom class designed for handling web automation interactions, serving as a wrapper around the Selenium WebDriver library. + +## Driver key features: + +- Locator strategy that utilizes the buildLocator function, supporting inline locators as an alternative to the traditional use of Selenium's By abstraction. +- The finding element calls the wrapElementWithAPI function which mirrors the Playwright API, facilitating tool migration. +- A comprehensive suite of functions for element, interacting with them, and performing actions using keyboard and mouse. +- Appropriate waiting strategies for elements to appear within a time period or condition is met. +- Management of browser windows, tabs, alerts, and frames with appropriate navigation, switching, and closing capabilities. +- Validation of the application with assertion statements to check expected values and conditions. +- Error-handling mechanisms to capture and log browser console errors, simplifying the identification and troubleshooting of issues encountered during testing. +- Capture of screenshots during automated testing in the event of failures, aiding in debugging and issue pinpointing. + +## Locators + +In web automation testing, locators are crucial commands that guide the framework to identify and select [HTML elements](https://www.w3schools.com/html/default.asp) on a webpage for interaction. They play a vital role in executing various actions such as clicking buttons, fill text, or retrieving data from web pages. Gaining a solid understanding of locators is a key step in initiating web testing automation, as they form the foundation for engaging with web elements. + +### buildLocator + +The **`buildLocator`** function enhances element-matching capabilities by introducing support for inline locators, offering an alternative to the traditional use of Selenium's `By` abstraction. + +[source](https://github.com/MetaMask/metamask-extension/blob/1f2bfb388695034db8859877ed21b4b045514f9f/test/e2e/webdriver/driver.js#L190) + +#### Arguments +@param {string | object} locator - this could be 'css' or 'xpath' and value to use with the locator strategy. + +#### Returns +@returns {object} By object that can be used to locate elements.
+@throws {Error} Will throw an error if an invalid locator strategy is provided. + +
Locate element by CSS + +CSS Selectors in Selenium are string patterns used to identify an element based on a combination of HTML tag, id, class, and attributes. + +>
Class - CSS Selector +> To locate an element by its class using a CSS selector, prepend the class name with a dot (.) symbol. +> +> ![Screenshot displays the send transaction screen of MetaMask, highlighting how to locate the amount text box using its class.](image/classSelector.png) +> +> Syntax for locating by Class +> +> ```jsx +> await driver.findElement('.unit-input__input’); +> ``` +> +>
+>
ID - CSS selector +> +> To locate an element by its ID using a CSS selector, prepend the ID with a hash sign (#). +> +> ![Screenshot displays the login screen of MetaMask, highlighting how to locate the password text box using its ID.](image/idSelector.png) +> +> Syntax for locating by ID +> +> ```tsx +> await driver.findElement('#password'); +> ``` +> +>
+>
Attribute - CSS selector +> +> To target an element based on its attribute using a CSS selector, use square brackets ([]) to specify the attribute name and its value. +> +> ![Screenshot displays the overview screen of MetaMask, highlighting how to locate the button ‘Buy & Sell’ using its unique attribute **data-testid and its value**.](image/attributeSelector.png) +> +> Syntax for locating the attribute **data-testid** +> +> ```tsx +> await driver.findElement('[data-testid="eth-overview-buy"]'); +> ``` +> +>
+>
Attribute and tag - CSS Selector +> +> Tag and attribute selectors provide a powerful way to precisely target and style HTML elements based on their type and characteristics. +> +> ![Screenshot displays the onboarding - Add custom network screen of MetaMask, highlighting how to locate the input field using the tag name and attribute type text.](image/attributeTagSelector.png) +> +> Syntax for locating the elements of type input text. +> +> ```tsx +> await driver.findElements('input[type="text"]'); +> ``` +> +>
+>
Locate element by link text +> +> This type of CSS locator applies only to hyperlink texts with the anchor tags. +> +> ![Screenshot displays the contacts screen of MetaMask, highlighting how to locate the ‘Delete contact’ link using its type as Anchor(a).](image/linkTextSelector.png) +> +> Syntax for locating the links +> +> ```tsx +> await driver.findElement({ text: 'Delete contact', tag: 'a' }); +> ``` +> +
+ +
Locate element by XPath +XPath is a language used for locating nodes in an XML document, which can also be applied to HTML documents for locating elements in the test automation. It utilizes path expressions to navigate through and select elements and attributes within the document.
+
+Below is the video to locate the element based on XPath. + +https://github.com/MetaMask/metamask-extension/assets/539738/7a67a35f-5e42-465c-a376-4b24f931783a + +There are two types of XPath + +>
Absolute XPath +> +> This is the direct way to find the element, but the disadvantage of an absolute XPath is that if there are any changes made in the path of the element, then that XPath fails. Hence this locator strategy should be avoided. +> +>
+>
Relative XPath +>
+> Relative XPath starts from the middle of HTML DOM structure. It starts with double forward slash (//). It can search elements anywhere on the webpage, so there's no need to write a long xpath and you can start from the middle of HTML DOM structure. Relative XPath is always preferred, as it is not a complete path from the root element.
+> Standard XPath syntax - `//tagname[@attribute='value']`
+>
+ +
Our framework supports XPath representation in the patterns mentioned below + +>
Basic XPath +> XPath expressions select nodes or lists of nodes based on attributes such as `id`,`name`,`classname` and these can be directly specified as shown in the syntax.
+> +> ![Screenshot displays ‘Confirm’ button in the send transaction page](image/xpath.png) +> +> Syntax for locating the button element ‘Confirm’ using xpath +> +> ```tsx +> await driver.findClickableElement({ xpath: '//button[@value=‘Confirm’]' }); +> ``` +> +>
+> +>
Contains +> Locate element with search text using the method `contains` in the XPath expression (mainly used when there is dynamic text) +> +> ![Screenshot displays ‘Reject’ button in the send transaction page](image/xpath-contains.png) +> +> Syntax for locating the button element that contains text ‘Reject’ +> +> ```tsx +> await driver.findClickableElement({ text: 'Reject', tag: 'button' }); +> ``` +> +> Another syntax for locating the div menu element that contains text ‘Settings’ +> +> ```tsx +> await driver.clickElement({ text: 'Settings', tag: 'div' }); +> ``` +> +>
+> +>
With CSS selector +> Locate element with a combination of the xpath format and using the CSS selector. +> +> ![Screenshot displays the Send transaction page](image/xpath-css-selector.png) +> +> Syntax for locating the button that contains text ‘Next’ and css attribute selector +> +> ```tsx +> await driver.clickElement({ +> text: 'Next', +> tag: 'button', +> css: '[data-testid="page-container-footer-next"]', +> }); +> ``` + +
+ +
**** Note - locators **** + +> Our team utilizes a custom locator identification syntax consisting of Element Type, Identifier Type, and Identifier Value for efficient finding. Adherence to this syntax is crucial for maintaining consistency and streamlining our workflow. +> +> Selenium syntax for locator declaration +> +> ```jsx +> const passwordBox = await findElement(driver, By.css('#password')); +> await passwordBox.sendKeys('password123'); +> ``` +> +> Our framework syntax +> +> ```tsx +> await driver.fill('#password', 'password123'); +> ``` + +
+ +## Elements + +Finding web elements is a fundamental task in web automation and testing, allowing scripts to interact with various components of a web page, such as input fields, buttons, links, and more. One of the element identification functions listed below combines with the use [locators](#locators) to uniquely identify an element on the page. + +
findElement + +> **`findElement`** returns a reference to the first element in the DOM that the provided locator matches. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/1f2bfb388695034db8859877ed21b4b045514f9f/test/e2e/webdriver/driver.js#L458) +> +> #### Arguments +> @param {string} rawLocator - element locator +> +> #### Returns +> @return `{Promise}` A promise that resolves to the WebElement. +> +> **Example - Evaluating entire DOM** +> +> ```jsx +> await driver.findElement('[data-testid="account-menu-icon"]'); +> ``` +> +> Example - **Evaluating a subset of the DOM** +> +> ```jsx +> await driver.findElement({ +> css: '[data-testid="network-display"]', +> text: 'Localhost 8545', +> }); +> ``` +> +
+ +
findElements + +> **`findElements`** function return a collection of element references. If there are no matches, an empty list is returned. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L370) +> +> #### Arguments +> @param {string | object} rawLocator - Element locator +> +> #### Returns +> @returns `{Promise>} `A promise that resolves to an array of found elements. +> +> **Example for all matching FindElements** +> +> ```jsx +> let assets = await driver.findElements('.multichain-token-list-item'); +> ``` +> +> Example of FindElements with getText() +> +> ```jsx +> const warnings = await driver.findElements('.import-srp__banner-alert-text'); +> const warning = warnings[1]; +> warningText = await warning.getText(); +> ``` +> +
+ +
findVisibleElement + +> **`findVisibleElement`** function is used to track (or) find DOM element which is visible +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L355) +> +> #### Arguments +> @param {string | object} rawLocator - Element locator +> +> #### Returns +> @return `{Promise}` A promise that resolves to the WebElement. +> +> **Example for all matching** findVisibleElement +> +> ```jsx +> await driver.findVisibleElement( +> '[data-testid="confirm-delete-network-modal"]', +> ); +> ``` +> + +
+ +
findClickableElement + +> **`findClickableElement`** function is used to track (or) find DOM element which is clickable +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L361) +> +> #### Arguments +> @param {string | object} rawLocator - Element locator +> +> #### Returns +> @return `{Promise}` A promise that resolves to the WebElement. +> +> **Example for f**indClickableElement +> +> ```jsx +> await driver.findClickableElement('#depositButton'); +> ``` +> +> +
+
findClickableElements + +> **`findClickableElements`** function is used to track (or) find DOM elements which are clickable +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L379) +> +> #### Arguments +> @param {string | object} rawLocator - Element locator +> +> #### Returns +> @return `{Promise}` A promise that resolves to the WebElement. +> +> **Example** +> +> ```jsx +> const domains = await driver.findClickableElements( +> '.connected-sites-list__subject-name', +> ); +> assert.equal(domains.length, 1); +> ``` +> +
+ +## Interactions + +In this context, interacting with web elements implies simulating actions a user might take on a webpage. This includes: + +- **Clicking**: Simulating a mouse click on buttons, links, or any clickable elements. +- **Typing**: Entering text into input fields like text boxes or text areas. +- **Reading**: Extracting text or attributes from web elements to verify content or use it elsewhere. +- **Selecting**: Choosing options from dropdown menus or lists. +- **Scrolling**: Moving through the webpage, either to specific elements or a certain distance up or down. +- **Navigating**: Going through the web pages by clicking on links, using the back or forward buttons, or directly setting the URL. + +Each of these actions requires first [locating](#locators) the web element you want to interact with, which is usually done using selectors like IDs, class names, CSS selectors, or XPath expressions. + +
fill + +> **`fill`** function is designed to locate a web element on the page and input a specified text value into it. This function is particularly useful for automating interactions with text fields, such as username or password inputs, search boxes, or any editable text areas within a web application. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L208) +> +> #### Arguments +> @param {string | object} rawLocator - Element locator
+> @param {string} input - The value to fill the element +> +> #### Returns +> @returns `{Promise}` Promise resolving to the filled element +> +> **Example** +> +> ```jsx +> await driver.fill( +> 'input[data-testid="ens-input"]', +> '0xc427D562164062a23a5cFf596A4a3208e72Acd28', +> ); +> ``` +> +> +
+
clickElementSafe + +> **`clickElementSafe`** clicks on an element if it's present. If the element is not found, catch the exception, log the failure to the console, but do not cause the test to fail. It is particularly useful in instances where an element requires scrolling, but the scroll button does not appear due to rendering differences. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L420) +> +> #### Arguments +> @param {string | object} rawLocator - Element locator
+> @param timeout - The maximum time in ms to wait for the element +> +> #### Returns +> +> @return `{Promise}` A promise that resolves to the WebElement. +> +> **Example** +> +> ```jsx +> await driver.clickElementSafe('[data-testid="snap-install-scroll"]'); +> ``` +> +
+
clickElement + +> **`clickElement`** function is an asynchronous function that aims to simulate a click action on a specified web element within a web page. This function is commonly used to interact with clickable elements such as buttons, links, checkboxes, or any other elements that respond to click events. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L393) +> +> #### Arguments +> @param {string | object} rawLocator - Element locator +> +> #### Returns +> @returns `{Promise}` - promise that resolves to the WebElement +> +> **Example** +> +> ```jsx +> const nextPageButton = '[data-testid="page-container-footer-next"]', +> await driver.clickElement(nextPageButton); +> ``` +> + +
+
press + +> **`press`** function enables the simulation of keyboard actions on a specified web element. This can include typing characters into a text field, activating keyboard shortcuts, or any other keyboard-related interactions within a web page. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L214) +> +> #### Arguments +> @param {string | object} rawLocator - Element locator
+> @param {string} keys - The key to press +> +> #### Returns +> @returns `{Promise}` promise resolving to the filled element +> **Example** +> +> ```jsx +> const ENTER = '\uE007', +> await driver.press('#password', ENTER); +> ``` +> +> Other key actions +> +> ``` +> this.Key = { +> BACK_SPACE: '\uE003', +> ENTER: '\uE007', +> SPACE: '\uE00D', +> CONTROL: '\uE009', +> COMMAND: '\uE03D', +> MODIFIER: process.platform === 'darwin' ? Key.COMMAND : Key.CONTROL, +> }; +> ``` +> + +
+
getText + +> **`getText`** function in Selenium is used to retrieve the visible text of a web element. +> +> #### Arguments +> @param {string | object} rawLocator - Element locator +> +> #### Returns +> @returns {text} String +> +> **Example** +> +> ```jsx +> const pageTitle = await driver.findElement('.unlock-page__title'); +> assert.equal(await pageTitle.getText(), 'Welcome back!'); +> ``` +> +> > + +
+ +## Waits + +Selenium provides several mechanisms for managing waits, crucial for handling the asynchronous nature of web applications where elements may load at different times. These waits help avoid errors in test scripts that occur when trying to interact with elements that are not yet available on the web page + +### When do we need to wait? + +- **Before Locating the Element:** + - Ensure that the page or relevant components have fully loaded. + - You can use explicit waits to wait for certain conditions, like the visibility of an element or the presence of an element in the DOM. +- **CSS Selector and Element Existence:** + - Ensure that the CSS selector is correct and that the element you're trying to locate actually exists in the DOM at the time you're trying to find it. + - It's possible the element is dynamically loaded or changed due to a recent update in the application. +- **Context Switching:** + - Consider switching the context to that iframe or modal before attempting to locate the element. +- **Recent Changes:** + - If the issue started occurring recently, review any changes made to the application that could affect the visibility or availability of the element. +- **Timeout Period:** + - If the default timeout is too short for the page or element to load, consider increasing the timeout period. This is especially useful for pages that take longer to load due to network latency or heavy JavaScript use. + +This organization helps provide a clear structure for understanding the various situations in which waiting may be necessary when working with web elements. + +
wait + +> **`wait`** function is an asynchronous function to wait for a specific condition to be met within a given timeout period, with an option to catch and handle any errors that occur during the wait. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L224) +> +> #### Arguments +> @param {Function} condition - condition or function the method awaits to become true.
+> @param {number} timeout - Optional parameter specifies the maximum milliseconds to wait.
+> @param catchError - Optional parameter that determines whether errors during the wait should be caught and handled within the function +> +> #### Returns +> @returns {Promise} - promise resolving with a delay.
+> @throws {Error} Will throw an error if the condition is not met within the timeout period. +> +> **Example wait until a condition occurs** +> +> ```jsx +> await driver.wait(async () => { +> info = await getBackupJson(); +> return info !== null; +> }, 10000); +> ``` +> +> **Example wait until the condition for finding the elements is met and ensuring that the length validation is also satisfied.** +> +> ```jsx +> await driver.wait(async () => { +> const confirmedTxes = await driver.findElements( +> '.transaction-list__completed-transactions .transaction-list-item', +> ); +> return confirmedTxes.length === 1; +> }, 10000); +> ``` +> +> **Example wait until a mock condition occurs** +> +> ```jsx +> await driver.wait(async () => { +> const isPending = await mockedEndpoint.isPending(); +> return isPending === false; +> }, 3000); +> ``` +> +
+
waitForSelector + +> **`waitForSelector`** function allows for flexible handling of element visibility and detachment from the DOM, making it useful for ensuring that web interactions occur only when the page is in the desired state. This function can be used in scenarios where you need to wait for an element to appear or disappear before performing further actions, such as: +> +> - Ensuring a modal dialog is visible before attempting to close it. +> - Verifying that an item has been removed from the page after a delete action. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L236) +> +> #### Arguments +> +> @param {string | object} rawLocator - Element locator
+> @param {number} timeout - optional parameter that specifies the maximum amount of time (in milliseconds) to wait for the condition to be met and desired state of the element to wait for.
+> It defaults to 'visible', indicating that the function will wait until the element is visible on the page.
+> The other supported state is 'detached', which means waiting until the element is removed from the DOM. +> +> #### Returns +> @returns `{Promise}` promise resolving when the element meets the state or timeout occurs.
+> @throws {Error} Will throw an error if the element does not reach the specified state within the timeout period. +> +> **Example** wait for element to load +> +> ```jsx +> await driver.waitForSelector('.import-srp__actions'); +> ``` +> +
+
waitForNonEmptyElement + +> **`waitForNonEmptyElement`** function is an asynchronous function designed to wait until a specified web element contains some text, i.e., it's not empty. This can be particularly useful in scenarios where the content of an element is dynamically loaded or updated, and you need to ensure the element has content before proceeding with further actions. This function is useful when you need to wait for a message, label, or any piece of information to appear in a UI element before performing further actions, such as: +> +> - Waiting for a success message after submitting a form. +> - Ensuring that a dynamically loaded piece of text, like a user's name or a search result, is displayed before proceeding. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L262) +> +> #### Arguments +> @param {string | object} element - Element locator +> +> #### Returns +> @returns `{Promise}` promise resolving once the element fills or timeout hits.
+> @throws {Error} Will throw an error if the element does not become non-empty within the timeout period. +> +> **Example** +> +> ```jsx +> const revealedSeedPhrase = await driver.findElement( +> '.reveal-seed-phrase__secret-words', +> ); +> await driver.waitForNonEmptyElement(revealedSeedPhrase); +> ``` +> +> +
+
waitForElementState + +> **`waitForElementState`** function waits for a specific state of an element. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L55) +> +> #### Arguments +> @param {WebElement} element - Element locator
+> @param {string} state - state to wait for could be 'visible', 'hidden', 'enabled', 'disabled' +> @param {number} [timeout=5000] - amount of time in milliseconds to wait before timing out +> +> #### Returns +> @returns `'{Promise}'` A promise that resolves when the element is in the specified state.
+> @throws {Error} Will throw an error if the element does not reach the specified state within the timeout period. +> +> **Example** +> +> ```jsx +> const networkSelectionModal = await driver.findVisibleElement('.mm-modal'); +> // Wait for network to change and token list to load from state +> await networkSelectionModal.waitForElementState('hidden'); +> ``` +> +
+
clickElementAndWaitToDisappear +
+ +> **`clickElementAndWaitToDisappear`** function clicks on an element identified by the provided locator and waits for it to disappear.
+> For scenarios where the clicked element, such as a notification or popup, needs to disappear afterward. +> The wait ensures that subsequent interactions are not obscured by the initial notification or popup element. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L406) +> +> #### Arguments +> @param rawLocator - Element locator
+> @param timeout - The maximum time in ms to wait for the element to disappear after clicking. +> +> **Example** +> +> ```jsx +> await driver.clickElementAndWaitToDisappear({ +> text: 'Got it', +> tag: 'button', +> }); +> ``` + +
+
elementCountBecomesN + +> **`elementCountBecomesN`** function waits until the expected number of tokens to be rendered
+> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L270) +> +> #### Arguments +> @param {string | object} rawLocator - element locator +> @param {number} count - The expected number of elements.
+> +> #### Returns +> @returns {Promise} promise resolving when the count of elements is matched. +> +> **Example** +> +> ```jsx +> const expectedTokenListElementsAreFound = await driver.elementCountBecomesN( +> '.multichain-token-list-item', +> 4, +> ); +> ``` + +
+ +
waitUntilXWindowHandles + +> **`waitUntilXWindowHandles`** function waits until the specified number of window handles are present. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L574) +> +> #### Arguments +> @param {number} x - The number of window handles to wait for
+> @param {number} [timeout=5000] - The amount of time in milliseconds to wait before timing out
+> +> #### Returns +> @returns `{Promise}` promise resolving when the target window handle count is met
+> @throws {Error} - throws an error if the target number of window handles isn't met by the timeout +> +> **Example** +> +> ```jsx +> windowHandles = await driver.waitUntilXWindowHandles(1, 1000, 10000); +> ``` + +
+ +#### [assertElementNotPresent](#assertElemntNotPresent-click-here) + +### \***\* NOTE - Delay \*\*** + +** The `delay`** function is a hard-coded wait that may be longer than needed, resulting in slower test execution. Please avoid using this function. + +## Actions + +These interactions include keyboard and mouse actions. + +### Keyboard + +--- + +Selenium can simulate keyboard shortcuts by sending combinations of keys. + +
sendKeys + +```jsx +const approveInput = await driver.findElement('#approveTokenInput'); +await approveInput.sendKeys('1'); +``` + +
+ +
clear + +```jsx +const approveInput = await driver.findElement('#approveTokenInput'); +await approveInput.clear(); +``` + +
+ +
pasteIntoField + +> **`pasteIntoField`** function simulates the pasting of content into a specified field, employing a unique approach to managing the clipboard. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L502) +> +> #### Arguments +> @param {string | object} rawLocator - Element locator +> @param {string} contentToPaste - content to paste. +> +> #### Returns +> @return `{Promise}` A promise that resolves to the WebElement. +> +> **Example** +> +> ```jsx +> await driver.pasteIntoField('#bip44Message', '1234'); +> ``` +> +
+ +### Mouse + +--- + +A representation of any pointer device for interacting with a web page. + +
clickElementUsingMouseMove + +> **`clickElementUsingMouseMove`** function by simulating a more natural mouse movement towards the element before initiating a click. This is essential for web pages with buttons that only respond correctly to user interactions when the mouse physically moves to the button before clicking, as opposed to executing a direct click command. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L440) +> +> #### Arguments +> @param {string | object} rawLocator - Element locator +> +> #### Returns +> @returns `{Promise}` promise that will be fulfilled when the click command has completed. +> +> **Example** +> +> ```jsx +> await driver.clickElementUsingMouseMove({ +> text: 'Reject request', +> tag: 'div', +> }); +> ``` +> +
+ +
scrollToElement + +> **`scrollToElement`** function scrolls the web page until the specified element comes into view. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L471) +> +> #### Arguments +> @param {string | object} element - Element locator +> +> #### Returns +> @returns `{Promise}` - promise resolving after scrolling +> +> **Example** +> +> ```jsx +> const removeButton = await driver.findElement( +> '[data-testid="remove-snap-button"]', +> ); +> await driver.scrollToElement(removeButton); +> await driver.clickElement('[data-testid="remove-snap-button"]'); +> ``` +> +
+ +
holdMouseDownOnElement + +> **`holdMouseDownOnElement`** function simulates the action of pressing and holding down the mouse button on a specific element for a specified duration. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L459) +> +> #### Arguments +> @param {string | object} rawLocator - Element locator
+> @param {int} ms - The number of milliseconds to hold the mouse button down +> +> #### Returns +> @returns `{Promise}` - promise resolving after mouse down completed +> +> **Example** +> +> ```jsx +> await driver.holdMouseDownOnElement( +> { +> text: tEn('holdToRevealPrivateKey'), +> tag: 'span', +> }, +> 2000, +> ); +> ``` +
+ +
clickPoint + +> **`clickPoint`** function is designed to click on a specific point, determined by the x and y coordinates +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L450) +> +> #### Arguments +> @param {string | object} rawLocator - Element locator
+> @param {number} x - x coordinate to click at
+> @param {number} y - y coordinate to click at
+> +> #### Returns +> @returns `{Promise}` - promise resolving after a click +> +
+ +## Navigation + +Navigation refers to the process of moving through web pages within a browser session. This involves tasks such as: + +- **Going to a URL**: This is the starting point of navigation, where you direct the browser to load a specific web page by providing its URL. +- **Refreshing the Page**: Refreshes the current page to update content or re-execute certain actions. +- **Handling Redirects**: Web pages might redirect to different URLs automatically. Automation scripts need to handle these redirects gracefully, ensuring they can continue to interact with the correct page elements after the redirect. + +
navigate + +> **`navigate`** function is an asynchronous function designed for navigating to different pages within a web application. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L522) +> +> #### Arguments +> @param {string} [page] - its optional parameter to specify the page you want to navigate. Defaults to home if no other page is specified. +> +> #### Returns +> @returns {Promise} promise resolves when the page has finished loading
+> @throws {Error} Will throw an error if the navigation fails or the page does not load within the timeout period. +> +> **Example - navigate to the home page by default without passing parameter.** +> +> ```jsx +> await driver.navigate(); +> ``` +> +> **Example - navigate to the home page** +> +> ```jsx +> await driver.navigate(PAGES.HOME); +> ``` +> +> **Example - navigate to the background page** +> +> ```jsx +> await driver.navigate(PAGES.BACKGROUND); +> ``` +> +
+ +
getCurrentUrl + +> **`getCurrentUrl`** function to retrieve the current URL of the browser session. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L532) +> +> #### Returns +> @returns `{Promise}` promise resolves upon retrieving the text. +> +> **Example** +> +> ```jsx +> const currentUrl = await driver.getCurrentUrl(); +> ``` +> + +
+ +
refresh + +> **`refresh`** function to refresh the current page in the browser. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L554) +> +> **Returns** +> +> @returns `{Promise}` promise resolves page is loaded +> +> **Example** +> +> ```jsx +> await driver.refresh(); +> ``` +> + +
+ +## Window and Tabs + +Web browsers can have multiple windows or tabs open at the same time. In web automation: + +- **Switching Between Windows/Tabs**: Automation scripts often need to switch the context from one window or tab to another. This is done by obtaining a handle or identifier for each window/tab and then instructing the automation tool to switch contexts. +- **Opening and Closing Windows/Tabs**: Scripts can open new windows or tabs and close them as needed, just like a user might do manually. + +
openNewPage + +> **`openNewPage`** function to open a new browser tab or window and navigate to a specified URL. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L547) +> +> #### Arguments +> @param {string} url - The URL to navigate to in the new window tab. +> +> #### Returns +> @returns {newHandle} The handle of the new window tab. This handle can be used later to switch between different tab windows during the test. +> +> **Example** +> +> ```jsx +> await driver.openNewPage('http://127.0.0.1:8080'); +> ``` + +
+ +
openNewURL + +> **`openNewURL`** function to open a new URL in the browser window controlled by the driver. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L543) +> +> #### Arguments +> @param {string} url - Any URL +> +> #### Returns +> @returns `{Promise}` promise resolves when the URL page has finished loading +> +> **Example** +> +> ```jsx +> await driver.openNewURL('http://127.0.0.1:8080'); +> ``` + +
+ +
switchToNewWindow + +> **`switchToNewWindow`** function to open a new browser window and switch the WebDriver's context to this new window. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L562) +> +> #### Returns +> @returns `{Promise}` A promise resolves after switching to the new window. +> +> **Example** +> +> ```jsx +> await driver.switchToNewWindow(); +> ``` + +
+ +### Get window handle + +
getAllWindowHandles + +> **`getAllWindowHandles`** function retrieves all window handles that are currently open in the WebDriver session. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L570) +> +> #### Returns +> @returns {int} - number of windows
+> @return `{Promise>}` A promise that will be resolved with an array of window handles. +> +> **Example** +> +> ```jsx +> const windowHandles = await driver.getAllWindowHandles(); +> ``` + +
+ +
getWindowTitleByHandlerId + +> **`getWindowTitleByHandlerId`** function changes to a specific window tab using its ID and gets its title. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L589) +> +> #### Arguments +> @param {int} handlerId - unique ID for the tab whose title is needed +> +> #### Returns +> @returns `{Promise} `promise resolving to the window tab title after command completion +> +> **Example** +> +> ```jsx +> const fullScreenWindowTitle = await driver.getWindowTitleByHandlerId( +> windowHandles[0], +> ); +> ``` + +
+ +### Switching windows or tabs + +
switchToWindow + +> **`switchToWindow`** function designed to switch the context of the browser session to the window or tab with the given handle. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L558) +> +> #### Arguments +> @param {int} handle - unique ID for the tab to which you want to switch. +> +> #### Returns +> @returns `{Promise}` promise that resolves once the switch is complete +> +> **Example** +> +> ```jsx +> await driver.switchToWindow(windowHandles[0]); +> ``` + +
+ +
switchToWindowWithUrl + +> **`switchToWindowWithUrl`** function is intended switches the context of the browser session to the window tab with the given URL. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L631) +> +> #### Arguments +> @param {string} url - The URL of the window tab to switch
+> @param {string} [initialWindowHandles] - optional array of window handles to search through
+> If not provided, the function fetches all current window handles.
+> @param {int} delayStep - optional defaults to 1000 milliseconds
+> @param {int} timeout - optional set to the defaults to 1000 milliseconds in the file
+> @param {int} retries - optional for retrying the URL fetch operation, defaults to starting at 8 ms
+> @param {int} retryDelay - optional for retrying the URL fetch operation, with defaults max 2500 ms
+> +> #### Returns +> @returns `{Promise} `- promise that resolves once the switch is complete
+> @throws {Error} - throws an error if no window with the specified url is found +> +> **Example** +> +> ```jsx +> const DAPP_URL = 'http://127.0.0.1:8080'; +> await driver.switchToWindowWithUrl(DAPP_URL); +> ``` + +
+ +
switchToWindowWithTitle + +> **`switchToWindowWithTitle`** function is intended for use in web automation testing and aims to switch the testing framework's context to a window or tab that matches a specific title. This functionality is especially valuable in complex testing scenarios involving multiple windows or tabs, allowing for interaction with a particular window or tab based on its title. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L594) +> +> #### Arguments +> @param {string} title - The title of the window tab to switch
+> @param {string} [initialWindowHandles] - optional array of window handles to search through
+> If not provided, the function fetches all current window handles
+> @param {int} delayStep - optional defaults to 1000 milliseconds
+> @param {int} timeout - optional set to the defaults to 1000 milliseconds in the file
+> @param {int} retries - optional for retrying the title fetch operation, defaults to starting at 8 ms
+> @param {int} retryDelay - optional for retrying the title fetch operation, with defaults max 2500 ms
+> +> #### Returns +> @returns `{Promise}` promise that resolves once the switch is complete
+> @throws {Error} throws an error if no window with the specified title is found. +> +> **Example** +> +> ```jsx +> windowHandles = await driver.waitUntilXWindowHandles(2, 1000, 10000); +> await driver.switchToWindowWithTitle('Test Snaps', windowHandles); +> ``` + +
+ +### [Waits for window handles](#waitX) + +### Closing windows or tabs + +
closeWindow + +> **`closeWindow`** function loses the current window tab in the browser session. This is particularly useful for cleaning up after a test or when switching between different window tabs. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L668) +> +> #### Returns +> @returns `{Promise}` promise resolving after closing the current window +> +> **Example** +> +> ```jsx +> await driver.closeWindow(); +> ``` + +
+ +
closeWindowHandle + +> **`closeWindowHandle`** function closes a specific browser window or tab identified by its window handle. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L672) +> +> #### Arguments +> @param {string} windowHandle - representing the unique identifier of the browser window to be closed. +> +> #### Returns +> @returns `{Promise} `- promise resolving after closing the specified window +> +> **Example** +> +> ```jsx +> const serviceWorkerTab = await switchToWindow( +> driver, +> WINDOW_TITLES.ServiceWorkerSettings, +> ); +> await driver.closeWindowHandle(serviceWorkerTab); +> ``` + +
+ +
closeAllWindowHandlesExcept + +> **`closeAllWindowHandlesExcept`** function close all browser windows or tabs except for those specified in a list of exceptions. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L689) +> +> #### Arguments +> @param {Array} exceptions - list of window handle exceptions
+> @param {Array} [windowHandles] - full list of window handles +> +> #### Returns +> @returns `{Promise}`- promise resolving after closing the specified window + +
+ +
quit + +> **`quit`** function quits driver and closing every associated window. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L336) +> +> #### Returns +> @returns `{Promise}` - promise resolving after quitting +> +> **Example** +> +> ```jsx +> await driver.quit(); +> ``` + +
+ +### Alerts + +Alerts are pop-up messages that appear + +- **Handling Alerts**: Scripts must be able to detect when an alert has appeared, read its message, and interact with it by accepting, dismissing, or providing input (in the case of prompt alerts). + +
closeAlertPopup + +> **`closeAlertPopup` is method to handle and close alert popups in a web browser.** +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L678) +> +> #### Returns +> @returns `{Promise}` promise resolving when the alert is closed +> +> **Example** +> +> ```jsx +> await driver.closeAlertPopup(); +> ``` + +
+ +### Frames and iFrames + +Web pages can be segmented into frames or IFrames, which are essentially documents within documents. Handling frames involves: + +- **Switching to a Frame**: To interact with elements inside a frame, the automation script must first switch its context to that frame. +- **Default Content**: After interacting with a frame, the script often needs to switch back to the main page or another frame, commonly referred to as switching back to the default content. + +
switchToFrame + +> **`switchToFrame`** is function to switch the WebDriver's context to a specified iframe or frame within a web page. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L566) +> +> #### Arguments +> @param {string | object} rawLocator - Element locator +> +> #### Returns +> @returns `{Promise}` promise that resolves once the switch is complete +> +> **Example** +> +> ```jsx +> const iframe = await driver.findElement('iframe'); +> await driver.switchToFrame(iframe); +> ``` + +
+ +## Assertions + +Assertion is a statement that checks if a specified condition is true. If the condition is true, the program continues to execute. If the condition is false, throws an error or fails. + +### When do we need Assertions? + +They are used to verify that the application under test behaves as expected under various conditions. Common assertions include: + +- Checking if a variable has the expected value. +- Verifying that an object is not null. +- Ensuring that a web element is visible, contains specific text, or is enabled/disabled. +- Verify that a certain condition holds at a specific point in the program or test case. + +### key points to remember + +- When writing assertions, provide clear and informative error messages. This helps in quickly understanding what went wrong when an assertion fails. +- While assertions are powerful, overusing them can clutter the code and make tests harder to maintain. Use them to check critical conditions. +- Race condition: Sometimes, we might check something too quickly before everything is set up properly. This can lead to getting the wrong information, which might not match what we finally see or use. + +
isElementPresent + +> **`isElementPresent`** function to check if a specific web element, exists on the web page. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L478) +> +> #### Arguments +> @param {string | object} rawLocator - Element locator +> +> #### Returns +> @returns `{Promise}` - promise that resolves to a boolean indicating whether the element is present. +> +> **Example** +> +> ```jsx +> const tooltipText = '[data-original-title="Copiar al Portapapeles"]', +> const isHeaderTooltipPresent = await driver.isElementPresent( +> tooltipText,); +> assert.equal( +> isHeaderTooltipPresent, +> true, +> 'Language changes is not reflected on the toolTip', +> ); +> ``` + +
+ +
isElementPresentAndVisible + +> **`isElementPresentAndVisible`** function to check not only if a specific web element, exists on the web page but also if it is visible to the user. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L487) +> +> #### Arguments +> @param {string | object} rawLocator - Element locator +> +> #### Returns +> @returns `{Promise}`- promise that resolves to a boolean indicating whether the element is present and visible. +> +> **Example** +> +> ```jsx +> const nftImageIsStillDisplayed = await driver.isElementPresentAndVisible( +> '.nft-item__container', +> ); +> assert.equal( +> nftIsStillDisplayed, +> true, +> 'Nft is no longer displayed after adding an account and switching back to account 1', +> ); +> ``` + +
+ +
assertElementNotPresent + +> **`assertElementNotPresent`** function wait until an element is absent. This function MUST have a guard to prevent a race condition. For example, when the previous step is to click a button that loads a new page, then of course during page load, the rawLocator element will be absent, even though it will appear a half-second later. The first choice for the guard is to use the findElementGuard, which executes before the search for the rawLocator element. The second choice for the guard is to use the waitAtLeastGuard parameter. +> +> [source](https://github.com/MetaMask/metamask-extension/blob/671c9975424a83904a4752dfb8a7cf728ae67355/test/e2e/webdriver/driver.js#L303) +> +> #### Arguments +> @param {string | object} rawLocator - Element locator
+> @param {object} guards
+> @param {string | object} [guards.findElementGuard] - A rawLocator to perform a findElement and act as a guard
+> @param {number} [guards.waitAtLeastGuard] - The minimum milliseconds to wait before passing
+> @param {number} [guards.timeout] - The maximum milliseconds to wait before failing
+> +> #### Return +> @returns `{Promise}` - promise resolving after the element is not present
+> @throws {Error} - throws an error if the element is present +> **Example** +> +> ```jsx +> await driver.assertElementNotPresent('.loading-overlay'); +> ``` +> +> ```jsx +> const pinnedIconSelector = '.account-pinned-icon'; +> await driver.assertElementNotPresent(pinnedIconSelector, { +> waitAtLeastGuard: 200, // A waitAtLeastGuard of 200ms is the best choice here +> }); +> ``` + +
diff --git a/test/e2e/webdriver/driver.js b/test/e2e/webdriver/driver.js index 8b44a4d824c4..7da0c7481b9f 100644 --- a/test/e2e/webdriver/driver.js +++ b/test/e2e/webdriver/driver.js @@ -158,6 +158,35 @@ class Driver { return this.driver.executeScript(script, args); } + /** + * In web automation testing, locators are crucial commands that guide the framework to identify + * and select HTML elements on a webpage for interaction. They play a vital role in executing various + * actions such as clicking buttons, filling text, or retrieving data from web pages. + * + * buildLocator function enhances element matching capabilities by introducing support for inline locators, + * offering an alternative to the traditional use of Selenium's By abstraction. + * + * @param {string | object} locator - this could be 'css' or 'xpath' and value to use with the locator strategy. + * @returns {object} By object that can be used to locate elements. + * @throws {Error} Will throw an error if an invalid locator strategy is provided. + * + * To locate an element by its class using a CSS selector, prepend the class name with a dot (.) symbol. + * @example Example to locate the amount text box using its class on the send transaction screen + * await driver.findElement('.unit-input__input’); + * + * To locate an element by its ID using a CSS selector, prepend the ID with a hash sign (#). + * @example Example to locate the password text box using its ID on the login screen + * await driver.findElement('#password'); + * + * To target an element based on its attribute using a CSS selector, + * use square brackets ([]) to specify the attribute name and its value. + * @example Example to locate the ‘Buy & Sell’ button using its unique attribute data-testid and its value on the overview screen + * await driver.findElement('[data-testid="eth-overview-buy"]'); + * + * To locate an element by XPath locator strategy + * @example Example to locate 'Confirm' button on the send transaction page + * await driver.findClickableElement({ text: 'Confirm', tag: 'button' }); + */ buildLocator(locator) { if (typeof locator === 'string') { // If locator is a string we assume its a css selector @@ -205,12 +234,34 @@ class Driver { ); } + /** + * Fills the given web element with the provided value. + * This method is particularly useful for automating interactions with text fields, + * such as username or password inputs, search boxes, or any editable text areas. + * + * @param {string | object} rawLocator - element locator + * @param {string} input - The value to fill the element with. + * @returns {Promise} Promise resolving to the filled element + * @example Example to fill address in the send transaction screen + * await driver.fill( + * 'input[data-testid="ens-input"]', + * '0xc427D562164062a23a5cFf596A4a3208e72Acd28'); + */ async fill(rawLocator, input) { const element = await this.findElement(rawLocator); await element.fill(input); return element; } + /** + * Simulates a key press event on the given web element. + * This can include typing characters into a text field, + * activating keyboard shortcuts, or any other keyboard-related interactions + * + * @param {string | object} rawLocator - element locator + * @param {string} keys - The key to press. + * @returns {Promise} promise resolving to the filled element + */ async press(rawLocator, keys) { const element = await this.findElement(rawLocator); await element.press(keys); @@ -221,6 +272,33 @@ class Driver { await new Promise((resolve) => setTimeout(resolve, time)); } + /** + * Function to wait for a specific condition to be met within a given timeout period, + * with an option to catch and handle any errors that occur during the wait. + * + * @param {Function} condition - condition or function the method awaits to become true + * @param {number} timeout - Optional parameter specifies the maximum milliseconds to wait. + * @param catchError - Optional parameter that determines whether errors during the wait should be caught and handled within the method + * @returns {Promise} promise resolving with a delay + * @throws {Error} Will throw an error if the condition is not met within the timeout period. + * @example Example wait until a condition occurs + * await driver.wait(async () => { + * let info = await getBackupJson(); + * return info !== null; + * }, 10000); + * @example Example wait until the condition for finding the elements is met and ensuring that the length validation is also satisfied + * await driver.wait(async () => { + * const confirmedTxes = await driver.findElements( + * '.transaction-list__completed-transactions .transaction-list-item', + * ); + * return confirmedTxes.length === 1; + * }, 10000); + * @example Example wait until a mock condition occurs + * await driver.wait(async () => { + * const isPending = await mockedEndpoint.isPending(); + * return isPending === false; + * }, 3000); + */ async wait(condition, timeout = this.timeout, catchError = false) { try { await this.driver.wait(condition, timeout); @@ -233,6 +311,17 @@ class Driver { } } + /** + * Waits for an element that matches the given locator to reach the specified state within the timeout period. + * + * @param {string | object} rawLocator - Element locator + * @param {number} timeout - optional parameter that specifies the maximum amount of time (in milliseconds) + * to wait for the condition to be met and desired state of the element to wait for. + * It defaults to 'visible', indicating that the method will wait until the element is visible on the page. + * The other supported state is 'detached', which means waiting until the element is removed from the DOM. + * @returns {Promise} promise resolving when the element meets the state or timeout occurs. + * @throws {Error} Will throw an error if the element does not reach the specified state within the timeout period. + */ async waitForSelector( rawLocator, { timeout = this.timeout, state = 'visible' } = {}, @@ -259,6 +348,14 @@ class Driver { return wrapElementWithAPI(element, this); } + /** + * Waits for an element that matches the given locator to become non-empty within the timeout period. + * This is particularly useful for waiting for elements that are dynamically populated with content. + * + * @param {string | object} element - Element locator + * @returns {Promise} promise resolving once the element fills or timeout hits + * @throws {Error} throws an error if the element does not become non-empty within the timeout period. + */ async waitForNonEmptyElement(element) { await this.driver.wait(async () => { const elemText = await element.getText(); @@ -267,6 +364,14 @@ class Driver { }, this.timeout); } + /** + * Waits until the expected number of tokens to be rendered + * + * @param {string | object} rawLocator - element locator + * @param {number} n - The expected number of elements. + * @param timeout + * @returns {Promise} promise resolving when the count of elements is matched. + */ async elementCountBecomesN(rawLocator, n, timeout = this.timeout) { const locator = this.buildLocator(rawLocator); try { @@ -294,11 +399,13 @@ class Driver { * * The second choice for the guard is to use the waitAtLeastGuard parameter. * - * @param {string | object} rawLocator + * @param {string | object} rawLocator - element locator * @param {object} guards - * @param {string | object} [guards.findElementGuard] - A rawLocator to perform a findElement and act as a guard - * @param {number} [guards.waitAtLeastGuard] - The minimum milliseconds to wait before passing - * @param {number} [guards.timeout] - The maximum milliseconds to wait before failing + * @param {string | object} [guards.findElementGuard] - rawLocator to perform a findElement and act as a guard + * @param {number} [guards.waitAtLeastGuard] - minimum milliseconds to wait before passing + * @param {number} [guards.timeout] - maximum milliseconds to wait before failing + * @returns {Promise} promise resolving after the element is not present + * @throws {Error} throws an error if the element is present */ async assertElementNotPresent( rawLocator, @@ -333,15 +440,21 @@ class Driver { } } + /** + * Quits the browser session, closing all windows and tabs. + * + * @returns {Promise} promise resolving after quitting + */ async quit() { await this.driver.quit(); } - // Element interactions - /** - * @param {*} rawLocator - * @returns {WebElement} + * Finds an element on the page using the given locator + * and returns a reference to the first matching element. + * + * @param {string | object} rawLocator - Element locator + * @returns {Promise} A promise that resolves to the found element. */ async findElement(rawLocator) { const locator = this.buildLocator(rawLocator); @@ -352,12 +465,24 @@ class Driver { return wrapElementWithAPI(element, this); } + /** + * Finds a visible element on the page using the given locator. + * + * @param {string | object} rawLocator - Element locator + * @returns {Promise} A promise that resolves to the found visible element. + */ async findVisibleElement(rawLocator) { const element = await this.findElement(rawLocator); await this.driver.wait(until.elementIsVisible(element), this.timeout); return wrapElementWithAPI(element, this); } + /** + * Finds a clickable element on the page using the given locator. + * + * @param {string | object} rawLocator - Element locator + * @returns {Promise} A promise that resolves to the found clickable element. + */ async findClickableElement(rawLocator) { const element = await this.findElement(rawLocator); await Promise.all([ @@ -367,6 +492,13 @@ class Driver { return wrapElementWithAPI(element, this); } + /** + * Finds all elements on the page that match the given locator. + * If there are no matches, an empty list is returned. + * + * @param {string | object} rawLocator - Element locator + * @returns {Promise>} A promise that resolves to an array of found elements. + */ async findElements(rawLocator) { const locator = this.buildLocator(rawLocator); const elements = await this.driver.wait( @@ -376,6 +508,12 @@ class Driver { return elements.map((element) => wrapElementWithAPI(element, this)); } + /** + * Finds all clickable elements on the page that match the given locator. + * + * @param {string | object} rawLocator - Element locator + * @returns {Promise>} A promise that resolves to an array of found clickable elements. + */ async findClickableElements(rawLocator) { const elements = await this.findElements(rawLocator); await Promise.all( @@ -390,6 +528,13 @@ class Driver { return elements.map((element) => wrapElementWithAPI(element, this)); } + /** + * Function that aims to simulate a click action on a specified web element within a web page + * + * @param {string | object} rawLocator - Element locator + * @param {number} [retries] - The number of times to retry the click action if it fails + * @returns {Promise} promise that resolves to the WebElement + */ async clickElement(rawLocator, retries = 3) { for (let attempt = 0; attempt < retries; attempt++) { try { @@ -424,12 +569,14 @@ class Driver { } /** - * for instances where an element such as a scroll button does not + * Clicks on an element if it's present. If the element is not found, + * catch the exception, log the failure to the console, but do not cause the test to fail. + * For scenario where an element such as a scroll button does not * show up because of render differences, proceed to the next step * without causing a test failure, but provide a console log of why. * - * @param rawLocator - * @param timeout + * @param rawLocator - Element locator + * @param timeout - The maximum time in ms to wait for the element */ async clickElementSafe(rawLocator, timeout = 1000) { try { @@ -461,6 +608,14 @@ class Driver { .perform(); } + /** + * Simulates a click at the given x and y coordinates. + * + * @param rawLocator - Element locator + * @param {number} x - coordinate to click at x + * @param {number} y - coordinate to click at y + * @returns {Promise} promise resolving after a click + */ async clickPoint(rawLocator, x, y) { const element = await this.findElement(rawLocator); await this.driver @@ -470,6 +625,13 @@ class Driver { .perform(); } + /** + * Simulates holding the mouse button down on the given web element. + * + * @param {string | object} rawLocator - Element locator + * @param {number} ms - number of milliseconds to hold the mouse button down + * @returns {Promise} promise resolving after mouse down completed + */ async holdMouseDownOnElement(rawLocator, ms) { const locator = this.buildLocator(rawLocator); const element = await this.findClickableElement(locator); @@ -482,6 +644,12 @@ class Driver { .perform(); } + /** + * Scrolls the page until the given web element is in view. + * + * @param {string | object} element - Element locator + * @returns {Promise} promise resolving after scrolling + */ async scrollToElement(element) { await this.driver.executeScript( 'arguments[0].scrollIntoView(true)', @@ -489,6 +657,12 @@ class Driver { ); } + /** + * Checks if an element that matches the given locator is present on the page. + * + * @param {string | object} rawLocator - Element locator + * @returns {Promise} promise that resolves to a boolean indicating whether the element is present. + */ async isElementPresent(rawLocator) { try { await this.findElement(rawLocator); @@ -498,6 +672,12 @@ class Driver { } } + /** + * Checks if an element that matches the given locator is present and visible on the page. + * + * @param {string | object} rawLocator - Element locator + * @returns {Promise} promise that resolves to a boolean indicating whether the element is present and visible. + */ async isElementPresentAndVisible(rawLocator) { try { await this.findVisibleElement(rawLocator); @@ -510,8 +690,9 @@ class Driver { /** * Paste a string into a field. * - * @param {string} rawLocator - The element locator. - * @param {string} contentToPaste - The content to paste. + * @param {string} rawLocator - Element locator + * @param {string} contentToPaste - content to paste + * @returns {Promise} promise that resolves to the WebElement */ async pasteIntoField(rawLocator, contentToPaste) { // Throw if double-quote is present in content to paste @@ -533,6 +714,14 @@ class Driver { // Navigation + /** + * Navigates to the specified page within a browser session. + * + * @param {string} [page] - its optional parameter to specify the page you want to navigate. + * Defaults to home if no other page is specified. + * @returns {Promise} promise resolves when the page has finished loading + * @throws {Error} Will throw an error if the navigation fails or the page does not load within the timeout period. + */ async navigate(page = PAGES.HOME) { const response = await this.driver.get(`${this.extensionUrl}/${page}.html`); // Wait for asynchronous JavaScript to load @@ -543,6 +732,11 @@ class Driver { return response; } + /** + * Retrieves the current URL of the browser session. + * + * @returns {Promise} promise resolves upon retrieving the URL text. + */ async getCurrentUrl() { return await this.driver.getCurrentUrl(); } @@ -554,10 +748,24 @@ class Driver { } // Window management + + /** + * Opens a new URL in the browser window controlled by the driver + * + * @param {string} url - Any URL + * @returns {Promise} promise resolves when the URL page has finished loading + */ async openNewURL(url) { await this.driver.get(url); } + /** + * Opens a new window or tab in the browser session and navigates to the given URL. + * + * @param {string} url - The URL to navigate to in the new window tab. + * @returns {newHandle} The handle of the new window or tab. + * This handle can be used later to switch between different tabs in window during the test. + */ async openNewPage(url) { await this.driver.switchTo().newWindow(); await this.openNewURL(url); @@ -565,26 +773,63 @@ class Driver { return newHandle; } + /** + * Refreshes the current page in the browser session. + * + * @returns {Promise} promise resolves page is loaded + */ async refresh() { await this.driver.navigate().refresh(); } + /** + * Switches the context of the browser session to the window or tab with the given handle. + * + * @param {int} handle - unique identifier (window handle) of the browser window or tab to which you want to switch. + * @returns {Promise} promise that resolves once the switch is complete + */ async switchToWindow(handle) { await this.driver.switchTo().window(handle); } + /** + * Opens a new browser window and switch the WebDriver's context to this new window. + * + * @returns {Promise} A promise resolves after switching to the new window. + */ async switchToNewWindow() { await this.driver.switchTo().newWindow('window'); } + /** + * Switches the WebDriver's context to a specified iframe or frame within a web page. + * + * @param {string} element - The iframe or frame element to switch to. + * @returns {Promise} promise that resolves once the switch is complete + */ async switchToFrame(element) { await this.driver.switchTo().frame(element); } + /** + * Retrieves the handles of all open window tabs in the browser session. + * + * @returns {Promise>} A promise that will + * be resolved with an array of window handles. + */ async getAllWindowHandles() { return await this.driver.getAllWindowHandles(); } + /** + * Waits until the specified number of window handles are present. + * + * @param {number} _x - The number of window handles to wait for + * @param delayStep - defaults to 1000 milliseconds + * @param {number} [timeout] - The amount of time in milliseconds to wait before timing out. + * @returns {Promise} promise resolving when the target window handle count is met + * @throws {Error} throws an error if the target number of window handles isn't met by the timeout. + */ async waitUntilXWindowHandles(_x, delayStep = 1000, timeout = this.timeout) { const x = process.env.ENABLE_MV3 ? _x + 1 : _x; let timeElapsed = 0; @@ -600,14 +845,34 @@ class Driver { throw new Error('waitUntilXWindowHandles timed out polling window handles'); } + /** + * Retrieves the title of the window tab with the given handle ID. + * + * @param {int} handlerId - unique ID for the tab whose title is needed. + * @returns {Promise} promise resolving to the tab title after command completion + */ async getWindowTitleByHandlerId(handlerId) { await this.driver.switchTo().window(handlerId); return await this.driver.getTitle(); } + /** + * Switches the context of the browser session to the window tab with the given title. + * This functionality is especially valuable in complex testing scenarios involving multiple window tabs, + * allowing for interaction with a particular window or tab based on its title + * + * @param {string} title - The title of the window or tab to switch to. + * @param {string[] | null} initialWindowHandles - optional array of window handles to search through. + * If not provided, the function fetches all current window handles. + * @param {int} delayStep - optional defaults to 1000 milliseconds + * @param {int} timeout - optional set to the defaults to 1000 milliseconds in the file + * @param {int} retries,retryDelay - optional for retrying the title fetch operation, ranging 8 ms to 2500 ms + * @returns {Promise} promise that resolves once the switch is complete + * @throws {Error} throws an error if no window with the specified title is found + */ async switchToWindowWithTitle( title, - initialWindowHandles, + initialWindowHandles = null, delayStep = 1000, timeout = this.timeout, { retries = 8, retryDelay = 2500 } = {}, @@ -642,6 +907,18 @@ class Driver { throw new Error(`No window with title: ${title}`); } + /** + * Switches the context of the browser session to the window tab with the given URL. + * + * @param {string} url - Window URL to switch + * @param {string} [initialWindowHandles] - optional array of window handles to search through. + * If not provided, the function fetches all current window handles. + * @param {int} delayStep - optional defaults to 1000 milliseconds + * @param {int} timeout - optional set to the defaults to 1000 milliseconds in the file + * @param {int} retries,retryDelay - optional for retrying the URL fetch operation, defaults to starting at 8 ms to 2500 ms + * @returns {Promise} promise that resolves once the switch is complete + * @throws {Error} throws an error if no window with the specified url is found + */ async switchToWindowWithUrl( url, initialWindowHandles, @@ -679,16 +956,32 @@ class Driver { throw new Error(`No window with url: ${url}`); } + /** + * Closes the current window tab in the browser session + * + * @returns {Promise} promise resolving after closing the current window + */ async closeWindow() { await this.driver.close(); } + /** + * Closes specific window tab identified by its window handle. + * + * @param {string} windowHandle - representing the unique identifier of the browser window to be closed. + * @returns {Promise} promise resolving after closing the specified window + */ async closeWindowHandle(windowHandle) { await this.driver.switchTo().window(windowHandle); await this.driver.close(); } // Close Alert Popup + /** + * Close the alert popup that is currently open in the browser session. + * + * @returns {Promise} promise resolving when the alert is closed + */ async closeAlertPopup() { return await this.driver.switchTo().alert().accept(); } diff --git a/test/e2e/webdriver/image/attributeSelector.png b/test/e2e/webdriver/image/attributeSelector.png new file mode 100644 index 0000000000000000000000000000000000000000..16f220852fd8199c8308fe8b2135fd7bd9981540 GIT binary patch literal 77297 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 literal 0 HcmV?d00001 diff --git a/test/e2e/webdriver/image/attributeTagSelector.png b/test/e2e/webdriver/image/attributeTagSelector.png new file mode 100644 index 0000000000000000000000000000000000000000..9a557728269373ce702197b7018e0ed232df370e GIT binary patch literal 244157 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

mTfkHb&=ev_H2&<^ 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%0A|`T@yz`q0dtPl^`%>5)mK)-tnyqpGr7lil0+F_ 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%0A}d;*_@K{Wl%tEXZt&skVIt+dxKY>2ID2$3 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

U0@4#2ciX!~gzY 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

Wb=mxBo6RH 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

{7srnn@AHv?Ck1K4B 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¿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 literal 0 HcmV?d00001 diff --git a/test/e2e/webdriver/image/idSelector.png b/test/e2e/webdriver/image/idSelector.png new file mode 100644 index 0000000000000000000000000000000000000000..7bdd5f2f989e2eece268383607e0c4070e7054cb GIT binary patch literal 233200 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ⅆ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%0Dt6l=eVhmi`^Ow;7`@? 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 z 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�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‹?ujRpzj&t`0tv{l^bQXl!>Fv-OBq# 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%0A~6$Z>T_0Y-dVD5iUi}zOENr8+7^qNwjHJ zHN8YF;YnRYzb-=>S|u;ks{2gvz9Yatc(o6LVY*)=81v{_d_DA!)s$_$}myaZb1z2^@nMv(Z0j^IIG_L zdSr+bKQF@Yy?~_FbC*=Q_4&vJ6V1RWBEfLN3gLXolsOfb%dhseBt`dimV1jC*m8Oj zSw=~NknlR)&vu#C*`rsQ4d5qzkts99WdFUMMs!YzTM#?~WS}><-z{JMuCyhn$xQtzQ&#J|Is+9Fxddg0~Ed*dZR~>M)kO8 zF(mO{zF3mf-fy65KCwtSQ$B$~rKrhn=>t?#5vs+ih8MF!`I_ox*$FdK*e^MyIOKkJFIeTBbs{KFR0xn=+V-f5& z(>`4Mly<)CMTYcu-Y%y$SOZ1Nu0AbA(||3f=3hOG(A_wvLUcUOX{!_>v`7Uh6X#DB z3%Sr&gg$vI(%9e<3`k0_lUc55JuLEkv|w|%;cZO9G+#HF=RmuBS7@>SoY4Htsj_ow+J$mz&z4%_UD*=lH{7^V$f*~3PCjTjWX0sr1$AJcE z%lM%U-eK0SEJQ>^WEm6R&UU!@R4k@imd{S~sz^;ay;~#A=gSv268fn*HG9JHxb143G>-RA!s#5Ka8gqSztv_${mw?j)nk^Gr) zXsnzSncgDJy12G<0h8%rxFfnR2=3v2SLX76W;ZRm?4Sj6DNszR~ z%@4x|aK=T28tn;7$nLy`i~8=>GuL zP)Z{P&FOH)Zi@?Bb@QEndCyoQh*Ar7DL0NoMk3tkLRT{y(MXlAMkbyoUOuPzpX6(9p_)WU4QKQPGmM1 z{Iv^hjS=ccjef!NhjaZ!LxIAvgZd{N4o|G{F!}koEPb^%V5Jf>Ewn;TXEZHdYCWoy zvWaz@`^1_GrRDChzGmyR^FqE})i}~CJ__cer~bc=<-g?r+P{YtB)BVLSc|MtSW&@z z;shBk#MqB^g17gak56;ItJJK)RbN6390gmzZjyTM|4#ibH=Hd#SZu~5RjOB49cQodr~_$7hYF@gxtg&nv*uN+FKa_C*yl5Trlx2^^{Qs`8|6F*NkldR^PFEH`1(F*7&jkJ=mCk8s zNR*eCXRKmef+)PSZ_e^NzwhlXet*bcFl8G5zWx7xa8~+aGUWf?;4BPuyz?+69}55dKmMO% z|C2v7#*Sqiy1E*bYx@rqpkx4v>m6&6018Gt;{ErR**fwYnY4FE8VLR$%(Y&^9u*Xr z)iuul8@KVM8v3E-Mjy)Npi$|8aSdCMFr&t60x4+zuu_7qTUwa)iE)rWt# z^#9i5{HH9(|K1<^Tdp<*kcIo7iO>gO(#1q74c6e_dRey^|p=|89&VTD& fD3NB-;h!n;qp_l1`=?aFKtFO)%92&$CISBkPtQIS literal 0 HcmV?d00001 diff --git a/test/e2e/webdriver/image/xpath-contains.png b/test/e2e/webdriver/image/xpath-contains.png new file mode 100644 index 0000000000000000000000000000000000000000..d97e9cc0162cafd18f4efd1a42406bfe7456bbe2 GIT binary patch literal 316241 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

-j5O_u({aA5?}-pltzL~8UcVc|(e({&5VN{& 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ÐgWvkRzMALhIWFry+aaOQIMS6C?OoFzZDZuZE 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 literal 0 HcmV?d00001 diff --git a/test/e2e/webdriver/image/xpath.png b/test/e2e/webdriver/image/xpath.png new file mode 100644 index 0000000000000000000000000000000000000000..c94189079fb8a58776ed02e90a7baf572a883d2c GIT binary patch literal 236026 zcmeFZbx>7p8$Jq1DH19nNC{G#lJ4&APQgt#n{H8&ZjkOSr5jWl>5}g5Za8cEzWU*N z{LP&I&diyk!?0LuJ$*lST=(@Xe|cFk)CYJEU|?WSCB%glVPN3%fuBrdMBt9l#)2X6 z3*J~jMgRupb12HyD+J(gVncC785kH>au^uzw=gglz%B1J7#N3_FfbeXFfg1SVPJ4< z5^EK>fd}bebqOOG85j_7jSPbT`xxdPa0Ltehk?a|fz}3G!AQbB`+cnlOZo3Ra4;}_ zrZDjTzM~2JhW-l!exPOk`3)cO9tH{c>oN3BD(wGiPlfwc5Y9T;q7Z(FJ%EoamgG=&bFG=@~dUIOtz8 z(lavB0&mdTyI4V9In!F%lm1i5uX=>R_J($*HV{*5D`IH9uMDgmAUq@_(1w2h`=_4} zQ=|X2WM%*Fuz&&5L!Zzy(7mMpTQRV+>Hnb^^vOTPeva#(=D4AiaVmoCtt}j&y;89< zh43vFn)P+qg0m1oMhJk~boBpql{##VY+QQmS$>x zu$_>#CD0Cp_kV)=Z@Ie<|6A~94>j)gke&T*5AQtswSf4uQe0Bf zwWT{p^7rqxZ~1~gJb!`A-)sfP!0`E2Vn2p&U|?W_LUhY5Tgte~JncC$KMWj(Hw-*6 z3@r4rlL}*h?NLppq(~k!5e^Q{0y+gaA<=_>vX?BZtHuh)3FYT&cS`)coXdqnR_54< z6lnUloF~VPmpsxVq0}5oO z{NG&MtpI2lK3`Gs+1Q)kQ+4<8CrWSrXc0WjKPU6o8=09vzo_zp%?19L>tB!6G5J%w zNKhaAZR%j)6%}E8@}q{^D*pbM<^i!hI2;k-S7m?pfQrhSUq#YvQS~re)BTUhJZ|KGE@6<}^m*oYXHR$+ z!R0Atk+4+_FYT;|t`E9I=#A1uu}B$dCA6MnIB&ya%cFzlDMNdL*ci}WPtMCGIP*)t!Gpvr-1jV{qyktLVWcCDL zbM>CI*fwFj#HeQJ5){QCSl)=2S)6xVh_~!Uhi;>5QnBAmrr`OZd@=rb#3+03n`ZMDbB}Lc!X3KkW*`M< zxt#x2s8=`<2mX&PJsWxHnWKt8~j z?d*;LNf4S2wWv7zyCEw#2)k1>Fs~f2ulu%Ja#g{Uh&k-7N#JH49Cu1bcf|+-I^XMs z&FP(0p;z$sdi8y_)5Z3ShJT+OIp?Zl)DkLsOMuMo11ziT zUYKnlM*jotTKC``KR#l5hUpSz|MUrxEulX&2fYSys`H~7W+X3TbZnF&Qi0}iK+fzc zDMBtC%zTXdk_TG5)v{nqB;JK9%U&;fC)|-(8-CcEkm4)BbAvq<*Y{N3XlGIVSxZpW z$Kf!*3Xd;6H`UsGfco}oLQ6OE(fvORj}5mEB$@CacuHY`c6znd$@v8`dn8mGkIHRJ zWN9%72xP_tt-=7Q1x4|NDrwEFJpZL2fmNDY0|uWYrnc{NX7ah0<}rMt2w;MYT?VV= za&VCA?B(#zz{hFBc}iRjNHBM`|6B*0m6g>}0!yH_{PjuT?m@_u-VrL?$z#Bd=th_z z!J*M%I9`Tqy=r?ngEpfCLI0!E`aVJHhD~+Uv&(64u*Mib8Qf&Xokwtjb6>uR4L(oG zq2RvT7>th^zxV8LkHk6M?E?s|&Rg#uKn};HKOhqCnIQ`Yu-(`KyUUA(Ge}qP&Z0DT zB1G-(bUC?DtTu0R`9l};Ak{Vj<3msos&bZ$FF%$i-rZ*QK*-f~b)8ncZu?TJYH59I zr0^D4K;Kja648Csgo#&L69l!jwROV@GZOBIBZiHY&v0?^V`30!qUO2HsVo^_h?RJ( zrfBYJ&tDDMXai;k|8zXn_-+-yEPityRA}xkR4t4w zw)Nbd{@*Ln4xL2X6jWElzj-~0l7PhJxK34T{I%+8Xw^Gq0)4+G@Yhs9tM^uddUeX7 z&)EL%)u{nhw|lUz;r?|cK)^~QZrCmw-Q5wtHi!2j;5{r?_aXB5{%s}xzq!c#X6@T} z|6QhL$A8pUVC))19z&z4Q3+xK1RZx9}YB_t#$u(0fQjTAt3rd(=m=1H<7 zmjw}8I4pKnHw#Anttn_|q~j405f$Q@ca+Ob6hMmA7~l^5BvYF`@B_>~-xRltqxC%b zFK|n{dJ)__Jd1UOnnvcgBkw=mgGGL!*?e-VB6~z;3-`yu&uziUrL^}a^01jqch*Iu z+va^gQW4R!vv>GR-E(_0BQV{xDG^F2^06YJr!SOT_Nf>abrc(Q8M&`7+c&Y0?Bi#w zc&fLBV3dtxol|&U(v!7}h6@7-DLNr{s+?ANy8UWj_k!0=RdA_spOtd7prD}1)|r3# zc@^#ZWlK#jfg~=+Pfu+gprhw77`6}P>y154p3PDcyQux9M&caZ_UWoOiHrHw!s~B` zOvb&^LWroToJ7N{+_6lS+fA+S6#&sxr-ga|ByAfLxyZmcDKVZrxlF;dK7T?$P~>UQ z(wI^r_r~&t*gH!u$8IBYm68bjo(!4a`%1r}dHfT_(M>&ntsT9hlk7mD>3ZKuE2WsL zla8k%`upIgB2qDQQhP_%wT{`vNnB*=a#}uOo9+YI1h)Dw8l$+>=rqgq36~#bR0T!w zT$q$JK0OWT6kKZ*BWKw6hXyCRm9?&GtI)_@BVtDM); zQC%Gx7>KeDxF8kt*tQ^e2%r(x*==B8C!wLkGzRT2HMDo}K)d=dY9`5kf<`=R%Jx1V z`bCw}eaVzjl}^dQlRir?g&exs+*Q_GJvl@QyOj{(%8mLr$CPIcJnJt}^9kP(Go%fhl_b6kWZ*6-(%t>pMHNAwyI>2JqElDJG)3OUTUxIr6rJJZ94 zH_KMts(SrCzJ9NDYaz+QWnxYsomxzuKzC8MlbwuCrR@A;zMI_V!Oxf^c~+9f?N1xCm0@_C_rg>QHAMnrTM%h$wv)W9DXgunkKMH{OIV{Gav>{|-2=r# zOrZAWVn5Zs1R9!_EGP-3{L**g_k9klQU-JYqVteuJk3y z#4&*fRT>w zYVvVCUZ>tHU7i@B?(FWCa@q;;a#XB4(d*_WG_CZQRINz7=f~sbMIXx1QSLfIZ?vhg zAFt-H;gy?QX3;5EYnsrbRjGJSN2|&r9q#j=bjh|0|C{cz5kDMEaN5VX6-t|YX1KkNg%ud;iUS7Hr4pG3pqJtXvef&5dm2J@$x z3zb^T)}q#G1?2Sh>xwUvI9otHIL7eMw4=%cG+=n|R-V z_*Wn5^Re#Fzy7`1p@ytk(+6G3DBWVlN>ydn{ya_PI0&@g@rX{MS995`#5T`K&^zT zPPx$Jk;Cku?7ZN+*N^0m>pU(iHG2p>%GLCSW&M*-aOels2n=#oZEwD>EBT92l0{)( zvxkP@Psxd)Z&Q>&)*lx5y?;N*XHW!^#b4_F$l$BFyFQd-mm+3e6Gu~8tooP>m$4=3 zn>F%qHpp5v#*bUmd|-iWf~3~|lujm&QKn~+IGuHT!pl`SCpPejNDq7XaT+NgPTd>a)V^A{warCQaQPc zvoi)#9AGX{3l6^?ZcjKVck|{Fu%U)Bp-g&rAnLQg7PquVG5PKJ z{UeOt{>@%r(DQEI5W8M*i^lB1ZCI-5W`b!S3~uzHD78{i&=jkUq)TJxhfO*whjfA; zb3-KbMI3QTUu~(vS=z4_<{F%^@((4H=7*|kQ#OJ^iTJWl^qf?Eg^T#CMXo-Rc?=aH zP1ia|1r63_7UQ;UvzQ*;uQ1C?iRiRGy>x5mJFtuN`Y35A)=sBd(!kqwhl}(Tkpzr(T(PDPVsn~;RGkNWhq~M5+=X+EU~qQM}|JR zgf&-Dd=~7{u2;x(Y}FG#oZ}>yK<|3C_o$}1#_{NBXzfL#9KB?cCZAEdOIfy^Ft#3~ zXTpKmZusfKTwKJ?Or6-Y>rrOIr2&ro>Txc}d}gBk*jeBzZ^(!;=c$!T`DjpF*~76< zj6Ba7uGx5S+A+NO2cbw-EkW3-n~qBpp_gj^l?P>-)AE{Xtvj*8Q)`J)qpFHLAB(c0+l+$=O+r?)3RlST~(S215 zRG@K4kgxn1Zn-yFs_3iIB_7LlRC!>h{i_%n4U?meM`k>_hWW~I2g8M}#>1H!_W9~H zAj@-)0!?1iuj~u!u9BQiH{2e>xt}>3LQA;3b}S|uEvbw2%Hl7Mw=)pG8ui8teG?5* zl&z>P(ipn9(XxOC07w3Ggriqm!YLt7{u3UwJitfyPn|G$F>+1OCIBjKwRYXSoWxoX z8O>q+E=AkQ%y*MmyRY8(sQ(*klayR%N={aH%+Oa6zD}uw@@kGUBXwz%1&a5CbYmy{NbQU*h|Cn13uW9O-r59vH68~kczN7ID-Mp&bgl4l(#&~ihIr4ngRa_|on}i&;uz#R^g}V}&YOJyIqVN^L<$+iW^(-K<4m6+(@QSBvCjL-|cQ!Iif) zD#fHDSoRs)GamFOXl`W zKWUFi0$`U;Q zu8Re3KLcs|^QI?70OfqZG8nUt7>*x@V=QYfBHJmtP zXX55gq(eaJo(pu0*YWm(*&eS`L$q@CvDVe{#*i^6E?Uvs7JaPJ!AXUAyS{}of3U8|LA=er4ZP>T}xC+mJWd7B5z^lPPXZRt81A7 zl3zGO2=(5aDJB>X(w~o}`h8Jkasr1`u4)NYkt%7PUvc*4-tfE1X!q?HoE<_wM@-u} z;e>c*bGn=eDwm;b>1=efrV{+Yq&lZO>n7OpYcHpqCo-RJ@Pyc zWjw%pjXDXcypNE7hM&Choi<`O6y@c3n;VzK= za8h4L%qhGsS6Pkjj0?HJAk9+*iMJ*#RAhMGT0R*m&=RW(@u|XoFQm5qev++CD3IvA72n*hU^goVcA$k)@}CKR|a6KL!h}^s4E1dbwrhMONpQS zE8;$5%ETbf_YXoiB-M7sH0y=X6!*pRADZgWj!O8y>F<}Xb=kxQA9jm28a&V!^v@~V zKjPp1Iv>+J&r;|-?~sfb&8Nrvt!hYvQ!OFo2d`P5$_dm1Z^*QA;UrApb~_0=Sm_i3 z0)vfc~k?60mo1TUrI9ovAbdr z9?q}4O|t;}iJpt_G#la*>oT`G1%=siWp*h|&{|}SazS_(~(0~xCp7I0dD z^rs19;$8qsOYp3Ft2O-eoty)p?Q}!<-%YKr&C1$Z%e!$jG^_l?1?C(8JbuH$IiMN| znV(nz&JT?s`w)j-(Q*0Q{fb()@iMSf zxC6?~nf)_|or|Kau|B?%RF(oY^=UEXAU*v_y-CxK{`u0uh!kx3Wy$CTzAu>&K<6_% zTs+jFqYtR{>@m|JMEmIlHrvA27B&c%olZ$tqJfWWvYK_XIw=Tl#v?2`Or8QO?(KVj z&TF4w%O{l!!&wJDh6dQvIqSY?`_q$|_ZM>ou3h(4K1+@J+_Np|n znGhwF!1-~}o&rc=X4QM9pCcpAf|p$0%dA3irkGr2bj!|$>^Lj9l)`4bg8DaT(5(DD zUQ7s(wGof!2hhuX$we{7z1K&QudOOPuWQTqa#|1IQrxcws0lJlS3D!h;|`3Aw2up1 z2Uv@mQs1L)D2*0sPzl#3-Tx=?gRhqAL8iBW4yf^;A-*m&6(aR`8)yt0VTMvC0Epqu zKPRG`vGi7Er+pLa2P{peQ7>XLvqiBoKMVm!wVtdLje4s0t0XnDq4-M=m7V35&L6AM z0OWabvQDPA-Q!WUGBRJ%#gm@$MfwU~24@jOiosZY3gbU5W) zM|_n}hHQdj0M$>*6~Sgr$RfV{lt+mEXE%R^gg{2W`R(p+E&;JFEDp|91tvYlgS%p~ z7Y_tnBjz{Wwr&{C(Fk;UHG*!ZI~jA`YLrRpd-c+BgG+j)FI-$)@~RxR&TMNvxEz^# zqYKnVu5Pazgr?<^I9Z@*3wKCRP^M1ZZRBN*-Ad-ycPM$s$$VbLvINRq&`7Et<}#dA z3_P8$lK-J1(tX(8c@?m_<;J_Z3`u+B%RP|^k^#I2koLEOWyXDLTjTbSgCkP_tA@h@ zsfTsNQj2lte^Anw$9VVlZA9g*e}kSSQF=zkx}wd?Bo6zSH*b37^Of_Kc(CYIr5my< z8`nLhr61~G_bo)N?RG}ybcnG>;V5wiVo`%GO*Hw^3_U9!g%WM%zkByC{A3*571h~) z(AJZ%K=@`2qL1-z7CrVdDdeuyHZOTVi}t7@20x4drlv|+>*NPn+&9W3>V2>FF7cSk3^Ct^+AHx%op zGV^`^Fe}ANBM&ogGL+9u+!qOrIN8V~ioJj6cyfnC{4tKU(gqM12CnqRNiZ4rq|r86 zM~_p45|9G~ImxYSkfm<5bNIyxkvO1jR7)X~F+F@)yRHyYYwJZeHd~lHxmnnwzTTwT z!!z$)+o_KOM(6jzkhNhA8c(9M0>_;zmt$NT0sqIXrq}T!W&~(2_xsuacs{29bn2y37Sp)P)=Z<BF(vE3$~0 zXu@s0&YEu|U&l|i=xp5L#i-D}Xh)@xPFP_M%?O&IYozIIIsV?4T2J28H1Bke^m$*sy;a8Btl$y7YVe^b$yum|cR+yEYax zbW)Tig?r(4GjuEAZ=pw377S#Vd&%1v`~-OMgs z$`edq?k#Itlv_XO|EHpv08bw=KhamU7$ zdqKl7wyjs#f3zV02ZELhZOM??i}?HFm`GA>+xBjhaz>HDoRcWY#J>%Fn!)mcmo**C ze4cC<%jd=070HDT{{GRYtku)1W|^;iXwqYdw{uVqvBN;ubq>xbBP9-n|oeS zTnbDv0W&+@+L6buF5_BudFz+DgXONl!4&L43YmC`)93=#Cvx|cuduJnKRR;~QlNq8 zv|pyww}>;4+0IOjGnr1k^>2agY{^U)3HYeew-PJUP+4h{w&r)hbOaz?%pM!Br)$;g zi^rDy7r}&~&WkB&da8vHeSVYkRH0HWQGBxanG3{mjzymz;xfvQ(Iru8omdRZNrx{n z8%@E-^Vr8vwG;hkzaq~aOHwTc6#zC+^}*iPdHmFc7E-rMkGZkP0A9S|`;s$yPT zXZcW?2Ul5)%ZpG}hl^U@6ZxGc4US?odfws}x*wtV-_rA0!_b}Cd;w4vnzajPV(*nu zxrW3hX%EcHGnl6!MU&dvZf@kH+oS78>{B76}oRjGMBss!rwy|idi|vXENhX0g zubjUJC9ofse9N zoG3TV`;2_Bcf{pJVaZp$jYhzw<#1nDOG@I(NR$i;1sL@t7vRTRMn8JZeH}SVx3;=z zu8M^F=ZYO5f4oIua4Ggx1FnC2&&@GF~7 zua9!)G3Rzuh&>|b64*I59H(CbRtc~zEw;UM0k=Pk!c5v0M>lh7bj~qFBAVE zk0*&$)W^r}W!X&JBxpV$^Gtc9-!U*CTPKeI@SZos1OP@pWq2p3Pr1JRc+o}*Q4P=^ zv2MC8ZiEf>eaOvd(t429lHndfy&o@fpNzhwx+4B@e)lqWmYf7&;i>Det3q3}HY_A2 zHuuxFNAerMD)wE&Qs{E%6^*6U_3^Jh9sUS#V`QiOLIZTqT2J%iSCiqe(wo?-*s2Sr z;Sy`2jQsa5fJgK4yBPUhc_9wthB|1W)S3W!WQ(|2Y4eQfbqDc8&7t18C@c8EnEGdD zHlzaGEM>rtsHmf8Eoat6r)q3L`8*j>KDJo(pz?g-P?#l_NlZIzW$m*e=94Ev^=MI9 znMr2Gd9sQJ71td!Gld_2T+W#TGNoAT(sr5RJ{(qfU)W9uAo%`r@qnO_7>w}gqidJz zq8Z>SV!_orU(7UI4#)2pyv1s|4xN?FdEptT1%Z^?QC88>+1^HCpKrw#e}9BlK6D*( zeT9MmU^PEzJ(GZgNF}&!{`aEm9B++3Yv}fwZJph(J#MbH>x{6q z_R&64y1HJfx_49IQP*modZ+)ur8uuowbuyQEK5HlbdC!UZpLdOX9{#;c`wt0HS}Mo zfYcl=@a4>z2&N-x6H;80lqlr#E<;Mcp@cZ?oK;LD?aUshn~xO(SPvS~{QHN`(f|m8 z9MVKcNI2Z6qvgUYH@!JfhBIA@Wi(2-T46B~k4<;sZ#Gs`LYLZ$#bq{Q#%{BRF;R8v zJ${~+mNwiVHZ^(j9rWY*;wIYmh^p(+mJ9`IGJT0yEBMe$TioFp^YHc6-okO0a>qK8 z@xVoJ!thBs7mAmrG=Q3?mvA{mYgyu++;y^He3o#Uhntqz+OUY{j^LDXdQwx=3WLVd zq;f)9HYwlv@yX|y*b=Wc`}iu?*pYE;TTEY|Zg2_#K_456G8WFzWYlo2C0D*$6#IRC=M+R~)3 zyJVAiW$IeRivR$TDo1_<6g}dxbyv(`;HXFe7pjYW5rko528$N4N6`q`o#D~YF0mq* zI2m(<`Ux)Im6py7;~O^zdYGjU<*{k5By{YNMzQNh^|~Ir>S$E>T~U%qiEM0I22#8xg@6Le^1DrHvPRSKOlUjR-&c+A2)kH%r6`m8aFv$%L)FGJr4uH1FG&rUP>;5|>)J&{1n@S%Gg z@)0cNs$`Qk<~`R3{_h@OWsXpLX7AQIWw@Uo#8tlez0F&j=`0yvMFYzi-r%=N3s z!FU{r)m{@VupnJb&u_JQdCGY(mI@IkE|93K7L-)E_?IEsK-2?wb&Xn3ftfMnsoU5> zBiI*Y$!S7!_edX3V3EtFJf@4?6W&(+j6 z?*%@3^r$7Uz%A!=ROX4aV!I`~|5#=%Ccd;gAFl9ATCGZp0~f8y7q_Rlj~|1)WZ6wx zR}Ueg|5MU);&AkrZdbtxua-zW=i8f(lz6YEHP1bZEC@Oudbm^|EWAgopE&iI0Z6VT zc`!)w(qjAS_61k5lqFI}pcjPEEks(120O7i_wa(n%T6x1BMOB5tE<*D+>#qM_tz=~ z5m3l$G;S25NyQw`CG1GqAKkU17@rFGr>-#TSOeScxI1?*!`K1j>+$Nli9g(i-`-K@ z3t-zZeo6l;We~=v1scDx(+|J@UEppt;^aWx5%;nGPF6&IAqxOhEiP%Sf5<)*YJnOE zenx2B(w|KJN|WR#wuM^YUX+SI6zy*qH9`WY`}G@crf2f>8{ z?BRDPIFv76eh?HC%+vn@2PHLhC2_IUR9FAlW+mix6*hj;+rQq-?|OB19}8=YQn!%u z{Os(-240obI|TrvK=7~R<{k`S4N!PA5TjNLQLT#9KE)>_lpPZi9QLfPsZsa>hcIlI zL9o+ZQ?|Ocb$$pr-cacZ=i$P_SlzS#w2};kHa05Ep?p0~w;g-{d{G!65y=GzT~MB1 zhE)7AfLsjV4){sMzFD7XaEqdlvjQwd3B&>CR9~jnW}hU9&r9Hj#>K@=DGlc|?8jGnU4v^`wRIR@ZI0e!6ck5(wJZEi{dJfeu!>@hhC&o;Z&F7UeYg9cln3sdT) zzSz*gOo@!1ue?Bbjs&dbmiGtpyTStqw}OH~xy^t99+&5vS5=GvnJ$t%C?j8GhMA^{ zHPV-jR5UoPVsrFavSOtLE*_gJ=5kL$`zP(rC4TWf-Pxi2ClpaM)0Gk#a=Ci5yo~Z0 z)cyD`R(be<1cIj5d33QCG*IO8x|JEacfE6Rdo4pM8j?*-!Vivmk47lm6VFPnrlyu* zfP1t#Qb&)F#9^p@qtT6hq!Vg|eNXqw0?^xX_N%uh&b&xqM6@+AmYF;&_1-wZAZ5)j z5T0yJo2%yl@!Z;^b#2R~c95+5+1_)2Q`eu{VUWDg!#6f$^u1i2zVXd-UqtzC?4HiG zi`@~|SR>gKv;8BNueSRU;M#*CEmj4et8)jJpS&8t&ht&84*Wr1z!#lc>CrkGUoD~q zSVb95J5!H*VjW4483NdwBcmWo9SZqlbEJU+Agjavv~S7nD z5f#@6dkc@xmNDtc5NeSG0Fgxv(N;JBDVIK7k8%y{(;9TZkEl=&`FYgIAK*lTJ{#ns z-{~|g64u%5EY})9R3yuHGHeT`&~2w=FwI7u*~=|#d4ZO@xAuZ;U%VKg41)YrEjcK^ z4vm*naqPz3QwE&3eqFj54_&@I>s#3UQ3l#X2K!1n^B*4+Y7Li(0eBXyRyAF5$#>zg zNn}P?N2igWlHT@?+o4!@n$wJDyO+qzVu-M7E|!ke=U(y!Zn{Pjwa*46RDoiYz>MYw z#3H@Bt3#a~;In1e^y+eYkt)^!IwPePE8oH+>1!mk(cns#Bg!|Px}PIz9d}-j1lzqd znz=$Sa;Wo|jE-k9l{V$!UbBAm^4Uw1m$s9V3#Q(er$ng$N3W}J`gWTkLAL$N#{p6? z`3f`ZfhPlmf+d<#A+gcyGOKmS<+HtPg?SSNPR5w()ncEeQO3+fg{2UgR8+qz zX(Kf6I(G(`2aX#iLG-)!AuP2SU~crl@m--G5|PWK0s#$$;@-jvUvGlYi23MXh0_Hj zb%(vt_Yj9J9?M=n)xN!C%%F`WMX%UG9#g-$Ozh z{F;KjxnaBKcTXj@#Um~oNI-NGW33)OTXBV4w$aFEd3c70hiA*k7de^dyJ(bMK(jFr zb2(cZNeKZ1ScjpOzN+omBCum`BFAg_GQ-v4TC)i@l8pz2+#PYGNc(*mUp{$=XifyUYr?+s%Kc}BbK&#K&r?_} z4X|@Lz2@IMR3>ZZvG0G6gDbZ+EV^Uw?InT7$Zpj`i({8o)w=f5a$!9%o64)vopE!* z;m}yU!VF8t0U*~x2~OM7ReC*RjkFAUGxcVTrDXuUdoX79WrtC=^*+kpsan2b+e2K) zX*0s^Xkl8+AsW(ww32P)T(~I*K=lDA+|V-|6^glkBv+BJtKF9aGfQ>m60s7Q9CsQSXA z{QxaSCFsJSn}^!^j45e!G}V)5VL)qQF1a$ai&xHEIhz&aawS?nX~0ubU=T2Svh9^n zp#TI{OFKJs1@;&N%=>uSL|()4Ju4^W0wB7MmDQY>9GQesny^-%{M(bQERuI92?%*- zEnU&nd8>!YA~z;ao&T-JKK(ki5NiUmvRUPwBHYMU^*;4*#X|k|1fy8=czim+UxRokIG+4;(vcB zGhpz@s+2_j_-fpKNQoA)I?CZ))RS~WgD4%`r%LE8A*Cx(tf8kawF#yH{vnp_Gp80u z@A(KVnax^Wey&vJ8?sV&sCT?Z#N#jvYOU3CpOK_xLM66?MQX3S*{5hw+tm5&Is62V zdNh|&Ci~0hS3*ci+nmP^BhGI>u8V_;o6WUwgI^CNy92(@MQ-?cE=QK^rK9DDenLd- z4_YK7x09Qhy>i+Fwij-x0kaU3?PrvzT>jEO&pZRkx!}jBeTD>`Y@l}oyn&iZxtcj};OfrwVR$!Flk2aedIe&CC)JxR>~v(iQWY9X9rpJ0Sf0=w z)s4y_J0LlinfgdH5qL?INIxv zo@UA`z~pt_;~!V4>S_RKRq$`UI7xQep0GT7&!<~PX|jN8IaKT6nK1v>KN6fQ7ek}` z{j1ilb9p4=g6Uo}Y&n!NcU-Jmq9FyGAW)p7SF5DCt~BMLRX=-Td3$Nis57OL$L_KK zUp9vm8a7CdW^`RXC)Nefi@(#oz%Fun(&xIi7d~OulFl0UeUGcJkN_jxU3VJfzBb0$nKw3J1`{ zWB?J&rxb4ouV>@Ct|tGalL0L|BHUh+^_ez4lKtD9T*oc#5L!@6%R>aaUFN953`_PB^WWmdWamclY$zOf!JQ}JLn-|U9T z_Nql9U$2A?@W?5}i2nFUPS}(2!m>Z$(E05kz}t>Cs99z;{vMyvz32;vaL~=|HeEK35E1qT7LSOC zsMhW{|3ah2j3rJM<+YS$SOER;);QBQYSDlzLLRq-XlQ2D`E{h}f_}#Oksz9+sHo^h z{sE_IcIR%ZrZ$K0Cs8+ae2XiUptHg3_E4gs%BGt^qfU>Z6xgx{9Z;>S{|=zTX!yJZ z-Blts5LmRRy|uU|r>hLd=zAond{#7KE3f-vf=zM@g_7FhS+HrwM_sv`&R8@euIddcyMa@Rv%OnhYfc@_2BDIPa#=;lahKiETmfiw!1Be1L>H2@vR>+dWL>YI>GT~5 z37sH44l$z>aO`5L`(g$sNAlM%I*-{uwGc`9`+AYJLU?7fTI}Z)G_o@qogq)XXtDyZ zy0k#0pcF6J)!XWR1Dz95;Ik3v4~X|P@9S^Onjf>2QQ$;P##CoA_=;lZl&SpPu`GQ7b>C9Z0+R|pgEgH^6Y3# zCevQlJ3c`gd>rYl9J9`8z^zlJ<#d?m;eM-EamhHd^33BP{2^tVR%fQo%8}^?GA;V& zj%y$dDPz{+)$ygbATVXabOhAnUp81eK*r8Ov@;zQ)SJ_L8sz&nsFckq;aWT3NM!*? z^nCuJuSJz`+kN&1nEss*XS2;=_Rke_an@05GBT-es1W(L$XZ zK#|!RisqTy$6>|4e%#`<&3<6L>6ck&E;5E#U|KNe8(St9m@lZ7Gt_zt_QmGZlK`$173t4YkmO*xcLn^- z9Pnoq^@+~iM4p%a|G=*o^e$9crIzhhE_s?G1)0NSwgkUD0)F6_cEB5Yy=;K!9g&if zaz?iR&|SZN{krsKoWt(*SkZm(`Vurt(JB>7$q9xW?b*~4J|>x* zuY$M30DY#)J5BttsjifgBdy!ynPhce4oz}jaF4rzjtuImttr}ka<5AbMLq#PLD@X) zpf-QvmD2$52m$w}>+oQ?hZJYD>coAxOlA)3720IW6r|lEE{e8CMRaqn;Q2nP$kNHb z>^TMn0CgrJoDl2dK%uU$A4KoQMKG`cuLsNXVWJF-(rx0l|Dq?{x9 z#OYr|!as6dy-*jtjK_A0{%??{jXcmU{?V6ItvfsW_vQb-a`4v!>u4aLYG2-`5S0II zy8pF(=erqDEA*e9Hw!=ytoI}NTK(xg|J$}P^d!}IGW!nBU#rdq&cmTy==cBi%Q15n z&>(a2N&EF*53D0W53CCiJ*@rfXL^9S20oGCwotA2f17Av5Ob-}s@Hr4s{T73=(xSh zpa<41{g@=N*r5)lM+^w6c&O)+n)HP>Z4v}35}+b2@7l9cq@q)8bH!F!#3T-4E> z>vBXf?kQ6`(+@XEe-Uo~6;f|fWMDp!=(!UGt)?QJuz;^tv_8Q3aEf+H z#49S7%pL6z!6c7mO<_S9G;eQc(9zo3`d*bLg>!y)oEf|tTKm8}ZjUJTvYW^Z*sP zNtiZYsSxoUpNn|pZJZPv(M)z8h~6Gd|hF6B;#NW!f%JY3t<@{#WR`{YN?| z>#k?0W|h^X+nbfRqy<|SQTv`vMG@?M0RM}} zF*8ZYM}XOM!lD-7%@k{8_@SnLMOY+CE99ET;zEA-Af4ZK7dV=eL8HN_^x2>_Hww8I z2q$7QxuA)CfUnWTs-svV@4wL6F*}=bBZtH2qfTjx|Z6_>J7?e_vy=%}b!sZ7SvLi>TjL?DIqYS+T)nip_cz)|zm)KsP@ zULjWyU9wmlo8WBMQ=a z=u*W-h1t}=9+QMYt9uN7Z+EXXd`g)6NB6H z{Hx~|#bL!5fXRIa^Oz7`%fEL&T15x&o`pilIlnwA%E(+3thlgDg-&}N0|+4qz^_A_ z#z}Id6~8rkqc`(l0H3M`{e{ms<4A+c9%(?Y|%n--LUEUxLHJ zGOoqthLYA66nZZ>+B@ZtyN&dcg7VO`q_7S9i;~{eZEZm$j(QV6GY2urgm=URdBDgO zxaBdWprr7eEg;0kbKYQd%a*0wIk@o;2!GjRt0qN%6rvPzPEF{}a@Lzs%TNkuWsdr8 zvygLuirEo|E#E`e%IPp8)yU9_B^q>Eli6?DAcig4Ob>;*;H4V-3lch2*1bDr`6~6 zL2+|`Qg)a(>P9p(M8aXw)pdAylXA{{2}+(=^_`7)_XDW6*6w4B=5jDiWPSHkwd5#Q zGa={EyGlCZ#UPQRk8gTw_&w8Otr~8218gxc+9)yUGI-OHtq;E(jARg z0KsH9DyP?YKDM6($Z}0?-N2v=d1@u#7mo#L3jmJzh&tE0^(VAVxtn)%3_xxoi2-)u z7DC3AYzdS+tN&cs^1k|zA$rW1!mR|ru#ftkFf1PLe}&osM9h-zie?W3s7)ff7xi_^ z3VAQ+k(B9RvKW9EN={qJrgElkPZU`x@Gx4~>Ul8CxjHq~w=mx2R=nc2;ATCh;d z9+L}*xHs>uu#LHH=hVjqlAYYi)GvzFJQ0VFPjJ45=c8 z9If_b)Mo4+j0WAFk;Wp>?psYMQ5h>%Z%!OW`#DMj$m&*KL-2Ejbzuampsrn`OgR-5 z9pAlN*DMMj&JPB!qS5lF66H=W(%ye}96m`QgmnY8^09-Y9=Aeu1HFwoBIR8#FU;ua zs_xsSve2m=dvjI#xm!OiB|8o)Qzy9GE6Q2jSj$?sEEc=IpBFQax*3!0nPM4XrPvLi3ei?W2d`68%r?{Br*mmPwz@XqxqLT* z1khZW{oq3o)(n zHg2n7Y!*xM!DAF4i|f{F)a{Qdxoe(%3r#?J>@Cpd0n~BDi+FXvT_UH+@WnV0_D}<5 z4^I+bIIVK-@a)A0D~qH2Y!$=yWuUs$ga=|afI}JAd{>pZR?%`>-pPcrH%C(q0Lg#A za}t6S;_Uid#6jZJ$odV8;#9hXkn5NZh%^EHtMS>dBstmEHqf>#!@{3N2_5>e&Fz~7 z0n71VEc=KarR9a)$a9~YX8nTwP zy){YL5AvQ!RSuiakyZ+Hbc)qjCfHVA?09%BgZ*tRX6MFEg1Uq z>lbm4vwq6E6Z?q;rm1f7m;!9(%61l8uiLN!f134um%$yJ*N%>>yo2(HSjxwGL9W;P z<}?3$g*2cWDH1<{2+dcwX&6=Of8SMu$8*AU91gO zM4{$72K%@~Go zj+6TLtsf{It6@K!VklGv12gTX(<@Jz$apd(wHF-I#I?qX)e;KTUeSLvN^tDp1=&ut z3NuTrQIGc*Y850CXD{#22^AjMp5yui5zque;PGpk6Q1RsOaRa$wu z*4}Kmxo3~*vb6eVO~_-**Q~T7WJtS|5vwhD+YpA%va4b!tw}(|TUdA0h*D#^`siV$ zy)3SUi>qIR^PN8DRu}BavzBeSvPn2WB{@&$c(ulpZn`D3hTdluPvnWwOkek-EH6$k zY~121qhfY(!$k$9(3MKe@!{)2rA^z%T$R>jsx@rps3{MdUhJ%3-Z|BQ*o$$RGRda= zmfLZvRxi(wK<%ujN;^l~T%JtRqZPVVbb8h0I!SZ|R%{kC4%uEeIng+a<^a~eeeUGJ zCed-dS`!WEea5CfC-vJ#_O|`OWIplnr7auW&Tv(KmE>+A5N$M#0>BwEPSFHvo*8c6 zN$bDoiYx1<1jWPvZCFe=6lZ`ur6N!p(BlvTmsYvYL#Y7Hu$q7JjYb4;s-(wP~Ju29dpYFG>GW$ zsp;iE&{D~@t`EdM2k-}9qXz~eAR~UllLv@pAYYB#Ai5az^ttDp?Udo14M5v8!EoN! z=l=de$;>7)OcOaHYDEdM*av#A z5&DIFL_V@e;+XL{ILP4Lm<2e_iEa)XxtX6IMwMv{0{J|=3+ow|p|PE3D#a4d+;{q= za#f=|Jr9>fPiJebr}N>{DL_9itniTK0#5+-7$->BJFaFkDb#GLwI0=vu%JIe+b^50 z$q^F%GIDdj0xYv+uMOlE8$7M`kdkrb<5;}5LS9KMhWExX1#d-Kn=m}y4<&n(Ozb_v z=~vYk?8b_N+RVv@lT{FMsYFNN3zP&t_qU>vOU)EZ^8|X>bc7)m>l8$3APEF({`mY5 zU+MUxsQv=h!%E7#m|sEypi6!Fr0^K9aH78APw?q=d=UrrDD(_k-Xnt%K8Od$_Y-kG<8U z_?v}#rixq>&O0WBLCLp|9lf;a#vcH0uR)f+Ho#W513f2y3}t=AwHa&?Mr zh54mGR<%II&)pLe$^Nybf|E1%MXDvg)AyIlf&_U+neQhzCx>aIQl@JxpP&@hLeJyW zipTYn2A2pwnL~x)<6tjTOvosaL%*28q1)5^?b%j_weFN?%&~UAr;q2aE2mwJl}_sl z6?W9pg0}Ycj-EObaXMBL=fkhV!JCtZ(W3>|ah6H7yUBz*BDA#Xj9&U6&-tU7eNF`@ zB^mNyCcvfWi&2rleX4jAV-2v3RvE(|EVISA`q}*@8?%u{ongHd$RH&~j=p z(koO;EFtA_A0h5rcYIv&Wb!0;FdNLKSw?1+lnmGRgf2U930l$8D$}|RJIV1HT6U!) z5G-U85xWap2f@E00T%lkvEQd#Dl=L7{5$*o?SY>TS7mpkgr?Vt?H~&`8@_mzh|+w% znO3I~|AchPH~LPuLNf3$^jjqEiJ0JrBWx>KTFC~RFDLUc7affRQVGtze#{=(;fVa{ zk8Qoh*dC~6F!;@wL{D|Z@XM(~1BOm~2o(n&d5@klTnju>%CpajH4(`01Bd4^#tvG(4fam*Xf4Tc2Lx8V-OfYD4pK-&(4&NtS4+lbBlhu7L z^0?6JLR4DH>YcS@a3~2LFCJwRr^)eg)sxl5qgM$=(4{bqA)eOkYMQ}{18GLa-Wb|_ zs4dyy&oN!4v%m$yfxL)dbDsQe|*9*4r zhyRq4TJ{)28Hr)n={Ul;LL~K|mYx{V^N;fp1R%{QbqbqS=_5VV5`eCX6@i#@9gNLX zo~p3Sq?`QKc9yxA*qvpcWA+RFa(A&-!&A3b4bJPXLkM1GgBW+kPXwBqBaPQSWL4pH zF5EqFG;!zFM!Vlvr+Y;L9dMHPy;g*YvX_sy@rq~#q)6s1n$4#&*zB{%_Rx-*HeJXU z;#4n6z9a|1JG>EAKaabS(n6}YPS_LH()!Q$G^DNpbS0*Zk`KeZjE8jRg77qdUXP%E zu1dz{zCB*t3<>7<{0txK%NOaT`^xOW+#RcC6K~pf)DNe1 z{>lO1&>!41K{w@=XzlX+mvehRyz6%<+}bwBbahY7p#asUZt<4|L&{t@be+FG;i@#> zVq(1s*lLWFFc!8 zuW3x+4(PYGNy4JOWd8ow@i{!*LH;gQ;}JEnx6L1KW`Oo~DDoIjx!gk@wc85;1WLy> zF;tdz!wY~2A1exQCf_9MSvsa#%)_ox6bhKv`uT;wJYp%aJg&&GvM2)^EIm&uJN7x- zzyCU@P(7wLRG!#V^ zikSCcLU@ag4oyX8>8mx4-tGB*1NG<~m~C)yS?BOJ=Zl)nWV7ncg-g!W`40Jb%%h@=3(B(-)*re}$~c)brwLw625MW7WJRrM zFhsVNY<9`90DV$FnWKB!R_EsJPK#kiCAEgCs$x@0iaEoWcV7GbhV#+!#HQ9^s<`!|Kk0!*vbWu$ayPVb1WH*Li>&2z4C+jq| zTE-O_y(?-q*(|s0-jP_jufVK)KpPt^&+__iErww(gr1CEd6;ol^Yy}N(8H5j;zLwK zG>V8I-_oEsEs8>&gb{mj__qu9T+f3FaVT*;(ZS}Aqsw!%oEfi_64iHn#P!aW@rsOf zb0a@hDVcj^!jB)voO&+mnMtLKuRwSv^t^J|tQGRk8iMtLgF$o=0wQq zVKxcpN5|uZ0fYQ}qbu>$Q4`JD+=-SwaI<~o`({RBk75r8`5Ba{TVLsNFD!kShY4I8 z?scjbuHtr$Y<;@u?;?>hM^Y={KfV?dXKCR&bkeL|l-F!NkSDT=YMT+5<~v-)3V&+K z6y_tDJ1B8+Xg1n~J#vC`tGom80AZf(+JwG_9Pe*?mOUc9iIGX-7v{g(G};>4lB3CJ zDIL(5y1GVFam?0AYYp#t$P`wWxY~s>+<2>M^S)&#$hWMPgsM(%i%vPtn?au;jsCQE zG>QSWmS@6AR7aUUEjCr5)qse|y`PfVeEf;qe&>Yjw_UzKdM(9RsD?F_$ppK+{)B!Z z0mfC1`iugW;5`H%M3_@6q$edit6*02J~Of72ux5kIMZYhe z>hgigNn+X!DBp>JybGxFOh7tT0vZ6lMdpIXbivGGeOQra*}Coy{Wo$csi{L3!Rye*OAHIsL~d zP)>w~gr@TOUL+%yAO$a?lcic!>tyjyTvB!bnWK+FlKNJ->xTyj!~6f{bZA`)X*(@ z^16I?Che%V24!USR&jBdGlhp+YI{NtvU*5FDJuTLnm>a1NV=(EPKM;EZfODmQx$`3v3k^JSjiBzm znHk6+Z9L0?lo0XkWx*T*1D*#qdNCx{>jalJ=UtSuny-|-pRXJ% zEY&H<1pkoJ4P2(Zw&;j0(aw4M`3Mk=pK7?xRnmus9mV~9I?|>CHD#1Fum?c55Whm8 z+9Zj*L&;uwdXFPM*`xr!W^5vC&rAt5dwiZhcQ8}A^Re37(+<;5G1pwg*>pxXb?ark zZ1yoSsYhW>68E(RLrE#Q4MRTOLqszc0TPvBqntqL%Z&rVwf)l`rmnVm->^*kvIp_w zZZ|jn6eSKH`BJHDgeLC>WB^Ngi{bUpidjJc= z>q!Um0N}~lRCb}=rzacVMJwlv-N*M@tHqhOz{;!!S;}>LM?i4c)o)!|=VEe}3{A22 zA>npcQ->duZDm_Kb$mN4lZ)ZUF^+8!@wI~tW>)!o-%ZDT_N?~55D>5pmk_JV6nEZ+!2Zx?)&#VF#Kvu1#P zF1E5+4t0m~^R?DZA;iZas&fmgpXp3;J5|{s>=137eu=sOGVgYDrLB{ehud&@(sZuk zT?*A7!NgtXglQb~as;wa@ewivBrH2Xg>&J(r|<>l^shh3y@;4e=@BTVAFtnKdCyHB z_1gMy)?M9nrgZ~_|2f4(Y?ZFvV6_|Cjr6ooj)e;f18+L(n;oc+ME|y`C~j^*=4gSc zu=fpMNXH;X`VrKjj8T@V%f@q;p+~*Y;}Y7h;OoOU-or^s>U+w=4D^Ta45=iuV zN1o_0Tj7vbqrD*G12LGbnW(PBgnKQRBi1;lZ!58sDC9jh&3@!#nO!w)01Y5}blyPx z#KZ7FVTY2{XN-h;BX(UU>u!P*uz{jHBEA99d%)}iJ_i!k*Cz-(Z`{fW9bNLyj%KdF zyhjhbkLNIjQf?qj;NA(nz;RoPnQ1BBQUtmt8D&xubY~6=ofH7^ZeeV_&q-dabLl)hU4OTrC;+7_`z5Y@EBDT z$Tmkbshd-Au+VFFLX+w=AeXayPOB;aZC=*q$BSrX^AxtzL4N+LEwiiY?&)$CR{$R#no9)Fm<}VkLArCsrea?i zchG|nLt*QreM1a0?k%!1qT=Oz&M~Q+a=+qOnTtG)!Rphl)t`$rC_Ou6a#$(s>x_xE zg~z%sJtr2*d}2#@uhEyC*ti&`*K4(HKcrDx%e3ZcvVg1A`i?mboJ-#izXe)8SS9 z3x7;UsD-LU)VaDI@rF#1W1WL7bh>4xC26~sksIrMcNE+CtqjJ=px-MYZ#{Q@=`w*N z&6j?FkzB(68Yqx#fYPS~xX~(ziRVhetvk}-q3JSZ(n3fu;A^v-J!2*l({SV)aJH} zq+~aBxH6Gdwo3XAuk&s^5oxWuR2>zHp_1RPMR3Ey%e}OtDJ>+mXk5F_y6U5_iBw$JIoM|&*6)3eGywFW zOldlk2tik~`Zn#oB|yICBQ_0P!cE^W$E8rfx0X+aV>AIkc{%Pe!r$iRug?()1%AtS z8=c*>@LTLudHdzJG5Y&s|F%tnPXNs0Gj?1l_Fr1_|Ni+%2t2+SpW(k<`~DKBUks^t z4E--p#cBrLyjWrmoVfGHcz(^X7y_c|yY?KbfAqy~jSXmyMPM+`S(5l{D+nW%-ZYa z5w`!FG+)63U@#x+GO7OCwf`;Q|CaE-?X>^x!vF2Uzn$TK6%e3g|EEa*|E@^$zZEDy zXHkDzt_R1F6XTV7YgpM_XIJ)W>ci-Y76&QkySX3Drvbd%Q$oMB|63|7lESb}Af*3$ z#kz{WeYx&j8|)V!+09ib)v(ZH^GV!$o+D&OW zYi0IhW3VDCW5R#9R$jZHT`!&*-y(WsJop?nfTMc*{QmD}qvZgGM!|A~@Ru<$mNGc& z@gFhT{=y1>ss6gD80sUGxMv>m#&66cjElx*(&an43K!_#aP}RJ!M1+9!4|=#Ry23qZJw+jIV z0(QM^xFg%4_?2VLw^e*X`_1|0<#{8Ie|^ObB|_`kwfKtv^$a;Z3^R5b>@*i&wtirWcRwo3eEF&r25vujDJsG`wTO!Kh@s^kI*?@QXv>MWEP z%kcVFF7RzVJTtE<4=#$L7t(Qv*vvk1;G z6-jYnZ(NgmZ`v#G^ybI3@cJcYZ<~?iNVOrqh1#34F>$R8WbPZe08Wd;ZTn$WH1$MU z5AMosGnPs^m)a9#x>HX+b@&jD`ilThgQ)30mXR0SAu@mZLG-tqBv^>Z{ds5HMXh(b zrPFKrdJsu^e(%YKOOJ-w;PFKS1V8#_l3^~dG%nkCkf1|m$o$NUjhDXV%<;j(9C-<7 zg<4}xw=s!V(WsP(iOa}nHHOP`E*nH9d-BvnREY0&j#si{bNSb?b&(O;t?M;0w`-U# z*~Vtrdiu7zX`LXM>gkh<;B;P2Mhb_HkE~+5*nul)cs5J{i zNF;f;`fLr(%TmK0!)D``{i@7G(oX2?@(HPV8=DPUQmg&c3-kIA;sU}^(IK?o@}ul` za{cr)O^=xTx2rw;%5GJp@+tp5d_+;f`NFaT!Q$Y%5{*PoR$OU;o?uV%fXT`67hxrj zT>%_hvGaOqu|Wse()_rA!o=VJQo+gbPD~$_WX9ucne$SVRtW!1?P&L6TXeDVKL&@R_Dt~;S``S)*_9U0Z!9^ z(n+QO&B==`@c2{@06-SY&`w<$G?uogAFb*K(cbh6he4*aSM@d9M-H1}VM>KuyvMDcVX={WG$B4d5}hCIl0II}&GS|jSu zMcm%F;vX|Cn5dw0AB!8YlM%`=YZa*xdMUvSiuznHg%7;YUEp*5@VQ^fsthZ+L(AK-#H$w5!sq2Pv`k8PFzI|G#iGh= z5)%n;4tYPQ=k$%c#Hr-tINxSi3exqsJFw4tk|J$V97@YH73N!8Dvz7Z67eyiaK{vx z#+pjV&xJ3w!?jw5vgtd)17q2>=oCPh`IiEqut(MbcZlwb+ME0qdf&Ql!2(b_F{%C? zwO&ez9BUr7m(Q;mnM_j7mNHxHk4~_XLsB=cFV4Idwn$23Nrg_}{xvBSAhqq2YIWO! z7ZXW>k>HWekoJ*GzglSHxZ_6^t-KAn`hv{p6OZJE1pwd8bw5h#S92g;V(mvV-vw^9 z^e%LpvkFcr=AHDuUqc^DLsg$E)Fy(P49N^UAUrFjyw;9k=PE}`A@cNsKMd+}DCy;) zX}+EyBjTiABTJE*_(BF@*J6dmqR^Fn?S)#lQUB73BAGx-(&vW-cCx=dk0Ps#o~A>V z|C!5h_ClhuPOmLBSG_LvRV;I6_k7*LMAMNP!-A8{cH%HA5#QiG1n%W0>06p(28mL; zp@gn9-u7Xv@!_P-SnoPG#HXu(6OwiczXJK3!ZU6R|4>FD81EwQf2O_Xno#@Q0(V6Sq=5r9Ws) zMqx9>)LH#zv0ZVp)$_Wn`FWkYM}|ocMg~H5Gk-;qf~!DC7j$LTj{kQMi3LLBm|%DX zdXTrOe1uxQc~a=&-ltz_2X%GgB;)A2@~@KP+?E zc)PsJoT)k$5js0ENb*5ebIN=36N^^i;EAl7pt87*#qh9$mRVe9*-M5wCfawvdAq+{ zer!e{_We$d6?X^V-+jytGV7aK0$H7#uAEd#%d3MXlE8TN(;DPy7$=MZ`m5^% zMe}|%0Oo7JtCX4?Tr1`$n8$MpaE+_hT*EGZ_X1GHHuy2Oe-N1M+g9=;PuvQ5lX}xq zcgileyPwU>srk``X>c^JuD`AAZH@N$DVSo>yeeIwee59A8MJ0@Sn1j9nx^V85nyG~ zv4w3$xse-EJ90mTgrEvhyHt7VR|xEfb_X&nVSerXWkC^c5eZ|vjY`h)07gTecf%m3 zi4t`~UaQFouS?pQ^ZZlI;^DX4L7UnviTTnihG)+JY5B6RJG&9fCON6xgbH(35yX`B@9O~ynLDRC}~Eu*Lw zE5XhtbDzO}p6JeQxNA9_Tj~ABL+IsHg2(8f5B!X?``wX&g=W=;M)@4_oSgb$lDms) z!w6DmbMUyAv$`tF9P`?7OL$fIuhB=+1L9+!hN1r3W)+~#8s$1|1vzVxF{8IN$zQix;kQ!Dgy7#+>u|qI;Jt-Bp0X6f zqlz!ENYrV*jPIy?2R4hK&8g{n$f0I8V9jb%z;KQ(x(qa8huz)+psN@lZ&+ zJOvHs;eMUjn1+?Yi9<#NC%`=6J$?|Of;yRWiQv+9LJrGF&qJv9PW*a9Vx>X&sM{HN z+Sb=`^sOtS%7p1W^eLL_ikSy$TP>Cc+tEH}To+B2NiWWpUUJEn+l;rcy%O)Y$Yo+1 zEc=|`=l02E+Vd|UWC&}348Bo&LrH# z4Id+B#J#4+^&ToHbab_?!A~E)mjEyT%HEY&A-{!dNLCrnd5{)KR`e9L?qD8sJ5^s=pM>caGo`^@tBiT4th7v$lpIv`-sz92iy20$8I#&mS_d7l4 zj^aP{RGaKgV=0=22BGiD~+l$mZYeO-y@9nbc?dG9AUmd8* z={)uJaZS%PCvo|}6Vj5=EYp;i7{kI$A^!<1u7*AAR z#r)8ZR@re}9mB3tN|W1z@XEBs-~#N6YjJrgz|)q~dkH;u1N3mZmsQBOWY+uiN}*+>U_sTm}FSKk;EP{u3qs8`pnT1CY$&%hd+k|HMuy zz60q<(aHNu_W$`*KXZIQ{g%k5!v70g`M($bZ%Y5)5E`^N!Pr-{w+`}Ba*rp(hnRjV zin~qrNr8fvcCD%DT9^NmE(9MD`_6tDl4B5l5i~~zj@>qOa$Rl@9CDVi{iO!~+L>4c z2=FG4u-&O2BLXSUu>t`!{ck7slMqD!ZobqbVW{K($yQ_#aC%>go5IC66kzf`Xn@=6 zS1930r-O_54y!AUBYe#2D&xny%@oEzb0ZX^h-WUas|%&p-hf7*OJNEeAfF++th|(n zh2}39`TcXTp3B}8$(Q-9|C4Zd%V6N+!sLG05w_oOxBR$u=yIp{^6az@a8nYGMfEYDr zw?FKCk$ndASpQQ40K>H!x2ur&`R?jJt6tLH#bS4-ki6085dW$_^twMFcu&-0_AqA4|uU zMXj!`=5rwYhPr?u_(|XlK{usiODY))0BUIzpLVT8BX23PU-?~Lh35^qub?q{yDA-% z+wp4bkAU!aAB577;$Wbg{2v<69^pEy^rFCVY#$hBrjGwi_+4sg_VG}EV`zOnmWP~}6UgMhdZ4nTvnx6vamURz9*XFD-djEc?X z?X$bx(KKsNs@^pN&z{OU6DiQ^ZsOiInEZyRSis?5zc+v#|HG#OkuP`pf@Xnp`dDxG zD3r$ZAO#`>Qb^8&J zfWeagl4Oj$lkTWgl!0!rt8-EjivnK&K%XM8NnGAXLZgPE|<){(-0u z!f!vIlV79G41O>O-cEh$;)y7genXED9K zy**yvK}rL>zG-Lt;7{%GNqw;%U26;T=Wk7)tsqpO-Q+G3S~}fe72Y0CUUC{>1<$$N zOTP<8Tyr-067T$c2xMLF7T3>#O2O%5@{MM_Yr`$|(&1(z}m7-%;RyCWS^Ar13(EtZa z?oJ(dqXD{_^zalGwPwFN`GHm|J7ScDvY<=ANsSDdJm?>D=j%(EzR3oz>Yhtk?N|5vB|9Vv^KW*(_5XXbNV>1Lc%6@e z9{5A>3uffkh-o-+cyfRtSsKl;1;R0d{!7{M2cH^uOQ}=4IU(?@M zbf@yc8$Pt@{7G0*WCZ-&I&iNz7it|j)!jQ*g&dO5k~t%B@_Q2e1@V1I{t!)Ici*}5 zx~9upw93&kGS#mTLFarGq8J-Db@Q-{^0#!%^_B3R%zV>s9D1p zZFAxv;Ff&%+1Xcre(m3Dh1CFz;W=!|?jNZBU&#|x0j4deu(QAak7xf@(*J>({bAWf z{`bQF-%qLFdzCo`j^KZn=N_UWQ@O(g;}qBj93ZT-))U2`%^u!p;BvMU8^!Um1&Ur-a_zeJpa=Lp(xJp-Id3nHa7ak5d}=>0 zYhCG{wE3f&z{5z#GYpE)h!)0v8uw4v*l!NK+wm?`D|oJ2*nY7ypJy|e$``v8gilW; z9=59lRA3aS)dbCIJ{6=qQuz)yY$m9zC9C>U6THn83NkKm;4<-DgbRBT(024Ck9x zr&BLn9c|!PURg02-85T`9^`ic__KUXF43rs^JX8_xsthIKU=-v#=BL6a6Yiz(s$<7 zZXx?UwvyRA*Y~yyt-4|Y$HjeDma*b3Ee>~eE8=yfLa2Sa$F2Z*coErf8IvaYK`R$P zF{EJdQ_fSmp~-<>O3BGN>-}voA=}Sib#7dp7meBW_9lMG@!|f5;{9Bg;@LAH8>@xx zkWtMwhk^oReNW<~2c#tqFg{(8`;-MBdz0RtRgQ&-BU9rTF!TF%3Ac?o*cItf{?4fZ zrdzqVOE|X&jmm@}Y{PpZQct((G$PIWrla7oaZYR9?DRakITwwq^=fytcCLI9o#hH6 z_k-=)$0;MMB{+mMe58q)-kUdX{(=*=U~M0eKH?jQsFo{L{}Cer6l*Pm zBq9b#bB?L8u5|4u2f#=Tm_Wk32PoI*9+22%o(8z%vDB3VtN`e}S69h(ql>X8ql zJi5pu=knSNZwklcG%9Q>ZuKIIy*%BKTn-eu@VX&Cx(Z$?KI2X~D997eY) ztn6isE}|UiHQ@)D=29_P2BBfxdr!z$HtpH!5gTzt7#UF%K^u)&>uz zG3gJ)(^_jSELIO2^rzDVaKecl8w&OkhIxVZurX@t`czP#gUCl@+u7gDpn(W0UxD zMQ%84Q;*$jlfI?%wJ4Z5^1re3eJaaoDT}V+;pHux$m%@p!v`m!=~AmOL{7Ne>I9Bs z*4wD}_V$0s6vGG;Fc|Ak<_Z=BW&J=w%)mDo0}r{6ko;*OlQ$64zoZa@guSQIC$0fg`ekWH z)(;2|i>Wu&V9P;fO|GTH@$iTL7x*9e`_(-<>CYFw=O=>(cv47Yd4IYcf{y6# zrz*!9mWaoSxMuv=0Xt+!IWV3 zx!vit=_Gp|;=No?Lsn^_^_bnQ*YLFt!cHD1ViCuY6m+4uikhpz;F{)c8_Ycb=i z;ud&3sL|{^2Dw4_v`X#VKU%a50Gp`1ms7uUt~WvF4;U=?57_P$rHf1JM9;Gvr^FDQ zJSr4rz&&IH%72}q^F}!7;r3!#HLoeNSYMjN)z|loJ91-e?oBo*v&w_OmG)~1_#`Cm zRI$*Z8)y2wxKxgj7uvU5d1-6kA2LRK%0fSC3n1r$jjjJ2=U0B{knjmwfZuO%y18;c znR=p{nm<-#!Oo(-$F*{|By6q`|_CUS~iZZZ~5SgvuGc*c*J4;+nQzm8KP) z1)Lyrjd@c3QN-PFqiMfdj~}RlUOo+sHlA-zGtQILD!ZuJ&4d6x#1m7f7PPT(0aIY0 zsy5B%U2=%`C2jahV;24WFt2^LJiX|orr`AscheKd2(;ox?NnaicDc$h1Ld0-KijOA z);DWiWINdYoN3Gy3Qbx(d+XSX58x{0Z3x?a=Ny< zmtB0UGN4j}%%j>i*Vc9Ar!4brxB%ZrmFcbWXZ|UXCT9VT_1ElXpT;(n!4Y|4VK^A6 zQzo~5_eYxK^@{{bAf76OO=^1(Zj3LXfHko}dBv@@vxZ)F-v4gRYh=NPsS>BUNgTZO z@~&>4rlKO`;^54X{NKprw_p928@-YKZPP3jG_~MqrQ1+y37ef9eumyYTBI$`s;>&F z=fng#*VV+?Zg_4e<|#i<^S1n?oX3^Btvjh;19c6Ub@xEE@ch6Mex-I-F}c6xZZ%#C zs;#T8%Eh##ktODc3M>QD{XeX|cRZVY`#xT^x^!u&tyL67Yu2Vq?bcoqts0?5ZGuqU z)E>39_K3ZMP;Kqlu|sP{Y$76(d@uL&+|Sed^LzgM{b{_eE4i-s`+XkgaUAD)dMx!M zKr&#$vVxl{L;scOK zMBN%Z`R6Ig>$ZNfk%S>_qvvbkr$-?#OPjVU=7IKqK8AMd%X^b9@tv-^aX>jt94zr> zMef45UqJ(5l^^zbzxDHjA*3%ye`OS1eAVt zD!3x~6G0P}QXSa_OdItiF{1m5Jxa)bM*g=*wS?zp?Dl$Gr*RoBat0QiK8-Nz^_n+E zOip&I#d;hSi+*9XZhW?^gT3%4tBW!SxnlA)55Nz(eu?sMl-RmQ<#RbnJ5`c~v+#Il z><4ewm>+oJIt3_&vZ!&1|I*es|7sBOQYQtx7+{?FNvqTW!ZpYn6=8ZR_qnVHvD(=q zYrZ>Ck9!$2B>zBNM_Pt2W9mVumIpFTbS97*degkhbTL47luuX(Q-udIDK8#0prMT+U zym|)K&A94=8R#7Or~|x~H!Vpp`L|zX5B{qR{FR{E&=5`q;B;cvsy-@w@cr=H-nc>p z)KKNIk|1hvRJ%G^5`s@ftWxT9@+-WB}S2a`Q^Zbe1mr*htKyZ?$d1&|s6_fr)#tZP_tT&!C z)?Gd^VEG`7x|JHU7>H}ooCdNCxFc8KeEOhqwdUnK;>UOq`24Kyo6(knLgx^-g2U6q9%mjw?UjxSlc#gvQh&&hUXs31Lh znxcWpn(Z6?zwWKy#!i5OI^l;l{t##~)r!W3Tb+X2CrM%D|M84dMO*kMY0j60;ZLMGtkU z3NL@ZZrt6bTe2khnI|PV4M2QpxnaXth3Ze)^VbC*j}+OT6EZ4{Q{Q>ZB<}u7GXr*8 zM}EdDul*&|eyza^wVZc)Wwf>^5Yvv7YSlbTNP7xGfDt^sYrN*ZGO(JrUY}8rlrEv38 z_}!>v6~HX};7U7Pd|TvhEC}JPK-&8$#eC;*c}{N?Q~)YUsDy{yMR?XDQ*K(+Okun* zRI*P}IH&Z)cqxd~L)7I5mTeRSShlvwQD^_LYy+5m7ph0oEC!=xl7~rehln4FcyK$rw_-zzdy9u<|J>=#Lt#$b4Xd7cy$ODB@4*CLG=QVeRO$I(?!6S%wNDyzK<{2Ws;!h*NFx+mNty00 zTDWTMEcRwcv7OAxO7+Z9LO5_2BFNzl2i@VOE2QN)Z%GkBBLK&E@6kF>!DgBy=88&- zGt(p9Hyljh=4-syvIB_j#>aPOU>UB&iKR%++uElZa>cx%vq1ycPwbh4_7jVX-e^fU zxU@w287_lgEA@ia#JdKZ5@2@b-34f*yRMp%f3QHjZV{)Kg}v5)Hwn)~wd%cJl&Oe) z2b1+FS?)$u)t6T*4(8SRR9Azu{Jq$KoN*8~%j+bcTGBv3A%sG>2`AZy{p@xh4JhhR zGyxzDMq=U6Vla5T2^z`VKM)+<+!&_2z~Q<+2^G#@sBD;;8G)2!^}8U~jO|sbKLHYC zXIP(-2$0a;Qfp32Sh8@{+k$GgpRLtGSm+;r?M>V3fgh}6&9)#g!i9p(d6tt_Jg$&; zPrNLhav-z;zMSV)yjqKhOvXRgwCd~>GoaROZtN*RJ$+&_WFb?J%&Y3Y%`r%KYy({? zy7Qy?0&?dd_j+MclpjmBtDm35$m(%NdQ2-M&#d4|?K<$IAY4Ftpe3zga$NwrM;v}Z z(YuKN%?D~9!Gz{XO^>@ok>q7dT34VYX$*s%W0udrvA<%V&rE>mr%wfl>-_v0i6!Um z5R1$$U)C#5$nv+=BS4OmjwK184cs-yC6Ls{Fw{VxyT4WMpqMk?S^60M$5MuARvm!4 zX9F8X?5XVsNqwKi9)z*r<#g$R-TUxJoPD+Q{a634miUSL@L(lYFu>T0B#iyLP;^JU zT26)Hs1%!!DE(=|o;iYJ)X2ZaRnKg~l++h5k_V*D8h4aGD*s!Tm{novzhEHG)T8jS z4%yw$X`Ji}iY+lIG#%Jj@uZ-3N+!!~-mOkFS!gEQ5c<)3sUTsWd_cHQ@k}+v6JC5vY5kmasM>K3U@uo4QCcd$YX&7Ye{)smlXdXh|Jy?JAV` z(;)+=Q*lF*FQ$Y9a)`+{@``oB7<$kRz-m(b3W zgD-z3<^Je(@59_{>Ery=10S9Fe0|8i$5Tuf_8~>VzNWGdIOP7~OH&cY<+*Nt=8eZZ z1xEWl$lJE9i36s<@5U!xECl*1NH5pRgDTu}G_NgE`yLK##3vD53WiQPq4QtLh^6)2 z=Pf)kL*VC@7B8G=YO#pT>+l`D*o7s&zN&XNMwd$=d+E}|pGglufdO%Yt`L>=t`mNw z*6$6sS9<-0NA^RvQ0+_I8RFKzpX6Ntj-`J9$O~5ilzxqymi34dxaj-q$CkueH&)k2 z`-jJkv45h3YgWNV)N7OrFGGN%jg3YpNaNpDtiRFH9a*3h#mhxeu;gNh$HPpcqN3|! zB^7|}ZD)-$314mhYD=d&I`wzu!`~qLs|ldI?O!^>ipra*^q-0CEUg3nsak1%Sv70`SoN7FLZa%5Xm<5u@Y zad7iD7rQ1|C$u4;h%Y{AKl^7$2IRW`$n2`Tua75(ljro5s>O&Ar_-NqJL zj#uadgCEUmUevFS)ep_pG1Qba{yrrl1Wn7!87j@L;BAMwguqzBPn}` zr71So{}2dw$n?;P(%1dy`_* zR-hJyruV@}=?vdjzTzp{EfuXPgqmxqWp!8HTG>@Sc{O3Bd=V-h=$EOdApB?W2QK-I z57=;uCA)xdhdtk)y%@$qoqPF{pH;T}p??+gsN9B8k-1fRVxxZZd$SO@Rie zYfthNSgqVb^tdknpB?<`Nbuq|@qchE#Ph`S-sBOR>#^y{QEtPo=T4qXAHqwu#F@)I z%{_A<;69?GIcWP`vb4!>3V&fmmHX`SR|FPu!IOoKtzL$65rUXumaAFXVX z8u{xqKmNIo&OfB-qkcU-$2f3Qw;h$N3TOdJXPsu3n@gr`v4gOMv2q*qa0?XSiFe3S z@WKsm<%<|h_#9wfn}B1zaHHJ?26^+dt)a#wfZXv*%~Jq6O$fsdxAI1G)t@y1-8uXS zO@zRSC%|F$=Tkb*4Omr9M~XCE3s#k~2_Rj;jDXz`siygh1y=Cny4XV8a*?i&7uxR9|JhHKye;nwD}zz$ z*MfsfRim#xm`@tW3OJXoztgiEtq+Xzi(~=P>4f2JV}5>qi!~b?8{5s;P(_sO|8b|z zt^$@ac?2Z@@W#~99Z`m7c;v^7n0-BfHhk`ookeA)Q!F=m#g$dic^L2mzRFj#0Oxqf z_4V(%ynnB@*_!|}CVzSvuv85QL`gesR)$Z`1f}$(Nm`hL0^|EMgMr16;8Y6X-)YX^ ztDOokQ2iN}A{7mEmoRh2bNX~f^C6%nM;M8CI24(!7J6D~#cSyRR}x=Bm{~H&=nel_ z5f;(op2#WZUgtCZf9$Z2-W`eiuMMycdIkWSa!-}n+iAcjkY7+x;a@=ED`fY4dYebk z;mArI&|0f)hvwd8r9du72Ngm`8sO0I*rV{Zx2A9u8J8WA!1z56N}K#L%93dgkc}qy)^v4h zUW{KaaksUfnR!cjTw{l4H*4~Szqq}ZqZJ?1waD3&YrU=k+Z^UuLl>Kg6pa=~1F_G1 z29Vl*e8^QekqdY;)Qyvz#>$>%ao%xL?Mf6EJZKz|M%2Hv{#cUU=)ETYWVDgEtr0&& zh{7!4D8(a-$uTjpQ$__YlbECY2|ihqGa=L8`uj(i)~~y7irX+58SRH$LmO!!T@h&t zqAG+f&C4REvar+FUhth~KRPg8X0!gWA+DKQe>$092_=6DDt&oS)u(eSuVKcfz{qja z?t8}*34oUmO2G~v+}4YX15`zll8cEWZ?-G4{ej6L-o&M8!H%t;dRyf2+(sQ5*e#t$ z=x5pfaH(*ZrzD+2;bF3L)Ah%!G&rweuO%v?Z|=Zz7hem8UET!ByQsW;>Hg+Ycb0+n zl!w_GYW=zu$rolQ9~sC8N)t0SZ=U%efJ`b*{b2X(mCZr>oe3QC0>Cg%<;hL5$N4?$ zKUV*HyE|2W$aEpeLuIrAmhtEN_Y zZcAM6#F$t$?Y*A6@@ewk=V2M8_4|b^@;6!W*A1>AQRjyJhVvV)WXFhbQpx!_?SbLa>^!GZpC3*j+tZouHE< zD@xYa|Y^dBt*%F!S6r)4aM+U#C!h$>|!lCk|*=NJ=eH3jta+xvjX?QRD%G zaXcfB|5(8gaFCcNgb0Ji`w)t0m`{@ zs~FS6#?2{H;5piEzZdY#*!}6`ZWfln%~KmdJQW#8K%qd0>~8Y(l#!aVxYpYw#fI&I+r zK>+?$gWAMQ-M}*fOilLpPbTxuPG>axdS?C>tK$S8DGRy zeQv_dE#$XM24|^GU;jLr75fpmfyLW1%CR0I51-BJOUn0v4j1si9I~$?&v7y{BnY~= zfaKYkD4rn&5HE|=tvrJbT?ugcUHUu><}-2RX1B4)6+_7lqeH-QU?Uq340Z6G3gxb= z_;DHaa=KqN-KQWa#E7qnWX%JlB9DO(cc}EoDRwL*lU~LdvpQ5$#b!GPdiLyDwqv|- zg~OH#>Z(ta6WPBn+RUivyWH9o2N2-BHq0kEWL&B+WRRAh%3Afy1k;BXN|Zq19d z(-DsbqP#_~bmk&RigEO)vEax=hQgy9Mt~^!#o3o6nWx9AMQem4D}xJ-;4948gUsU1 zbss#Mb&ZA-5zBFHUWBVy*r%*LupcGze3U;! z-qzJz?V5f2i!r&pDX#|j&~#&W!F*iMROk4bjGT7nPw>F82p(R!=A=b{dhfXN`i6Tc^NUK{AgQFawK-CG zolpfxO=qB)nkMpRyy-QOtQvs*?)6dCSjP?Q-)##1g3~A?8koo-*7LiGVB>YlE6Xo+ zeP`EPcRI4-dg*$l+~$?si|k7=1woeWd$mx`nI@;&_8>=q$HM~I3|q50S0KKuGv&b% zS#p;@D(2}e!={0A|Hx0=B2Lno|8m_udTvht6x zpgPNWROdl4-Y)`DnfOR7&~ox)vvH}_+{;Ayi=E0f&lWTzZPwHL?N)%ZY5Kmp9`=Oj z#vpKLk2eP*4B#QRK{@?tK3#Il)n7VS7@0Ox#bmu!q)LsS@u$N`a19BkpNSHgR2$`X zWQu}`l)6EtezwB}9JePPDg3gz{=4Vpwo-c-^Rnj(@S#FHPu{|dgDj=~TtW@>?u*;K z__(MjUZ5gjF9dM>2CIX_Ow#kG>fQY~6=p}!%D&6}SD{0GebIdU#5(di=PeFED_IBG zD^Q|b17Ex-KHTmu4KmpuN_`-b0a{4iX!=sb77@7TSJdDTeNCUQrO-!yqLX_|YX5`U z_QEckGOv|i|r*Ybg3mDDl@PWLG@Z&tDXY`UI7Re=&{mhNxKxE+2W zV6uI3v(}cu)_Y~8-P`dW%W(KKh@e3lx*OT7p5kU3s@o7J(mT+@v zr+UqJVT#w@H$Y`uc(r3OAx`eoN}#LpA52hV&)*h?jMf)TR52^LDoDFxv>BL|U6FA> z#%L!4`*k|Dr$5Kv5_g-3dQ-9CNxK-v>3& z{G-(zuOq$G*cZ_^jw8;zpORBWoJ%0$RB~+xOnIb;^y)t4vfb0&&*c{tX=f~Q-{`mv zGOC}b{JR$bTG88`0q&Vr^Vol*Nn_6rXVx76^p>Q-?LMe>G=h5pEemxe(uc-gmTI|) z6#MNgc8AXdox73ey=G2RIz+llE5)ys5QpcG+5Zci)A^h>)UuD#jD#NUZ$-URu|pI5 z=gY583LEG1PE-ipfy|25LBB98M{p^ylodtTTu$w}9{$4!Mdy^dl-c@IPbW;=9+=o! zrcM3DxFqZ(x33iSoYD9wP8XctTo-(8$Qcg$lcwUWpvR=|mq_o$fV9?*`^X$bFFUD=uE)s0CMz(MKqxL<<+2P4zdepIz+TGp7H4GMby zVxr1Sta<;MB=huBz)+~MjmYwfT+aiIua;P|a}KiHQ=x7bfnHyxa~y5X8euP3WwY-< zo@VJfeeWHycJlNm4(TeEYTHCqRigfZ*U#|a5|;*KTIrDhwdc|23~)b0d(|hP28_sB z2}A_2awXXQ1lqYOpByU@XCE%jc%D|`Yui(#VV;9Mh~~38Gd`kUo944FM?+hMyJD%g z8)WXUvi13rh_SX^UlJcVohu)~kbQ8{%i;Hx&(jz+0{FRkAVjOW2}+f4}<26--m@Z*6aoheaE5WQx9O+z}=HQ+*S-qdH9dyvR*7UDlXA{L5 zXI};TuLQB14yxB>w;~&I6*6)e78@Ljif4_%6Y|VGQ8&vj(d{B3c5Qx{|o+jqm)Bz)M*hP#&aNvstO<&=-u;B{=J~RN(R6?lbuK& zq#hdfhkH?&p0ZSpL@+d_YB1j3m>{|=6<$hYRGjQPRhLs|!|u~xo+1^MkdO_pc-1~U zSQ2(lIj+hnBOR8A^5M4#ct-^}(O-(47IK*TJdkxLTD6^|whrb{5O9c`2RqJ+!$*0E z7smmzb?YXO)1{XxFa5!Isz$ZgCRU#^pM#F)e<>|WZ5|Y}nzIUgAlAJ6Es7*>vXZ$F zi%D|$G&65m+AaTc*ghlR#)P>*jwhtZSi)}j5#Za$np{bXUQZWGGZ6l^B9jl#Gp}(- z|K053Q@4iJbzfSm%@Ia0q%)igkm+ouWmFNLxF~XmDezbQCC1><^{74-*+N{WTOBd$c#j>0&SoO*i5t{;^T7(F2tz6cJT| z3t_+AYLK}f{df+{A(EpRf94KPAY9bd(^$b-<5Fr>e6JD+(J`;5a;knB14fhw$`K8U z9z-mj)HUDR31#dWyPcJN|HH-B6!<6*d=u2UgC1dE8(dD|xwC0fp9gDtN49%M4QNrK zzQ}p2JlnS|7(Hb%gXaC4FS-SodLX>ZWFJAz)>rhjXNzpy17(Oi!CnW?I(9RKZ{|1^<6V;l@LWvZLYj7d;G(3$Y~|P zMVpgF{rf z$0z?dfFj~g{I{^y53{^8nP09D_&WDx#8y!>BxP|f^E_?y4|<4(b<_kmCG@qM={ z|Npw=3BxV!KQpqwAJ6*}z$tv;C0jn-A1LQPUou1(L;If}{`iM~si0!C@&D_RypMlC z0qp+&`4qg@jw;B$+h$(;UzemS^gZ|I*ZKP^-hT~ve%{xeF+Bc1E*Y$PdE|5*rzjeLn9PWJ6UNfLC~9%!T-7giaTWp($} zS3F9ljNSw$19iNjvUF3(q`*r+p<|^-@}s>~A=w7%(##w8&Hk$@zx)Ki5u9>|rDm!v z@D{+9_8eQWKv~VvOo)^BawLKC?4AOqmI~`%u!`rM`ke_%DZ>RIt(B1?!6U47n-r6y z1rO*>ER6!ZUs`bUYCzIB0LsBb&U7L=4l@CgD5A_ZQN+U75nX)28{yIRfm!hRVzHU~ zLDi$M#op^CC6<(4$V*VA9em5;hE}3j?6(J}w481F^M8%&mszX9{8~>Rng578R2DA< zzm;r5xc&o_0)bP=X(a>gIp1-C=&_e-XgjoH+4%g!DyB)$h%~7n?K1or7_B|K3Euf?Yz15*yaF*H$Dg}W>uWO{7w_V`E;kkId_r)u3!{dv1Vk_v6kkti9B1q z*`8VtRCtKcqzFX79&9glvzA4$p2#+`28bPZ9GA}r2F=ysqa%N??CM_k^91?H*x+Z>koJrnCSX0Sm|EYh-^N@=!S8uW$s;`s0L|^`-`r(+ zVT|!3IS-OL+uNManyTy*uWq9d8)mrNKzz<{zSXq3E*y82Ie=UFx2>PkZv~o#mDAF` zF8#+KUY$Q^CL_31#Fzyd+0c#Z1n2^Vd-`57Lyzwl1BeFBypSULT5L2dN*4=1l32d7l++a1JT~xo$?Te{0 zNUv|L|5sbZ%N>@Yo*j!+!E;lS{5m{QO7JspuAa9&ZqQ6IPL`6lSQ#m}T(NlMIY_h$ zlAf0_{u$8{63VzxeUh0hXjrdLk9BjlpyI;KeYXpgY19gzG7O>b=1iE1ygQ2i3YT0o9o=&cnz2sMmYML%=2)Jv1+CrnM=qwMeKi9`ZW z*<_~5aKhQVPE;~u&O2$1z<>LSoO@iOOwcQ8)P%4Q0s@kA#RND_FW)XrPSB!XC{fth z+?ZRq>u4VA@2A*x_gF|c(3>oN>nA4-4PAJPdMxsc+vfwk&tN%OIwscT8jTo=6-ro( zO@bW+6(ERj&(am9-VwU#I$bl3Y|mi@sYZ2`wjMuT!0a0|_K1zNeQT&!u73#=xvJ$DZXxa#^GbF)l!c=t0HBu>=vl-l{wrIp`9Z z9}f!5aTvH}T*H;?G(FU}o5&M%_yhx`($?oXb3mr*qLCf9OC#`%1^!B71`VFgTJDRx zfkuNReo9cK7xcyHD?8z-GZhb131z$UpeFxM$g@Ma$t;hh14J_qMGWdUrwK#0n;zn? zrxm12cwpNFz-`O#LH!zhTt%$&-iS#}-{A2rODvu#QyW%A?8ZxhB)poqvIo8HfqhXk zBYFt1H)12`33AEmim1K=l!pCl^_;;4_^OwEAG#Zs6;qRZFgw@xe60Zw5eaX)&~ZKF zwoSX4`rx{Y_}Rc#p6tPRc0)F~fX{}-k6R~}MqZYh^&O}Bbb4{*a6-RR*Qn62hIMH7kf1{C3M3G!w#SwdbB|y2rpyoZ z74tj4k;#N1gENn60&QP!4P{%gUmD(R&!~jklQS5?Qs{DLL4eo0Fe*~=VAYfu_0qD`@3NU6y|`Z zsyy|`(b%uxSIWeIk5vu($Eh{5^lM_izvndytg1gsM=h<4I4x|@pUx>Gmc4WtdZ_r@-dh8xVTJcP=dnTnIXfbnz&mwLe~?$lhkBQiY@s?bm|{y*ES?e7iz?7#`m;j zX}ErB*l?7zdgvl~148!qin#>c-@IU!O0XHR(i;;6Z^J1n;w4AD!;>^opexsR&`KxR>@yxpw;t}r|D+fR1WXNyLDm_23i zpKh{`ylK{O*SHiUa=9zM(hf7U^>r_)H6^js)Rv*XSL{>xrwO?sSXe^GDFed2cW1TW zl1`u1b#`#}R!d?U33zsF_29t-HiMp;RKn5BVtkOEuV4SQsnZ`*Zjf(L26y&K(9`kv5*ow#4s^6E|4JkB+*+sMSyZp2{2A|r6iD0!ur(DFko(Soq} zB1UH=dHuC~($ASiii_ZyRW`L5kEwG7f6H9A%R&tokQ8DujMWxZl4&5M%SWo!kp4MQ zXgdl-LsJh>5|7S$lpah@>FqY>5r+J|oQUn_ijL+yWXR98L1~y_QA)(Njh_H zs)c579mW;9r%B8SiWm$|%srbcZIs_2l@A7^S{KT4+ek1)_P}N&Ol4Y{g#qK zmb9+RJ?>?fKE$Du8)T$tD~{64kT|-SAPy}d#>pd=R_es6ikqt4A?00s)`Loq93Y7s zEYWcyZVvUqkG*3^Tp5LPReV>wr*1l}<$1Fx!~T$abK&{a>)M5`Zt-|jtP zlj|P`=h6`izfW5T2wA{R4j+2g$}gQg_^}*9YWRpcyQIC-`>xgm4C^+>cS2q7$eMMt zZ~CJ=;|HWD@xLhGm$EJszrm%Iy-kN*PR3EFiQB(m2MhCC?=}dGn4b|aEi`;)dFsK> zWMFB2+exvo5gRX!g<945eh9y!ggO&!u5HDEf98&OJC&=J&uYbfdGk##uwY3w6&_12 zMC|BH_A{cpL_misG!|dX<3IEHjz%--*HSS4;4bneC}{kL@$@d)aYl0kZx@~cr6caGH`=|&-;*Wb8);;^OP6x2Pqk-7iQ z-!nF$x33xvnI%VK0vGnTm??o$ZYtN7F>^DY%c9W!4mIPj-pX~bw;3S&k)FEw|Bg=A z@9B9COgMi$P`;I_0ekPeGVreWSe-``L$4KV2Si+`O+t;JD=3fMGl-K5XZAQ1yl=K( z_9`T)P7PK~QjW!BeKC3Dn<<#9Jq{1GOKtOmkzSo^_?mq3HT?{q7rA%TCyH8)FlV(r z&_i}5f&*!5m2;@Zs&pep92ZzCn*`u}1FwYy3#tYu^ z-Fa48nE@oJ&qP=3X}CNz7*Bv9KZ`32-n{0`AWsl2hYoqOLJFzcCNc^+f~5&t8^~tf z=Yh<06ZQ>r+8K5QUDsp?2|&%j#5ubTbQ`v11gwmaN zEwdG?C2{i04Fb-$M>dl3+EDxTKj@U!vc0Y!bs#Lb(2<^;Hg;sdaudl6&7CZ`_wC&* zTA<~5UZe_X(CQ57uvIV?&KrL=!K_~Y0W3_AtP0E^izTZGlQ*pjzHXR27k#l?cao-6 z6jW=!pu+lJSmdvyRApibSNb&HZ8kQZ*3lFsGv zoR_vSw_tptGdyQ19ivxkVuOJ$7 zGH*j%=inC=va=wvZ|brGxT00)z8b39zX<&GBQcilS&RY~`K4MYJBl~H2`Tx=wsdI8 zsiav#sdB_O61kqD47X; zP3l>>ScXdtNl3LXuM8V9(lam|(yE^?2pIy*wInu6Z-HR;0aOR{@0QN}kx=v6BbNt8 z6zx1Gfm&m$4rn>tw-zK>xgx!lSw$8(Ua5{^gSXHgcQKM(aT@IvKl;Ta>*~^0 z=NdYTsLGU7rFP+!%FfuF&idY*HZNJtJPX&v+@Hns45-=h&5hqmZyO)*kxv+jhg*IG}^@wW|EzAYdu631m*wc=mhh9Eg-~ z(e($%P<|Kj3`<*onLeYx(v>@{k}id`bZSvUymdJC05(k?_T(8J#=bo}NMWBTZJn?! z-pIU)KIm&c)NJt4c=1!Ei%xA7+~jp?&%$MOnfka8{+Zz%my1{I=NH=$!nfp+BC`cw zJd*0<742ESV=S`yRjr5;`qrFhyBaz%f#=Asz`h-*C1jz0Rf)74kQpqx#m{lvw2ym9 zr5V;CtA7SBuZbt6g%4Hd@~2KK>EUw0cdPLR`MW=cArxzaxwlN&_Jk5jxtP@0&S4ne zJxXDz?KtRFvW&|OJ;lRdqsE$NEB3|aQVQ+BAZD0Oy8r4`C)irh&awd+zVIdVK!cun z(_J8tXAJBM^^_Fd5OcuJ6#J1BNsagiPGcRnCG5VRr)E-Jc8I6#X+mzCuR9zJqkYvg z;ng!9sI8}laHj6>gh$zD5lo${R|J$Mc9gM{SsMze3KPn3j^k=?FK=%vO*CVJ&lV%{ z9+!v`{)CZLo!4H|^@j8mt(zG>$Ky56;?a-mG55g8!oJ!(rF;~PzEu;vp zXc((}*bLZX$qe^1oSWZXz9IC$M|(Od2-jNvu%Wb;Kp^ zpfnDHJrmfN+s^7k{Md&Ftv?GaWg;i!AJX1UE;&RRyF>Fh4%LJ~dGK{FHRZkiG0^*?VgZC)FeZ&zH3x-2!wU|rif%M3z_lnU(n);B~ zT<+hywGoTk18Vx_t|E$@nxvQED&b?I zs%wqi%;q60Gkj}>>)Ho49ifD2zEK|s`%k2$sod!n$!m~Wq8iy>u$}cxORtE6S*G=87VT>(RU?V6xwLS=(CvG1?`r{*4X*m96D_irsTH!8s#K<&M>%A z*H(A5RR)kByxHX(tF)62;_=(WR@$5gJKuw2nj%w{NKnt(hVzb?$@MymgL7A|gSC@{ zc>?yMr-re{<&4pzY!`}>oOr|lLCPvpQGoAZM1}W2d1boq6oJpOPO!nxIo47eTFkBcFmu8k(RWPG=JpL&LSNz7v#=W&H)-X-sqF$z2M_N*DQ*wIIBi5J-rTEpGH zGvJwWlHu(Ey?m{o%GB5|b2jQ86di=3f&$b|69c-WL_QDKlS0v-?O1DGB>bM;M@ht3 zc&Dd$hx)C3`k>)G>hjRr+}7L_vN`0ejNnYa@LnK9%xB8+lk}yj7|jinCY|mdv)17| zQ>nC2oIlg1gWLUBU5Cs$R!CyKn?`#X&N^tS%%X>3BabH5C2iw`Roc9lKknDf#}@aM z++10mjO>SmYnJ$$(o*2Z;%kBjcSjqMwtG`V%G%!SMp%#aE-HIzYpU`C{QmAn!t_UD z!cahGHQGHPeqzCxHO=+YT0Uu1YL1U`K)OjKn~yqU8b^}n?^(!As+`68>&SV`KN>tR z8&$Fw(C}-U>h?Oe$39ZnHSOcMZ97X9I^`fzuvPjge!Oz2!?||)V!u}@Xi`Rh%G02+ z$iqZ3n93kY86|whDa%OieDd>3HQJ+9TCZe~(%Vukm{PO<0mXe9T?k=>nt@Ku1iHp7 zwLcXJ;KZbx!ztMvC!XO6#p>r2-}G*|55B4AP@YX2!q8VZe{*JiJS>n|WBN7$O=fz|jiVUVpto+&2lcf>*f!**_ zV&UiVnpd<&PMkE#T-tXm3tjAfoQf~0U(uBOyy{@>Jq!`~yHGWc0tP%r(F`3w2&l`&mbkZ%b7 zk$G7M{Zg&e^mI`Q+eecw3CW_Z2?kttEq2>JPdrcea^RgRg>)0i62FM~bKC-uK5?@;T)SJHx8lX}|Wh?d7&}Z&E`B zFoM#3OzgvnR74N!s%|d@JD#VzHu1Fd9cVpO?q5T*AM%DC*^SQM{BiC4#&I4!UB4*L zyn#dm+B!pW78pXI0_r`;t2BkU2R%Jy^b3&SfoCJ=`kT=-t^S53>-lLGVTju* zWQU$O15gXJLvQ*i?s=7rD`!GWBRB;f3_VQ}{}q_ojxK=-Jwk6^Xk(} zseT3RttLdulQ2Y4lva5I(6R08n0;x|_istNGeMdm#1{hhP@EbnxsJg%OibC2_IlS%_su3r(GVCy#M>?Dz#QSfCIe!WexEdW?&_CqXnBb?R)X?O=Ec;F z_}+6uUj`qxhga-Hn#-SW5J;nc+&(>cOh3OWDAe^K#?h!~Up7y$6dCoLMcAa|1$`k< zaV-iZ&{KLxLWX0t{FM*JV($7-XC-zI6{Z7XtLhJgC7*vgUgQO!b+y9nt3jSa&Y=t{ zuAf|Uy4m~vA!AX&FRMM3jugg6aMcycU|x;X-ceJf@L=z!Lo~h8*x6q`81Kqz&J~zS zGNcTz6%{l~T_dQ>0}1`xiQZT*`4hFe2>A4DmDYp0*3KnzWs7`z&{$2oerK%0?ftJd zm&f5Hs~@q99j2NiIs_)216zl3wyc6ZGwImW^dJbaTU&)EwJ;@QXDz!mw_B{fKZtGf zuw;+dj^J^T z)<;9@Fcf%sda*L{hve~r8=0WJ#m^-#Fe>pU`lge4iBX|x=gPyS znXBKw2}qt@*tz%C+#+3S?ryyF^jsnTq0YH-=$KJ^Z@9k_U`+;?-E}BapUZi77+0Gn zh%S0-nR(b7bKUHC5dzAPbc`qL^w!@qsI&;W?GFTretx3Ka0%+`*S zjmCENBJDn-*vSBtyV*ltc6#mxWXc(-Si$T|S1S78(b(KMZT8i5>eQ`)q*Z~>JOZmM z=BU8b?g?kz_JY%iQq~evJ(|h-nyyOv!Yc4dToO%Annrs@LzB}vzs}U|tR_>2->MsgR973zn zerQu~63)B0p2GG-T+{&Z4RV^BDe8`e8o0mWjaNsaI`TIUU#HnSz&+j#s8$w5DA%O@ zHdDZ!Kn{JcqVn8SHOZSI-kf^vG|NGdwOk&A8Csn!SX#3@QQ=i|B-*esqX>LSNbAZ? zpjnT_q}TNL;!M0%EZW2>dUdWs%YqnI*Y7DZO!l%YsLG`YW$50J3{+cSgkoIdnG4S_ zh2yc4GZWeEe$(Og52A$QF5!SQMD!>l31cAvRdgSZ%QtQJ+104%;B~@259Y*BALxXh zb2bNGjYS@Iu@7llJj1q(utj?o3#GN{+OrLx+mqk>c=lsaC~|$eR?m(s*M4xUq#f<= zRlmamlNOE>v4;AHeQTB6T8wqDHoC0cunwhjiZ@3sr_F_pZ`jl4kYVReJ_q$zbz|X1`96B%lScn{l5g9L|<+BALS`9@d zbv*}zilbF0aMM0f5WG*UVS%AWjmxB+ms~)1)!BY=%Z;GT4^j$w9~RbS!2T|Y zGOa_7L)cFcuSs5gg{fRs`;O;i`HYS~cqD`k&u;5c8cC|6$K~YO=1K;`sosKm#EInS z;rdb!IVHSX!rVv&%Gba9(`XW@tDSNUuWUoT^BW9dky6dBJTXyFpY-8n^2y(m8XItM z0R9tMqAk5o0^TCk?;yx!38q>($Cf3#0Vos@0~knH*}mV`G4%aWmJ@T-vA6alt`B#ozmSY9nuV4(hbrLBO)vy9nxJx zNp~oybcb|EcXzzk?B09t?(;n7{rtY?>^Xdx!!>jLF^=5+IrNq=^}8t*DP9;d2-O#>9PI(WU|)gPT|o@u`TetceiJ691G zWOo6K7A_!@m4XqLdGXC6Hx5NAIw&A!3NtoUFqJ~mR$ZT~KlA>}B{f$)`0?3OO&dc; zcCNwg*G_?HL@4ea%@4u;gTFG)C)iM;MSpfZeKxbp<6L0KZRC4O%4EX19Fn}JH02t= zl^N{8aK>q~8}c3fMNezTW8FIme`NHk@M)sjy_q6)!OS6v^VwoTTG=5IhW%7?U%T;j zt5TcmGazoPzeyteB)L9yY`Zt3hG8~j%Rb1*uud_o`5BSu?BZJB)ZG`B>e{sB4z!2( z6gunT1@7~e*FFxcwlniheUm3Fe1=wot3~jNq)&Ext&r##WGkg> zh(ANKX37rr_27H840(WawN<_hBkF0%YNDSDl;nqofg!UT@IPjy-ZfK>9F}$R{ZPm8*IK)D)06@jDP z3&lLZ@C)|yw8OGyn~1E5`pB`M5R9=>d3{YAw9HzdTlDk$>`M7STK7T{%Onxf;#7DMkWc}8IHKMY>a*hsk3`soFLMIfx0JpzPAY0<364F zSpdT9v8%*9FIzx9*LHBAOq|L$K5_ee4DX-$Sr6Yvz^7gCpuf&RzrQCZ_>TOU>t=68 z{?(jPL>WE#woP4_i{pe#ZJpNe`;x_sIk#&dKB7<>!FJ?HUfW<7QTU)D2K4!_Za@^X z>QB1M;&UIhSvll=B0aZ&x6gUz9&tJpOZnthVKUn|08oMYH;5qCSR=RQ3i4LW=*of- z=^4;eNSQGyhvv?N!k%sE+!gLk>SXHT{&u4(Ik>WI(KEDzy%U<;7JXlK&Z1RY?AA_QbzW65PVO`2W6(0N zY<25YeCmV85%0fc?~>~F8oFD#ixpFzL3C&{t8J{uwSj2Q&c^C6sSuFV%XYx;sXy$b95+b&g5@BVvbOZ_1xOxUc=?xWs5x=}VzNG>XIa>;RqU@a`vG*+t?mtYbKD1B zQoOw+|13%}^W@M6?BUbb^egkWoT%7sXBTKZqsiClHCou2R8zsTziPfE$O%3ZDoO>7pacUf;}FT zxD++WRMWqw-Y5U z4Kv_vZvB*o;~E|9r*hPp69iQJXtpx2$~byRw&lCVP4AJAIDg z@F63fhjLFA3Uqaw&*1<#{*#ZlTn-0ebP{1;IYIo|pdWSDtRV@@;)6WH`Ds&lIi=fN zn;45BC^i|%Q@}#SebxNf37>K{S_H&j>SF+VBJlSx(O7?*40%1L27(x@5{~ ze>?)Fa>)UiY#_sD(0_D={NuIVHGp@?tNkYZzq8JOz5i!LtXHtS(=Ag~d=RHPg)GLB z*ri61vc=k)m;dM$B8zRTUo65pQl{{%FwlA<8%=syp{nqYrnk>< z`GL;4V2^|OCa%5bc#-1yu*20dN%&*+P{7|tr``Wx4aShH`t$IxO)bZEj^?$CgEQyb z$umS4lT5L~tYL|#{@%qT2#ctAj5?i+_Dc^>7V#D2|Ngs}HwYJ2m%tbq%by%CpF`we zO?Yjz-``Ngyh5N2C#+LgtT(elB88a#BePNw;vnRq`z?{#XrSMe0SyucyW!E~&_2rL z4Dn;rcJavrk=wQ9oUTRu*Z){R;gCqd{6_Ms|ssIrBthiE+784(Y|_yuAEs#_TO1WGo4x415 z9^#@^g+{;@4?xn}AEoafeVpA;wye$&Ba(D!H5rY8M0(Tj9d6EXJWpY5kyfPh`cU#^ zvwbENU=w`=oR_n&pEPodNXHVwDDzKT6DAlL-Vzi|9GX?KV~l>w!1|Zg=tZAx2Ig^8 z)vk4)yvS%-&k9kr)?FuMqy5ily5B*pAg-@|-{xF(P9y@Py-rzO>}}Ktp+dZHmkr6C zw9`+eJ5kn#G89wO4OLFo2kjoP4&r7`9}rT5pc~W$FzaHSGT$81kHe-)FC}jFZd7X})z*us;{bQ0?-mqp=$5 zK~;BHsF$oxNiv*m?hi2UPf|L|=?$niIuZj316BI#@Kn+i%Xndh;)#Zb=xOymeUrOu zji?4Tj9Rr}3Cu>X!wDG7>)OYXv}yjk9B|XlY{1MB1_6(|Pb6GlN<@4wd!r0nEG{$s zwIH)TP?^a-^>%xrOXQyHbP$viCCRkwsg&|3UVHo*Sjdzmo26vvrJ;fr9We9Aci8Au z*40UdJn7_bh#zJLArYufTTZCd2HbH1tF!OoWjg^ZvQRvV6i-J3`f*4OLDeRGwi?0u z^#?J*p_u*0zkZbeDA72>i8^gSDf(-ERSX9FK5r3Ak=v(_K-O3adAOoN3C_21H7Z@~ zFeQL+tGo>bm_TE+*@5iWc`2+CoPW)=_?;UzVwp^d5n7x7kB(Qrz^|Cd$_fLwbQhz!Bs!TaaKLxASIofQ5YS^d}H zfKRM|A=V^LjrJ#>{@cT#OMqp!@)bz^U+*LYo*87v{$qUBe@@ux3&3MBO`YohdM7N$ zoOPt<|BxOO%WZ(HJXB)%NAuP{-wBhW|AOy-A?Uy0`+LRbztjg53I9ud|1!_NYf%77 z{L4K5m3@B`?0^*cS9SS+S6xOVyaxa51@NyL^AFtlR}1~ui1;7Y$-i3Y|If8hm*yTx zz;u)g?Oe5B8jnpY`v-u8yivQ7| za$(cSxs7;sfPBpV`P%Mmz?=5GwK)BsF5lnp2J0iRncQQj8qindPc!__PZUUiJ^pQ3 zdOhKPJ%WQ+!#49#`=j9h@L#~3030uYQdcB4#-hJGsH$dqJQdsuv-m# z1sL5NUTOlge{SK=y9WHs#4v~4FL2(_|2!U0jra_9YhNPz82;u}`*X!n*k=9(;s5tR zxEA@vbrnE03Iz}bi2!9_`3!@d2T8(t3r62}!_a|K${FwF;yoc3gA39N5ezaBY+5TR z9w2>P9rSdqmm%bI{Y2zsBQ7rFL@vbixLA^>UphUeoJ6)sh{n~H_wL0{*2nhmm zRAyWUFG)gOOLX5&o2*4wrdjoyLyj5mt@qcr&gvJWJea3`M?V>4SqT6dgd`w7T^nKz zIo*i)>OIgUoIH@F(MQc>kO3pxEHYs6qdR)Dsi$Q8a;qbI)A%(($XB7uEV zeRf~Mp0Okox*$(v@x|<~zn3-l{VKRnZ+1{}QgfWs5LUvEWnwrDM zRHl_*E$+snzOQ+2Kjgho>Wk+}t1Z=kePFGp0KB%;OY!$UCNnjP9zP^M+SA_(EE@1H zMZ)?8zO7FnDFV2fAEA-HO554KDbZ<{`ix`yOTlqOtE41e^nQI~6uSh5wfSyNfLF%Y zAVl!(Co%*&B~(7lP;{`&kvY$EN}ni1_YcJ(vsEfxcEY8cb&O1DbXnOaad0*CT?DT* zd)&556+T)gz_?7lWM{Y@;s%=rd-9pJu8fb7v&_63CXFio71=WQJKziL^D>LVvO+i} zD;9Ly%Wu8A$MJqUOEu$u^vV6)J^d5YZgR~#4F_Va7^)2(m@o;Wfh=qUoS%2Ru;{x( zKN);CSiKY(UnKvd-lx``wCQlHhKBr?ZozIGDbT4#=Dr?mbmv~P$7!Zy)91LVMz3Pi z&#!e761v5Uh$@tMtQ zz84428`vsy*ML?9RCz9n*2g?g#I&?uoU^8iHJmx>tB|!&GzMW z$H_)y;#8x;EOh4=8KFXA9HOwGggsu3<)vEFL&iF%Q(k>8Cne*!Pv6ar%xgAYR(30( zhmJhrYl??jYMp{|sAzLtp(aBT{dT)r;|Fmto>A?~N=^v$Wk-;v*a>KrQkCcU672HW z;woizG5%J+P}uFaNm9C#3M3vF=V>RO3@rOZpJclV<}F7O=Q899+9`W%3Qoe#v~C z(Im9?z%~^&v}biMGO^vCcO+a4qs?WR&YcnaR2`e$QG}+N{;OSRuRD5fM=3vqk?#=c zBwrT57N4`82yqmM4yNV;-`o1F?Cn%yEk;YklD^S!#%>`980f6qkC66yml0j-zRj`0 zJyp=AJLU!Pj}r!ZU&q<=f*+f9Qpie|wD-;5O}2Y;s{pUQsit_>Y0*FzVd0_s3K8ep zj)Izh1#tg2C(;({sG8F27I|Z_%vk*p=mpy&m2qmx9FMzjQC#anLCD%*B6S=avO6rq z$oYD?=Q!Twc9&~CUSPM(Y|H<6!B#EIfDmc@7Y9aIIn0R;81le_Z&(?l&Te7+M71 z!2xX+cz`huy@n}f?^bx%KiFZwd$438lmdit(sIFeYBbnq96W^zmK^gH(v& zoDnb4IP*@7Ayus2N^HUPD&OF0hf25h{PU!<_!CXkkI1I?F0KJEHU&j=6BTch--)a` zAL^kO^DL#7K9$yv2I*-Q+_==_$pUKo2}&Fg00(B-f1SMfMqW+<4q3gn@K~Axm6#q& zxGDqO+!10&435$DufS{5W}W{mTj8@!FJOO=QNejkx8jPGl>to+G!=jg&ErR^cx359@4b7c|d z_e>3D_%8oFG5GL8s*X#5qwNA|h}u0g4pN7C>ozsfh|HBX}s*#`bd=wwUvsNG<% zrTyD47zov3y&R{zwqJ2va)g*679}L^!){?7 z?dq#$`=d%~hsKA8y<0W@gEw&E6tDygEEG2EFi(g;si#7g%45}YM_Vmvves6u)_CU! z*e_EN$!rW|1$ioM*T;RK9(hq0+&|pTcW)PvcDc)Rr~Q}ea_?)4#b9E(7oqS;_M()M zkISr2=?ix{?Vv77tYbjVQ$66Qy#jHnh+AEazb)bBDK%1GY%8+ZAWf%+2?-85_LT$6 zv07VHyL4z&p-|nTSsu^!vp`Zh)>C)0i6l)>N$$D2x)UIF;UMPd4qCm>?|~xbKWB9_@HcF+w*g;asp)s&%q8bA(T{HVL#?79SiE2Mnr2BJ2__ zx`y?9#TPRgs44S!3r^g1<$dMXemCRf@J2RD+O?e?>m)5xeOZ8`_yOy9(F6UjXq~6u z>rS2Wd}P#Fcrf`r&U_@Z95-u`?;h-;^~O`>N-`=-cwOmBifZ3)8b#{|(f(qlTb~$F zmr6KSdPrd1#KQdHH%01PzqavS45xBQQCI-z`#XQ&U}LxLlhCcV$a2q=bh0Kn-Rwt& zMUPWhj^a{Y@w9Ajt7Y`@2qv(ATJ z>RG}+3+=uEk|1zpTMge15ke^7N#{L3qiWhTAC7Sq$fQWT@;$|kTf zE=HNdrWQ<@ht3_r#zR*z$Fq!P9v?x&hp}5xir>*ls*}64`miE+K*W>pNhv+0sq`Hz z38%wuh=>}Cf_-(4)@AKVo*{uR`OGQMqm$R@_o%iP{YZ!Zlin<$P!fI@2^l5h9m6j~ znqx;qY3n_x88U{UYHvMMd$XUYGXtoKRfOOZJ?Xm-$tzk*OwnJ}gpA8j!0hu}L`9VD zjGzErAMYES-B#a*@*i+JZ!a;H-vhMDg{VL{#H5nyTV5Eu#1h-}gUVCT<-VHx=CT}v z?DjI?2P4cLfd>iWu$#fr-I1}IekTy{6ZZMed4>{XiiHB3fzbH{4YaCgvZvB-ewg!1 zz1~{Xdk-pj?0%9CYvCV*h|pG1%(6ZpqTOQHVSDf;Hud{M75IW|R9tU0xk#>@=^Q4i zO(n&t!9~(7hS9fX`u6EKR*)b?0KTj%Js-rGQCjcXDtCLakW`~X`g;Wc62?OTWS%6F z@pKQgq#hbR!OfV%gTG%)b^cThV6R~!@NK_t+B5A+8FBvVj7c_)5Lh-(`NESt?(4Nn z@8BS`yAF{amPBD**vT?js&~1F-h$DaRqA2Bk)z>WrfY}U^S$jynOe#7G)A!b9?Y-c zMYC-8t@+D*uvMklmRbssgmnf3WV@ZrN9-dhld-Z%ErDrn=(4;w-tR&D7(sZ_&^0L1 zdRYejpq`nC?ARmS;3eX)@@P6^94ngpD>w*0Hh&_!aH2n3RQ&h`H}+pwD!bgKYgZQE zwzGF~>^hdt00S~5!bRI<-i+P4IY|1waw?nL;bR+@L_#raE*n-L!bSED`F&R#|3ihS zl|5hsRMUFNP(*<&D}Fknuay@0S@JBGD4Mi^2PCibTm1z9 zo5E$OdqykgvRy=fs%^rkkFfu6|J6%$2s4)TLU!v`Hvw0YV?2FDMH(WHoKFu?>9u-- zCT;ul8t>&zzb!#5(-0$7ox*1P;B8cIoP+GzX5wuwv`)6^Ym>Rp^sI|zNh>_z*@q9` z*4w;=3M_kDtFK0prt0U?k`ge`!xdZjk`ed%(LkK~CLgYkm#ZTBEic{(kRj-@0>(!_ z8$3QRFa5qgzl#S-$E!SP?(rAUTua(%2(ut#8F&a-m8LDM0PY z`a;lqD_oCZDuNU%%niN``7+}!`mWwDEnU!GuX^rDyt&#p_u{gpX&MmJjl!K6Y%!V` z7TL9EtA~&7q^}#kf%a(D9TiM(K2TQ9X>udO;j|K_Eap*4&7-h}s{bP(898dky9sqD z7ORI5{+2+vtDW8oEX~h~pi8rS&lk=th>Z~e7|pmk)!tbo!afpx1cUVMeaDo{?zVf0 z>76_K$ZMmR8@&Seg}n#CKjP*lC+kmfnq_BFUT8AgvdIk8)C-Rv{C1<$v8&oW5fLs` zFP_);E#Evx*k!o~RkxjISD%w*AwUO%?6fX>VD*!(xpCw3O2d^_fwk!a_qD;@QrZ{! z>L20|UHZ6^6O(yVc<~&n@JdRQ_H*UmY5q{oOgi_C>h<8lh$-Ce-*>ERulZSf*ysd# zqy|{g#UTjhim{j@x}ZQ~g%2Gt1(=MkA3VP>AT6?ui+M7%KOPfu&WTP%H<)yhd0z!L zWoB6()}OB>5r7LUQzXVNXOUdw_c=4ksoM}20cD7L|FZ7f>+Njr8G-BrKaRCt!F%`m zew>3rUGE)5-1cYEUR|HcXu_|}rl%_W{fQML`Vhz6D%K;`k`h(86KeWpEF0|io3~z@ zSvkbtwQb5xZayT12XE-7EvDBP7P2fb5qH8wx7)2-9T!?Zig~-Z1lKnUA)q2vR8)4r z7QXqx;v9eZ3dOuS=-#5(ZKacgm=jRMS)U@p)E*=cYwJma7KZy8#|FRqVHt0;?+TAI zt@m?`-qlJXOvP))DMKNBv`>5H4E6GB@T#e?QV=Y{uMWP&j^x@3bj-?bq|xBoohxnD z(5NW4u!J6V3Snl%$e()l)zbQwy)A(f3{&s#;wK{yiAgFDzP@9O?T@rL*Jzkk_vjQB z@S&>ynqifQaW}wq6#9`8Jl9^uz2>7u1rTu2pqTXibmKd5u-1|505gHy-EQ1B{FNhs zx&;vWaRchu4EgW)(Ni>Vqi`G$1Qm4wlD?a)u>4+VyOf{HU8$?k+b zG}H-R8os1dt)ty-c{nch@0(^yx_lm>WHFkgHgwjGs=9Eo(ie1GRJ*=#D&|m4X1w5^ zWbnpvv?ku;h2QDTj>~C2{slD5YiMPw-)Fw|(`8n9+7$|1k2d z`iooT?c{(puf-^tZq2QAkFemcWivwh#Z&sB1xHI#Vb=W}f_UD#2wko#mPHSpcKv#7 zQT87mbo=dIHWJAlJG40Zn(G6ZN;jY0*6r0E_Q(@m&k^jd=UIBxwF>xC=lMDH-I*=G z`|>eScskM=C->A9w&QLd#4vt4k!#o}C{Q02=5*Z;AiBTRVu%rHIcsKro5WjQgY;c6 zRTm^Q#YP!&vKBM^IA^gwZ8pbXT(LJ+qK4XZu!m!5iWm!%>Mv>ws#B2YGf)25M@7%wtaM$>?(IT?|LyJ&}{}E@%lP7`~H^ZCd$#ce8 zHs~Y{m9C;4&i>Tf-rnUjT*wdYel7F-mLCGAgDV$adb=VHNx0vwF%a2)|FCnqE%tDq zjwPI{cn$Z(|Q!UaHg zrF*6yY_V3A#WD7(1)ilYV}~bCwcx%Fc`AQHC`5b1F`8sRY`w$&wuwaa;KjhwVo^0J zNWkhBQ><9g{8*!TC&i)Okb~uiudlSVUujRNl0^s|hzv{xqC}(8!`T`OjkhtaHs6bOZZ@*uWs40foICAE z(atJRYx28_jk}OaxVwIl4<=8sJ-ifr0PBrm;Of|lE~kBd#mJ(#>$BfuY~GoS7Kc|J zI$jas@Zk}USFRw1?x9^_XkUzl%F;^F1*a@b5B}E3Z|l?HVtOLI%gdK?F^TRgKU0`S zsufH;_vggqNPO9Oct*3e8nx5{#Wa_mn%gktIB&a*`#ak$ea{VUqEGgzWyZzIcRA2+ z(s4|=7dPC5KGUDl(jb;{K}z~cT4q->2LFn2Gk~qWghnNm!pJ$MZ&7yeyL&NlRq({z z`I>+kNSVI2STKS8h23|O5OwUZ*YJ9p(i`qMS}5k9I#+(RTW(w==RFg`Li~~5`7hNV-7yravUC->fBIakL* zM#lBU08v_NN0W68MNe}*fzs-l<+{a0p-rye;}5cH^QQGrI%0tf0oO~dA6-sA9r(CL zYeaH4y4+IkdfW>Y_O5reJn!hZawxjHnhw})E-@}k8o#MageM&@?~f66756F=k7RKp zyaT%*av?V@re?6=W}ZkG^L%%7R;#fl^Ai_MHi|W- zlv~7kgKnEH)z8b}rRm(NVJCtxip9s;Nj{EoBYt{~8_S>JD&H7KZWdeBU@0*@DV|507aPpS}Xj%b=4rb2o5@Xve1|j&lA(ih-Cl*lAH1B;b>)502 z4@?#xk)j->PCedG58f0ZoX?cvIekdTfidD+xFg21xnG@ft401_P+I#J`^sl>24zlWg3q3L4 zs<=FeE1w!HO!u#y58P0js+^Bcq__wT*X7w;nbD%$9>Ub_X>C#Aym)2L;7Z|@ep*)= zm5drJq!W#rv-51-p#ZUzXU8in#r?K1^E){&$<2uUwZ$pCS(Ym}=-Os)$7=lt(Ix0i z_K6{H%Tn{3=_$XuN*fBkJtFTjampZ8_gM`5$uNE&UBkkAJ^DU(Nj*K!kWZ&atqYv) z%1X~Vsu({^SS5Sb_>fS3x-~1RPxiGG^eCM|)@y4}{m^z)RF}4lTjZ|Fk;8dri;v8> zfCV)&s5U-APIGloAzGL`8HM{Y!9`~9W}#h_%lPiCT*ae(=~{6tb{gGJ4|zUv&x7y6 zuL$LzOVyA*P8)ywTJ1lC)%Z|ttHSFQTHaBbMUhERroyCOHLTMUD3K}tzBp8dsLfFF zL7gjD8RheC7Vb*}DTJKY+4;?Ovaais64da>JZiG5S$pa-lwnbbg@>V5staZl+)Buv8kaP_M`RGoGTe0KgflgetFTClK2v{TEn;@Oj8F_ZI@6Z z#)DZ>)tyCsiYH4&E*K<7!Hh!l zOHvZR~W>P zqN%pgPCZqZP6=to{b?-XLepm%_@dcprQbjCMkShe{gC_k?xQ4};qmeysH@oRXzf+Z z@y*Xp4<2$>ig%0qUln&63=ykcRC0J!z5CZvEBr1tjfc#@haZeH-zY)=3Dirjz0A*y)smskPE7H zrV1KH0>_a|^Iy90$66RY$$~q)>FkhsO^JGy5ajr5`+KYk=1_15H^f7shiF_#(sF_0 zJ6%?o*!h6{9NVf-uyMmAio6cem!8S2Mdb1Fnap2#6rvN&BK4WtizF|8EO}(Z;p*lz zAK3)6Z?LknN;4{jYZ&AFOx8Ci8A_|DXcw-mF{2c(eRDoepH7YsG0N`Lw; zfamSqS@o>4Pzm;J?fxLsc#U!qlc#>4d0F=*9H4)nV!Wu17!)f%-MyGATx!mRSW*Z( zi0b@0UOV7^0cK|L)o-t%>(IGu!P(hEN64I^T4>82c;O;yj@`u6lI)~t0c*@-GAXlg1{>-5>!{~A(HAWWXYAP{7W_GB8a6#u;HqF>4C zX*28D&B3M@G;*5~+_Gzt9v4IxQwB6BMNE$qe~y){ijPE?qDuqM1;6loHfy@kn0(M? z+3yIK-$@nOdpSJ-DA@&14Ww5fL{)lUxot0e=j_ALGI48j3TOZgeUtNYGUl6T_V>41 zUID$a?Jczbr7Ac6i*TYl_hjQrj(pYnOA@pq*jw5n&J?F|;D=5thdz>Jp`u@;LvUX! z`o`{@;r9oxJJMN@tuWM9N&}cLJ=>PAzyQW8y>lnJb6K2Dvgn_PpOd#gmvcR;xZOKB zaQXgXccBnDZ~Fc`I`5-nFts30Y+%NO7OS6UUZ>=4Wtk~alFjzRG!=thYN?p^yMfOG zK!q&UkLnYD+>r%`)!ix_$chck$Oy=dBi){UjrYvk+Ybi?gm56{1d@1~f`mf>pM_%$ zCT&bMeDn+FVaB`&v^q==pM&dVqyuUV)ys?*G{>?ZJj?p{P{>t7E6i zX*wLk&9Md&LH;DcIe))IH?Z%<-}|O$5YJR=y2Y}mp_Dl{#mGAn2U<({>0C_ARh0S0 zs^cIAmn?;P;qamFxy6X+$BpGK*J-`?Z2kty@|~pch6KCWI|ua+Tkhra-AJ}uuBTTI zv_Wu7e1TPiblATVLnoVUvHL8g&oRSvcOOQFiRYe1v^0bz+d*Y-^z&EcZ6qt}h_v0N z#T*JBpHJ%P6-}Vj&0$WqO4{?TVd9`@ATXzOoqY}Uu4m8;xkm5Y3nhoJvalGl)IeL( z-jl;`{L}`G9C@wx{W6bX*b;b`V0^VI!JuI%YEneDF!h{ACChcSKVm)B=^>^oBxaQ0_-z2Gkt5et3$t)V~IQ@fGvM8dc&$$HfNGyO}ITq^WoXxbX!N>?gY?+Q~X? zjc1UX`f}_w-UBhJO6H%|&vaCE^eBZeX1^1S-a0EFP<-wXlmRCb@Q~3yP>na~x-VPa z6D=8|u6W-|EDx^FR8Kf^H#-jgvN#pFUrX-wH=j)*UC%WGI_MVYPM^g{Vq(N$C^@uv zQh%6m;HrPI9k>;`Ambd6kwQrtw_e$D)BBsDdfD4z(WbIAVZrvc#qLi#_YMRn$f)lr zAyC`twxP)&8ECnJ_KkphpH}5k@sR$77ms;Eaj9>aKCejaSzT`K;52VJ*}LEMa1!*B4WwB5H2TJh$!_9h96R zoGZ_p4sj#sH7{auB(1-CR76FOKGf#CSQ45>kAJ0MwIlsu1hJ|=(U7aUG;(Wk%<}vg zingkF%BPpSa5csGg?uk5-lr#!mDJqu2N4cC?g$4|P&-hHz0z*)nzfnZy`vIdDe;Ry z@$^Ht$;rcpxv01(8y*Ba890)kti4w)7CKDH+fvMhD{K!ohQ|3aF|B*SgC{fjshCfn zrySny`sg)OWu;VI#0<=s2+4i8=e<)xSdqz&cnHICB(e(VN`(`Fe!V&2I$eJL$E8;EcVa(3JF=MH)JdYR^t8ru#oAWmxG%PDcvWF0I4%wc zJRJV=L4DX8oH<@}X$5zbK(Tyxvk=Gt06sUwe$4?m;G!04}d8l$`$izS+cFIt4FOe!bnFviQyo5ogF z65p}Dw+ucy8$R?vmFYb-7qjovI4F}91(2BR@TUr zts{N+B6ljD5IrXAP)u5RZ~e~hkwLaDmi$0eo|SlPG+k=SV$VS&|Q9dorREKh_dJ6ri$M8*dr6nLQQ8**pcl zsJj$`%()KGL0X;0jVRD_Rm~9oG@L1&4(akRT0g31WOJJM)wJPnYSDvB)C=Usw1LHN zyBEPq%g<5LMFEYA^I)=rWGcC&bElpC_SDC9z;qqklGkZm-MS&``gvVS1Nqyk&jZ)) z#e*D84xh0UM0GkxId$0X6%@PkFq;Hn%>O zOrSfB*Xj~G7kkM#>Dq8F4%rjcq#2AeLtp8glna;&o*g7%e3{6?Scot68DkKqz=q{p zp#hJNNx<8bs;q{E=lgM;S#QMQsFg5$t?RoPk579P3FY0+!|WdV1c^^eE+3($ttFSq z3Lr$LK*QfUh1g`CNZFSxmgATQ2BehD8@}AFiD*4Zs0O<5E$~k@mr?0fi*#sZ>R zRy05TvUfxF;Wl2}8aJpV2Rao8(!3F& zW5t2#9u|k)zl12C$#*^y>%B06Nfc;!_l>T4WXhUUI~5Wwem(2wuflM&D@LX-%Jcj8^fc z`#Bng$|O{o3TV1pSGk2plK^TA9BNF^G>DnCUPQ0EUyUfq<>#(p6D8_Z?+7qrN#RP^O>;AmCH^7sZKrYo`Sy{@c|x)I$^0i`+#v(o-L#S zYc5@4W36TPW7o5j-`Dx(+ z1rW!Y0)bK0L?-@ulZRYCk{~>$BEpwfK@wnR1Ny=^5OHMZlFGIP$!$*Ml$@iQZg55@ zG9Bx~DUJkPiY$Bn2JV z`fv8^RP&j;_C>}533U*C$&+*s$5#k6%TEya7%CYfp&yVYaF_ImRYm!kF@gUBlw=|c zM-Ga@OP04ajhuHj{Ut(7hz#1il0AE2N_*^&!-B%4;oG5sm!gz{b3(iwYM z1Iu7KqJ$QLM0s@iwk^Ms*dLl-re3IteC-f}dz=kB238@Ef6&&Nt8i1Rgzr_26tTc7 zEO`TsEuxwTOn|;yhjL^9U;82@j#)8V1b(N3T#ZurjJ=#@1P=64lLt>e9CfXvPLF zr3>)Sg{eI0f5#AUU7s&#Xp=qOrria^pHj%&RFUcwaUu~=DjA9YKsGj19Z@(6)=6>j z)EI!^%)ri%m4QV+<9MCq!jDyX$KBPl$WmyH!mvLGw4^ zC;T*62p}w-`v`qmh4iPZSNqTfmqU6cNeb-&1lZ25LOTt~%h~(XLCTLe7q}m>weI8N zZnE$plVTmME#1;gm5k>dQ6=h+)Tb!F!zus-RSkny<3YwdnyW)OzS>@?nMBEV@&Ghl zG2@Jm`kodNus^;Q(jUch^3XjXwmuk=))n`JO9=*zbIPFV)0vqhwTH!a$4_VW8R}VG zh~4clZ`!Gq6|v1I2N;3s&Feofj|dXBBXL$9(JVKdbo?sGhb|dJoC%Qj2de?D81WJ8 zMi(i<6hC!L>V@gnD$M|cEPOX_lXn0)$#oioR4t7zH`u;!9}3nrqzip+>xf%DJv9<& z44LOFOMGkK1=8ejOdKXU4FYzRqu6O+`Cz7LC(z)ew`G|mKn?K$01w9Wnok5t0Bk}L zxp(FX^T*PfLYA11x6$uiJW}{z7;}UQarbpWw4htn$PjA`78cCuP>FgWhwOb38Rg=U z#f`6r_+^slGh<8z`Z&PWv9>_W78}>H1^s!yBsZyLvNf!3-bDi^T5hp?&4J2I47qfC zPAAz?A4C1k!etEC)dJv$GD3VRQn0)GBD0K%&+R|2aT>{a+HF+6mX{_2(kEzDU^^@E zWZPzx6ry|apovl^(bUJ}HXjDKv0kHQM|P91-K!a<_JrcHP&)6bb+V}KR4TE>pZe+y>LIrdU+#S60oqH>ZX`l|F9do2^X2uy(5TBwOcYZ1WwK-Z z3N)?%%UztaY}Z{pprBB~C-_qXHvdbsH-JjL3;0Y~$5$*-Ibu)F!3*o}0=8wQSQf!6 zGLY-vg%K`%fy#C@7G&JYcur%)B2@;sa#Dcy7T>OF0mqmGEq1(V6!w5v;FV_ak;cGl zSoRtFp7w;ofcf^db;O z#X*C%{DiK`o6@qf+6QpSwH8a-+#yavN3wli5}L8jOJ58^`ShDqVE6=?%kZ{;zOIXb z>PF~qFlh<&C~|qKunx%3p2rObEVo;`1bm zs$$x{Ti|yXa3EM~?hfPctDCLY$S*`TYUafJO}TzK?LJdcloO-9LCFrF!qdpzPR;jN z5NB+tbMJ_?WEu2uN=F949*3Ozk-x6tZhtK^4v&yjLOW3xrXX1%gcRVPOq7YOZy!Ez zBNPTBnqK(3orZl5mj$Q!QWSkQp!09kZP(AT+xy_eKLNFsjF|(JP7p49e`66r%2SS8 z(e$4@`KxMb#ZL=cIJn0Yau~TQs9mweL0{#I$9^u|dY8_h9xHUUJnh#j?CuvE7FKX1 z>ss;Tp;iVi9^ehFg%5mz!NMo!(N;Tm$4VQ~*b%ID#mx3G4W>bjZOlA?f%)(I(3KU|0D)#Soz~<4LRfjJ z3C|>qK?eTVRAlwYKx>hRw5`k%w+?ZQN>YqIoIqLge)>C?Lx(7=Kb#K5m2;j)OjiFg zfxJ}($#=N=u{B+uwZ9=^Zxb~~n-p3Z_4Zv$$+}RGZxUDqwPFr*?79*hykG=Tm1_39 zNBJ;{p14cYd|kY~6-u$~8EMaQ8Rht*8h#w`H63J-6bt03;umXw*nX;qu)?UhjaIMy ztxV$bQ}U)0cQ+IBu-wOFjVN2{B9a9y<%79YLkn(Z*cBms5O-8d8U1+OGU*#>0~m&} zyl!UgE8UJRKdu(X6ucwGc9cyj!*$PVaY~JJQ)#g(O|~#l-l#@LfiLr1hgB)Ca^ClU zbRCNQ*h^~e7(vNdG>LUhT@ayXyRDA@)Z3iwT_W7U5aX9mL|c8&6vICz>_*$!glU$? znK7eDo*4srtk0V#{Q7uMgsW9{n=kSd^C67>lk9G{u1l54$%OWJ3(MoXAKdM7q)K@? zAByY8I?Pgy1{h$HmzxoiIEUHWQ0mbS1YUYpKhE%OIu?K~UMTOe#;fd50&J3Z_bM*{ zgaN$*53|g&Ro+z_SD*AdU|8BbT{V`|KC7>W;3A1d4K2K6+EA(O-LCJR8uQ=VJgctG z`AUwiB;LP?t!|SbyK(v|q50t|iPKx>!~et8R|dt^Z0+Li1h;{NgbeQPPH=Y!?(Xgo z+$FdL4X%TGg1fuByWYtw=R4ZD1(YIbYQe`m!KJZnb&%zQj3#n<1r5q4hX|v&T%iT;Vu_a$bF^LLvJ{PEZt9p((s9|3XeTsV(H1}3 zGo~VXPIRo@RE79zPZII*S7JROkPvKtRPy^l zB_K*5>;xua?rm=?JW|eMi6R3K?#cRw%TkX3a@x%l3=BgavJt4S{0x_j{W~o0$>(8@J4HeOW*L-NSl+S8QSz}hYp<~(-&;fQ{gbCn4slQ;v z(I3LtU={wK-~atze<})9B8V!tY)&+yK+lih`Xc!6Uj@K98osuXN!(xQ$zO3bcp#|n zodIdlzlnYX{S%uD%!BE{aY@M__{$OfF?oL;e+cr}^!JzJ))eWpTpz=PlHOy}ft>=t zp8?RBYu&w0!5r~FL}19nT%tv^K1BY~ni4^Z=J-havsofyHhQS}uX=$5U>lrpAw7H< zMghABu;Tpl2>4<6QNh|HQQ-6f)m%h=4ypQ2e^za#=-v41|^DGeOY1KRLZKXBxr3?E8y}=kNV%6yxOd@E+EBD4twfB|wy3Wr(` z4{8y^k4oF)kOOrnBu7n=U;Y^*GevR#M@4iV`sOd+(cc7I5-s%vN&5E(aY^|GjdweAC|rrwFhDoP$<} zY5!|QArPmdI?R9vVW?!^^b}nr!g5lsJVpu>LFy0{tIC zjy#wf|CbPMDE`rR4>94?^|$O}Pnit5+iWxjbE=kv3BN z(V+2545{QGYZi*zhlW>!#EwCrs5S@g#U>(qg-f!QjO<|Q9K_J)$c zo234$;DAnqavk!^<#%xpYi_dYXRj0qGgLnLW9O|ui)b^PpNIx0UU|N5d0?Hx`)_Vy zZPkHzh0%e&+QH}CpTHv0vO8Q&hM1#I|M~NcAriQD`maH&`c(Bb3Mn3p!fVzG4_8|! z6~D_*6kr8o0XXy8TbtKr)9ZJPDLQEEmL2eef#Ou!LQt=t{9=wHE05leFl;`D;j`Oh zgf=QQk$?61TN3_OJPE)xf)f>W?6*+1-(dmXo01NT1PLF`emEy($20Y&LIL$ zm6qlHzI<kDY}; zbd$?*7OmFSXj1COF_kQU_qVWBZf#AP)@_fl{fu+o2&B1w6{(-E(ep{}ndJv#zZxWo ztLz~EP!vQ9_P)UO!MEH5BYGT?{-Q*m9E+J&!Te z`88!q2MbNz+j|6)2iTm|`~M+w;|o}1?{z)@PO|^yVh{pLB~8*0lFJ~0=+lS(Kmlg} zlj^Dpsj?oWk%R^`vNGX?UwjW*mQG6^mQnWQZr(pS;|EqJsf6{!f92;dB@Kub@Gwr( zE`=$rjkuGvQYl;_-Y)LkIiqYypvTtyVlGm!WbNH{IbYL*7Fxib1dT=am(#2I1Xj&s zTS%z?*x)~gLky|}3=44?;tcluuo@_kR0dOehrKkohiF~U6bB0&aj`4Om#>dpd1WE} z6P1HMs1&R@n?L_`&;Klq2t;)j9o;hR9<@I(x3t@OFh)dVC{!xv@k4dgJ5iD5l?HOP z1||O$%;gm;gvEBS4io%qbN=|3R@8qu_16p%00e{&D#=5^qMqAOl!}z@7{y45R5#UF z#e9mS%CK>-m6zy1-fe;VF?`m=Y_dM)P#F8a7Bd!XIL_a+r~wQNnEzu4F;Zc$lBi(M zN+J>kU~Pe}aFr!;Nq5umQUw9*DmkgOHolQ^I8E^+}!}tK5_(Q=Qq2&_#M1dP!AuU0kQh}OZr9cApGB~WITo7F9DtdN>`S_c)4aFdUXuqSbV7^7l zve9qy{G&VgFo!hC&Zo-@9G%IuT4C}3BNh@lSuh5P0?uL=KF#I&MPPw*_N-&V341;Y zLU9*IREDQ8T(LPiOBw~eyx=APlQ1z~WeLaR{tnLIp|Y+ExR6zRej)#zXa0wMhshsa=<5H_qR`g)CuxUh1Od3cgb&)^hX zEP@^HSzPazyhL0)iH?mu$=caW%omc*QFv;oZN7a|BWoq;XOO2K9@bHG_^n6Kdn#vzw zp{qKtu2x*vG*Ut@hnx4Zs1+0x=xW{8J0TaE9gD0MYDDE5Sdydg8M~Ws-R`WH8e~j{ zQzz7m&`Pd|wLBy$6iAiZ2CsN`Ej6sZxBlQMp6z3~XtHLoUbm|2=*UahkqCP7@GvmQ z%WzpVpDlmAU9#w-PMk%?Adxb6Q@D-8>0NWC3Js+P9%}LS;n6rGoU<6*?=Z_9lmQH53KNWzclXQ| zNtZatd@Mnw{`vHAy&ugdTV+zJa7yzGH;sBV8u6c1X`huHZk56Wddw#aBttk1+p9M> zH$TwQ%5b@!(iCNRl(ycjde(gHfxG%h&KX1hm4T(RN254go_-?T1|-SE%#2F9>nq=7 zGgF$RK%fP3D)D-K*xQ}SK(~itWMp(Wt{%{IM6AZT^QR_awMbNmUPpHH4lZ>$S^RB3 zKw_G4I3>sL>^$hF9StX!&F5WEUQR<31Vs2gK<3-3HkVgWAj0>0Z>Z7cQLnZ%XPR$W z(Jbb1z5kV0#KVIt7)XtJW`e=`y?zWs zx{WbR6I+ut!B8n-r#bVgiBk9z}Su?u5mBl!a7E2ycvDbaZ8map5Vn z3dPqQd8nH30JsGO1qeW6 zv#?DcjXE=h9FyP!3wU?FmG>!$3I@Y*v+DZ*KW6hmF|_f28)E zdhXq6tl{)@!cWESX-i3xox6EuxpcUbM~S3Mf2q3K#+9@-QM9IxN;ouPvkoF(cmSkV z(6`9Q#I8Viq7uhXsvF(~qUBkYNE*)ODzkG&LpaJ zl}}b0#M;yyss7Vmy$V)itBXjx?uY$obU(Ux9PvWrY)HKRyAORvW0+r&|h@7t>wTN`E>pxgCmc4R)wK!s|J-+9g~oa!m7Fw`s5Hqtko{h^)}Yb9K7C{#r_^cxm)U+vA5%ggWFM zDh4XnsLm>N*79cpzx-EPT%TSHO(l?3>e~ds+v~$Hbgl9#1*IoH8&@4Pzly&-vafk5 zy}sUc5cz+&m?5HHjUr+{)Zs)GgbGvpVSRhNfJT8cORLweJ-#oDNBHiQRnj zmNE@cE~H7?_JeC;whB$D9i!>W>!k;3tn3Pii0n?gPlpJcWB4PGA&%S`HQ6Eed%a#y z$%)mp;gp$-d^fg|s|Mm%Hk?g*g@m)uaFVa?`f*2mDNMU$kcteD`;m{Msyrx&Ly^-~ zlCB@q3&W|?*Z8Q}S6&)LE)8!mY#;#9`@7e3mMj_fgiF=fdJ5X5zIu9Ex%u_+D9R<= zoj-A`!J@Y;I@Ll+=cT(90__mBg~uiF`%Wudd~+KtpZZSr>4B?q+58MW71%{ z!YNV2Q(D?be2cwZf%_GW+A(N*wVJ|+w@N$0#Dxf&NlJb<_)2oLeKdEb@}!J^k;8RI z@KLgaHgW}X`Xwg2BffC0tpeSYnS{k8@0!@DhQ)kQih?4)0Kl&0Vyi*>#kB3?gN3e^ z!&I`vs>~askI&CGH@4HqU1uGmuVAjq@bjmuO&mfWzmx zp2_UGFg~GPr`_j-)X;tkm&9nBGl4SSkW7$=T3ysV?U15L#wY8c^mrMcP!Mw>M`Vr< zAEe>-So%D|zV@qrPS?^ZhFm~PV#8iHGxY`R`KUqV24Bbk{^d-8B=%Mrax@rH;rn|yjhO_B zU%0p@1(>0w24fff@^nYEw8YOm8wC3>obCH+4pZ3A3!!@-g)d#t*lQv9{85|8san8` z1N<&Zc2yPkUYu}@4`gHBbJO?oEj;8FO2qwqn0ahpCi1gL-50v%-qg^}@XJ1{eJIpQ zg(vSDUO&t5Cp2^6hoC27`vp7ekr2mqZK{}97h=4XVT>d6l^-h_>1@`K>i!(?K)D#+ z+tij3VGEKhY#uHACdjd9lN@G^bcZ<=cfTjNGh!#5+1tjBml6G_xMrXG4fwYCu=l$s z+|W@FP7$HJ7roeG?u;JSX8E2hgDLE*Zatb6yl>A}V$u}em4;-k5$B|jFL!HE-gaX~ zMn?E&csf1+mlSVT35IUZcPsjFpAyZRY|oFu7bI)&-LFHZqoXvgxTJ4%L64a`x$``1 zCq(rluNuz7>m?V-W!s#^`7xELo4cL_a!!3H!vw@92DX8oP9*e$TFDwX0r3cfFsL*p1igyS4yi@IJHqWKpkb1mQVFr$$Y7wl}p$j*Td zJ4q(1eCoUQZO+dqFq7iOiyBr;2pLWE85-6L`Iq6AXj4h1Pg{8{Fcr-YS%Sg{IKDK( zjpQpBGk2dwWLk?AHrRd_$tU_W4{=va-QxpR)BKy)F0=0&CR`AVLEz4$2 zZn~M(+Sv#tYiKXBqhE2~%S6))y?FqDR>84pNXmB;L^=#zOeKuF!UvyTcc!FHqz%`{ zx0TN+d)7(V;pkyU+_Uk)c`lj8dkbnq*d4aXH$VJU&s#HHSKZm%A>lKieI+8;Z_tJ` zpzhX!N|6qf4)LXZJ(ruQlF7m`*iHT=i&nwVtd~BmUDe?=WG0)`|mH4BE@G@O7wMcS6feFlw@L&W(%*_)qV4IlC8Q|%c3qHCEFBmAoQM?l+{BL^_s2bI;C(?L z%@#Wle1wD0cZIJai?L#ELS0ocuY@)oM9V*re zl|SCt>`$#INcd}yt9N4wxSaN96mKRML#@`uqr&fk^q~XyLK_|vTW)u{*miQidBQ4L zpI7uSNq@beZL}L(Z|`iu%6fmhqOZ`OqaA#QyGpkEgi1uN5dXXBUbIkNb< zTHmBNQjyZ*Z6^(`4ONYsGuIEM=Vr}{Dz`Vx!AA&Vq}#AN)RQ5tn{8#4w5@sM`YJ`oBb^?%C1`= z%!5pETHj?7%m>srmofGNJ!eO6cWTx@GH`%9%WaE5S28CC7X<+TR?)u9!Ou#huZQSY z>fl1lngx-SrEQ?%h%Du;C5dm(6kc`kjb4s>ollyxJn16n%j%M8iC+HF`(CbRYueHh zbdKHOE3D}=rxq0B6LB(cqt@)|Plv|m4znQ@aj#Xex5b0|^I8?|oo(zWBFUU*{M+#_ z<5Lxl9*W*?UGHmr`m~Q4_VZj!n?x zMBkjyiqWR&3r>a`jz%4V)wu=T5ETL$CqgaV3k2B->Sa9eR=p2wFlkM^W`ja;G<^S&xYq}`5IT-MC?&eABXgSuCUSDXvcOD zeRe`YqRC|b8@}PgBhK2;V&NM8)qRoql}o>u&nYC43AYN~fYeMBW|j^HoMBQUE{FlH z_JIEPJxE1uNLf#;eu#^(1feMki3^3^j-}xgbVQfmjYJMX@1mnHvnNvcm>Wu3qpB@m zEpAMPW2HPw&X7Z46P*?WmwziQm=BG_8SNj=#KRzuV5sM`;VptUS$ju9$}$+k^05*luw-%Pp-^)^|{rkZWm zo_5@>m+Ug;=n`CJ!bipMUWp^otEogK&A_|EhGILS3p-c#cSS}STF=a<{=IJzI7mSl zR)sCg(dA~pL1-ZdbjsEM-;h~N`X+$y507!`&B8T-A2eP{J&VyjZmmGXGiAr8EMYIL z-0d7FXp0S0a{4?m1_`I1%48g#RA0-pxws#~LO5bl`30OKWE1lHw05C%V}ncuhr1ng zE(Ek8UuZUosq_Fg3&_UBVlR03v^UEbwyJ*RZA5w;dPU#(8RguoHk~!bEhW)s;M@* z^>;PzAsy2l$Wi}G6=IqF}ztvy&66Di%!zN6m7keI6Hd-IQ;cUtk#&E*KJwA;2hw*{|nj!*7$EeYFcD=Q9Bi ziRj{k_Y zk)EU#bf6d&bC`Sf-K&939_EEV8^Jdy27X-_|MB^-kz5P|+y13`o3~x4yq|qsM z+hxWVq^8nZqMMiG2qV#C_Ga{^hpb7=fOf zR`IKzBM1OkShH;6C+AuJ5^*asuItw1o5}hC@UheBJcb-?n&ho3?6i-CTo9@cR%*cGAuT^_2Um&X!GRwv!-g=jNu?z=MzTE&HIq)q>3h3FeM zo4N(phu(|u@bJi)T~8EnK0y1@KJ{c+Dylu4e%ED-Kgb!TOdyp5;bm)a4k5rE|;%xNVRSF*u1#1@Zm*c zj*B$f61T*T&ykqMjq$sTC&9+*#7@1tck##($hdeX;z40`kxm3S@=+L30i8;)H2Awv zPB+C6z;hjvS&D#E27el=*_W?_zvb&G`4#8A2XDDjiA;%7@iz)bYZS2sJMy$-{ zq5OsX2`_<{tmzy6D^P!GW1TY5mb4GYfPb6T_5l4d{2Nyu43%qgtPx^yW_duSo=c2j z@Nz4?fkxWT;`J(4n*P(TW_X(?-4Y^&{IK<2< z7M0sL4r&K^P7X3&EA4PF#%Lj`4tE9taL!ELFK{%X_GCE89A?Nxb>8C6rvUF@syn!L z3wDV~Tll#PfYD72rH7^v*Y6n3^ZpeI*xuCMZlp(~T0Fgo9KSe)m=$>5Z*Oud1Vbp# z5GEUTwK;k{N4V@8wgVej98f{B?-S;UVu07`kg>vk8ch;;1YpYPilM*62n4`<&;H_= zQ=y_@o-Z`YzT&VVrFUVhBv#D@n&}% z&^K@W`pDU4)-ms@HMO*FE~$yU;JBM~skLXgosOqF9r05s%mxFxo*eZttKV_I{F#M) zn4BU#o5(vuKeeHpDlQtwFg*KPcxE%2wNSuB@Hd zUfc98sv`Y}?$~5>^psbJzEqB6Ot+w$(|*MMEN3;y!J|KtKuqym%XP|C#g@5fVeJZo zq@EpT5~@L z6)2lXgk1=L!$Bv*cSp{YgEI{t>GD{m!|t$#&tE?fv2b9#NwPm;V#5g~(J!QrotTr7 zGT#2EENj%0vO7CS!OcQ-)IE-gTGJf&qw@D8z)^6c-hAzC3*bkfG>fE&PQZQ6AfbMj zyrCh^&gm2rq>~G(=e=JKl&v+f$#LH-ulzOzorWvKFt^DZfS6C7(?(40BFxg;iQGhQ zH#|HnosZH>Uiax!1xW?(FwJ)&Wa+n5YSvq!B=$R^(flDX786DxLXc5#>BeG?Rz;)g zn!}ui`}*nfu4h%n8On+1)*(;RYQ^vh*OT}8X`nbE3~*W8Wa=)_onY6{5nU=&HRqdx3;eUh}KW!W;xtuKY+I9DDUrbkH`#^y3!Gh zUD-g86rCPLF7de_cuJq-dab@)!n9;yy7F8HnTlFxL9s;I zG^lWO*u>&#wpL^3yeCZ{I7)s%pbZ)B)@<&+M@X}{lwLk!PN8taMK9HNeqU(sH1(b=FI>nis-`n2Zh#<=pL57Q%t^Np=O)lc&9GVIGThOqIS%atiZZ z$nWP-^8kcL`{6elE*uk9Wc%=KtN@1By*EE$C3 z5xxS{HzF!I)l1#Ed2MfTyHgaNH~2(i)!mTS)4Hkwy5tzVS&$?|l4S3vf81+E+eqFk z28W=vVq_8o@gjIPiG?xmjSk->wwzRhN)J7cC4SuR5AIe(X%2GbE+p1AXf{f-xopwXVNH@_#?M(oXqHFr&*JNXw46 zd(w)+TO4PdNqE9+Sa!I8H zCX;~WR=1ytBE?@@^7CL(p%TwlQ#s$#*==#JY)zlIk2FuLS_HJ&n(BV&=1jRZjp_4R zN^hJ*c_3{vZtya=9IG304g#E@osCUwUbofPxJU;T)W`%Gb0B(2?fhdyD}oo7Q0}VA zUbGo4hj%0zPf4S%KvxCbj%K76=u1ikP{HHuFtB5a-Pj^jp2D3@FvtT`zUurc&fbAC zDik=kX{EDYSvuKddx1`vG^%5&#q*z@(D4PQLJK|)MV)98NT06N37e2|(CkCa^D=hr zY4okD7EKNrxUN#qW~;y_s9W5fLQH}TK?;`@1a#DfC2@sCXKfeCXAG?jx@AO%_%h(z)mlbxslNByj?`&F z&=6{+WO!u)BbK0AcYMCbMIxe^2$e8@l#r{~>nNnS1qvz2m&A@hPcYNlIy5#kgb{|` zl$d9Setg!l^4-e3YYLxRrkNlXlpp;(H+C|>V?QOl_S#HguoX=g2jd+U7FOgF^g|6h z%2hP|6NW9OfG#o>2AxwY@sl^kF#cUMZs|D@j$+t{#Uqp_eWG5ANj+W6l+V+_z-^*x zOAJGVyFPGJ#a>-kct1YKLqb?@KOUbQ?D6Y)i(0OmG~qF2B9tYV2WhTeLYT0O6`Xu3P}Im)Y5_(gD zy?=FYh;(5Si=7L+D<%ix3dw{sbb}j25(SG*5162JVn^o6P0)ujd@9#d_&H}Aqxa}y z-0c80wmhG07=@m$u86W7t;=UE} z4El`GUpGqxyTEwt=Gc^=>Kwdq+69UNr%E=a{UKlo)UVidP{zogP(ftOnxjpR3Y^B9 z9oxlQV|98b32R!jng$5DLSv{@C$TM%~+ZQ7n;sZ?adV9;0&{=pR3@vtGJC zs-O?8C(zY$(rsFdczA}_8{}?zELgoW;+Gc;T89=EeW&BB{S6|l2l|E}BqWJckw`DD zPRHRlrN^vEIKAZJ@Y0d-s_cf4ZxSKYQ$LZd(>$zR!pMa&fGc&Z&=7v%EUcd#IL}~O zU2}b_UPP_Em+6|NYsK8R?}q(JmIVrSsT^UFY>^rz%Gv3_(HO(eiI~a_ut9C6vyk3$ zxZfnSdqr{XU@fC|Z=adD0)JjA_#S1<@3wP1>eKQaNYIRreli4)q=H=xV~U<{Iom`K z?@6G^>*=KN=UvPx(2P%)YBWD%9CEU2l|Y;pEq9}|#Vb|A?`ZpX0_y1f<<9W+m8EXz zmPMC9%)Z&J{P-9bAv)+O*PESqB^Y@QStz~jD?e@b7GZju{c)r7Es@tbyl{_bN}tM z?m^fQ_@RF6u>`3bg;6VzbckPUTAI18@$lBeB$=1|Y~J%6nFU~&!;|k~RdnGSf7p1J z*~;K0rHXrL+D|4r-DoG?!PZ~+c7mSq`C1$>)Tu>c3ORNx{Me`p15<)C7q2t<#hb7G zv3Ox{aZ=#y*?WBp_z~ySJ51TbNXtqt4(VO@kPnv?!Od!hW$VMm=Q3}v@(syCQJ__z zd*uC`ETZ~+|Eg`NkT;B0Y(j)g;OOz13Kukfmwbe>2LXsTYjPM%Sc{%nZp9ag#a4qk z#uZDfcZLFIkg!+%TA6f?IQQ!=*v|{OHjjFTcs@_%A8`uvoFx>M<77tI_^N=2odc=~ zHr1R@*rmiWeM2vZ*yqDx$vC-1+ERY%Jl4O%Q73K9EzY{oy+z#$Nm@20j zJnYk(KJqI3p?{kBgu>d(iSSjl^e7+gde!#cebTT~a`wuvZ(OOeRu!~vkAoEAMg>|I zpuBE>I%RGxm%j-5iWCR6g5ng6ttajLjN@i}07nQMJBJephK56b-&;4y7%(1;LQ3t- z3X>m_tAMP45T$O7LFj}>$|67UOGJ&hX{BfUzDG@O1r{MoE$l3}<1nwP8^N#wC5shg zAK@k)HWXyoZ6~eVC`ZU3R7<&+D)8j|$$dMWkVcUPT-E#xv>eEDYK zJK1Gd4EYHFlNv^waU@>sZCxPbgC#Mt!k>cOY6(+QWX6r2ic@QkL3i6 z7cPyuz7yuOj<`Kquh?XWHz4+4PaJ-F=1AB*{7I0Xef091jSc9TteHSR(SuEO5HCUp0EWpJV|7}F`)gr?`%fXdCeTTx7KdOloGXH^UYL1PuR^e z*J{fAYCEcQ?8qkkwEl5*;3e=mw1w5BS!>RrthzE`As_Fq!)K4}TXDSjV*il0qh4GC z^J-%8rcjC`by!&Z!M77*p+|tBX0Z=9b8XSqpFT5h(@pPCba*QCuT8F)35X%;UJN`5 z#Y$$jG|z0F`RhF)ob>&&f|p~}#?gP8a;{T=H`Oz%*APsgR)MslHtv%~);BbmXjGkn zo+tSZXs7Zo-ehSSFx@;^td1nT2@=7vgzrkAHU=NqQJ2D{w&z;E%YTrN3BBj&i9lL; zQOqM5T2-#MD!nWZV8>}-T{6|+6r=fc#Wd>q(GTO@y|5>&vumQYQju(u^FMz9j*JIbq<0gh@IVG`uUSWDEW_B=Arf2DYV=Be)hII8kj%Yl+CL2K zfWmP+9DyH8$?ovfk>xnT-OAWMWZ&)fEXZqBw*OYkrZ_kxMI>ESrWA5mjZJ8Zz=w8* z5ypORQQDG|vsnU*;Elw>bzzr|`u>NG;|Obi!#RW7er{-_RGGUT3k*NFSK`X1K1*B} zM;Fh`jRLTf_*n@B66&tlW_dGbHx+N+$LVgxmB`+1JhctnhDkCR;$^@s7ZO4(LZI9* zAuoDI>?wwEE<}mXgmgyV@jOYWhk!%JGP(g9;1$^1?B&OBJ|WI3WpJ>vlvqrj-8ze72f){5HaFj!1DsX zT2rHwA^N~LsckB}<8v-ICAcO+k!o|VpT-G?8)T(Tq+`Q@J!OZ!{z&lyrGgB`Gc2RY z)+rEsKy=ZIkqc)~BGN1P=^fkznXz`0);|{fifbb)P(7l_6~mwOVb6QgVRT^fv<3Zx zN8#3-r{m%}V?Ah1;-TYbD5ae9-IWnXN;G?D%}F?Qg&h^QJ&N|H6Y?-q9Nn;eRpc`h zr=R^?SB`;u2w6Y6EJin#2v%M*j1Zu$0YBn=(9L3;KBX_xAiet|(8B5=6Zzs=SEOMp zuXg-Ly08+(>=ZcNkY@Rxl0IT)P2JrZ4=Mcq#`b<;0a^amC|<=qg1^@KGccLHmINM^ z$rk(96$s^8ln_0sOxmeIs z6gWW6BemhAG2K)vUMY9?k@lq02?Zi8rYjZyb))*jtDm~p%`_Po0q^ig8C7!)3dP@g z0y18fwtGw~lir8kYPh1_62Ke=H3ju&<3h!Ls>O$Z+y(F3$NgzyAaAjo5L>tAxqbv4 zc-!;1sR&GW%_&)%eVCoC8Ut@j8WyiT@|Zmz_J0JPV&MJh*FDN5r_k?Z?46!;pEB=Z z1Wc3fm)C{>(em!Pc-kMy$<9+JaU8s9%EcQ)i?V$df!g{SRp0}7z+0-V6W)S*eQqD6 zH<3?KBS!-PcP3@jp4$8;X~A0u{ivf?lV9jH+8&1YCa-pn3RAu!O+Y=2>o8PFr`XQJ z3+kNoNx3D;Wb>_f@HwU-oPBn~{jT#$zAj|uw+FwJJ=c{%5vm*I!b zx`ebJeU@IdjWI>9{*Hkx%0Ktm+|3E#>0w>6!ce%7PM^~EJ(<9tK2mVmukd>009jJ| zv=Hhb&Eef;(6!j1?>}Ka1T<#7cvr@pS(Fa(WwKqlgtZh+m9(`DANAO`^X*i;@NS@X zfReQy=N}&r*HXWyr0tC?xiQ<0qKnDVaJUI*j(O-kuDNF!`P|ls;5FfvVBmYt{l*&{ zEaFee4$V3Mmsh7?ayPHW_!~Wb9M)hTDXa?G)!YSiIYQDKXX?Ey>ytTEi|J6Pw|&`C zp_$1aB-S81wMLBbb&aCH_HLbmdb9p)ML-Q zy?rl|@SYCtaob0sVStghp-t??FnJRPQC!ij zrH3q`o;e#aW@Nsu=BjTvo<(R zbfW1>rDy0Rjki)%xW#g=LQLMr$?$gOW&dG#xm!A?dT3=aS!=hBZQ83GOKOy6@l#4k z-18*04B2uJ9mv^7Rx_F6G`KX&?@UW48o_4%|7VjpyI>bonFG)vB4T%yeb0twHszP`oKsV)wZVYaGUS&XO zUXh65LfvUvz`Rn`K*LG$T8w&zA>rloc}S=@4hreBn{6}G^wiCOiQ3Y%aWkoOS5lTp zZYiB|Gx~pl^S~IYFoj%aIVGr>f`H7)?mz*RkC>O%LLsf0)4Da@0C`v#KM2X*?dP8k zg1IN~%NmHK$R-Ikkn!E?QvEk`dbS8@=Zd1z%!G(RO#VJH@!J%vgE~b)95D+)crz$7 zGwAju3}nY}xj-FnFCV8RIt?}XX{rUmawSK61lLcZYIlnszgxJoboV5SFP9PZ$i6B4 z7yJc`Si^tcyQ>t-6yYq7!t%iQmQTUgS@9V9!zWi_U z(5U2rCeqBouZDCCgwf|1!q8Z&E({{788ZK#1>oqVKtbUzPgy19j=4dv1aALG|M3g) zaEvd0>_*vPUbX6LYXNA~`m@yOME=~+;LkJ=t(uR64+4aukixQ451#drv+II2%m(U}O z0e1W*-V)H0aoIEL5Ap`P9HQV-fes;Qvj194KYf@S#=ZrILagFNwWhbr$X}UPn_9n! zq;eJsk_0?Zr8^hQeADw1w&jhap|d&b&|>@^!(syYhYfpY#YO-k!a+v@BXosQl$E1Yc zv7nT9{(Q%SG?~|A5+VRAN2Bt?-?psH2=A8&6J73b1*jW+HYoS?x8?%qIfclY4I-5r7kcXxMp z3GVI|+}-W;e)H}Bd&l^1&czw$f}0+6RXx?K>ZzJ*&bbn1CPSN>BNnL`=~0#b<1Z&D z37YR{T~3O$|BYLaA4=M?CV78_x1Azyt_Xko8ykWw!J*m-m1c;Ti z7~B8j_$J#6%B4H)elLRx1Tb?+m5_xz0Q87u1p!U zYVq@dL!`HhkP9My_>Wf;sNZ4~kcRXwXVB}vHN4vBLth!hQnZ?wk-+9{r898 z+=StjZ+22=zYIc@0o5~9H7HPt&mx5q_|V?}dPEe{f!b;yA2|E(w${+i^c2X{b}ypi zBx}iM&JsyMLfzf*U1VmC%Ah4tp6lu_YA*@h*)x5}e|8d!zj5KA((qsBk|DZ2sWYCDbrt!+{U23mHThIwu6iZa8ud++keh;-V_sE#Da$qH?mgi|{RZ!HD1AX_fxe-~E- zU&TV!|5tUX3W>L#SE^dFGw|O+NieDG6!c>HiFKNy&&%Y~D(5`s1QB6zC~3}#8Zs*q zZh=L}eqd?F6w+vi>ZuIlG?G8m<4Y`Cg9%mGr5`~a{2-BJwlyTF`~B(B21A?m;GXV( zw@xBSOkU6;ZIMc*c9G6-g;`+j;0AnB?@-Sqy-;C|K@TYwwRW+(Oi*FEQp`-Iz?9Jx zR|ql6uigR1By;YxGl|ub84Wvzj;^k59lV*d;uEk|zwV&?`vUUYqKu}; zWTvK8q`0#hDSb2%>ad`;j znyYY8<&;uYX?}Ix-@+Gpm$&gDjEt4gww6dMPOJ{s&fZyuXdd^~p^+ew$9oB@d|AI0 zA|1HjU03jN^nh2QeSh>ZY^~zrOW<=g8$0dQ%p|arvwdu&kiv9v;-d&!fC<;REz0)f zB_m!M-s*75RjTgf_y8Y5=Fu7)z{ZTvNPQs%W^@tb{x!r z9~$$bp-m^pZo1zJUvUjyu9&GiZ;kq>52COeG~vegqZRm&)6y2& z@t(FOE=QS}Ak`iXZCSqbTT5N?5Nv4ad-&}oZ!-__VvKJSq-~m)mp8+c=-Zve0w+nT z(jU^u7hbO5DrK80B_r#H+hpk-@8)K;n*rVmwS&^}H@vcTk6Rvciq66f)W!T1C$3|R z&PEDF>bNrGp|z25d!2c~CenGd(0Fr98Dm#-EjK|oMW`}ysNfjm{+ZX112Xe<-cWgL zi;L*de6ohfsw?QdD`=_@PLG)5=;Mu+C{h)9T{(*X#1MFluY?NR@7*BhRCs%5iMag~ z#pE^yGZyZhNNSMD_M_BA3<;$UdcB)Lug<6Dd>4c~k|;Wg$z@Um=UvGlkH`^Dbpwq8 zjCfU?8{>rYfKxpDDuzkU7>8p{B8v zsYV*Gsd;9>mJ|mRM{PFRXpA0$VG#r;j?RWGl>)_Q!}0#2veScu=}(?JRku%WEzBy& zZq)Mq{r$r!rkT|L2${D_Zr2rg7`8v)?I_%Y4As-J5(&M+c6JrxUe4$=EGMCRQD@!ZiTU(n>&K^9=lc* z{+P$L)}Sqz077D+6bu$LTH{T0VW`^QP=z>w-UAX>Wl9ndpSbS{g=@|{6x1DgO20A` zM8topzdHz0R#lwp#*+zuf)bIR%u%9dEk$y(TN2Wh#U1{V87+mo9~%cVC=}%a{02^ZA(K-m)~B_y3+LI zAt~T8mwW|Z*}}s!HDxB?kF4z9g>Q_dHq$v~`1~YIsFDU(@!<|@0y05g=0C(8jAg6?MDw=T?O!Pj-;@0>sMnnfm%uk^CG|5UpKP6 zA{xKdRbrpQzThq%cK5fwW8prcR8Bfwy|WU>nhuth=4>u^bzPx28Ekr=WAE2@Zar)> zb>o^UG#Ci@q^?+H{8{%PINtzs&(;nS?N?*uefs#T?<&L=NMzx@^VtgR**`P#v z^GfPO8Lki3Evoda3U+N7viQx+)s-%*!z>UJ*m00wj&s18?6nx+mArK!Tl9ppIs=dN z5Wrle-E`m`Ym8U-1N)Hv*}X_#&dw%tm?4iyc3;sV=V^KC&tqmU+e!Bm?PHIxcLzw) ze*Kh^%g*Z~{{hwM?ZKs&Wov_nb|TgDdMeyf^~*#l;h2jnr$K;g=TEI$+u<`%t5W#s zRp^j8vu6M6%%I9`n{^I%;t>CN)fDk4ZP_ZnN0pV)b6HEHrsT~fQeLw4&e82efwGFh zQ_7doHWnfiZV2TEJ6An z3ew<9KXP4vSgEP0U0+_Bp#d>hj_W?eT3JuMM~-;?JeBU@W1R9omJzp%VM<@pR|g_! z##vF!2&Z_n-GDbhCAY28)H|E~u@qL%N87du0tR52T2*5iBD3%TN$V)51;=-ar;w&R zO=K<2_YZfxV>qkzBX&^bacu?~+Oa|vo2bgV&H33Z3cfapd?M`|352TKGvw5cO$CV>$BibNWm3D$>cUr6wG16|rOeG9Jd$%|-B>Y! zPIm41J0vTaMZQMu@+^VdaFL!@5?*zW5H@Ary8!Avzfqjx!_f$`J>sunF!FjEQ>uZr zR5ykM*#mkD8KCv~MIC_p=hP2zrGSxVY;!!t6SEtJ zCScOkfioXn9&)JhY@(7PJM_AH6=zKdch9NUJFwKt!-xldkCD8<%2YnrCa|e^a;*Wc zhj?OjEhK-aqxSUWbQI-*O~;k#d6N!E=lI2lfO^rv9*0IOUb5#&QUHmaB*KI=a73#iCn2blLYI7TA|;|9 z{8@4+m0U)}dM$<*T*I|Yot5>rhFb7ycW|dLW)F|S4uJ=OE2k}4bH-=O12=n-+jijE zY-;Cy9k{peMBI%LYXWU*oB|=FyM+dD`uCu(TU>ga4{_pca{Ep&0+ZBqMfh-w6*Vay zzGyGj(irj9dWurrq-b3{4tH`7|GEv!4te4#VV63qdstzw?`p*7jcbka5Ms5Qd|;Sr z5m5bkw~g{Oe+y@w<^2WwMTyOlw#VPdW9sq+`{zT_7)YVLR47MHY239`^tv+wn6F>q z%@M#9S`e8TCD1XGC}^9?8Yy>DR5hA?KFIQstul93u{se=t8WH5Qn%vVxK!!lW~ZV5gXZ z3=qP@krp*^z7-?e4sStkaNQ7yFVh3 zf|Q4XPP8!tud9@X0m6A%v+we?iNXBDLC32Gmp{l!N{q{kJKtlWeM8g{=N}j&7YK{E zkj@;_zecF!X|8^d*JtYqLtvN|F%i}ok;HUrI$};v*U>&IgxSpYUqh7SZ&}Pg9*f)|%oe&qnwJZ9>=R8zy9MZ$H3D#zgJ9w7EX zfIz2okm?_Ef0RVI90}C`Q*qyeL4{0|kzn;D*GidoV6RHY{2;`Y`o*kn zJVAIyKmy%>@0PupsR7TNe{u0f3iU+-?x$Y?Y97oNXa_BDK5a+`lMerJ`^+Bv29h-! zJ{A;xzp+yV6q@;``Bi<04qh@*vH-5w0qH_BXt6&j5`U0sQhG~qdEYWL42APNq4c4m z;jL))z!(BIUuu28;*&wfKczM1Y@(B4+^#k1)tue8{vTU6rZC@_my#@s2j?XyE0HeY z5lhMVQ4XE%3`G%N!L}^l0~Z`&0$3%rcuOk4@>hDiNRAY#Bg5uv%Hp5mPjGI%8C5xe z-N5GqmZakB+~CnCc;Y>@&ixc}%rWN?6)ejsZgs6Pnr<-10*^0s z4oxB&5c&~5_yleWshs!`@YK~&!-w=b^D38cClR$MFrP9D)&UKx0rJg?l7| zdr89t1AH!)V$`pp;QQ_8Nhae2)?4mvPFmT0JXR1rEd?Ug*dtzQx$$`d&bYf>!%IpG zO#aVPb*LZX+J%1Y-5+n(c(9QsQT5JEg%G}nPuHuKn;Xeyu2K1zi3o+*IEw2jp>v@c zrdMOADl2rMg3!^WzROBo=^fv6U(@kN7cqdenIUEXEXKhm{pHi8mB3w~^|=|ELWR zO?FpvH+Z4VCt}WwHy~Cnm?*jO0aOYCK6z!@5_IgK3-`k;;6xc*gmrawQ8D|xdxjGy zbU5i&zCK>;*g10~kRcb%WH$@Y$s4nu${8u?R9Y7kh~4<^gN;M@;Gt-%09D-FxV)Z^ zif&KqCKo*XP_Io-!cleq7<#M$A2pBg(QS(H8N4)J73~dgghqH9)}uGfZ-0O(k{I-f zu~1#~+SQ=s`0Zq>Q!l9pkCi6m;UC~Cit^Y01b168l1g-TgqXjScGtIRIOoW?e|t=o zP?c6e8r`ez9%0@YZIYniVK3x+wSf?a@^cIvptjnb6Qg?ZcLRJ&sp@nJJgU%pM$X_d zcxIdV1y)YEUy0ctviZp9#ecvrtfKQQM~uQCP}A`|s%Cy+Q`oJ2G6BK$eM&h5k%f_z z!1?)-{n`HfBh=}Ml9N;r5Mhtc^56$$T=o>y!1P_`=~%w6RhxQ5w$OOeDJjh<5s<++ z6iDKDTzDai3M4eQ=B;*51p`$?#y&_}g~0{Vu+^Cm24Lbelaev^uJ)e-QGf%c2 zgN%>Q4@0g@z~B1#0jB1XSQEU2yvUKxXlEYoO0{E#&Tdf}w7-u0n8#WhJuPyVJrmKv z`~m8zHGcv_QQ3tmx(nr35VR&{9}sa~O&xh7xBcjSb84gTYe#(jMUV+qQq zGsep`e7~r~(@F61Yn(kNcRN5YvDB3A>+A+6Gk#Zk74!`H=|n|kcqMRQ?w_c-*srzC!U0%qv2QklV+&yhTMC~d!3Dt zepDb(awvTtjKNrUN{5r*8}`rK@KgAMTI51+ewy>`2~=0RpZRVqhnpDF`N!+IS4~%q z&m17RoFPj?c`D@^3HD1D@oZAJ1@vh?wT2Wk5-@%x+s@Bcq&;3$HNM1!<;_i^PT*PEE0Hf@Gpyc~;JA7UVGMt37o z@&u>YU&i8-IMEHUj@6W%;xYc4BloX;#KoXViGk?Wv4o`oUo}20{M)cOXCVPw7*6QX zZTWBJPp4n1yYofSaJbw_qsI*GG_+3SVf2OeIb8BnL+O5@4OB4eCaOuIF&e<>U6EqdxF^_oj|+a4X%TZ zmfU~hK&d>CGo!^J0i13LBcAKrN`Fe3Tv5c8WeXOR$AP}Gh=xBpcE~I@{bsN!RodB} z{BrThOEU($uD*~NU>S84B+me+n1dV`mAP$+^hW+zS+fv*GPh*3;w}qt0(ACvZt>?q z=kD8a9(d{WK~@J;bKZFy^PIG0b#s@qTq~<)tD7P&qlO`7BSM?ZmA$?y;NNz~r|MUv zNKp213jDd3iiY2lt$km0h9>Lj3}{T|g3y0J7N9NI-tZlmTh|eS@=z+|aO5h}D!!xy z*aXUh{{Ie>3D6$Fw$$BtYylQue+N1ydm&M)Dd`MfFmHxtCCO2(f7(neEc%h3y;i4M z2I1KpmRxa!Dou@C={Uh4yX&&I9Cp@FTgyB$xp*`J#@qYxy(O}hh9*LqN$Z4={Rd75 zNCBTqKlh89aT^)rMDYpanpCB%tt|~Q4a_^5Et&<1{N(;IgeiUp8R~u74siu(k@AHM zlB8O1s_Y+X8cG(GJ6%h&FEw{QG}5&(15(-uzKX$UD+#-v^X z?}7k-_WBZ|yWX27wi(+SbBzJ{u@6-y8AU;m*(0efZpYn#>WaCprqlyQUQ?MOe6dWBs?9YtDV0`oq(ahftr**4=f0A>uS$)-JaePzO=;Z_Zo|uXA8Ue^D zaTI>Nv!7QAIFV|!Dwe;D0z6~yrZNC>^`&1Wluusiy!-W zd8{?Q)4UikpiZQdrv!LBl!v|4lt??_tsD(Zu8gF8z8Dtf(+KX{b=L zW1$2De;#ZV`n8*t^Z3@K#fO)fYMCr}#}A=AMG&jnpPI}#c-;C>GiGG&cDW@8hGihY zD*X2Piny9MGM5xJ>~uMCJ+G!W4KfY-c8_n}EGXT219C``0jP*W0@-Z0fMKDbIm>mX zv*+t=<{%S3$l&+9U;LVz2FIr^Qz3fq8h$hm20kyJU4@W@7-psajZ;<>)(n``eVMMK z6(c1XX2?sBuh70<+>wA-AP9n(iUk(!K`^fRH-vxAh+r_;zZPP|&+)IW?QIP>iuL^R zsaM<0W43nUd|TroY&fW&XBDwI(wV_SRvB&8D_32YwK%}$6dDVHzXqGrv2qM{d1)@`3;Cxl2m|E8i_F&FmLC_u(w7=b{AI#>&od8k z9^r9_RG5E|JTn@UIT47|(tVRknDUallf_x5MIBRnvcOlJcGqdL@tJ`I1|s9_TMw$r zgYP7PNS82Ov9HpCaWH8mvHhY6(0CoJKTFESrj-8=aBjxvVN-BrT=&L1=|CllU!+LH$Jxo6U`qu;cHYbT;BjAp z9nT$bo7nav5YQj$$h4nuU0=iHZ>k=54hV^NJ;*Sm#WywDS*#jL^0hB$VwJsoUka}y zfUy1<(x*Ls%a=cTv^0uYr$?fr8A(?Ulkx;lCv|%YDjK9$hBd~hpj7|D8|uz(N;$k@{NI2FVNclKTwfY#JQ}t~EUGL_SV0lYu0fk8$w+c_mVd?8rUa z_w@ybSnolm!V1nF@IS4l`5lAh7vA6=)ek~S_t_0bKq`Vl$i?w-cJoT)y?p4$3-eQj z*0qsnW#gfeme$lSGPR7qY7Y5XA!Fh$oOg+%Qyartwa>cy>ZX9 z_I2H`l^`hQfEU$*mtG?mT9~--U@Z?6mp^nPjZL-GMV$qsBrvpJ`Y&rT)@^~}uD^3_ zP1_x0Cn};&4EP!dVZGV8{-fm?z08f7Ai3^%y}HwWvDe%5U0}7T@!Y{IjUwNhPFwfv z^Iy<->JP8&Jh;jw*>BD^mkaA;sHuf$0XNKU@0Ew0lX{zZ{Li`^lD?{_91ph$d9rzg z=mLlGt1XN-;kZ0WnQr5koJ=SrCpp33CZR z$T91%fnw}E?s2H}p`zH~TJ`KmnDqdOiSRH(l*#oy0h>;~Ki^$XU0g{%)g)PxPxM3) zGvf4jN}KoujH$4v5A@;WAlo^aUkX**9N}jqpDyw+v-peXdl$<^eH8%tjClrGF|#5| zB)awpvg9V{_OTBf@Ws8S-i*Ge{FPDV4EaTX6s|;R|4s~FL|kyH z**)~S+MZa1W1{pSW;!eL5iX0?h0th{yP>71W2S(dmE=I;+pOrQOHOkL*G9o5cw~dX z_v9JWMhcnbNiSh+avnQ-o^)`{#F~>xsdHHdHLSgcZZN6W@=u9PS7# z=EFBiu5->z72P1 zheZq@o=TPG>D6EYaqVrnT+52up-6gD34SOPd6ll}!}KQIx%2PlG{rlGiZVyw#+IK* zt1OBO4h!$vC-mNYg_sKX**m#T8MuOyB4O82_|vv6`;Z>P@g$A(^*kgACX|JaZVX*$ zzk(aF2%_vDIo(V80ghr-rp7PDV+6jg#j0nn^}`Wf=8(2jhNrQHx)j?9W8YYTP0r=) zH;D`E=<4$gc-zUu@LUZm06J)pEOp-RTAz=`9Mc`myalNdQ(dtU4_HaWwOjRtrGU5H zle$r7(mi}ZS#5U0DZJS0!61IBM&RjMI$#FgK@lguJ|o9@`_ZP>EFkfPIr3{`S9Ni{ z`@mO+1Vc$@#LL#JxeNU~acIEx{WfkRS=}~kxV+^;Jt3%6E3i-relu!5TxUmI(hF}G zBbMcoTFYMTKz^^#;0=|<< zQ*zv9ouC)>N{rL$L{)KpYRYAQvtd!jo`2$ok2p45vK~or@bE#M7hy_+?>(;0uh0uM zR(gwZm*IaWVci)kq zf8dR+&xRPT90Mz2d$on#-4u}ZUYdTq8&l$Im<3Cos)KFSFenwpFlCr}rVT)F6c}XR z-qc5dN5>u|QzHcToUAF>84~z(52f}g74~Is->ggQxP^W@lZ$iRT35J&^o4@X`f%`# z5)9SAX)46)3v{?c%)xhC;2E|TPDxvVK{qjDG5y%lz$*xzKlrpN|FcMz(?>oYMNoP* zonV~4Ai%x)xMpJ;oKb#X_~%9dA`M;YoNCJ2mJ?ST*|!-q_98@yKmmT-&6Rv4RGmTK z=lg{r^-p?Z1jb((PONPEl%WdfXT8>Yp_+?Vtd@QZIWc2&BGTU6)(PC3pt?KDeJPF- z4jAVEB~B}vsi&vZ=!N5?kx5LSg#{kn6?u?d*uVqKh)kS3HGO_%Zw2K_X0FS@0LSz% z8;q*2K4`j^7Tir1IM`+B4Q6m?@k@fZ8+WqB^^Pa?8COgu`1zs*nR&02&POF>=yp*| z8+XEmbC2`_QWLqXEPdD(_xV4E-5FcKd#QSK>PA~+SrV`Bp$g9;=p6l`*=b-_tKuH# zIm;HOL0AN1JARYtKw^Y$-~@8@+iwqSlT=gCrYcWs?wdxouON4{d*Hg9fG*;C}Euz zOlwWu8%^RcbKiMhiLo&t zf6B}~tlUA;kSD}iC=`(KTp5bu?r?x3c$tr%@U|G_i0Ax~nDax#+|K|SC~WveZNZZ- zg!_&_Y6J1I{){;}^Tib<0poyabR@`hzi+eyBCC!*e|Rm2*utCSiBse^1^o2&;D)v_ zYJ<A7(@{d&&(fDws`J`4(%}CbH?!}XP(k4D{gZGMzkuyIe6$iZg~)^6%KIV*W51C^-M)NaeJGE56bF6z9BeNg1ymJ__S4RA@DB_PK$W50j zc@k;xnPeC?R>%}qfAlmH%`m#_Y=YkKzKa-|H6IK6`9`J;IJgVK{f^^0>kKDAmkjB;^BiJGX z67a@(^E(XZmnJo47FAiBQD(Z07Bb!>3cqS|Wu?0UyzT-zu%$;>op#I~Y3kYT(#qQfw?Ku+01I8SUFV zrCjD$WC7EO&m`^MkCz6|pqdFHEB_>8|FM5dMzj5=aKS_T^NQ9&=@*qc{$eRX3b*fB zB@8cY4Vy{xqueP5C+5$}i*v>c|H4UhBM{scz;KJ$x5$!WGhMpyuvlL10#v#X*?EQw z=|cbVy4;%c4MEbcRlz;6ZzJ-+hyl!f0vwt14Zq+l45PuX{v(c6fV@QiugHaJ1`Av* z62mWQxC?0(P@1wf0$i!c=Z~RzB$iNl@Y$F+Qh<`M>$;W?i|P*SYE z**9_gB}6bTwSM@g59MANaFpJ6vnxhFET}l{quo?z^Fkw2qu76P8l> zu)TY_M9rWhrXfhoJd$O<|1~{M8fB&~D89hb(&?=H0*C5LidgMxo+-rlkaaF&^D5zcWR`a#|!rlIqZWl6aJZ%t7fg>d{}L-?8#l8rUqCW3F6@%tTt$slizP!NBL6HfyzW6jRQJ7NW54Ysba{5mr%pamz0VWq zXJFm%diwIej7YT6wt{B(AHM|Xn%IIb!X5;?qUVDbv+WF$89Ud|caSDg;6mD3rdP~- z&+>-o-d@WvhZX?O2I|G9s@F;jS1BP*UQ)dULwa`2xV zpaXSB*h%$@J{J%-;K8t z(%B@7Sqm$F-AE++6SSVL`%D?DD+W9r0#6j(BtBr33c{GV54FlQU+coN@_aO0f>F^U zJ+Q2VeWC|duwJj`$XlOYb`W8Y-$S5oyaG*YAxmbSytQ%+%SW7t3u^h_4=C98SVln4 z)3@**cB-T9aqPo(U~VU4-$9I7A3*3BQMgJK+{lsoq$uSlw(t|{0I4~^6!2roMYdgQ z$)c*`J{3^p>FEgzh)-Wf**h3d69c4QdNY}f;iR%zVnu%Disj|yJ=_u`c(DXwUUN-0 zdSKfB*n;-KGO1|I{?Azsl;@P$0So#4``hX!Uh01GqB5N|qN1QLe(!10Oq90L0T$tG zX0E1-5wsEdYholdt*0i0*_JYM(6PHR?9SGP#N)S=;Z@eFSyP z3}Ifk>;oZ6Hvlw=KF1M9-*vN~!6A5Yevh7Pbi4($PXE170CmMfX$sr00m5~(y zUiH(Gjef+b(Y`!=-R2KAZ9U%f9>`uMmx)t~u#MYwyH5rV#$F@*j-i4~w{U@4Y)Sph zhjV^?O_H>h>Um|-)ka?l5O(esc(+0>*#RqGPTPWiwrZ7jF&#y=$VPHib{H3Q<;WzZ z>&Z?5EF~UzdsTQ~JkWQ{9TQiJ<{VgDD)oc5af4GJbC!#s4aO5%(#?}|>ZE>RLukq( zYO7p5#Vhi&U{wVg-1D2sM;2FPjXSONWNbLV7Dn!_@5;#FjuHiV_6_fh(ZjD@Ys4*X zM#H1MCq+jCOG-*0xnS=?Dud@r=;K&k1!=;M1S{RlG3w4YkJlGp@538#Su5BlcX_*< zVY8Dy_e#&yBmE0bJ>Iwzv$LzFd)nE({jkw$&j(X!bd?y*198u~vlbvMvP-!LdIDKZ zH0Jqw`}lfA#EI{3A5VQ@HA>T@q^3cUv88zf)S@X8z)Ti^W~s{g02|?6)>5& zIQ^}1V7GiBSR`ZB`L(H{zn^EvCb*fL0zHM)#901$;z}zNGI=PzUch|wioZKpY29ak zC|`@n0GqnW?)}UxQ8XU@B7}hRyxgd~;u($zaG#IB&t)T3EeMJ`e`H&PFN&^*WQCA( zFtZ-A(DK7dDvBW#RUE3;hFRXt3;#0^&>BgFNgaj2lb_eloIn114FW>&ZcTz8J~$#_ z3K-iRp0wA}sifprSb{Q#wvldt?Cu}X#T1HQa@qRpit0p%!qCO4T#q$#cY7>Vw_h-7 zocN7zyW&Rj)PX+NH@jVLwDxiW?oW8rV`Bcc-1W_+9pGH=t^NQ-H=SnZiAll-B>S!9 zcV+2Kh;koQWgC=+11e43e}C>NUj1V*q+;f~kj8?)1O9~aLwe#<9p?EqE_T`~|GG~M z{dKvu7il}3yFl_4Qz%p+Xv>^&p_GAIO>3jmeESDB(B?-WEjH9?|8>if_HK*CnCL3H=pv+Cn2spqAyKjal7u@WGx`rJF1^|)cT6t zz8OAQRbN)c1DcTv6NpJNW{hAXwr6k_h@b<{p!nDbwL8E<_^x4AgB-XX|i z^Y>9eLomZrNt#?-iTPi)$?)&};h^b@dRX3jxg6L~sQ-_p_zUtk|e zs#8It=`Ec&4zPuwGS32K(}ZtfuY4`k)B~BfG0}7KoGfHTz^0kaxAmiMvz7_I%FH1?w0))IV z6Yx#|Gz6zh)4fvKzU*2@dVt-ltPN(@%v7WD=joUcaKqw}fIc)n^||%odBth0xN~_O zLD_za<4$?z@9DYRuQ7S*A6Psm<};pkxk_X z_}Vmp&>^$MeReG9?acAAwLH~Kt?HpZ@o)Q}XEx%^22+W=%2ZYT_lER$?&W{MytNyaJMm@CJ98AlK!eV3<43v`*8fge^&e0y*8cfy zmGlpZ=3hW6+buhX@Y2}#m=L=7{5y0)lH`Gyj%iN7C%SClvp-m=AyT$to7igS7~$pq z`$|HKr^V_BpT>XI_y1s^YlKt2rTh2Qs$Kux?q$(60Q!jqH@jDk?puZPH?#mnJ;neF zl8@|L3&U`|3p~!-U*5K+b_7Yhc3&-Ow?BXDOHuScuF=I}l_UtE2;YJ{C(lU70!vc< zogvnL`Zn$fnVz0@e1COA@M!q{-^19NJO>+FbD@P$Mv+H`npf3u661nUmKw_9w?oYR zF{9g6&Mmd-Cc=j*k$@qENnr&Lunh?)l1Syl-}A1ZGU{Fj?E<7>T*`?tgDnC>JFj5& zH0|OOi1)-51zHv1JSuL?pT`dr@Mbe44LuYZiUf@B_9+El&@ei!NLnzp&5nw48sz>4 z9o+^5a%gDi!hx9eRnZhL(krNlkU7Z1z20J;rnF?bGm7sANVgL313s*VkJ3)5ocVCN?00FNt#8PRb>{gTK?gmfN z*=CzA^)v(fFc<>fL)8%VI94r=Fw!=8(M_J8={mzTWLfRMUWGO&IpTz!3My3Umpt{= zF&l^^MKT8DBSS#Ed8nX^$Jq86l%^$iOQgRCDWHQZF}v!6KyGt$vqb44|B;4mUR>NK znH1)rR;LruEYE8=Ov6>sI7(;bj18w5!Exn9hH@!(+s)%Vi<3%k$cvR9WUF2CG zf{YD8n8k(J$1z8h1&1T@RlZvAfP8rsehb$LWDoVxb^sQXftE! zWm^i3{0dugBY`N-r=2FF@EOZ^9F?>I9grZ*n9&txBJN*-~wZA z42TJctgdFfzPb70s7H+98z-TyIPWn z`y}vrIorB&`7H6;JEUj~;2?DT-DgQJMUN~%*##kbLH2wy8)9bC}_HDhxU&TVV@q;h;UGwQ+rv>uipFcvgMRG-;{QK77F z9Ob`W01{weVC=i>CScJ}wg>|1*4FfA>upJrQfWlu?2STA(A8B=Sz5nEul-b%RW?{j zP)BxH4_s4Aewq38)JN?~bwPjJvfC&T}CVUL;dkJcXX*QiXGHL9~3fCjwJ2d;=DkGZe z^K>OphWvb-CCIJBCz@KQhoSc74sHV24;Gm%2%GWvE*B#YDhEvT=B=QOtUqHi0~16l zRB~sIKS30}BRoyLAj)SrS5LeuB+WNQ68biZfRO&-<>i#x+FB|ut`v9#1SqM}++O$M z8?a zvs<JGty;sqO3tTd;8;XYK@{yp?F|5W3yHe5KkWR^mK-cCZ@P}; zEDvPd|0QP&@$|9>6~MXt=EO6<`X}|VMZrP=ihM6|+Ud%hm2oDCp4qI4yur7zFm;jL zZ}X+@*L0%U!ks^Xfxr$PL9_be=5=#3|6>2ktgko`P1XPJTDI@S)C({Un^z#Gs;Nzv zqnBuD%R{H*kq3*PN#?~4_TF3>t>3*#;XEcK8d0RuXZ7!OQ0@)*jmLbejVZZNIP6YIG9zHfSav<2c`%*3v(()|$qJkrXL(KU^P!6{MT4 z9NiBTOG~R?$7ALr%y(J((cZawU)Z25EqBQ2zL*bxFh)L z!?BF4$#lh6V+G@48yG zA?NfgPUezd@Cgn+Sg|gfUJU#d&CM9DI2TpEQBF0lzRPa2VoG>9Y2Z_4_t1XF%}3zt2(sVO`)si>6|(=@X}ZZq4+hA`hoe{zpX=-RA z3S*_*V<};KEbk4mt++M0+-_%vqqbbaZ8`*+G9MZYo4LT{f~uITZfZgn2jyN~h3g}J zb2}%K5&r9IidRNBf6+M^O9BZP+>&FoqFFnzB?#d8UwUqSsr}vULX9m}s1?&J^r@9A zz8d_|?*c$MzW+^vDhD>!b~RI1RuF^GjTgec#um{oH|m<3j40P?b7LvykGbXSW81Hr zu3!H*MA!WfM8`K0vuFI)s88>a?ftaXQG~!G_VE(b-)oH5ro6iOB0AG9kjVlT2&ii3 zq}Bt(jJ#eF{mawgLtse7{|``?z~5Qw9eW6Ih%nP~?WecQWco~$c}2*|KMJ6X*7s03 z$2PDKsluR38GVnrWxng)zj?a-lg1kIoJfD470-asWwh1Tgjscnk-rm0e2OLqI3wQt z7Bhl7rIOC~5Z_Y4w~A10-}{g%pGjWd56c^w3e2sWH^Uz>f$=Q>@MOwh&AVJU?rV6H4_a#cUZ%WFLdaYWA|GgX}r zc|mxP2rH%^7qEC8s(nsEMoc;q7FR@yVrm4+5Ht76_|BhErLmIBRlH|5PG_C2j_jsI z+Y<@S@<7i@WO?OjmwamHReA7AuY3Iss5K$_{=_X%f5kxm=LZ-PRM}XHolU1JG*rPD_8hv7Ma=ImvzA;$8mx;p^xDTSL=&u(zyOan%n6b#ne>kF z?oqbftjfHSbCsQA$(X{|D>_qszUJ`@kWir!Pzv;%`>X4>v@CjX1c_v#i7P!_MGHh! zR1%&dsuaq^uSpWreR$@7zbGiGs9#HNI0kFw5&chIL%kS=EvF1^alE%Tut+Xb%8iVU z259Q7QHIUh*hs=1Y19(K85U1&?;d_t{^?(gkIYFNx~A;tHCNv)DU%MmX+X)OSTU&# z`)K$@?HZ@k#fY!M*|!%VzFD}~l>r0+<7#x|!i}}C5CN!eL0tk*PqPLP48Z5y4-5Bp zhgj))>SiXVf_IH~x6Z`lt}=(?@nn3u(L#(loS-VGH5|66T83;&q%}+P&N+0Ui92RyW=%35Hdu#_;(-vrK`RB|&op5$#;A#^`VZ>)WdB`e@Y;d?gliem-|Iym2 z46(nwJnAR}#1Oas*>R{8MHj^J3KtmG-(apM#>E9xXFSrIB)(T-p8haZMn^IjRx`WJ z7^gQ6L19(BwF&h75mhLTSHWWb<30v8a3z}857JX8 zbiqULG?XU5oS!|u0{x&BjO<9OO9qNmYeWqU)cocli*R0HLI&$0$nj34+2?kS3osU; z-JqaV(X(N0TRfO=Am0I(?7qU*ErBrY|1f-psO^C-!ZU?R_*mt}>a;hsi(pP5h7SfY z!2j+hRa!+sv3Ji4Di+ku>1OOFycy3PT_n2&(J4COuI}Tj!DTPleW-vw>zD@&kV>VW zC5?w=0-&_z0qz7L4b3n3Zf|cR57EhM(!>{!>lFls2pL#K66pMU0zk&YGP+O0dTd~x zstBtfoyGvOpjHMB$&+QwjcRx3+~c5@F;;j#Mjg2It_(456q+hfXM2~45fMP!^qdp} zp3`?@hyh{vd$Zf*r2h>z2icEA`hn-T=D*&o&ex2HV(i|x09D8UKBU#rRUCC>(iHj~h8GS+RLZS2IW!UV-0l4h5N2x!)^y+%P zjS-?2RILd;Z$vOyWA!L7!uf6^M7XGHAp0SuJ%{l?ags9bWfa;2(-gb zNv&FQH9X|`uvcjK{o~wN5GC(Js@Izu?15@9iUidPleKpK`a{T){rQ6j68Ye8mx4;8{kI7=b=(#*A=kY z;#|I_dci{3!AXVO`omoAoPML<1PnM=iT8ERa2at4%k2wjbI=U+sux#G?PY-m zb9T~=C#Sy8$0Ry5l|qR%=UQCeo$Oo(kUiclx=2Dt%_HC}1A1~Mfg!^ku?XpZp#l*#lI3OD(kGS31yKRgtZErR zv>q{BSz?seg!`VPn_E7V=XX}_tO1}Kn1RJ9I+5}IRK>ZG-zM$Stc^rL9kKSJuK{ou zulK2VT7Aq0;*yP#Ib~xd)eg`XflK3I>`BMSm82ZXPPH2G9YB7a$_xepq{ZWw!k!~E z%d9Y}=^+e+^FF*Y?GOOm&p%<=#9=4jA>OQ>Gn(L<5VcRz!= z{s-TbSl2a#gGNxgV7(u)2(#mTM$5f*1{Rq$IM@Dd6W=)O=4|Y4cc7nQoj$pYT!7HWYPRJ}v8Y*pc8Ja=&DX$oyzhxg zEC^MOVP{d$+7obzoqc|c6ELLnX5}L z?JU32()l=3?D%A5F-nvPwG?x?+NwqsUejieOBt;IoL6{g9TSAatv2(Ov&5m%$O3d! z+hbUON0qHY##;3c6FwhY(1!iShR$(T$vD^R^8S5q(*cX{mF8-;lPd+t;$ScF@(NOx zt&|e!WB6FTcy|XLQ`RC$`d{duGHuweAZL)hcQ)5&2o@`%C=Q~bL_DPLbWRpW7Q3c0 z{`eYJBw`J_eJ~i4s%IP-e7Xb{3z2K=@9)2@v9P4|dCbd_=MY)SfXvCYAF=gO(CPh> z$?50j{2a+`f^4`+DYWMKANl=d6~?DGyO-@xmKEZu*9mz%?0)X&p?GirdA`ch!pgDsf`>psLPykCopJ6z!m1z9Gk-WKslw@ITXJ@_8l^`#c(o zv@p_V4SPZc$Q{6vOw`o%?i0y@J7rmFcbY>yQP) zK0(1C>zT08YvmQFa8<8T_0Z$?HpavSW(BD9K8VsE?y*%IHAM-}Vgi{H`CPruTaG`O z3qCtiHR&6=%rKj=(a2gY(9Gt%fJ6L$@I&Z`{{=r3I-F4=J_VQYcCiKQ-CUT7cxI2?YL;aO#IV0<7ipbA+`n;&`<9FU=Z;<0o-jVd@PAz z8jev+HBOWg!Q231!E#u9flJ;0n~(trkN8|eJ>apUvj6Dix;Vk77UT&^EPbF~)!cl8 zyc8YoQ%q8=W(~11(365L(xJNv5VEM09cepuo;)RdZlexM((I8r-9xz6!shGVnl z4P9X|7-*mu@c}FXN)2$NohAe8pISbk4#k1M+dtNDG^N?)O_osCq2(tgSO{QQt-w1-K12Pe^aj~ znfktOjbv;G!(ikIk0a zk!? zYmY&++UkGp_<6{NdbDf=o~(g*VlW_PUWAG1fTeS0n(suD@cp->o{h>kw}V>QkMj5p z9XJC5N$oP&i&)G3Bm=2#2l2BZQ~j;baWXffX94=`fJ9S4Z}A=fdn zn*NBpK!u>^?h&j6GDJi}RJ#yc6Y3a9XwiT~0RyKyoo`)~FwoiVrrh`OYhY*|4LE^| zU$EiS@w>_`5xZo}sG)ndyzpWbwE^|v1(G?JY@sf+aw4Z{2n(Yufb0Tqwx&iM_ST?F ze!nsc@g0%Nwn`63 z+fTkbHHJVi->d~inK8h61qDMw)p@To9ZUS5^ki}5(0e5tE9m~TW&59)_+LMA4bqa& z1b1|t17%#X&>6GAXw*kmRDb}B8YLe!sT;HVWXOhC4$_(Q^Al{jDPxhxx_ABj+z;tX z?Id-k#GH7K?6r_X{+7KEPT<9ElZ|&naZHgpi$6ba_F)@T252LNrp|K!B=RtV|w2fFURA`c0zP~8@Ai~Fpp8MErpz%9ClE%(FzOn7rrx=$)i4Y$p`9A@YjHc zUa-t`G-i|dNTcEdhB$U$eNwl~M}mWN0v*P{&-{jP`ff9cECsTr-i zCuwK4N(GMU%XxxDYXMvzAW##Khw_gRLtSMocrt;%Lh_Ua-i~ z1?v)!YBFv!uTZA~WA+daok^*U2;rSVwP`3Opy3BKMXTK%ivilKaLs`Lndrt4o#FxF z*#$??%OxbgL)Ai6HNhml)iB8DiDBN5mgrehIdu=to7e9r%FS1#$F03}RgoC&YXODm%z zzaGj^|EXBY>Ccah#@Elic!_XUCXZ`` zv!D8=_X82wl$5M&q3b3)lt$blb|6X+mqsUwO{w%h3cA0-v~-x`n1v4;;+iclPWug+ z9GK)}Q04Kbs@>bQBDP#-=(dL(w(t_b_p%pU2_bc&eiMpbIRK)>Ww=>_b131d-{X$w#Su~m!f3Z5$)A4jke5%#Cq0@ zk@McyqaFXjJsA-{XWV7Kk78|Ujfl~}*p1vKHR$y~uz6Ohz1`at1x#-eHges{2Y(7* zIc}AcibZ5~k&LzCM_Irj8paOT|LvtWwz1^>>&jGz18a;Ug-dW49VAsY0T8r~Z8DYD zwY{CUVGAg_(Nl7}@MK2V=fy;-l#PGb zo^VNa?zqjWWsuf9;2Yho%LBf8)PMP1Ni9US3*!fJdy;{7z?ocGj{n5!7eZ{7-Peb- zp3+}DN2N?c5jS!am&SlEDtfHz+$8PgeMAz>->}ggdN1~id^L2prOd|tURD~B#ZM)r z`|3;==MYogf>emH)KRtAp)5$+)L8(wq%Lf{u);7joZ*{qAp66nz~`wiZ(}(EStIO0 z6lwIUv21NT4J2Ni{Z73m%wnXN7re#6@AI6_Wr_8tl7UXPg-vfZUyu)c=)KEY^YYr6VKr{Wu*^2-s|4 z=OA|a{{T*5obiqFAB95cELYVN23C||>w8h~B@Oi5pT*}aGhGE$G8+b{|2zW9fQ2kH z>q;VEXG33_3v1^iuW2P;5bwTHJC#y6*)3U`igNCt*5~fx(6PF|#H4*z>dt!pvplS# zWb&N2ARuv|{Ip$Gl~+;Vr#AMHEHS_klyBz|<$=_xX@ipLMpF5B%jJwl7J&kU7w}W@ z7L&s<40WSDXWkWqP}rMbvh8MGKS}tN5F6jtsrYwS4K$41-m${>FuF>4?I#ipK?GAd z=(SO-*$rU1t136szU%%yyuz4*8I5aB1}S0N1?BwAPua7x>oevC9hk#%JD3nMMQl0Z z6Eh_nq)^(Q8OJ#zY>{Dy-AXzg3MkM7_u9Rx`TD=HrBl>F_fMJzGQ&O@#yeelny$(f zoV(oY{SLOJJ0-&TNO`xQth-Hfc0x`Hqpk9Re@x08`pGb>wo%a_5Sx~yZ;_bc6Wnc% z4pwZ-niszFHE>-uUh^W#_$fq($Te<`!lm-{mXu!9XfjO;j6;FaZNBxXF7#69nxks6J3b+y2N^9O5cq=w*v z)!g@v|T$KMSeS+|F26rrCewh6dT76*}sa-gkT-bolrMD3y|S4tx{Kr0G-v z{}+LECNNXdsiq}g`%Ke<0JZ*H1l#$twI{RUW<0oY5Nt;`c_ z#h3G5np|Vw>%COyLaghC1<6$#^Ag=Z$*%)T9WpzM(;)tp4f4lH{S6crc}2B$NwPsc z4ZFtkS2qM|h~qEg&!5uRD`8MQpkm=xSY`%}MW<^k=ZFKo@l?c$FweW-oJ^ zP0t0)xnG4b^l|3)V$6m`BhC5SqN{~r0xRf)&)iv^7nGqlmYAw2DULBZM-ZU~#|!Nc z;}+u&GHIn^N{$)nzxWGK7+4z(sU=I{iZ&KgY-K#aa^MliaA3qE%O|w_dr7tA7an3Zn8AAm9oc60CrMZ^Z*C(|1Fj^#yc0lJ-QBh(J^L)?HbsFC z-F`?GmVdHkVki>1*pzz0`-FI4Ga8|N?oNjgk$Ti!zhZM2s8Exx5`;fElE-r zkc!%qoRJ~p_N#hw!~K9LjwJ8IKpX6j@M8|InD<`d%P0kUf01_88H2H@yRGiO3$L#k ziiOZDcGde|J4;z`rP5<2V^nyfd_ZB-Hw#j;M1QVU+&fJlS_kZD9jFU%<|AVe| z#%BzYul27sm$g)?9v&13GUI*9H6R&&Zuf#X@;~UzJr8u!0%y@}=5_T-Hgp_$t5!0w zh%(f!(wT}(36x}c-tQbTxxPlq^UTsSKy~6govL;s`l8qXM}8_5Y4{DE6zf#D?nvG6 zzih238n*pIZb}okLU{pjv8FnslaBcDh%w!Fc~}fPEf<|f4d8Y#`e&;=JogSGhO@XQ!CkOYY7&I^doP{ z#zbSZ7Amxjxl^C)%ngu2tWnyFaMdt8+V8`p(+*Pv%L%4Qqq=3z~VOB{9}T$uH&eBaU)D)kd=g?0e&x@EH!*k**nwQF+Gm~q zsA#&uXzJE~emGsGI40rua?9K~T`l%ZZn@}qIX;EZ9$8&ojrBRH`~^=$@0XT>^zGyQ zZFkhL+i^d|hm8ZX#JrGK*!5k{GW2-3^lafjI`&4GjCr_~`@I_gBS%{5N2;gU3Vo2kHu(+m%`;DIPos?Ur?m0A(&YDf4+5Dr9}r9vk9_f|qUn+Mbh< zsL7o@hMOvC0jKqVP)r z`%Z%^^r+W;C%S+hBhmD!&%jzKjm?qSPkuV4$n(rQCY4SHRr*@Yh8%12>xEruKT(>p1;{c z^YyIo!=^v~2ffV?CN1r>pXEHp$iGw+G6vbKUQagsK@L5%$EtO z7sH;jzy#OCr*^?d(Wp~BWIYtBY_6tlJTkIzfPS8`ce!8;TLM0Ash7E-)>a(SEvpQR{h& z^r19Z!Yk+lWZ<#D#}i640jJz8)7b3;$i*%GubEN7N|UWLQ^zBDrG97D_V#uVF_y4( zw%az`mCw`PIz(9c!`Z5OO_^Gij-})5h?aAK)q|01~f%Ksv`28K#@Ji?CvE&p1`*fJV{^a=WgiZLSB z_i|TM$gy%dXF~))=B4A*WQmfV*4N05Oj*;mAg~&c`61RF$#Q#=9Py)UfwZ5r&1Lr3 z%_k&NfZP+zFVH!yupg?yWB3Z&Vb4UB@(U6~hs~wB-6gRC1kzID0>`0tz@c%XJej^LHd2*8=)GU0&t}}; zr^#`%dv08~{%WnCy-#m$Pqp9hq<|{&a=RyAXlU`$yn)o=9!$OxwBqf4!eTpf33Un1 zF4k7h1cEv;PGq1`3(xXfo{Mzh1>pms4FR@Hwz?*om0a72F4G60MyenuPGcYUy{#geo&)9I#{Pnr3YDm79{L= zJ)xzDv0%LwJ;IO{v$f^vze4^|$FxHej@OXP!7EmeQQ(E`p5TlsPCpss!}n0%dpqq< z=+6l&XHoC}MM#qr$Z4LW0O~z-+#k0Y&u=ST{fpHhhCA45ZuArz$3{~S&6blDOoOA74;8YSm(7Id(2*cV?=e_O3J0Rnfhrf)sb^xQ>q_S|VMpIwluey+M1DcmE zD}$fR4|8zbnI2OTMaxpFaSwkGd1%MPEhu+Y=ca{RDy)YG<0>#3=nQ_M_orbE+laaS zd`q+VWX6)k-Gt=t%5*A@vHW^YDsNQ1y}oF$&GDJr?>a?>yQ?57gHoFgN=tUi=VrHQ zWjsw}$)}?*;J$y9Bu$X!W-+)|bmmE)nAyRmYFvIbwB`o)`Ky{{B}atvnOB*E^ z5`)aQbn(_aS!2x;`nAHCf$ZU&)V=0Y!;$+bs?Gk)g?h(}M*g^l#J4-=#16lE0NIzY z7iSdevP)t)^G&}q+WPIl!+8YsuV@-!Q_oB`li!JkTT#*vgkIo${E!L12o4W7eYl?O zA=Md86$0{dtDcA zimEzL4A&oG_E&ljr)rkBVS>Yh1q&vNlJfKG&Dow3K_?5_R+f;LtwiKVRf9$h4djZS zUsj2gh?-0Mv8zNpoDV09R0`y_$F8SmW|0Hgjk8HtGocptl(ZRd6p*eI0 zZ)KvN4R6DxVO2Gm&26Q1Ta2|H$%Be?_|x%SOyeyqTKy_|RsI_Dv zwdA#j{?*qZ-0p@#6{=rhpWz;71YhhubU}G4W^y&dTzxXf;&fhx{~LAr-h$HUvv0h5 z?NL>LZu@(g59rSQgmW5UzoeIZ*TMPK$gY0$PdGqdDx*E#^y!^G&<1rFkw^nsD@rPh z@vgcXzJ+yjvCHshnqtqDqLjf4(4)c{1sro^32t^lVi8;}dr`ZUdQ4I!@S6pc1@Kj6 zp0JP&=%0FouR{tc32iKU7D@Ml3&Z&oi2WdzMMFc|o?U@I*xN(PuuxZ3ZR9{mKZ>!_ z8tdTu_(V8t{HyDnA?a1Qas0Fz59wlC8MFNkVkFIpClM)4w9%iB=JvpKsIjVrYew_? zLYI~cl=4N+aY}bjyQsX6ov2bKRdhMA2x!(HVnSjn&ePVE3uFEBtPe<0$B?J&@vv$6 zSMW0oZYIo|OsoRunn5>>3TshOtX&doXY_Mq5?M%fq+rg7x`cmMK9#&A>gZ2gf$lzcT=v_Dh-f$o>J6ry-%iY5hp0IfF zs<>4ea$eDwg(})Wr1=&OexC@vU7p0sdO??( zkFdBGN4=foMWei&ELO!w(|q#A881gw6!eJv?fkoNe&BgQHZ|5olvvRR(6tK-f^O9U z0$iW~tM(%UdZjxie^q;9J-%0aesN~W!Z*T?)yW0mRFU(O$SnC<&R~7fsj%Ha`NfBzGA+y`xY$JGaXIo6%}#aHri}<%uHIJViW}?j=<5ZZwT|yUlra@UxrU)SlrF1 z;&Cp*4zwm(sgrSjN^?#%1njG{+r!2yk*Q$B39>6fl(Y;2z>>u+kwtCYv)kMTMX3H6 zpMqpl9FPe=%9^%{mFOY=XMBRbgoZR&aOJ~L0p1{(ISObi4MWbOQsLz^E(p=Y(0?NQcR|1eM^m_5nuNEjhB9V!46)^AM5fWdlBcqQbvB;~i{?;-=@kS4exsoB$bGB$@PRoOr86aL2M z--V?fP2sDm`7b{@{r|aqOmK5%a61_V-2uq?3yr|CPxC8YGagx#zOw$eMb=+3$x+fB z=4Jn`Nq4X^N;*;geAG!>3+B~C1GIbi@L)(~CgZtHJl zmQXsye+JUuy~mRbU}Ux37Y=Dl2g_CrLfT4dY7}DCV1LBK6zR2l(B_r3;|uMT|M$)u z;lL`wGdDG)9u$f1tSg$H4pYdho#ArSX)|J4ONMJ@Yvw>Pj7Lkc=svY~%x7Xx`)tG0 ztdf}dpCF#VBH{uCV^vgDRU51qKaWgKa{5#9@T6ZV7Wq=wr08|&p#y0DdwqVwT^!)7 zrBUbBLxq$s{WkJGq`n@B>?JY3-Bu&Z&i_uyGe18n@nh|TWqlsf$~u+*xwCLV1qIZ* zi%or<^QBr53&mm2XJb9RteKLTK=SIp2e!XXN|qpX>D&}x2a+n&->*EK$K5SW&J6$f zq@<~+jI}I(k6<=>W~}lH6)pfv)Ky;*wZ8n#V+B4DP7vDA6c@mA)IO}m6J>rrB@^zSF1bQ z#++3VIjD~&8vy+2-X9A^n9~=Fg-+Unc0|~cC^2V}?um_Ty(1qfoy7#U+F!;_@v>j2 z;`w=Ft+6*&0Gl~9X*XS*K^XNze?E=>ox3@cPbxGR6Dz-Gr`E{Nr*80&Zd*Tv6zo^OtUXx{pUeU zjiX&YJmAQGd%iuw<_jk;JMBsUdBObECNXL^MS)}>BGJ)j^*yG=_yem`K$eIJ=?><$ zqrP5H_DN@bsCRUV7E}uFb?#1Oi-H*}%*hQ0YCrsOwc9t|=x*BVuO4rGRzc(W%`0_ae&QmRpgXs0B^XVR^Tp*|P*~pk zaZrUj!#=yj@?;0nqdCIo{KAm*+iIG=_RNob_?GO<0__!Mnd}P}9DN~$vp+k_3`~>9 zvf*U>4Z8-P-!8uCC408X3$X^{^?5#XZAQ@%?u^9zoB2jesg??>H`B1RgEv$!Ww?^e~mP77}_cEzs|T2~)VWfiGm zGXkEfy7}P?m*?6c1nd!a4w=q;U#x#=s(pGMCtrDq*Zf@%;pOdZIai`Mu%4xrCJ@FD ztNkbl4-X%Nu`x1ouTL|z=&-aV5JnnRIZ5~->f1WLs9N}>qOB{370fvM#lq2_4&vW& zDg^txm7t`!r6ozTizaWxKSWYWD$hL2J%s=5R(YkyFc5;4=aZEy`@;!ggGy;;xL?NO z!Bv-!x0XX>`A;<^S!02v#qCGBJmDN3^2<;XC7#Na-lYdjF9q4A8tIe{rI+QuA8bwZ zRirS%54gdns!pu%UE<7<6~7f8Axk@->m{sses9H4y}G($vp`M9z5YtY$(j5ozo4N( z#X@p^PUF+f)DK=hzTkZJwUv*MHv_X)U zEdE)>#1;ski>N!C>%OZvwpp$9w5ZPAB|^3PDX;0now%C;gzFXk;e)Yc!Vo3ps9bWH zU@9P}7_K}t`zb7<~Udhk8*&j3e7ud?GqLTEEY_iyx z*s}RWdO~sS&vE*KxLAAHMPoajN0$@MDq1G%7lFU*0kR#3YKC@)J0voDR8LOSH@IhO zmr#kASPno^?8#TE|()rU^UWRaHK+^7>;#RJf2uYy#N zp3|w6CSv zr$3IUcE{ff%?4qnzucF`kMC9RDoVh7A8!Ow-@)eq?R)8IXyDE@@rbM zILuP+!vXh4{%v=4{&1hQwKOix*~8e0zk@nZG8K=|bj>F2QwL2I==rN?sEU{W&RVTU zoOCr526k6m3hGfY;^NBj+kC%!it}2@*8W^Id4eZ6Y;%1#vBByxj&XN4ryt1ycbzAr z=PaP6Ac}Jfmlr7xllvbpfN*C2gkDhHa}0eYL$getyvqN@Z2-(U+_Y0KHZY2H#lk*@ zYl9rzH`n{~A%+Zw5qL>UmA{Xfm+v;pbx%9r8WY3QGx+)J4!Gr)2e^h+|1~MQ3!`aH zlZ^@9n1h3W>@-Td`iK<|?jAQLo;3NrOBNfUfv-=~?yoX%74DFyF3iXR8b=s)7iY$8 zsIFEvqypNp7NglusS8DEKMR4fnF9`_Gjo^+@y!>IH+-~*7prN{v53~TJV-m6RzcaN zrH)z->_kirrwwb<=0ERx(I(kaYYB#NsUbaQ;Xdy;jo_uFCdlYkg=x zAr|s^+p*v`W>J3doEfwqzw=YDpI(FseTmrIAKs>Wrf&9Qk!F?a(DX*h@H)g=}${d49 z!goUCMC`o(q!8C%qgg1oOho#ELwqK|lm*{0s(WE16EOf@Tl z+>dO*#;pDQ=0LM|wMV7zA!__Xg@(N$Xlm1-nwH4$@UYok4HkeLVHcbKlUzm)$PW*n z*R7_;>DwMNu0(ZHSfj&l{>d$zH$}*Kl_Z6gEUf3%ZG7q^=0G!Llg%49ojJkc1@V^987l`^Ff*=0lYkjR`8ux({!#jnf5>0{>Ha-q6pdb@N^)6m+5e#w4|I>#s>D z4ngigJtd3MDFW7wW+u7yVSQANG84Bhkg_h~$M#l#AoF(YsYi`!m{gG4k=5bxP~G5r zLRY^kNnt)S|Ii_fd#mwNotS$wssfb3&xO&`k-f||m0V!(4sNQ@vpGrl(+0Qt5|o;q z4R+ok0jEI;2Na*W-TFUXOc<&Zo^0_Zt8&RR=K!dmwxiL#G7=cJsoE)P!uYm4Tl_Nf{GB!cNdX#`aVFj?e4I0;>-sr0 z)|5W?;FnmcZ02g_B>PjBEO$_AP@X7BUJN7;A%eA*<*rXGM5+6z$;!39;v(#0jf0q%0#HWeFvFbH zEtenJmWheskC%xGzuS&{QC5k!C#0h>5+8j{mmdEE7ae7~hl~C-SOjK9nyczIDta?M zagGsw;AOA*s2!@=ing1eweF}fQfg&G5r01U-<7V(jep2j+7>6OBNgz=tZ1P> zCbVqyctSa3r=g3hQwOI~2D*Dlv-=hvZQh*9yg?95%n4;w>H?QeKZLPg7qe#$%Xjz3 zU22|2)?kunqa&FL!Gd$r$YQO-}v*al~{3YA1`;_S16mYIQ7d$Z&AEn)POI`l>bGOG;`w1dV^z z9QAB`(a9c29$dh=!X>D4otJj986AA4X;UB+sz28g=J$`Iez=}-QPwyGZh2ZgT>DOi z>&vniiRs@%-r+emOX8<|c;DPof+CEV;>C)T{^AGwaldS-qHHO5uJ?NAalIdGfvPLO z*pj&;(062)_q;+!y`)w*`6}85sFFb#?@|T(d!9~5?aG7fTiNcWO4cDiXVUM`Aw2VL zUX9E-*B0*@91N}cy$ug48PFsqq*!@tNC$TdZ_lmL*ewN%4JL&lfD6O3r4%uENh6{H zX#jB33X>4Oavh^66Qjxniq78EDjG=J#5b=Xi=!5H`xXiVN&=wO3{1eSbyMa1&d>d4$g~{;^;3*V2Am-qtbL*;NnKEa^6r>N zrr_7^koSA$2is4T=3@D&(uBa>?sCiNb{HiK6GC?nP7ICrtt+;x7Im4C24{!eg9qAn z%l@j4Dlt^myTRhB- zHhF5&DMJ5`SPg1%Annz_sU*dnOxF9DmXWe26nqanCDyUZFh(xetJe;$J}T8pcpP=J zNU?*gmZC;&C^igRyB`VgV>AfY!^5$NSwNmM(9t$leJY20U=qw%H(!$i+Rg7#%Slnc z#s8DC){}{zFNI`d;!96$k5n3#{Z!S=z-*TB%nP?X4OxnWuWMbb`Z>WD-5gS-^F0m$ zWyRhVx$$^%TMzLG=BFOW>A-9haKd{Q;_fxGr8{I3sRFrCSW1YRfE+%d79o0AT+;W0 zWU86IANP?j&(-d4ni#QA7)BOTnS&-oVUiXZNbnE2A{B}-l7?rHv06$d+!nT$>>e?@ z>2e8Lt8z34)>$S}+2W6Hn&fGw-VNfKoSu_GY*THT?(?KV3LKc2${R)Na}=Wqx6}KK zlkz`5?IBAQIK+p>k}%crCR#kMFTL;$-^LIMbTSM-5_73)F*a!Ckg*3eNYGADy2z!BQ@tzaC`G3*% zj!}{=VYhCVtuA%hRb4i^Y}>ZkW!tuGn_aeT+qQAC_uk*R=iYJd&&)A$WM-^bu_ER> zpZT`q`yMio7hR|@bR{)eS-h1~6%$2yXMeXKE}gcy)&YSNH-$I}HBiHg{~W#Qgp*v~ z{en6XzH_&sKt83Nr2FtTx8ew_4?+h`%LsmPhNIr+e)k50qeT1|tHu^JK)+(1+YLms ztZCMZV2o+xdoZl`NNU2Ji6)kAn@Xq!H~Vuea_hX)=P6F9T3}ypqT^hO)!4K9F1V$( zyDV$dI_+;;%4)OiH!yFj!X=SU`-Ww7{uUMW-X1b~%Q${pi}G#g?%RV4*Fi(J)qSj;sJKBPwuTTPOQmMBnA78=38jdbo55A@AtV*07`~~@4kL1k z2-59g)I0aM@ht=!Of{WbM2sO6cqsfw_*+E+5>jmZz7CF?QLWvP*7^BrQC7+PVZUS& zs+9g5n|y6P$PaC(q)9%V2iS;7i?GtL*bcL~JaYLJ@V7tMXv+wxi3omA0iX1|)~F>U zx|_yB__$7@Hzln;4XAsqX8z@9%Edgt09{$xc|?t0acf%mbUfB?1e6Z8sLYJe*=URX ztLxR77DJ4JO*GgnL)lo{miE9%jg+_H<~*}c(q_ZtD{nr(h+>XUQkM%5d&5;P*>&!G z-viT(RgcO3NqBq12>V^x>z?Z3btEC>jKh#H9rp0Y-X17N3qH2pZa3QN@xfM@{R=8? zCO)LFYh>mdosVg$=|Xpxr&F04gJtOZfC15XuhBPAGT2oDy3Dk%13BOkqJeNS!nwzNLiuW2MeNQlX97(*W6*o24SI|fd4_5XUisyKm6@FHg zG;}e#H@> z0q%S7$KhR{;^-<+%#jztAa^Wy(97*UhcY7NI9`KT*6v6-ap|Rod)%UhsDz=%Tnwc6 z(PJ{OeKLlnG4zaujwb8R4BT`SO3|v9&|Kxv1`RbLYf6hjz8u@fy+(g9HL&rSPsAAT zI-TBg(eL0kSHBDZ^tIuHip8oJsdpxGV1dV=`fmZk_x-{R1BooCRNl9~%80FtHH4V6 z8%2f|@}?}$)^M_pN$FV?S$r-G457UiZ?;?ax~%#G4!Zn!!zZ#}yAupJwQ!Va;DFF< zl=~%~h;XFj--cYlP4|*JFTY7 z&7V#5TKzrfqKf@MrPOZ`H${h_9}ns*Btbb{n;#!gs**6SJ4*`uVpKAs| zSglt{4S(00suHKRdlUZG+s~lTdw7<_4l|)UK&OEzFIyfE-->FVEZqyrN5CPCunla&BJ8tGsmIeMSq}+%W zY4*FuSe?_f2ON+GW6ts8-#;P<7?4b-3b^S5I58zh?)mNVRkqp(@^1ITj*OwvkwO)$ zi$b^!26ib11D_LW#zG8n+j`$8&_;kN$#w{$zobUxl6iDyyh z$BNr?xY8r*M zO@z`GJK8TApu_?_YFEDu=L9vA>|eh1?dK*yVVQE89h^|7HY9~o40GbII8*q$?Y#RgQ-!WIuT!z_ zUjq`9BIvqZ9+<~m?AHVg8t=j-7Wn&vQD?OPDbQW!kE&km_-UAG|CW)z2 z_mo78V&7NnM9kXaxd_O~DsizvL1WDFgmIvCeip2PS=lo~_yMepswT?7%p20PKLXJc%&|&0U z=NO%oIM)+mOFsz|bhztTiyW*A?m4B^)wE!GGhwHaYmF;uNlQy>QTig}F z!|28tuWt<6649?;JgL?LH~hJ=;jbEmPe$#JociOwonh>%v#T6dM#(*)kq5>LuYt~o z`_|S<+gp%$rn^4d$E;pJfJSlQRR&cqal#Ysk}=r9tnC7-oO3WCfCurO6=UquQF%wu zR2jX&pek{hItTpHVe}nA{S~wNuWdDIF~I)U&j+8q>43-p#k34(w{}aFG%$nYM>2?a z1K2oRxp?{zNJo$+eweQg6?G_Nw(<}ET@XBFIkBUVd zY4hH>R)xuoLrrXvCH$L1-Yk|9YvkbY1kT=W!G(Hc zqE=}_~g<+vcI)gj~BMJQ8UHR4Y-Cqp9x`YOj>JPtz7J0>( zM~)(5lL!=~4k1*y5`^;E_6?#lwF-B1EfIsi+n(T%_d#`J#M~Q`?WhB}Ix-{ECEr5x zjPC%a#>_}SrjLuo3hqF$B+hUKwNyT>5Y72`#N8fdbl%SIB1Jv%DR$8HZC?%P6T|r0 zs|mn;{^5lk896%=QD4+C;t4?bAra3w4I@^BwoTbK$(PQY}b}iTBf*Z}|j@gvtTMmZN)Jh0>GhstYT1ye(|Y z(=GNYI=2Gn3^o;Uk5-a^>+9lq-^ zAykPMsXAUoE9)Kj%-;2jWD-teP5$5SaMb0`NL@&v%I_iJE1Yz(i=9r1YPE4Cy_a6< zslV(=H=Ne22u)}5g!C;VVMO|3gY&WUy z8`%N0m8f`}Mu&6ICre(B(9|tgTl+gFQe1AeAar{JYGe#MSWEe zOh`&}Lvu326-xZllRNgqak?r5h)QM9H6=M2%* z)qha!!_(uG65{=%SteD z7P(fH7X?c^1*zu&#&OhUr3fSzuDZ@V%(!JA45RZ^0Ob9G3^Tqe)it3f(^z#%Nq)`YM4^U?S1$0ZW14&Z|O@%N5_rl)uJX>Pbl42Y8|Rp8d1j) zpJlYw9aSV|Rb*gBuBH%Na*4x5>GIbVP1kq&5bsurPc)|@d#U@2VJmM7{8(mt%||bk zYtnZ`$e!drTUG|kplI15WQcFGWqK3q3c?o}Y7i`%#lDIpw2?#96>1U-}-_q%MZ9?XPu5Y}L0i zK>sbwG^v<0Xl>AGsPTsk^6A-8fQwLyaj4!R)>SwUdd~%N@WHi|;{q+Twg!TBeKkFO zc|ug^Un3B}`S4=dfdhSVsb;<25}QP&#=o#YjYTzfwDCUUdCvBMcFJ`szgLC~nG?3l zX!-b5IBh)pu zee3?m3s}Ic%vLAKF29ib_{=^Z=K*q`a&HsiN(<+y{yF|FftK~C z4)yvs)ZRj-2EhwH;mZO8p?IeRq5;;`^ksYFdLFKTU!LKDLu8>$kE>!FdY?!4E&$QR z^a?}Wj!uS+3F6%gx2oae&{$tp88XcZ@z+c84x4)VzPJ=aOr!vMqov~m(qrwz^Pq#( zBg>Q#Phe9P%K81`_gGA8OzufyjB$Dbb+XS@$cqgvjXCMn*TzH5FG;;f$N6N>z81p* z1xOCXCX$!)>O-7ly4MDZfHLnL=SSKib?>BEz*^1c{u`Df)4H@ z3hr8Ao~Lq=Sjoc9oV@xGGG0C9_at1lZ&X;P6^_)F(yq!phWemV+0PRSR?-1epK#vOMc#A;0l=Et4_p0J+7nx;Pj1+Y`xNdxQr{yDr$hw_JNSVMKw6VU( z3VAb0Y}-$F7Z=%%%%|wWdupio)z>;ItF*<4zQz+iS-2F3d`NarLlC88R-3Zi$YA@u zB9^4r#zHzzaCmJ45BR)M){W zJ4W@-$t1G{xqmEMY*@ZY9|FJH=B?xKlzle6zdTm~Et$&AVK0g|#=gYbR5-~p==>V| z?Csx6VU0~fpSuxIn_2>igi=;^K=8y=D{tYVSSSIjQnH$=28b+o)4%|{FOuirH9SeZ zP*RDA(``|cG3{(I-kQ}o8L3`LYQFuR6c(B4gr6uQw}jl#ggU-oF4x1W4h^7j)tplM zHXTTjoo@bAepy~Xr}ljdg#dLRq10Q2vMD%K=B|i zdvdi(PQpt@J+8;ey2yDa9h$rN)#A0m40evPG6;pKNcz?~Qa$wGlNOBQ-mxKv`x#FC zwbI!^i@l!nyae)Q-x+$-)(u$N{L%c(MRZRAak6(UzNEEag7`E=w@T`DiwQRD zlY(wCbSfPDx2~^b*d~{XeIZjeg(2xxw;QOCd5Fdr%su;GI^98{*J31RVYVIG9s+K& zKB27g?rbZGAV?8Yw&9MbdvhZR znZF@AQ>CMcPJmmIRrUXY>`nk9p0kB(vQNu^$S1D!#w;Z#cHW*_+%FqBDH;u)sMV1l-oz-=B zySNNrUXW)ml%{mj_6~GPy~je^v3R3x0BjwU>9}41q56ZGt);aw9wRJ#LRne!Y@DG{ zf`ij}SMsas4RdqZKg$YYx!%pdZFaxKt;>5ap}9pgY8PmZsM9ac$WzXWv3jKaQV5{s zXv%?Zp2ORIvk|w9nRc7`TFg|#v(k>bSFvh+R|AJ z!|ssT`+UGUPb$4x3TlYgR0WY5qFB3=VZN&7Nk_z_Ba_&8LB-L#C_Sz7a98^Nw8Jy{ zT@Flv$Lz9rVi+)a6AuGtRT5cv_WtE~O>X7-LAD{QK- z{*>1uVZ||4r2R z0R4x!GxrU7WD1iEcq)!Uv?XJZme)`{3MPh0dlH$Nl=OJ67{lA>)|l=s3~aszuIJYA z^oC3RiQ#g8xKQSHfEJ~#q_l5=pJ5@+;^ueP&4;JL1SY#8u@-<)XW)S~MjaKPV!QuX zzR-Hm59e_;n@~3$l*DEO+No_DX&wi5YJs)~uhh-E-&pVmB_QdmRX_uc_f0l=Ks$Q& z6Gm%-3+@h{N*lgIyI2P>XM-H1`nw?BKWEc-Ar4! zSRu*XtA)RYCyjGlK)q4QUpN{F_j&|)mLEE!%D@lY)z-Kj3XOKkT$=VS@nqF4!7CL| z4Ivp8vUmY#gcS!ywCjaIo(vb9ym!vlMO$^GiPUjr5s^OH&QQh8!Pj~HB|S`KDs&r+ zWvPlHYSRvXN^Iynxp+pFRn8ZBR-O)|y^kTj(ph~bD$_#w<`LT1xmWM8_*T@68r$2l zeJfhCMwa+?Ccet?4c=JHj6GL-CrH#^Ia3S4t%k(tef@NKH>gJ1-0Q{S@UHB17GLN2 z-+wMTdDw|ladD6QNt>g-s7^Xv$JN7Plz_Zq8b*%SA83O=a(U{=d)eYkQQkCPtwi}u zQJ>QR+&N_FAs3*Rw6j3mr}P06XP?}^lr>0-v+-z|?hBFHRhgop$RvQboUgQ(qX+5X z)o+aIuP|_sr%-h1NS%%Lwqa^6jR_=E?^w+~~EF{Dz3?U;a zMEUvsuD{4>GM-61!X8hE>=KMt#yUy%e(xi(zOxSA&}FS{Yo<{@CE5 zii#`RG;eo04Ap$Ue?&kHUmNCdd}=lpdKUdsODybduo>^Egky88f{;--<;Kj&6BI5>NALldWtjkfxg3W_!;I z9w-Zg6>x*JT&DF(Sg212U0cNk*xzpDv7>E161M5&#ifj(MsU6vscJ-*e?0-i;j#w5 zr!t-LI52QMZs91(Y4@uuZBr$M5C1#LfuXv4#_s^o&(#hu)ujJNhvJ&q?n;0vNjYx%_Hw(U~kr;E-flF_ayxYyP5=;W&7{Mlh2UhC}J3 z{NyHy!sVt7+SX-{$oxHKwGQXS4;$}kTHurNW6*zprNiHBXreFR7rrDlvDvp?0qG|8 z*IeGwZPx-(d59%Im2H^RBW z8YUR(;-`03LAMR`s&E>NIUe@vPn+}6BKILdn8>K?Dm?vp*>5k$<^%MXc;2Fgi7FVc z(`WYIArDnu*MsTQdaL}VX?`nvKhw$x(jIBS<}Nss$NxsJC6{n=rIyjv`k9dpXXI&L zkxCqxO(3a#g@H;<`l4ZtP2uzfW56%)y36mqnYdAbQ8ZA{c!Y0`4j+lqrsFmC0iUKz z=e(Y-z}M{Uyq;oZu?iK+*Qq&99E)OR&J-JpcwuduU1L)>&?Yk%S;2++y5PJouh6G$ zQX%2r#?hgGCwTQIKpyHX-)=2g2AxC*+P=YESY*zs&%K86P@PZvX*-knz-F^Jkh`xU zdA*ebU%ZPgPG&l)*JkhNEJzlfLk!{juE_Mot%xB9BSHS0M|Dc1Lm$1!d z>0G?>4L^{V#Ise9efGc=MjcVPBzES*!tCd1#qIfl|I;1iTKzE;sb_C0-Im=R-A!BM zE;j^^#NvMCh6&_8=Qx?hKX>|-y}NdbE`DgIejb_?=$6^EaG+?UxF?rMt<#SXVRAbp zAWZ$$t&7-qiuk91i0D0@X5+9ghWm>nsMjgr>75D$=i$#>q9xkqd^e_^fH7W(D6H9Gh~QjyhKcUvb0 zE6sNe1I`Q-!%MP=r2}BbUTI6MF#pgTZIh@kLT*yl`M`h3h~r*JRXikz9r0`{r9S*` z8lU36*=1K>j^v3onDqT?Jd!B~%yepXA{NjgGg-p#u4B3tWy8@9gYY~c46q`lxD{ff zMc#iD)6&gh#nc%Ji$+9L_9ciV{PJI0lD*x`7HlDI=?C-991&$H z0{VrDy*Vc;uauNLjc&uG?=Va=r>K$`%D%Tckr|pDgDVUOagRz@rpZeX=o&rFwBwv8 zFH=aZiABbPO?j&k^C2!p)Gj^~S@KSo++v9ZN;&su>dwK4?;~S1x+a#fiJGq9)*VZA zi{A|w!ZvIr%^K0i2JOXQAkDbVXGZE_9J#I`wIZ+*j*JX)TcrdsD>#g;sGnb*`P?n= zcT{t>0ua@~{s%fT$zdZ^{n!uB95R+Xdn2vNIRv0qgyeJwef0(!Ph-hAu|4PSDjEiP ztf~g^$OnE!I5X2#*LMzQWypgjG<#z8$_%dGnJ(f1J<&7xFuxfficCjLFAAkE&e$tH z9S)wNFEj8)O;V0b2ze@p*{J`_8v|z0g}Z*wV)GBcw&ffa)3^mz#cJ}pkx*~!jT;V zu{?l?8A)L-Yo-aq7UbJc6??Y{LdHSc-bC2*a7g0e3?sStZwIhok?#M50X;Nc^di@- zm+S!4LT8H|_g`(+b?{#3l_ZCKK}h%TDP(!>I~vK0;!R`Xmb~oeOKSa}yJ3N?%I|o% zhFwq8J5NxHU{K9q=bPCYUmGL0^1F20<8;4AZc&{Eed3QTkZMjIs;PK63Z72}{YGSV zA(H^uIQo{@BbC%>UFQ#nysdXec zhpP)OK)+O?zcP&1fl#ahwm`iQ5GrMID@ebLU!N!;?e?zX-!hUM=7P?cPh?rij|Et% zWzhDKYxuH7yyFf-LR7RhOqezXZP2a^03*!g{h2I@jHit}l2Nk7Z&_|GLPui-BNlkR z!|Qo8nYlg*mynPkn46pHByRO`0ci0iE-8s(WVzN97K?>=uP%_cEP~FfX zuaU&bi}9u${(SugJq8&u@Z|mF-3vi&&2;@khf+JumSga^iZd%A52x)dcxXg7-rzMW zanNEMi|Qq{7v2ZI>|grK_cFi-=F3(U`^}*^m@WP6bbuHY`*$BfK|ON@J63Z^i{R;k zGn)mSlI-D)r(#U}WdnttF5;N$Q-~A_$3tPwN{+*zbva@R$>2SPIN#2UqL!RE9SLZt zkpw4a2NbDa?l}kyNX)td8Ngi5N0e$zX(h7h&v;%yho@&9ry?f;aYteK>f!5+lftf> z$dL*$^&7NekBhzT)x=7TZl`;cjnqWt##))q77HDRcRB3yTRcM(Y0k8{-y;^2uv7h^ zED%SZO=*tj&22C#;^@2M&hJ=<&twrv>~xE}xyM|7(t&9*UF!wy?^E$hzLuRzYHQux ztz`jD5sh_pI>9<rL_t>#Jb5OZH_={7dMpUT`q*T9ORr#2G*qrJD9{ut{V%q5M-GUflM zprwU_!}i-JF5W7-{9FmPU@3>se>k&IFt;!&YHE?38wJvs^plOjcbm zNZ~GoJHONyoqA`hEH)YdRRHR0-78VN9viN@b!yT=DbzxzUNCG3V+;(*I8j88=WIA&L<8tn_m(_+`>VGN3 z8oJLajDaqo)AZbMEzJoAazoh=PktBUSiS=6I|hn`{sFp8j@teKx>MN!g(DRau_eB5m`Ey2 zXmcA0Hiw96IudN6pQ9upn+0^Ec4jPiGeZhX&_L9{Dx^VB+0LtUZ%4YNDV27zpZ&%e z%bC(*L-=$fek)tFEY0esU2eXzet4xb`63E}f&tGBO%3hsoU0w~tN`W^fO(gnh}+4` zE=jfhUb>ME{`WEgs84%D05E#AT_vvc4?>vf$4ke-+hwF$@N7!?ZR_Wh<;XmE>7BHo zPlxzSA$|$wT?zWiB8yM$afMPs2YnnB;FWLHRs9>Vt4-TN+JdPb<3>(N z8SqhF2qL=Lne}J|lh@+Y?ID!`^8fxm>py?L9Z2cnKO{HDoq#UTdAGHiAUP<`(+?VX z?5jm^np+-J>B-zkNh6T=h~V3o)2q~vQ`h7{9oHeAf0?Mi{QNOI0I)9OXoxGz{|}aR za0eZ%59<4{++~d$$H6|sgGV0yszE5zGIVF9@?`&S?I8VgZS7ryx;U&&+BOEc#{Bbt z)3dxoM6wDB0$EvE`ZirgoWirMIjFk4_B!bkd&MV z;!4&ddJD^7{e(&6ehp0u*A z{}~|z(6I1uFgZX%OL0h<^?Fp<>Hl15DWo60oy9fbTZ&Fe)-v#Qzu=ilyo^mw#M$9} zh0#?g#8P;{KxlRKDQfnho%F@<=T6`I`im(DeZ%66<1~bj0&!onfEAi!B@FzLB^1;g z(LsZ1&1}D=HhGe#zh9UzXomjx8vq{OsJ^MVyj&ep$V`c;f$% z(SJakl$K!SVl0b3b0d`38r}Edd-JTa-vRB4?w`Spk4V4^RQ(#fM4A z$;FPWXY@4zhATj3h33ZkNZ*`8b9vA!ds*elYkY__kR)mu;QBkT0e@ho=IFzf!IUIC zE!0sDX{G#q#awZh^XXw_uz>44rXM8#*n$${yyXjziM*q$?}EDYpBL&d$sZD_5KA-F5_q+k)s$N;2UFpH1@U-_#f8Ob zM&~GcD2_E+n)f}5+eesuz_G94kVhqC=m8=8pz}JAO=jhWyI+S^iY_8jPqc%+g18CnEA9KE6NrQ{b`1*G;y?>Mwnzw};7O zJ5H714x<3E$t}ezroO|=6DN{OpNjuC9_$D}F|q(7WD&q*7#0~x!o$M@4a@WlLrqSe zTUW>6$3qEsHshM8MAD1^d;pe;g1DJZ5mvue>;pgikp7f~?}3l5{q-}G^{o~DrxI!| z;;{>;rYrCUYrpOx=FZs+fuNGG7~BKYZBa$trOo3!5;a;M=)y+ii-Vd0{hz{R(h_MH zKZ=OX@1ThX3we(v_6=QRBuo$akHcLWha*vQQDSB;Amz!K_z5{Yi`<9P77T% z7}}pdb22ipEt)x~+uPFK95HpvbOXD81$6@=QMrb)S{$RXgd82v-*Q^xpeUR(#Uig0^DMZRp+3uIW_8d(z1FYSmCj$oL;L>%_o-kzi$Tc|1DazL2 zdAs9?9;gdK%HVyp0Ymw(-$7a!u-B0C;XgQ!6~TVmQ&dqAk>RnrZk}0fx`7KTdX~F8 zzK;H49_dYYzCB@fVF?_#v*s33b2#00dt}vXJ*W`_?u5KxPG|?|mGT?Aohv0i3K082 z<946kO=_SA&`$URi9#2KQfbuL}D(mgLOjs<>NkR@Yd4NOc^_ z=~(Y?5Q=W&JlNx1Bb=IezHvK zs=LrN`#BjW&un7fEvTo4Hn&kGBmHm4cJgO#_OpNcZ=0!9J3zWa{7mG~HyPG6Ty)Vs z_h-43W)7U;$^yK(@DoG1H@0!SsVQc^F>&a-+<$OeQm3(~Lj~8$gRRAspFHf*+2p>= z(LNhAgFC?u`en^IvW%rFJ}yC?5$Lgnp19@ZJ4u775jqCkA1 zvJyr*fXP#?#71bU3$4_OI7S+qGJ|ZpLarH^bEPP&iuMANZk+B@4Kr=~8KsQRg&BgN zdNv*W#+L2M5}MAkgwl)fEI{CPn?@=t3U#Ct<$M6$Ii(R1dihSf37hmWr&_6o5!zmoKMk3Rll&^F#M?Prc8V{zMo3m(; zyU3-`jEku++^74o08?04gf-o53P4rI9r?D4hj*1%ElUIV)+BjnuMOkKZE$B=iXV2d z-2}g{ppiMT|M=KX(RRJdBPxnQY{@K_3V&AugtjpKl@|+}oBtj_9HH`{QK6UXGoXt% z_+BCebYE$947C&$Ju{UcdG{EzBt5Ho)?LcOuhbqgPWArVP;IaC{+;?49_P#S0P-IM zz}au)CVjo0Rg-gZZR9eAz;4Oa3LMS)ki(F(nSW#MRaOvC6nexFiMR2{++Gt9-%Usd zQzNOS#+hn6biIW+F|(uOaAmZ5y~YIqZ^TkvnS^f9MSv=^`pvs#{aaT1#KS(84(blT z4mjy8SfT+zorl*o!+jD9Rlu(k=_CsX4 z<_3Lc-Qr77r{hg!waYQ_v58Fv^H+RT=M!q}p3kH4Y)LAU)uz_{sK8NrtWqZs!F_jl zIn-zUJ%iIBbA#~-WrNX!{zoPJA1_@=nY7`4F*h;hc-%{r5&~{CfW$61%Vi-g-!V7@ zFX~Ip3eQL&CA$KX`qRf!&kn|{>`cmJmrm*Jy$%TFu9@2@jE9CS8!|olBjvkd{HMVk#7NE>7uW=SeP_D&SO-OT(m1orex?gcw`Q@oAo@v_gf3g6+ zIi)t!BUZW2-JM_Vs4L}H2Vub`RYzeI7*w>ev%c%dUBh-9ve zfya0_vq-g{!o*UWXrkWVxeM>$)neQ>Q%576?aHbvSxC)HO&6uhsx9DIg-zK*EoQ@3 zlND$h(sELP;b2YQ-i`QSkwqtvRsIhs5t9zJ!i*`6SzlP_1!mV`M#%F7oYbu0cBK7N zIL@3hUSSBD(oDIXuT30F#+^HG%-d7i57G~O(U}aUw4lg$4h)*`V3U5vp(rn?F%!CB zMBNd-vJwCZ6C-$WLpHSiMH4G}0=2Gqiv&*_BDAws)NboQwlhuN7z-k`S&bkTM%&cC(uNpEf#&|;|S;YEGQKO{BTBC7YqUE47nNA z@i0GY#omkwEjV7>8Z5sPof%)H%7QZuC~Gr|A|}ACC$rEYCCMvNGpz{Q^Q4V}9)vUQ zo^X?zRX{bIWo3OQvj+K6sKEF!Rv?3C4PsOBv(X=vk0BEBdG%>oP8zUP(5;`N;wp}RXH z5)3d(-i1cX=dTS#gU0+-z?@6fHJ@%Tzt)bQm9;q~gZm2IY-9LYIVVD zbsL!+E>xb|@0fJ11Yp8Hz$ZjOsLM2QIdL~yQYNv#22v)rSDpaX1)#I7_N=fvSPoXc zJ@ZTdEodt$1H+AxT)a(&pz(HhsKDFD`NjSD+=qEt70QOD*Q{nAC)%%IvH8t>TI3}# zOEgstC1bm4W^|RWOA;b6Fo+Yn$hpyR%FDubsxxF2D@~0fx;c%fm9C!;B`0OJh{&o4 zo$bQJnO-Yb$NuQntj3H9jg=nne*F)l(OHFBJgML9J%c3;<9o0TJTi14gaZVmv6uPr zI^H#GX}WszkwJTYR@d6==o;#{nmzphWJ1tSHcv@2XN|?zwKKi$)*{``9^PP)3VgN` zRFY4UzosyA@^WfrqDa#MxD0i7ESB_3(TqDn%vR&yOJIpdqxDr4%#DODJ2(E#81 zm?tY7jay04FBD`+7u*;{K+z^43gt)0uXT4_OQwxqgyJc^02^S+dY>mbJ}Td<=3mZm z=$1~4s?3_y%;>!d8wB(01dXB~J*D8bUO+anwPj{%_JONEVqvmf_?BBzfwi_X2WE-Choo%>Yez2x(ggpZDWs z`d=!WH^pCGUUsoL(DFE`inuPrNfK!=8&Sz6&Z@<>(O%DQh}bzY+M5q(CKM zm&QK~j9xw^lnwr;BmJf!0BB}f7R~dZH6*0oK$7AlQf-m?!Q=GwJALNY0C@I$L&B*m zmRU!CjShvV*Ps`XSm2qR6KJ~Y@673nUPlcukoSuHNEAj>(gFB%3x36yx;>?@Y3;la zA-B@7D(wR@D3jOUSwmbNY*Ue%YnnF}Nrw#_X!qCcV;O z$`)clz9F+Pq_o!xej@_^(r1}WVtykFJ&rah0V}P;+)XQsR>7BCUCeXDpZ1c3o`aZt z_{iIM<_}{2!g!Lee}mS(t7udGN}&v)&>X5UmY{z_^Vb~chbc&!`*fCJgaWoZ`Etr& zkxmmTD55n@2zYe~DGy#O{vk$zaa5=yGm{to3bUo`-{%R%ot-1Nx8p-9rG%rBBQ|Nm z@Xc?eJ*$Af|qc}~JBtw8(?`{BM=#iLbakkYj6jB0HhfEDbG)_@8e#~%P zjI?*#8)~^x31C09qOLET>gRzl;CYF8i%2Tq$Jx}kpIi%mKrGk@^b{Dsv^axeZ0tK1 zkfc0@nf&feT4-%(cZ&82x=c_qI+Dok0F?^}52cAZ=9}Ye`7$3jrd~L?1=1sINeE@` zSUH>1U@)UbR*G@`;D2eh7tUyIyb6_6zh1yug@R#w=1p&yN_m;Lc?b4WWI|?ABO*rq?v8?))fF}Im5|{H37bm+Z5SzAxt-aVEcNw&WLpv;g+xa?i`!mGj~q~q z^=CohgNIVnzhHS!z*q(?>EwX$Q&>%jYjbH^E?M@BEz!C9HYI9LVz2Eo0lHM+eH|e4 zDZ0Lb%0pV{h!vkg9cfXAfu|;RIwy8w!t3<0qC(<8GG(o5Y!`S=`UR77wz9guf!`LS zNZG3vykr$m65mcoHCk$`Q2yVMEo&{S$lndP14cd33mY=DdrUmDxj1LbzuuARnV2m{ z?OgiSjCU?@WV@wH!^`z(iev=v*(dEEB^{$IWTX%Nkow~K;CrIed?>}>s;hH#|g!ygj?(d zeL`b?1=QXP48`b(hayoS$RgZ*E|W?pzn^!tide_;d%N zTT&)Kkj*YER7Q?Thu9w*A#E#Jzi`q88|;9#6l2hJJYs9=x4b{^@YL&#BNLY&{cFu& zK4Abe$-oWJ1w_zKg65B)<>BoR&u1*JA|J1;R0dn@b^(sM=328&@h|&BM5eB*wkvL= zp;+2vQbq|O#b18vPoWkg=Qdaza@7{`Jr+-{UP=o8NyKb#h`%QzPN@2X(!O!O9_MrR zFaw%@L_@~&q(C(F@5>a?V`~MR_?4$0gjPm`CmN(c^OuQFkeQ(lOkh$nNNGgaYWJK+pF=t}49H;Uul=+s2Et*T(|b$%~rAX*ZE%MpGm5ZyU6tey4DM`eBXVCaub} z0M&DKSZcn|NOkPf%p7`xM-h1(YCnCd^0IPId->>1u{`zXu=vBs=Cp7`Qz_obKoHeLw{ zFvK#V#j>6Vk7x+$EP3<@UkC3VEU;f`enp|tRCBCdlB=np>eT)VcVq)SRr8ir81yHmOw zrMp8~xVU&b=0%Zta&T~v=`7W?diu%llJ1RsN#qQ+-^PPg5IeGjR}qVvhdW z4-`glru!xQPw<3G^)VI@lpSFXfjgp08)l(+^DXmT{R|}W-gmR# zEYRW-n9j4P{@8(X_Y{^_7-V$GLP(cc(~`Zx+L{jD;)5P4y>-YGR( zV~{hWMa{@2o8538S+A22LOF9o%Zo$n9nqAT7uC%c6^v2XOSq|5`_P!3)QZ!-KSY>M z_52#NoH@l7Ddt3lrLtaX`0;~9@{8MH%H*dZAUwGCh@q+#kyRe~#9_LlMQW%<%dl{9 zw$=1tq2{{LfXDoxh_CM@x!1zs$@4-J+6^S^&`Zz#gcL4z9I?e!A=M961>2c!UiW_g zY0g=9srtgB;a58k2)4&R z%&*fLj+%;`h`4o|I6eummPJ`T1zkC;AxdoMs!6JnGO3Jcb?NmSo2zhJl;qrc-CbbH zuEESt0g!AxSMt@-N{ja4(9lqx&%-7$Y_%YU1|z&qQ{8MpZXDrp?J>=i{WO!3Xv!o`kxF3*6)^w(W=veq2>%tnMQAq*xEPR}l5HlD>eNbw+J7%BC5-0ja!=Ga-7Pc&A@35-A-vlnCV)J=3e)40vgpCR?jlV*Z*?g~f zm>cMV8NwV+-zT1R6o%$HKPNpYMMSv4^% zVJuv|v) z4RO+jo+oT5>%9+wK>Dw?JQ718*(BlMgHSB0pFm+=#RY1x|FtHRg5AcvNW%UjQqpSb zi*sIVH1S4PcSdYoU^}BDqJE{-n138dpL-a)<$rWWjT*q>ZyW7gfW9cqTn}$W^Q^&} zV<_GrBSacM6R>bOOyG3>Kto@fnB!#_K52C`sd+7Hu2^ShlsWJC*82VlE)5fe{(au0 ziHRMl8m%hj6IwK#xM!`+oLjP)S~D!GIQ$QBMQ?W1YQ!9lv>zSsZ7<3C^xFxYQ#=N9 zWnq}9ff+~T#KnSF5|jm<`-j>#B1=eGO2>e`CeZ3^E}X3Z+P{ms;GQH&6*I_dS)N!i z8fsU0SC5=Jf*e(vW{__%KmVSI3`rP zL-rM_Y~VC;IFrO@G>${nStUOXVhh`<9?$ zJyTQ&meDCq!RqSQi^@)Uy~QINkkB@7*** zJU4n9=k2kt?}KwKnF5b>NuJi4%Q~A$%TR8K%P@rR^LQSmsOcm@EB{lT3Wi;=lRKLgl!HZ7j;&B5KBo6=b87q zR_S0VnAXPyQpsz|L z^Q?@!Kh+d}^wrNskG86wi|W~ll1Xqi%2}3+WFgZ){Ew21txaLD7_+`OeYB?KR0}@T zf6TeDE`82#D;y8eXnb0q3%rW4;^BNBcI>&YOu*<48HSvDP*}Gly7mx0XBWE+EY``S z*Kjih_m1V45XCQGzr~fU=e^6^8P{FU?~X-KMKMtF+gl#$89fC{<;8u9Wxw=Js1 zY=@L!VSlrBr^rnWHD`!xKV$kzFk_D|_boSbR@cN}K6=SD!;y5QP-4>K1fekEXwA{U zak|o?4P^<@>sRudWfNmYn#n(xd-5kGl$!=hUp@|oSlFqcR&%vTk^TC7pG(hf_+`rZ zE8SN-s{HwnOqK@LUJEw-ofBA9Ceab>L9sz11hG!+Lwt=+jx_a-^tX{ zfr&<{VOtGy!8U&gX1ngZ!LCGIHAcRg(W4@0yrP&0?9FKf+DxeVX-l3=Nd4%w}&g{pq0;y+P{)*I+ifu;JoJoDVs(JTS|fUh=(J1p1b6c4xdD!E%vNoFI& zE1X&G@{Pd{Tt4juK84fv^~h!K&3L)up75SSWAAkHafG}ib>=Xg_VTRAJ|*}c@aOTh z&8HH+y*W~r=6hz>44{=pu0{BwWdef*xSV|5(bHr|Wqvsw@B|V0Sdu5C3;nd!j~d3K zCF*~?or`G)-ws@`N=r)N$PE#He&QJcKfa6BlP;=`o|;u%9fwmF5an<67Iw7kzrpW( zV4&a?_gwEyGWXDL%-dAzPG+PxGf4R6Q<6O{d3Iip5fXwxEepMU^8n-L_MUHV5#A&` z#Md-A{>*m(l!hXmBCyNA?55_!Q!PGY%W+A`2^GwhNMRAN<3)TlSO^~sQld_4E=yaG zH0F{BT^Tr%E?bV~L>aBxH(0^E zvxuRI&@;qpD`b!K1rg0k3CtF!PBZzjul$Jqh*m5BFLbd#=O!{o#9EM@GZQ#=8_p#S zdRi+&#dSEb8O!BxK41KCPO;mbv1%P|V&A=Rf;ge{hRk;XexQOej+Sf#9FYg}(&*S) z($Qu{x6&YxByMLUO#hCU*#gL+I68`tazM+BKSx|6XE2~{95lql$$A% zO#|J1UJt|z*t`UWw@(6HDe2j7FLvYYPMVl#J6O5M;#xr6pZ3F{*vz5pWc@E}xSh8S zsyauuVhG)7@4(gTslk>%w6?P#I3u|Pkbk$wyhwYl!6)13!6}U5V!Nk}Je&(gUwHd~ zl|*O(Re>i{0vr=!Tums_iO%;GK?AX6?#hDxwow>pON1D&3Ld3Q4}V?ejG;%>+(5oQ zuH&WZi7iOflwOprn(y^Wwdxz$ zm;>W&vbw6)4s1TwlgzB7_;x|h#l)cpIKqdNq_mT4DfG(KT0{80t_>)x+p=c*gc`{g)o z;R88rL>6)kHWF|))aAus-i2Fg86qlcK=uSFFgA_^e5N_IA9icboR%MFmI9@;Nn^t> zMsS4Y)jl^`Ch&H;rYtOFd~(SC%G&vsdYDg!LNeE7uE|slH@U76&2LW6!V5+h` zMCYN0D7BtNI|6>|^*6IV3hX<-2C|ywi?hW-8F!OQrbs6dw?B@Ab#E{Gm>nA{@3OQ+ zV!cfaFxYsY=8?F2z0?_>Ac~PMV6SkZFQ(``ei)O8DeDZq53R#kW znSWJ;_;C2uAK$^S$OIn3@Jt^vP4ozJqyf8juMwwMWKTD{v|J9^-K=M_9%~kfDFsfH zVJJ;}VG8%ebIPkXqDow8BAbF0&o0DXmXt!q0RkVtus_x9zi#QJs8Hn9^tfZUdGZ$U zYNe7OZy#rvjhWEbbsUNFwmL4fm$#ypGTs}KQEb8uH+t%S!wH>jy1HvO=J)!9kZkJL z>hE#B3pO320_`AnIv zAXKdG84+~8fcKKD>7H+BC5Bog6Bx*$jSj$JZ=AF z$-FF7ch-xvX4@Ix|Bn3BS5V3p77$N#U~IX{5)s+j*gw*Lru)4JU81^4=8_(&>ufaL zJ7C5eBB8*yjI*jJ_C-OVNlN=AdnrEA{MIfjcIu2uou&?CSL@GBXXmVt&W`ITR{ z1E|#-3Kpw_`pQ?ei^9;QSBTr*C`r7Kt7Iwuex;%KU8KQzlkTC&zC~2)OUJxVh&l0H zMw4D|* z7%+Jpeo+cGPd9(A94^l_U4DiBsuNP29G@XHIG!Blc;ubo5pACl>rDYYCe(DKR1H=S zPEB~_c{kX@tM8}WZP0KW&k=_jekg}0YXM$7*6oDFT8SC^#h2E~&z{jj-Ss zRa?4$WjEIT`O~WqKA7kF$U)6G@lfGxQiOC{`a<~R?0vCv!i5tAl%k5RCFRDfo=Qe) zm1-De6$wM=%9lq1lx1&xnf2iNsQCN${adlC?oE+a&6tWTmnF76FK$Il$5S$~ZZ>qJ zqy)x5&wf~=?}}T>kf2(RCihbxv8C!#!7MGY<}GK6Gmsr6RJDJ);Tkwtg0$i@8TeK@ z5^$6d@I5nD*e7NP%)M7we#Ly>t6`LNEK^Tu*pWlSTL|(Lm6#G6!H-=dk-Yg&zhL4; z9!KgxsV*HqG30khy}{Y z_X%nU-y_=@X>;H$s>~T1K*bgtON!fT{3=+sY#vOUoAAE0j}Z+#U#wi9EAp*LFgy+L zC`-MQm?eHlZWG=q%+?f98yp2=+ZnhnaSHMyamocVl<%)mo0z;qpiuoaQ0M4rZIVl{ zE+{^g!d+I%0k2drLu`==7`dK8U}^2cGv#>R>OfwB@mMC+y-y#9}P-PaM(*V}3lo@&qV z&=$SvWfFrgv=_hF!py6xnLhVKXD1L(nJPWTdRd>^?zgvc!0k4Ag{-`k%0##isq7LLDo?fr7XArsvA5VpvWENOWdg($haM+{+iWX57;eS_NDylF2 zjzeP-B7{aow0z?ip%F~d9KbSIAt}SER*!t$|2>Ay42&>;E?+C2B3M7Yr?jc`=i`Qg zfd+uvDF=3|`Rsxiz}}i)`u->4yZ_k$SV+GL<2c#MqUj0;Zf)m|Ibo>iFbW8vcVXVxzdekY{iAC$o)%VRDAVILGnSoeYK7K7yN_b0+yJ{f{55Q4XoA+Xv)L2dWu%61hIk|J@~c;iT7yU z)#x=ZL}xHYUqU0AfQoN$_K`rvo;t6OGgxmY)39ZMk$4aXbBxdIQR0{2e|GaIJ+#ZC zvf}sxVf?=Ce>?nA@P*$b=O^E~h6-xYC8s-UJO?(OZpwYixb<iffhDTe{s9XOy=A&586Tt1lo(VfhyPQIlIx zDzVJT5PvdikAAlJRYTsMij)sefmGUepNdc2LIhE;R9vUGUX8K${dAO5*iQ8{Llc`Y zEtI_ao{K<>PO3fwe2Bh|u)fEh1rhA(3vaFQ^?5kb;>8nCsV)8WV9Ft_p7VD^3Q}W%1vy_>e~DCs4>0bXh5(?Odahirx$tEqn-b^n-jwgj^?Qr}h!3 zP|_Pdv27QtF8y;ZW?zyrrjAbIUl15ysl#I>{9PP$Z+syTS|IC+xN;Kv_U>-7KZYFc zld7^Zd7aQlnyI!#zTgq&MyRBRltz@SoJ->!IA}1qQk7v2iB;V%G!6MAOMZB5{BG=7 z_?BuawPe@ipy+)wUz`dDaxAUUoIG}GXmovK7+xA(@52MqHhPATsk>ZuT$gQrewJyR zPe&-bd$;xdH{q1{#uP+I+6_ZDoRDgF{xmPBc;`&NlB{^~s#8It2-sk(h|r7$L{=ux zDldJ-|Bu?dh8;GFh>y0W`0o0ILFR>!#-13asyplGgi}$6dIX$a=b|&NA%NYIT3Fgd-rUGVHm3A1B|)Q?Sx!+TJWYqq|KghYwxegh`^m|oJ2L)Z z^Zag^cDWN1!9;0ad^WQ&5D~&STj&59Prdt6TlCZii&F#sk1aPv_>#|j_voM1=9OL| z`rjc?hUq(1BtLbwJrszmYGg!ldw-AhwhRxOMC*I3i4X}BlOiX|d44ru92^|1x|CXz z;Yux*XgBLnR|s$uO zg1X6Q%#@otl2H)*PEx$)x=&7jNiT8cFF^a(DK^dsE55*VuWgM+RvjiX!T3?t`Y(lh zfY2_V5OV?;8ChgM02RRF?U+xwtL?W{&z%(0eO-BdQfgjbrI)e=d~MB?RgWUMH01}9 zF;|AWvr3&CjS5xQ1rBjlXytiTxmMQNAOmi+LYItSB{M6kN`c*eT<(~<^kKHB+IPYR zO4K>`8ex($1*s6}LB7TWxkF7kAabWl^ECXl`}*~}$w_rw_Kl`UkU-R1s)8DlxGHqp z_%!x5MZ!BJfOo-O$l-`)2zHpPSLiJ-KM|r0Ir5Nyb!0-Q zCBLVQ8}`@&ddQ5jx=WS*{v0G387;7V*`UFSS$D(}ofZ}nk`0H9i{OV8nSA>iAT3#Q zX}P#kfZ=}Ri|7al7%0vkNFa>a<7LQu7q_ko^qUwiPSti*^e-V#mWl{#$WOJUfJU50 zI@(1@fz*MR?1nU!xb@=i<>}ii^s#0k%7+$E+HtNy)c(En1W8^*7DB zHeqUNIt4%>W(TunDtdY=R+8XipOKer6T>Mi=5IafE22FCZPLZ#^`)yB8vLG=SCPVX zB?}E%D^DCN8|(9cQ0_rIRMO;lNv1Pb1S)c7{>8|u#dfwA+rH~_&UYK!*bhq`h!`A0 zs|^X#a&v5NU>p1e@>J9lrxxXj3WvQ)YIRSSC8mfoOfsV{8jRi3$$No1(6cmp`EM-;e<2J07c_ zbNW67!0_Qz)&b#muJ`jYJQy|?TWr<+hr}}W2Lid{PWRo0ET|IBhJx+Uh>((zTPHj$ zmCCIj`nr@AYYZ}&7r2%R#x!EOFtHZO|7=rM6ev#$4bAGd(dte&JzW}YUB@>s%OQW8 z31}$MqcotC7wYKEOy_b8N~F^kkIKE9q1w-Cxr%h#kE_Rw0sVNon3DhP2b(U}<*9e~ z^=C@9pOFyGjVtbRt5anbr1 z&OZSq3b7=ZSg$!Glp-7kl6y$LIIlpQPXMc>XgV({C;c?g!VG@Yvs>N8?%Xl@`ooZi zI_Us5s82C?1ux`O_WOaz-BTcP`l}C{Ha_xSRY>ZPe7z#fd;>y>ubtTDZc;pD~KCC^LRSR7`ROsVo6vsVpOU; zKit7_1#dD)5lR$H5aKA#2!r|nH}KvL^c~-}Qgg%PUNPkJB|T%{)SFVv1oJBAFF$K? z7ylGg*w8lQjIp)g2;!QnYFk<{r3Ta-+CSwEHnbeZ7o1V!B;B2SSVU-KV_bTjpI=KI z76tiSX>%c&U)b_FRkl~$b_v}9#gh&@OkA7ms#g;E2^acxR8aO~9P=;ceSQ;AAd@`> zoR-Rh4D6vUSCSl|#=B}T;{l2F&6#~ADvO|$%8|wybB0Oq{uKo^S#|(c z^W&*7XMAr|)aFBmtuc@jA-q1l%x1S-)a)E^(~DM>awg%nIpM3SYLLz5mwiqGE#Ie% z%kBFNkk?#o28(iiRdlf0_+BcCGnl6@0X-!yrDXkdmE~mixT`hsC`CLG(6oc-2kx8K zrnc_kS>!i_rkD=8EtRS(P>Xv{!kU=TsBQOn+<@3=Rn<42w$N->OtNG*eDiLYe^^V+ z5pH5<80D3hT0l=|Im{#ne(>5Xdk9Uy5efT?!ql0Tb>l>i2DpUa$X9Iz6;cd-a?!LA1=?!mbgSY>0+$gz?Y`AMD4;^JCH*|DZWB#}`v^ z3ri2aygFHB;9Y8BhI#;;D2N2Aqp*uI;N4YmDKC&E+JqueDj&S}eLR|Ny8KLn@o1`@ zN7l5JFdT-EJJ9`ltVVgaPm3B>)2>(cQ>xSzMdrB z)6)|nKX$s9_WgUOBE&T2_4RdF7G=N#C=}I+i|;a^uJ6Sb7!)*FJ;wiTusr6pU_8x+!R6Ea$x_XMMb~xB_Du=&`_JELE3P>Bp&1=o0@#X=jZq;+ zj)7BXf@wZ|l}~zxe*47(W9FK*f6hBv82_^(EfP+u9syZGR`|TVT zix|8IIVWtJ9*V!@_41^uJz&;Jo(HlL^QE{_>V!eHtHX~a0W_pC*g1UL(#TRJW>lE3 zO_+*MEay@R`6?Ub5R*BDg>z%~52s9l#NtZtDRY8kVvYNl8{{3A9ODG$wO2wPedohN zPJ{$n+-sNFA*E64EszW>7?*dBJHUcua1nw*ih0!YzBSgWG78Pxpg+&@zB3n60&*rM zfNF@`Qxj;#CM1ZxMB}LBL1t2 zA7ItKk*>XD5tv&OF8^OKh$=|J-};nDS3ISVJJ>y|uFyP=Tsn|1mO=)(=x0^dN`0}> zL$ssq?mIv{46_Zpcg-b#F3PgLxxLKF5YrKZt1sD0?d2d-5U5GEM~qEVP0h+J_Tj)w ze_%NFVX@z>Ly_>U1@XXHl(+p4cORYcLk9|Rs=ZzZF{{?y(3@{A3C1YLd~B(l!nr8} z4Fs7C@&mN;y?e!S065V@DD(tIvTfEPVHECX0|^MT0#{BU2~(wn|MUhGH^!Xz6Ot4srV8)j zfQr}9#r|5@Ss9?OhM(A#NfJ_~y{g?zg)a;LX`lggDdd;B{%L+xWi+Wskb;pBo$Hs! zHNixBUD`0(+`$kH7Hbhpq&Pc(AX>aYh-)i-kGyAC-8I^~kA7_0w^y&wCp5)MM`U&u zkDYE%-3C{>ch01mh_e9Jd@dy@*$GcddZgUkwmww`zTOa)N}IZvZNSr3lh(A9`cF*T z!3xS36gJk4@g4eD%*j`{FJgBjB{pr~y_VCRKdd+(-=kn_RKQDBlVJA|@$m5)`=q>L z9H@fxN@T{0U{5uD^P7(2;g<&DClc2cx1wcwA?ZChEp* z93OsHgNkW$Lo!kJTWPi?cEqP1Y~cz8lp`ihXvFjnoM6L0p&)c{P#z{eB?&%|L}osV zw}0BW8FCC<6Z;wEESTT#lb6N@FeN_3%1jL(=ksATTCdu)OB~6!j~&nij32+?!j0?3 z32?m@EnKSlrC+n%v|H>|5$abHX0e(!aX{18+W&?A0;P%)v5v~0b386#2 zHk5S}lp+lzA=Mocw95UhpMkdAQvBof@p6EGq=f}7=~=cOwqk)qUdog^mSAy%o5@+9 zzljos;hfTGFoH8*@2FAHjyl4|OC#wEwlQR~-855i56^%QYy@97ZJ9xm!F4lhrLTC) z9m0$4<_++pfKPbK9?)Be$3o$QXVJL*?m>Hb+e;I%6Ay(6zn@$cJ zTkbW6SQ9glAN18hE6?SX^7CCuyXtZ0e6-bF*rbLBq?u?@g@z8tqlow&#d_F%Q373(aN|eB8k!#5;TAljD;j`%w2yD)g_EiSr%-1wcs|=jKti zSl!;qs=pDP4*Hi)su6>Y_r2H5RQ*?~A|me8Xf5!NCMaD71hA&(X^YwK$^6jNHNF2R zO+AqHiRDSEwUOGo%aoTPJtwb~KUYtxLyETl2Se%+_k&iLlbUWODlgD<~pZ<3IEy6s@z4j0>4hoXm2ov^9@c)Q69H;`tnNqu@6BINsA5&V@ zs+P6Q&PqanfIt*u(vRoZMM9$dHCOYovwHAcz$)^2BRHC_h~<`whJ-UrDu-mkVC9ss z)V#K*@RAPsS!(n6b9A$(r}-pb*0<;PAklf>&p@$F9qi)D;4xJgjf(v$ zLk5qZG3!wvp*pUXcF>TeDZ$aF0!M5WIFN>(8VixIddy32VfA%Qo?hYiFKVnD9=?rr zHp@`!i|b~eMdE2Z@_y>8E#o@EtD?Rs1*JxcfK={ z_d7_M4$}5`WUHc~A?fpcziK|3&gFD}R6o`33nPXd>~gd?F`gq5*o&PG77-NpjrWs1 z&3d|^s4F zvW4JeY1OM{u&F&2$`o7Wbc717{!GEB_G>renLC>qJUl5K4%}Dy7fVUS`~BWGe_lE& zqmiWbk|0qHh1y+nv~Y__GT_$ z1Oq3tVgx1yjts&%AWK)Q&5=`Q^W;57vitv#!|9a^+&;&mp%1^h&}r!CWRq`vt%SE) zf7ykPG0nr1BN>~UgGq92S}xTZFD5_0Nx{j!mz0r-Aj$ihNP#n1e7|6tg&0|yr03)KXlf?O$GGJRKo<-acWH#73@rNmw6*71-la`0abSN~e}; zk^CX3n*J;^PXq-eJg@(%rMR%s&mr1oGbErVDvX_zxV3RSsXkgDgDXSmS0&t0St3Y+ z>N$nBbA#sBxO86N5Ip%(tP$e%h(;h~Vj*A)`Ia^u%4kq$tCmwQGV5NG7Nqfqk=S{K}?a+N~ROGIigq(dFLS*P6 zZy9f=N)9Q!5Cdu3K=j{~n*LzOAB5V=7qXaVY-pzPdjA5hvJrr}IQ8|%nP%a3d}t^* z{P_f8HMM=C!o$yBRmHK!|VHseD#lIe>~B!CWg+_VU(m=8;g2=ofIRLcT-7JA z)v1E^-{s%}_%~ITGPIqI%3yuhu$rhpT{gvYZHUvJj0aa0@`+(u3go|F2V1>^21Z2o zsE&+YgCW9SRXV7aMo-x;c`4IUvU7DByLH-q2Qr2f&kE*JvhPN*M~USAqM?G8BH36z z@gW@QizrQDm!=$c@oIlzMSugs10v978W@N6Uu*M1cTl+~1!tKm|7Iy;A1$}#+`l}? zACb4k-S=maZ@6U)kZ1iLmJ)j)Uxh;T8$)&2&9Ms6obIr%ts-tugBc5dFny6Qs2C+{7IlUtIorJpTUH<0Z!ke9JEv+<Ky?^~Ce43-Opi=#<~lQ) z&ZNY4`AnFiBbvnfX4BH#YvaS+iKf2=x23`@fUPn&bZeIiT~cDH+-&^U3}|sc=lzt) zfYA`?a6VJ{dlyr~EWfmP%GC z8CV8W0bg6*x+2yZf=h#D^zj) z^C~xt*VceQmktiUxMT-EeE(0M_WM8?@ooPd(hDRyb#`_F#Z@wsArRU2w!MV^5BN&t z%LppA0ffk)*=%NSuDK+U#{MnY6GiM1pr4K)D~|Y8{09#oFT{8~LO&H*rIqrCPpbHb zbP*&S@5Rulw;@C&U=0DLLk#@G^;%nb&#eFc<#exoF`hu)SXe3~U}0TPVg?f>3nEK} zk?l4zF@@SSO;r))f0k(^!0Q`am`n-eQ9rAQi%!@5{Ycng*A%<}OknX74Y4W#HtnA? zCiNxMYwI8Fi^}!PLOnL887|P(t>_va`#v%XINutw{woJLFkW}aO-HIfI-!-t2(|9M ze6dgcpJe5u7?1&CLGvdN0VMpwyU1JO)`yn7Jnoo z)UaA8&{q%2G}aJY7CsA-zb8$^@2ENa4mI81T7cb`&>=ruQ30+{iC!$NB%R0!4p<;5 zWM;rR;Tj}ZqEWLb`se>M15#0$v%rp@0g!@F^1t1Y4g)-G|8267a|jZY2XLiHWn}p% zWat8-y5D=q1L1~Q$T@*4>lla$<8+WyP-O;o-5coEZ5)vzY@uzUc1Zl6$LAqXq`fPK zQC$SCfmNzm`|kgfj>kFo&*8+rIbzqG^yEeZ7tlKnKsr<91r=-}(GX;LjMr}KvQF!4 z=yTw^eZwT>(E$A{qz?${S!XCwLGXH$c0&G zyHoxj&^hvHln!cze$_4xqH0#;$-X@rv-0@4MEwOrLj({Qv5}3lF@I@ooOF03x;~W~ zwC+4`we0SjNiK2;&kYU&Dad3qxOt?Ao)V*F7CvjcbOWK5tEjLMV`nxhiejnwzfVY( zwOwIXknK>_*_jRhZdO-?TW05G)0A&*)_BfkRui0Ky&{J~QO?xf#c4*(rzb3%8S@W; zVRBiylPrN7Uz@!=HJfM^@?{e}K528S6!k$X%`DBWx*yguz>Ek6SzN<&h^+`_>R(*@Pd3I~wyK`h?NZ*#R z5(j3=6?k+AxZ0YH1R2*GAP-+u8yxTI@RxYNy^xa97K}*Ucah;c<}u z$uKmP*8D*qq)ySX;atwA!;Z0BDfQ{%$9L?qgj53LaNQ1K$+5bcgk72=%~t%morb6P z`m41iA&@(=!ohk;*xWdH1%=OV#V9W9JUlT&!PvMo)@sm9})dG(8a_C#lwI212{ONozb4K(0EEex2p?~H$c{ga)$9~8E; z-+NsjJ6$W_e8dy9=(;b$xHmMwD}0dTEwey{Hju;ibB=)|91+0foJQ(vq9TC>+p{;Hx<(i3)&dx2PdR)&zanztBL)S(M!ArVZk;uvWhHFF(I zg|9TNQCv@r>=3o}5Oc6|szIOVYduNfwB-X1Mal*rX63 zbV;;lwj!b`Bj!ki`p0Up7h}TsX)aO>s&(;-8ftb2Vj^1<;kS~xq0w|D?s$DrRp(>N zo~Igquw;TqexDOU9>NM0<+%)HnSkb;J^%YMkV{0iZ>jHeRPDF%V_T{)b7hm|D$c^8 zM)6909F|9iny=9FMixraoTwjANNb+??v>h4S?dCB+@|0NyUbaMm2J!^%S?EEwu8Cy zbbe6!c``~SV(1T5x`rct>!^sG*~23ooP%VR8BV@jGl6aua6et_-`UhpQ^`&O^bU98`~9FuD#Euc{=K=BAfafTvK~18Fb3#thBD#$1zaT9DZ? z%Q2Q6gyx%fRVhO7;qI_>ZnBA5&nx0F^o-s0IR~?_vhoM?76mAxR1}moKMowfg;b?7 z_SbDO)I8ZmeLTvbF2`uiwbEZUmRef9dJyy>slqVtsb5VfW3owEI*)!KY$ z_9t2nD?3fP0gRWKtT-thm(DeTO+_Y^o3(Yz%Ukz}8NOWbyD>+V7psP!QHeNpL8Gpw z{M~n_4=5iH3i&HL;;nT(KFkv*x6~H(;UAcDR`jftqCzX@ioh9PjI{C|af2Dco%-y2 z>`?=*B;h!soUa|-`ElasbkRpz^z2vk+UMr-83p)FTg+|sQa&Rd`MjU|{JLfodzc@U z&Vfe%{L|M)+C0e{^8>s$qDgi{o^yvI?{GjPrWzh%dU%63-+jyYq;^{2f9b6KxI1n) z_YnIrc)kv#Nmg%X*2Pzl>Mqo{ztT@ys=i`4#uIROj`DmZcJAiNbpQ77Ev8_l5I=8H zLWBrYR``R?+E#Oqv#C;%-TtVTwIM3jg<{urmLBh1AaC1Mxf|ze`MFGO!PiLZ-0X=b zvMq)%J$%@6ayo`b%OZ+6bMv8|t8X#z$Ywdp>)+jYBgOVnw_CI7x4pX|XiPrQPCh|) z;}cT;OkCkVHs#RMP*A}Ukwv)SPgl;_$hd;RYxz2h+?z{FPzbaQ0kcfZyMjM()U7-IZDtU<@et_+`95Zy2(?|HkLmuQlyDV%f`ms%`Gc zy+K6Da{PA6e1AlK!5SvzjrVPOYu2?@#-mV9%tbIBo~8G<2)IPgt5;>3ymQI2ZO`{f z*jdvpa{SDb*VcvCPtMiLUY7&B&vmZJqBS3{Myd_j{LaFPW)X>1GwQtM$Xmb1xu+~A z7j20$qaS@}5XxcQOlxtf`hL|()c$14zG|Qu&f!zvh9*^WT-b^|h)&^HXEJ$+O4UQk z%LWQ9-^1TLv*TaMkR2=MryuO7=+IVf{9YP2%8?h&Ur&i}3U}f^)QE`1We7v!NA$4A zm~ikw{xf*TpH1-j9vZnsrgLqcg=(l=Va9Y>)1ko2siPNsOG^7pUJKS00h;7QB?ztQ(Rd6O=9 z{i~5h+D#Reuf4BrQt+c+h*w4*TC6m~=K;F4Q&8Y7^5pq-IQqWp9M7`a+&ew@)t2ui zsEFn8eVJVz>B`R;(_pln;$5?&PsICt9OdM?W*I(Pd)t>IDHr>op<1P#RUXdF3K2vH z<$LEEqEyEgZy#rQkn2&Jtva2CaO*;y(adVg#vWD}MjuIqarA>j01;7Qf46@bK9^nk zuT%O~kmv-<;Sh!c+&wceoghBC(8Z9MQxt=Te8;W)$dBp$y{_%VLv*m*lo4p~((faA z{gd4{G@*p@> zhu2O=3#>}fkxehVCmuaznOEQ^x)YUqoF41%t+ik}qAUYX8-sK?S8G}>OD_607w>3hmDNbek^zH2a?fI6L!NIZAS{FQTv$}>i?>r+#W z78=yb%LU@sSt{b>xf{#vydP)(c~gC>hd|_OK7X88V?b?^;8!Uy zxM~KPvu6E6&UV1#5jT2X`!^RE?1ZUPU4a4G4ZN6@i%IkT1Oh2l#X$nmro>o4uwogf zOVS^~#L*%y(EJ%Q0ehaGH4pWs!*9#@Fqg%x4-Ake2Bp8iGn>uYX4hl3A&;n!Cz+;r z2&hyw$~s>^^r72e5lA8udMK$h83E%5ZOrhn32aDZY2OWMdRSD9&z_y0=0))ZD@kgw zq7n-DpO$9#WHo=Bn!Dh6E{IV9iYcYub=|F@sKISu8|)HV>|C_|Crcj3Q2SH5@R z4Ozs=L&5Ck`-be!!0HY+Xd#QLZ32q_VpwCS!RzZl z4$7>kv_U5(LpKz+#MWohBnq6tGUE|AGnNR05wd1GZ+ka%f=l0{51CY(G0yn{Y{OGb zv(#S-;eG{YeOtQkTf#sYhxXjfrQg^tPbGehclv<=p)dTlM?F@hO84c z3w?R))>0(d`n3&=iu}3q{TqwyCncG-<1C`Id`wU~)WO@BCp(*g+KQ9BoV~g_y)5D^ zGD%ttfrI3?D?Or=HEiN%&d>+_OE*qKFT9DAxwB*s2#kl^kbJh;0Cx53@r-QC?KIKkcB2Diax*pvHt zzx{I^v!qvdubS%Wy3S(yrm#>=NmiO?1Bdp-9PZvUio*Qveqsg_nZ*DPZ)+@I!jEL&f=HiHH9Z zFTc5OqMsVVE9Qd%!)qleQuk(xghI6Zr=!(#@SZ3pS|c@rCIML)Sq{75PvlsYR>e%G|Dj&c2=l<8?x2O zQW(0CYttEBYPNe^i6$Kk-1hQKo>Cmb(#%s*t3Axn!y zl8NgU+#kZ}Rm!uJeGqcX4m$;OgFuVE9WleFXHGw`try?R%oN=H+gUb#@CctBcU& z$fD02SPYC~#b|o`)dx#bR{{E4qdu4`oQH!$tkam*q5_~o&s2!MqnoQz(w!Z zpIN6P%RPsbs}BPahNMV65s=3KJf_f|A+mCDZMOn(rSsL=z-~A2oApo}w>>Ntua3

t|H`s3K09%DYb+d3wa>d|+?DYNg|8o8>0pS%)oC`q(es zn&56nmE+0f$EQ_A+pTOiZw(yP?5`B7ic};j*S+B(eaMxYr zC77Qo($08XDSZR&kxP71b!^U_U9JC-U9p@f(OpW|lw0`lK^7KE*z3Iec&88Kui$Dy zz(j@$;mb>K6M|o%jv3J1y8p`>Y!)1hsGBHct$#M_wKJL|(Nz5V7C{PD>GDK%xY5fj z?2wnnY|p+KgNepXs1pM0;y8TAjOH(n1&>km(=0@v=b*2T0xUK6&I*f(Y6IPX5 z&GouMYI{Wff(=I{l+8;Vm0YP=rw8E|iUd;kA97ruLo;qU<47*;tRQTWr4r91CL4r@=gVQF^ihDi3TSlL|8q?D`G z?|x*k8z+A^W%isO*TV|4jg44p-{X`B=Ch>bW{@ne0UgZh`S6ujxnhc7r6C1hbyPDO z1!-&tL9vj>C<$mVp|?6?FFXy#^?f~Ln%}^NG0ZDsMvfY&Sfu>ET$#c>BS(daOtTKh z2T`=vjo!7FCPQWiXaKP~o?omdG2_vpY!FZ5KoeV`cRG(NwtpjU33U_V&t_1xu(GT9 zjCd}r_qyEzu(eXRb;b!6JgOAWdYVgu{=}c}AdtY?MAPFGBHwCQ3%srUevWI(734LL z<7uZESjV}i>U*(+;K4Xbr!MY##mb!etXUo5ul{nQ@x_nvk{8T*_>2!Q$=!ZduB!xE6 z5=(QAcZc$DU%}N%^NB2LYS7FbYGQGdZyc!$2`3`bctg0zMqE5;MjsZ7JKTF9&-Bjc zt4Z^!20$r5{y@86B2~UU;mQQF>k?9TzrMil`(on6p zWLEL^)X7qiIl2U=xtd(v($Hc>%Ei!qY zggdCDO^?HGLYa0}MxvsTknq&2mR`%NO4NfpL7+;k`q&nqzFTb|CRR6F!-$+P_Qyis zIB#R|ovDTZk?|J!q5{)JD)I4)W0Lo#e((bmJ-&Ym#iNBK!*5XPRX$P^z!mbE_RHV5 z^>;}p!`@k{{)5Gx2279QY|T7dg&OhdV~1biOX`uPxJi5c$0hnhhyc)v-R2te8^CXr z$>}Dwum{n6?KlRmu!2n|(d6LL2E1lL@QYb0iOFOc<2;H9bQqowek_thc`cC=KFeum zj{*;|Qv=zCYU<7xTXp^58q*3BfwSK+tR_pj+*8;cup5`4S)HfW<6p^B$wVSeja<<~ zai69mpF<3)YvD`@u7)WQx?QPe&>f+f0|syW4>fhkO+92+3uX%G9$ong+Uilzq)-5> zB{H|Qh+2csSI_uiNH2+&qKs1BhenK@8p$y&YkqW?Ff=)(E^Q-fW&3KbTiW89J$Zs| z?QL~=6xk`4YY*S;f*@UQ(|UQkbQ;hO1SY{C6p{_&uVK0W*Tg~Y(&_^hd*he$Fj^}N zg0!1-;3+PXt&-_OopwwuU@KmP1KNV^_uB%5mNg+G0XU!GizCR)3wxKAGqf12U`a8l z4Cq1QdfEe2QbD|603n2$@auh6N$^9+^94x)?UIk@p5u{My?Ra2zPrbU)$yt$=rO}8 zn_$oVbRjD3R3n=fXUP=$^4U9Ba{PKiFI{ye4`(Y*TL93^L5iOI!9ntoAC!b@u>oB| zprIs9Q(|V#$GlhY6dw17y8~AU6c()EBI_xxqSJ7%#7Pztv>>;`zkYqjG5 zceU&H7ZVb>Iou|x%g1w10>BL8=T9V1$??>bwi(y?$}21JX2WLn`$Y&l>FT_zYe7z1 zA~YS3z=oEswJz$M$nV4?Jnu1D>Q2@$bGhp^wMq@<+wlvu%41Esz38$gJQPg9QxA-H zy3$eUN5?iuCfCD@9BvAb>x@(yf_(RP(-GB_(~W%LTN#R|xHiGScyiMZd9NYi@^0nV z?ga~@ksNtxXb0uAH^JQ|hlhceM0;qDcL%-luZVXv@5K91A7B@2?P(k)1tm}PXiSKq zzOfP|?QHfrJw+Z{`>=W%UXe0I%WO{v7f84RC&B^lD(b$t1 zqR9}|s@<82l}4uQdy%l}ejrp{9rHk->0wz3xQ}@9jQaakh@!s}`7psFUNc57^S-lp z{2@3EeAgkWna(lL*P^>ywM5A&l!7t(3?5>e_*KLp!;~m>j@vz^|BS-O(>agl-dwC( z<3NU#4l}3z2nTO~8Wq~h^sS>dM$B~+EM!qIcZA!%6HQqrRCiq5 znC+@ZHL^xgkfvW0Yce;=|H<3loZ?=;LBwU!YmQ?xC>N93Gu1md+ z0G;wyQ;2idQ!-@ekl1#BY4`6IDdtO&1@Q#_eeqEA*MNQ4I3yu^>;nA_0n>%n(~(=G z{3SZAm8VW!`Oiz6r26%64Fkc_fWxvpKwfvp@c!ui*5>1Wn}MC4)yP~9;e{@U!05a! zLeBB8vJtOBnVI`|WwxQCQGv>}+;WPY8Vr$SQ5if6+RDnxe4Yqmcyu**L=SW^qeA)f zyx9`IvvUOmpYWA=ubcyuB^tf5a#@WY?qFXo})4>{#BNd zp0gYd`>4=rO|rKnNfEQFx(?oPchAaQa-7Gxu`a!7O}@q3XvN@#-g$&hTVK{~*M&>~ z0Qscj`DT4{kBUj-$-KsMSFoh%A62q6of2EU(r7 zn)+uX`v}SKXNZyY@g{Am(Bwa6*);=}8}H`+lEwoAQIvRwbh2aZ$?-q1r3|&{f0NY0$tmY zkiW(iX$&AriUgh;a;pc!Y{AcBEEaw*^HtWm$bC&Wv=tcSuB#3uk^J_d3{00%{zUut z6qksu^%`5GsfFKBBwfp{=>Vwtk>0i+<>u*byep=l!J?D3QUy(2Eq(s|=#d*btIIv1 zy}wRSo~}M*5+YZq3~=Z4KkmY(u9mp@yN~Nco@5Im^pK2ZcR|n#!;09De?$I~AMq z-!Dp4O%Cu5(Y8ffP-v&pR8JDcr{z9}j!8E2)jhVW`e9CjO@h@H4-zQ($kii}hURCa z;Z6D9ie{ttrVKGQm@H<>5;+CM6NRWXPX!wnI~k`rt}(f{-?|b!FuGz5KXG4odMNAL zbLx1^?R_R95ToygrYG2HNabD0Em(~p1UB!8ZcGWpcDnO@$Z#X3b~zQfiShaqx%@Bu_v=9 zZuh|M!xGIhrDj|1RTAkL6my3XF5#aY>%^6#n^8vDpD&^q{a6zENlLC{yJ`DLBulyjo&oJWNSLBa4x0X z{>Ug0At>O*IeyJXxWxspPGu!$pJlZ`-RVe!k#(D<0oSQ@?21??c zahun%7slC}=O`z~FxuOBZ6gtZPnS@d`+3yV2GmR6NRFkQB8(i|0A_c~E7x=#rk4!4 zWh+hHBx6@~*t7&vSLZ{TLN(080=AP-1f>7r6R~GbxY61(y_Vm8dVyGWYw{aIqiw;_ zQWY2@y7N7`wU68qI7BPDxrN;jh-;&}SH)uevTY%U#KsFbnRhD}z8usJqGOED z>5gXeW3gb-yYtN8N1G!yXOYAbG>QquL6BmqwDQ+ySW8?pKyNgo@|M_`=QN*SK|v$l z%czS$7erYI!E>0;thf*JV21Oz$YHBvZKgirRR;-&e!nqMuxvR7HtjiY;lak^$^(TY zms$Co3j16`3$!S{Ce3UmHL#FBlfh#gZRk zDo4%BQg6WReL7aXEk(u;;VVOiDRy`zUqR2q8w3lEnRjtHh6~G0KaWPpXRW$==cNRe zmTPjftVMWrJfr!MerY-JMr^Qy1j^<*>s_OOxvW9#)h5FQ=AC@m6Uuw{7wy#0 zSk!~2GYIP8wovb%Od+_|c>ZmBNdM2nmF6373B#NB?Zsy>KRkJ@LTeCOC@ zv(+Q0C%_uM=yivAK)gjRzCVm!)DhhoP5A^C+z{XRX_m2=jzbvP^5_Gp4}YX{4X_G3Lvm6 z=KTuS))%QHdGEVWbqYCl=lnt2SQWfbC*g0ygn#tBc(e)>iRZf*cErO&93|Bs#`97j zL}2N3-s9W*lh=Apnm;-r!EV1&07LJ&mShu|uEAV)9rLwuV2lGKEv1IO?3xc6)m+{} z>389EgBUX-RNkH%GJV;ZWwqwoe_DI{bT<~WX_v?k?d?0O7RlM(6%JhA!LFrvwjJIb zBJ{#KbDvODvwtSF@Ze-A`X=RFc0ahd9CBCmUJ0+;bv>?8dwjK5Q%F?4t2ZT>b&d_N z@?5y~>=Cs0tj$9vKe)&jV8i*S2U=bF_tPf)t9ShI1rr1&>?=QBSd$%_7z^kqJl3~{sKRzb zp0f9&F{ssT2tkx%xr+N-G}rwQ<}7y>B+D+rh+z_zv_8{}))b*?vvcOIZC#Vj;!!X( zJfhLV-@{WGy=TD9yLw8sp#i{jbzmH8Dr53-wv23cziRY6%+^GpMYae(J1z*SJRRj7 zZU1`>9KG-18d_KfxH)WCMK&E>+^Sfm)7~>|tyi?z`UC~xsB>K@QvZGXtf-1ho3sb- zhvn&=XJWTWM*%s9YE{8Z8b}eo)2kWfl@|wlG676J(zZ&Xh6<;g=IP7gg`JjJQaXM~ zAN)xxb+No_K59c1s`4MNH<~zzs3-SLLUn%YNGNrDlhx(CPN7<(8{?;lCo6{%9>~4y zM*+`U@%{-av2A+B&cxnToak+&_xd=**M|=1Npa-%VihDHO)71CJQ+Yj z_sZ&;rc}a#Kb`tN3g~qgGryR%`i=TC!prGol3Hupr(PLL#BJ(_OCv@m1Gg)^WL{$t<3Z)T2FRS)t{iqeT)rG36_B8fpm8$e)k$tbJ#{O>_NrYUqfb&zmX! z7PT~pRba)gt6o26C)yOqJ9vb-$N~RnO{Sfl={w) zZ^^8`Z@D`o81KRl+{lb*|0LUTHyZ<>>-u~9Llrme(~C)=fOZUj+N#c@M*My4ds0JE z2_)ig2>kI62O1;gK(6|%?1}E^7L)x(1ai z<#n6v_Bz5UQDPGHFQtbYFu^G(+e$uYTswYYsPJ(zsdT7 zx=HiMTtU3*58x?1yJ>0~@R-?45d5wt*!*3%xYHZ)Xv;ccURCI=@TP>bnCNVR`}gLV z#I+!=zwA+Xqu;rhOQ_x0(=<^R&7;fUQvn>4^9MKz-BkZ zzf_vuJXk&2p88^$P~u zwjl?fkuX|!%X{q`x}`dz;W3bRjYV|cO>)p%;cwSY+A;a|BP{Quou9)cuNFY$>@02(ZBE3upO|o3(fh^RuEBRM?YXf$qL^ zPMr3`lp5WFq^&Nw>HIPN-?4^R9Y`U^F;gp&Vow_Ia`bjXm8qa;T zlcV2L=jf39A!_lG2o7FnrOVc9_p%^g8vRmMC@Jb4AI0?~R>)({x)TI6bTNz+5ZxVE zs&joJf0Co0F}8;NGdt0J9;ngZvQFD=DAIu%7jLWQBuL-=r6Cowo(N+(VOiUF?=M)C zszx*#o>mY3uy!=m3vcObb`ZQQ!{Wxgx_&h&sn@n77S>)Z=D{iN;$*KEI7Sce>L$R* zFKi+e!<8VSrOf7W-#tNOaf^pe2$R#w_KcqB(f=&b6p;GzH?3JS&(4lVEP-e5*&x5A z*y$q`28HU*!TWTN2i>oHFc-I7ZBB2o@H-Q zu5+nB`$=VQuVB%HF`2qBGZmPs8_Yq{ueH_PyQPVbnrQJmEg8>Y9-Urv$wz|SbZ^Ou zJPM@|m@9h42cH@X1TS8nJNOd^8~!gLhu1Z~)IVI7fV5x@Hke#q|cY~wqIvy8n&LAD_cJMeNR zpUEeI65>v|Z-k4w9guCf@UGjXxu%lKr46#N!qpz(^WrWP0#lgdNB9q!vKsh z{IAfG+dvG72-Cay;1AywQL^33E2olLabmzDw=dPufGJmW^8;}7-}-!Nl7)o=NoM;U`Bw>~fV~mcqS-g7eTJUdvkvx|mt^D_TD+2#kext~J;G zr)wibV*%)N*i9ZjAD=BZ9@_8CrH~dvb0Ek@$YQz3{Du1q5ZqNpqk$l6&C}X%F0Z_A zCNzbc!vQ)+EIUZx4PBL58#!&Fq_4ES1!QGJMe#el&A^eLmwPYVtyKo2rh2~bW6eX5H1~MbhI&T4+rr_z0QK7P_@P#h z1D#W6>d3Vpn>!9u8PUmD9GS{bwJV(Q#;O)Py zVgAnW?AN#h+B?L`qJ>JErt#fZuVkwT(sh?E*EC4pmHRWF_qlZG}{2xowV9 zF(Hjs2_)G))tu5X5C_q-0e8eL!(N?F+4iBG7slt#ii?2wun_?*px;?2wTP<~U^l!i4SE!JW3^2hCF$7M693v|%| z>Nv`*kosyK8ktoW2Hd{-yfAl*a$Y?AHlZ@b_BFzcJvwFAB~gU&6LG*E`$3?)tH&(Q$J;TQi3(6z=5q zAgHuQplH_EAP$4$M$`20Y1b+qWeTLaWpe;*%Hg$N;=rH62Su6mtANHXo68>L_d+kp zyq`UNAGj3JEPS{BTJprH4W>FJrZwrL_M6ZZmZ*I)y=t>^CqPbQ$9w`?k9H$*HRb^ zUj&qz0MU6RD+|xSJSV*ua+QOom!a#ah$90JSufXL{j!ix95K!nm;A9|ny8>!NGnxz z9WnPagE4@kOCS_O=l|)%Q9Ac~%w4L}mx~tibqjv#AY}P!Cbk4i#}Sl}3P61Rvbtp2 zERlVVCpaf)3nP_OaL$+zgJTQJf45({c%bg<+(k|22}6z|5bHjz(_c+q1DYj@dS>M;>9q_cyQsfDhAfUdn6yu7u$rgz6A6bL*i%7BF^uBXQ{fRhT2o{pDLk;_PQ_KDQfsKzpq1^P{w;% zh~&aKwx>1^x%%KNk5mG-Zf+y*Sgx@9;3af=c?L9^Lz3V7;Xs0w8u**~8UN;C#W5+T z!`{fVvF3`?#=z{s1A)!#q?WEv&=yqdL9xoWC(JOpyQKb0=TaH4Fc;cFd+q~RsOTQQ zF50M=GONkkDmh$F$zijISBL>7eo;P~bv~V!A~rKMT@CVdm@ZKu{YOGknU9bE^t>H_ z5mT z?@LAoJ>O4!o5As8mr3;^j;K4c7^%tW?oz&4ofJc(M=r8Dt}?w@l7qMkSHw{b^PzpH zy97^Pufrf3IH{OfRxB@wmICP!4yIM3*H|YPA>B}hNHzyfr+A+UiIZX)Gqk)U+ap{& zvi4E3`wjA90ad~ArcqKrAL=hiDg17;&=%@?Izzd3i@Og*y5;=LO@#__XH!xPS%fn> z$>k{jnmFzB5l{YsMyGXl@bh^JD#_wE@v41f#CvF_*42-tWs~#2v|plXFI$c~( zVw5~Hn}vM2te`&!7qCA7lb&;a!PiQn;vip%M<=QOR7nMi0R2cSQByUlf83|E`uB#3 z=0a=Jm%EuO`xW}Ty>XNo-_ZWoKrjWSRdpfZ37yUqm8vWwyefHu5-E$&J@Q+4U~c&q zA$1Y*|GKbMOh2%VMzJY0f4%tnj%p;M+xmS40za4^dD_yaJ@R?EUmLWah&iYx{lRgY@{1Byd&_}lhr}uO>2nPL=V&a8`3dCn}cHo_z78Y zLHnXxyM%07@?$8JZ|DK#8-_U`8z=F6fgbr(^4*hTsUTF!QUBMk|HhP!3O@eta2e~$ zi|L$#>B=s9@Q{(WPVN|At|a(`O5r; z9&F>oG6OS4;1?Jxg@T-)){$T3|)#p4QYS0$eC}(5}Mu z@6-5S8)V^kcXvxwE7ZyzG&D4trBM`30)$ki3=LLytf=GRM4e7HrYZ-Wu>|xSd3acI*`GS5lO;S85_D}i{^kD2st{^g?2HSXMu~`Uq4!Wexnwacv z!l=V1RhR$&11tCuX?J}%1J(Q!mWlbx*x~yF0+#d4?`J1kyHQLp=*!Or(pQ~-gaEk)RfG+KO-_BP3X<}rH_L5ZDwga5+Rmwk8B0Wa;u2*;}%h+N>)*JhfZ`|CX8^ziPeC1D@ z?0)lf&TM;-&;)~7EqiWbk=eF05f>n{Q>4WKCqB!w@PcP95j$nlR zQ1P6jQ1Rx~Eu%|@lI>XL^xFga#>bSH&Y`#KvWhR9oPpkZcM;x@Uf|sje2ILjtc_=s ziV!PpOn&(Hh?<&Pl59DHxNDWv1S!X2S!S9zfKaX)yzRwS`is8JiR9>S0xp1Z)pdqt z;GYr9XHZ(!@&3MfI7(0edPL^U4EI-lbV9_BLfe1H$V3;y`gEkR;bHxI(EwUA*nA1* z193)o$FCE zG>W0bgtr8R1P?Fw!!==jvSgV-N2w;+e=MkEN!gMBhvX=PJlK?2Fl`*fFo4sC?=iY0 zq`s6jKF8RZLqK+If7jA{$_3NGY5xAl5L|CX8E>Eahqsw*n~IIascS09aF^GlF*??sbDK za9v8Ge=nqGwF`LU-@6srsa(bg2hjfvEr0JSQz-23dx>->9iBf~c~FRW+l?e+Tt%f&)8f7s?J`Txkc-z*ud%Ahw(EFh z7E~+ucOh4Po*m5+OU@>Lpj5)}w)2N`A0IW1Y*)bM{*DZR-Azhs6rvxYPx)eIx{JXN zf@PX3DrFII+9GA9aI2YM|6i;nta?w>#K056$wS8=9grTrS%81|Zy|7ww~= zY|P}3>4ne60|x2!+!5iG;Abp=&Fl~E8Q1MUDO=1vue2n%Wqwfe=H@GCDukbPbM3)B z=oMMaEX1DL(ljcqoJdhxYcn~^zxaLpb$HYNJ+x}VktfB{w|^hLAQ`58v0PKq-*v~4 z9s+YnXtLTGryzONEq898{JMPO{$=JyF|r78n!MC<!>Jx}j^xjHP2s(H$HR)b2S+3P5n1%M@R$FE4Hbov-w&Q`FxCCwFDqla67n|;R%%KFl4CU2T=;kzIG2gYE7=@A@4YqK5|y= zm=RCu6fIE6FCl^~=~~1}nxl%))f$52y!57VYIw90*nV^e^f(d{^-cBRd6P_MoBZYy zsPo}mS9jgDd8x_i@H=~f+ZxDv_1@z-KGiy`J_~lJ7FmLs_gQ|LZwLHX?XiNZ(zvQx zEANA^0&TO*7hNJrOIlX!l1!}2;%B7HMMp(g7M^q2e}-c3OZv4MZEKpR&+xe~xI0=2 zlOcar`P*C!uEV~t9Y@Nv+3I}Z=7_s-K%ed=2AYqTbE%}J*x)WL1&|liG+Vd@1!{J; zg^gyNovLg6&QzPoFre>;nz>HpZ^dC|>*7${u_|7BgY_60`aC`ml}(Jb4Bm*&Zv$%N#HBUfnD5?-qLI+6M(V#VbI2#)~N8J+*=Al&Qm)Jl#3wZ%@jC zGEc;rS#b&`-(=5cKm_A}8uZ@=fp+(c>q_i-fv!s%{qLDi1gZcG)DC(^EItC>d)+8E zzNV6<-uQiuONyr*QSVs%I2tfO)YG&ZNqW*-cH>QeDI(yJ+*ScCXeaJX$W}q!u>&CO z@WF^gLTX)IJm;X{uY~2cdP;W)6R3=GE5=q^p`eve@6kbSsI!YWXM4^2eGJPqYg*eL zodH8I{}rcIkMWA1@UyLF^@TJ+#EqMt9@eMK(Mx#vL+=9ap)$bzFsZB;7I9CcfR)w=T4gWEHKM)fsJB4_b%`(MJHTZg3%o)719ogCBob!094l zY}X;@E`5)!o%|e8a@P#q1d+6QdhW5Cnh7Q!C^(mbwGvt--9Y7#LtV+;z6aK+P->4Ia?8OY`Xk%ylyrG1JH5q8#1M;-8g#R)B;-nFi zeD~ocqW`5aQ|cmbUFti^JcQP(CkY*gxCMdmaxO~1R{g}9*4=F79!!@!I_SD&Izvy- zF!h#D;+#wGNsV8?wUN`!l>uoo&*46jA;>Cg0WGGuh^46JXnnZRHGMM|H>+-cRq{Rx zseLFWp~|Ohdu)erK!fzzn})G&pfep8IK{m#u@}!DEsR$%CW&S^=c)l;j8Zp2&ER3* zHpc<*ZvsdGtikxP3KAW26CD7=a@!bc`;^uNKWO-6zxTz3PFT2Ex zcm)=X2a&a98gXhl;2q5x>!EO1iTnAaN|z-sR84EXdH+vVg?fHwmD9>1#pD?R;j2dLG1+;nBI z&(B3gZx0@kle^~9^_0tLg?Nf9!V>p=K5!6`!GutOvxDPtGyQEtYskDAj8nBbXQMEw ze=9NYE@jG;bXh8F)Z!Ex(>Tw#8^*9(n|-WzJY-ZZQ(YbXdIEam&WcXaeEy!o+a~)| z`jv4kkCb*zZ_4?s;daL0d_mBY5##JVtA$~r$T~*r>sl2%jkZsFK5mf)EjaSJ&L?$F z)@iop&o=mP1JBZN#NkaZE>>WcTRt*)lgE3-BE>{!4XIP!w~JC|lXd3e zX2&095oYpFij^>b?^??BC>>37aU`&^+~J!M`|XV`d$;2jD>Su1pz%39Q>TXI!^oxCd3)Z_4NQ z_6(PFAjcje6ijDqsI?(0)g`ua$H`2389EKP8!B&)p^O6+N+qOzrdE@bBCERF{zWsw zeODCq-DK?Z9=Y?Wao;yq*12!%OK>x#H`r~a$>>zr-17~owf!F^xV%2x9PHh;&rZMD z)LMWs+;&uKJ>jgLfMb3pfa=9$*<1S{au z(a6fQN1+QhCE|CPAu&0s8iUduNGF2wUfznX+zH6Y!}u`jPi?3^fjqoRj>CxlF$A*B z%xf5o%oC@swYn{n1&mXMPw4I-ryR^7Ikcyv>A9qt@cbWpcR_fV<*WEZxe03j5@yKlTsTUcy1vJ(P=kCzO1PO#^H8@Pg??bi`x1shV!Cxj)HO(Y zbN%{pNt01>k1ocMgbe#iR!9b!6>fSS$q_G;yBPJ)_3vyB;Um}p9HdReiPy6o5FBfi zCS)6?Qn7j)J&6WNRtH%PDTX(96Hb5d2+66N$+2mq)betF=r*+JVy?KocKns_X^MdR z+1^ygLd1AK4ZaZJpJ>EOU26WYZ@g1++{2aoYf zyP$M4Q`)gtuU)Xv8VcH1bBcTb@kB#29ue9R+hxvLQ1yXO5v$NkgxxAH)JqCB!oj^^ zR!H_5z4WK~99s-Szn%#Z6EoNa(_Ez)H5$su)Lnd1qyyi}kNkq@w7J_w9Ex@Di)`BRYfpA22Sr zgt!n{ku26+Pb8{VUC1AE+s{X*j-!UZ)u~!+?552Z16-Zgs~rWz{C!78mpdnL5P3pY z`q~wDDR42jVMqg0ttOT z2K!*fFH)|#^J}#FR>Z|w##mfoxiMp*z>S7y%$~oY_$? zwr#4G`Y84EsOWbGIvV|5jUbUeI~$~MZGUu*d-b{ev3TmpPMGwQPcewGAP%Ar+JOEN9y&j1Xtw-2W>tb{orcsX8Ug_zlTcZ1Ehpjs2r(sIYZrkcaz zc3TCZIShguOs}^_0VSgx1hXitFYB4p>M3_Bd$@&Ke>itDIEXZryn0yt9<~(Odo0KX z*`yGn3@Z&$&kel_Sma-Bc1hSWhvPK8&IzCP0Me02d1k32fw|RJI>8W%P++@ZG;i0r z#4)xn%b|83m}nl^$lg3yID*IsE|PIm#}jE~EsP1w$1t=I&jL-qv}9^AF+b98f;%sV z2Xb}z!+Md4s`|p%eqAwQwuhu>9s4fqY)cTLSG-4Mf`tkRYpr|Em3m|aglnpJ^-Jyp z5^7jvy0%xnziw7lrrm9KZdj7~U|`skJY0W|-jfgDFni7>6U6K^Ac!rA_b3W{xtU`A)1~1q8Q}#^P>c}Ts=62&@)xJzw;yMhYAFI zKrMthpWcrHr;#>S?M0HY0^;tN1Fi6F%r9&-5oBCW@^)-^-n`Z}#|bU!vn5++De0cK zQ(3YU*!Q@ghK4;cyZ!`}U%Tg@np*V_10+2yI`U3C&Kt6RE|Dz1Y(AJa^0}xhlAshw z=aIW-G(U@C)u+@LB%oSlQ2XMYw1sBo{}O2i4||@|kd`{2PjvIGV##M9>wRZ{kJ%^e z^l(k6;miJ2D?w}4;ET7A2VZydxkszIkY$6`>25N+Ze@`R?j%wk?mbCrUm!|*jlbDv zfe|;FCtZT9;)ji{fbK$};_h`VReWGh$z?8!TrTK3GoaCrh(}i{1<|t&$T#I;yhX`G1b_7z zSGAH!P`{l=q}Z%zgSOYgt^JHH74+KYa4xLP7G7)2(MvYEoQpOrI6wJp53YPYtBknJ zkI8w9*l@SQFzqz$gE@iNjlmws5}UfQ>h^3|s7+2llGOsIKP=|@`^tL8HjVhN81Ods zM;2~8R*))HJP29YjBPRH`xh+0eM(hvIWZ#7cj_Z+V}p{;vQyi|vz{FfJxMGQ@ax=n z!A;-TcVaDa$jutuO;D5GcJ=s+S8{qvA4J@+`M0a4$^?OWhA)sn4^IlyftT*91S$Ch zueS-LlAUNjGSkT?!-y!~?x>esP|mEHML~e<_jX&ipq^nzm!l>7248+!Hb!Ox7u}`g z=CDva4zxd9NHkeAlk28HyV5W*+|}m$1@T;6W|1Z1PQ?b?BQkq(KPeo>?gu_64{L#y z)T&kUvjFupM`zN7npR(+Ayv88i6@zY-6htnU@mq6yOFjn}1Id;p>x&sH0fN_K;m~&S?i%YAm5zDmb?7bQVU52|}3KsVtne8r%4kGU;ipAm|jlFbOe=@O!_uKh~^vM$jQjb=l6 zvs+UZ=*&t{>zhOODCN5x!SurZ!T!4s-GXGt+k__He72*CEuOW}Ur_wHnMG@u{QzG7 zA6Z`+)z;RnjTR}zr8t!0?rsH&6nBS0aVYNYF2&t7L5sVzNRi+!!QCB#-1I%?z4sgA z`;{^BBgx)bd#yPio7)BW?;b3-zP5`a5;2Vi@h2@;0ZRkF@+7K9ynX$6js(M=$y68& z>#DEhSNnF}Ndi0Qdl`>XcKk)RBDQ_KYVB@+9S zLULQERkq7yZBJcSwaU|~gDgSUx!bSmjch327r%$!_>CHJnReiL(t8`Hj}-}8A~q^k zL9`<5i>bnz*l6)F7xxxl_IE(YfVuQpS%NGe0S;_NT9D$}%_s%p&{+^LMW1iDR;9XC9!I8c)Hu*P%jUT~A?h)Kr zOedmT;W0s7_&zxT!|}(gGTqH><57I)&Pb|6L9iWl-Itq}hqC&3y^niehy%GEiTD0! z&Z9^Ly$=^-gn(C?U2xN{dXND4Mi4RqVF#~_WhZ9K_D26N!tdwyd{(`@^L&`4%dU1a zeF*dRonn^xg>E^Z*&E>&I4_YD=^i)RI$|X9_cKx~2j4xFj0=oO;wi>0(8gy%2OLE1Kr?A?yc<-YFLG8Txw^whO z+01U$&tH_*(NCo+$0jm0rnf5J;=Z45b|?UJ1uCeLlq4fns~iWkh0b0}=RuJMB~yz! zUAAS<&?H4ZE=tPhd*Y?{#R`LDP1dC~xfaXwg6Aqb!|G_6!WP;7#5cmOLQ-{a&`F8} zv!fB48cnU+t*SB52jYkhpErm z-F!9y-}5fN#Rz5$>RNjx4jKq$2bWIdW6aOukL`F`B8c;RTgKT%mLMltnqZsc zO>FTZ4@p*8gtele2neft!--E^9({i)!q15DZJXCNbVKgYnWW+f#ti-bFw{FlbA>k& zt+7Ltf}Zm8C*871J^M#*I;28^r%BKIHav2Tt`D>aKA*&Zjzl=7+}sgFAE8S`VWvT@ zk)7ps5@tWXgN6w6yE^ZH9A#Wkd~lJmIn0iAq#K9WYias-H3Y49Sl77-x9N)5dD+*>@{e1_@L(Z57W0X*2|wD-xPeaOji=ntw#jvD=$B5p@fxS4glo3J%kgISp>tLOKU9S_58mKv>4p3gVb)M51c%vg zapn?!?_=uDzg?0_;8B@8)3>ZeR@a3%^yezTPvH*ZZw|J=e;s=iu9f zWjQWJA=Xe5SoML$4O*wXuXi&4{?16?1=s#e&0ypfTBGobELs^*w^X~{Nqbc#J4E;% z3EX&aql zUAsRr)EBAWBF)b?Pkyeo;2vRUqOq4`Pf=KyLGN~aDnM+Z{$8NQXpksis}H1NuOB0<7?e{)y})p1{4aE^Hd zSI%DTgRfmw*>@}zm$VIClC4Lt%8M{6wR_-&1{c z`|pf`xJ~JQ+K0Q@Lx>yQgCwloNP`y%TR2-E*R<@QlP})9K5ZDdwRFZCH@%51lU~!_ zXUdrW%B<^N%kLG=d6OsVt7%2r3(LPfAT5$VLq@y2BY3jYz7XlzXhhbYq=+8#o{#^8 z%d!QhzI*Y3`g&&UG*8LYJg>unxbgdZ%7Ed6mUY&W^n>42+!XEe9#Xpoe(V8Ur;!!g z7Z;|H6mkI8yh4F8hU_0ILZIcAeT|^`$=#NmgufG97OZumHLT4>SHlxU`**rJtolV(S&~@FUkU=8!`E_s1^aujqqTB<_Ka!YIz{D%E*c9KWLC9tmA| z;v{r3N!T-Y+JM18=dKPV(4~O+46*|@?3t8rES1Vr)>a!`EWP}u@Q4V%{|4e%ehErz z`WQprj$eZ4?}g7T(-W7{I%~Ts_01c0=-Ayl6!|)iTm4Oq)}8D9vtUm?*^q!go%dNT z?Xxggad_DjsT&1L8i(_#!qIK)4WD8PEr2m!-#dIt!R4G?D~}-}<}~$dJdwb|W~j`~ zL?-33G$gbjaN$3B2iSd4t)KDq{@J)n%X6W3{Q&pqPF=IB{Z>3>40lejRPu2uS!~D6 zeIg0FGa6pL7W<2VFCiaj$y+NLhkW^-Wu4#2M>FOuZ0@!ksvYb)#Svh4JsC2d#g@iV zsT4zC&zvNJ&@cHc+<)9>QwspYnr3))i=0)l)QdD}=fee|tJ-QOR8c`W#IKcaFnUc; z&TY(+tLN~_FiW|uV)i;$2c1t9Al(^SZ>Qlbes*DNJhl^=Y23_v=0;RGhISSwTTgQt z5ZJvbjlbccZfsr(typqbdo2i_Z4$28FDt3Ovl`k5s%u(afsM;Rw5?z4}rGtp>g5Ot&!Vo3qqBK z$?>mKP;<+77!(AK<;m@;l3;pvj+>HLG4FL7a{MLJbN9uu37)wYK8XM*oFs7>aQ5hw z2WLoc1KSm+=KE(Tn2Ta8pS?r@hBWE7F0&rTTYy1^@ho5ZZGZbj`jqF+ zdt7{ytDEhGw7Wk#UAg7&?jO;;mg567i*8jQ&7SQx2{T@Ja{5TS`mX-Hi>{v7Z&cZ{ zX}jw#ze-@g`nM8I&B_`)h4px9!VRZWY7Pfk&MF)a5)x6Jl)vA=w7lSh$n=S4&AFrx zy$Hp?H5mwcaE6(R{#xSi`PuxYAA8W!kADCa8I!N-m+C zN8rc?m=DIBHYYP!9L!aDb8cPOSfRIIRpeW|5_44Ux{WbOH%VFD0Wrwr@C_&u*BqY3N z1^$%=*|s8m!h&W@(7u${(0U#-*Csr|>q;+k6}YsidCbaGRasoO0>RAL&Lks&GqZ0$ znCT8W3y5~!G}xwYv845Ziy?^Ju*d|H*D5Sw0XuPEMr)NCr3|Zmf9UW zjjFOE=r+c%)5F8=M&qr$WMD(()3H(e?yWFqT>OK=GZ5*m$A+=e=`mG2dZ(Kq((dzs zUlp!k%;#fY#Vxsa7e>){K&RgGZf`}cpw@7e+U$MrJr_zBmO}>eYSBu0q#qcmB4^|8 z8dYjPK1=Vpa=%&BREC{&D*5WU*`;3-*}=q!;9;fkzWuid*)gczC91d2^pDOUy6W3g zzSpsA1+8kGQQHa4CTbv=`aB)Ship`&+Y-7seSf&Eo_)1UuSJ+cM4B~5zOhmIOjm0|onXx0i*PgRvH9oMn82~ak@wD65lSZ9GY{gylr`2QRSvrrrTHRCkw40BXUM-0?n&D^r+oC-Pxu)Ky3-i4(JZ3j$aQ#yFAI#gj%+iC+)(3mA4N|D?n>5Z;~S^( ziOgB5FJ?#W=b;k|_9f&_7p4>5s*KE$9ss-z3sBstDc**BvttTaRhav;PbI(sf z(%qx8qVJRDtjI<9x!FTw42cX@Q*FYxkill8Y!Z6CGMGi++ZiiT%#yHx@}OPh?OsYd zlxg- zU%8?i_>e%_{b%ginvVBS>Ojku0=QfROlwLiyn5F}Ubk91gr8ku6N=VRleD-!u15Qq zJBJa?DSm%DwbKC;(?m9Lura#o80zTDlCXT3%8*bZv!(zCd!HuI$JzgcwrrRnM8@5sOYM$Hq9k;XnrPvsj@1g`HCCD~X?tTlXMTb}%9+H*r*9+uvZ%L#5x;vb1bI)iet zhHk>65A=8-0i_7Y)g|+HTE!Ry1p=>aYTYi~W-#C6k4{8pY{(&0NyK|xC65AIg{Rik z1PiFmCRI2IW<3LRH8ldpRMENH=pfy=lRQ98A zEpt*uN4DSdcluaX5qXv0w_~T*dcXS00Y(@c@Ai9jzd|XYRT@1!c8YB7g0z!`{d%+A zoz4ZJ=qvNU-NA!to~2FCc6k3UN-PUSnk`miIh}c)38+2=!mxw$9*PuF45rkCx6Xx2p0A8|?_y_>PK?Ws>cit8ghE$Qu$M^kJ)50U{2myJkcP)D zo>EAN&BKqpNv7}dV%auG^ZuuQ%H+fG;4Ezar~oTrOoiq>Zfm_rmb#V@IK9(V5F$NT zYNkTSmn1uI&N!>>^#r{Kd^%*+=Dls0nkk`}6suYzv*l5qKqr;3i?v`$Ro2j*7_eLK zDOiW7#wzRQ?C?*^x2YF^8tonSFj_{3@$<^VTQK?j{ujtAPf{Mmq;a3m-8wE5McmOt zR$#LvI65;fCbl@7ejqyAY4Fgr-?69n^B{2c_!?SYs?|L5((+m9G5}nrN1g`)?^3jF z6x=0yl9Kpr?a8gDS?@1IGJt;7Jc~;`NPCE?K2!z8Q*{#M0k22){61UgI}i(sV`y%V z>JWgfIOnr29(@~}sg&AkD-G_2V>>rtZ~5^`eKh_OeE=hQpG1H?o_`kH*O#XA!8_pTyresdvNy|^Z@o)xk5-_SPoumroAx=68+`XBE~In~0nGZLB!=eW~F|tDS2gm>IaM`ucTG#r6~9qjIP&4Uqfl;ZB{Bg3oxu zP!w6h{0pZg_;!7d(F<#|Y%;ZI{7uFnaGg-0k3C(etiC_Azghlc(Mfo>>d9eW3eMKx z>q-%g>7<`;AK1p!Xuichq=(!tgk97flI5xMP&4I>oViG`@zPPsO1kTY;0j+5c58_b z>HZHrXzFEj3)L$@RX(5VsgY^;8~0_=8|nt|N~fLW4p{2}jWVu2O3gR?A{PycuCdJw zzz7F}^m6i~Ofg3L<8g2yYLI99OK#^#NRkRMmainHj5~&$%J|~u(PIT-DO+F}SbV!x z0Jvav({VsNy9e2B_}Pf?x9p3gq&d&03qq-BD)l%fmRxa7i57Z(gf zacua(dt;-}kCzg{&dv3{HF7=WCvZ%_ztOq*kD5Q z?+JNDeCptfYZT#K*K+lT##t=#b6_`E&cmEyUmeZ@IhR?;)MGAYbEMuvzB?PG2jaI} zf=tjM?a}N|hr zT5W>llSUIwA3Q_vw4zaMYSw9OL9Fuq#UMBZTFIt)AKiZ^JTextSm7P0i1)3G^LmrC zoayt%&;!gZ8|olP+qgnGU|WSRAGZGRd;1UdilR+jx6-V7QM=9Tcq|BB4+`)LId63@ ze0p8>(Dsc!SLnNg8z*0*mG8;V0dc2C5smy3A<52#?BH|riTOl$5j=PbU^!8k;`mFHVW6&THd3|4BK2Hi%bqGdAge9< zj)OlTx!G%e#6(V*sCBq`8(%(W8@4;wpmkcR3VcI=3~a%#N@>D4Y_eM=XVAiweMyEY zF!#gbb2S;yHkQOs^Zi-|HY!zi=<>cBj(h9?*CWccHKY|(dr_Vq`$d2~67{+N$o#Tnx;*S76a6SYJ*pxWP_Xt`Hcl0b{)>lWY4a9#PxOBL zU2>ggMilC3ktem-N)dJaYuPD*V*1!izdqh>Klxh!ycU`Iv)nb-4a@`Wsp-mpxAKEa#gR3z&vOH%omXpm>Ud(qnu(&cHpe1n9q@>Z# zMmP`Lg9n2W(}KjS#R+Rsd~6rOxmZ@vOTRtgt=}pX{Muh6fsjR(gyjk$Lh%QmP9+K% z7g0RDt&c72E9Jf?N8AqrBE46-d7BEJI1hxcy#jN+-XRzGx#Zh{k$1eBdJWYvH~yv? z_`<(%sw0A1WQxGzFe*3=Omz^|%kkJwbhFyXz2ZzX z3dSuRM#{(pr&$dHv~0&nh*O}ua%Tsi5{SMNR9bl%K&5pEgdJnXRCin<*eaZrY%I#t zH!!DYF3lD8)|?kepq5>WMThnIy$h9O&Ju^frfZgqmYv(4A4>E`$-29$c=WW_`=^0W zHX8EA(s*i7f-j_;QWV2~`Nz0v-#spH5se)`e+HStC9zc_(BS$e6>7izEeT2g9l#$+ zM%N~{Wy3d$25F4i#V}+`bIood;oo)JseSJ^iPRLS>DGPULzKe{(M57U$me#=d7xXh z1(mcA+4L`#F>xbK7KY$vlBG(1iA(l$%{z8RUHO4^Cee>)jYp<6vihbPpH{@e(qx?! z!Rl?|^kU+2Tw~>be2}!2!!B}iTs0uv-@qUEi%ajNN3YqG)$Osh|Wnrzl`^JgfhibBxe!(F7||O<@%otY7JoKHwoXeX#%I z83DVtrH6ywB5lYE2I=sRkHX|dqTz*@c|4UYP+9V<(Kh0JLc@7fgQdmd0c<|rr@{E=T=@Ws&-L&-8u38qk0!EYRd zrx2K9`vU6A=UbAcTs^={)y6t>{;+z5k%4EA5_Qgk?UcuA2O8>?4RxPqga@^a^6KZ- zWJ@=Y*Ad(X?z1yZ`C5tOFgrJxWvV()rwtFL5pn6 zz0W)7TDnO1&=KQ9*2@jcrT8+?bxWbmB`w3Cl#tB#ALE-k)%tS;P@w7<1(?Vk^% zxL638L~!>k80>WwwZUQcCfJ35idCDfo1T@kj%wza@%QLp^`z|kPh0~~TiHLR%1q=T z%SIX+Y!j*c2rWQgls0DNF{Wi}cn)v;CLaIPCe=(7y!Ht!XhL)?q3SpT-oP*aDqLsn z%kDGoua}}z6O#k-(r)UiX)P|ltN==4=%M)$HcP|FFPI_&D&$|i+?%G@ccwhLB{?JRYO#JHv`e+aIXF-k2 zJX^;@I{dPGYMx^C!mZ(%eUsi+yGXumLX)v(HdZQZXsywkG$Tb(J}O-0iOrbBek!!BG2YzY;jbJ`6HO%@q@$v#E1o?&_@s0^+Rc!=!!GtrYY@Zqcvr1{3jN0aeXST*pT0hPn3Tz_7Ca8hzph(MgcV8($rM4C?QDv5Bm{xX zkpp^X&Dd;^#Teavw9}q;4#B753w0THEwkl@I_q!W-u2j?u;PBPM`$d}`J~($B-@Ah zkG~ZmFn}VV2Y7N@I7Q^iiZ6Z0&GrN4pVa^>-t*Ud*(xCoLVmEhQEK(4|a7{_CC-`X(aZImT_F|??lcV?=P9J7i1eKR5>T-YlS!IC`M}1e^hYnvMRKTne)~_t3jjJM~ zEj-@`*_2P&!PQrlp`?Dm{ZXG)Sl^`l?H2uvGZFVcw^$p?!TOeVN&V92UvDcioFNtT z&dw*u!io2AB79cCGO!RieKaU>tQfAeKwZ~|v z^n8*94?4K&y8CA)&$)U0TtN)!-+(c8Qq-hMg{C=g)XcsKnPGGVUAE=P{)rYXJck=! z``WFg$bkzrTYnB0BVu(4vhP-5SV-^>jck;c`qv)~ed%F@{>V#ImPqIxN8?tDONPe! z;PpWaz>{c=hoeSOp312Lb8{B;l`OM7)zQFMR|aWp zXug8jmDt~{nMmy;DR83^;JHqz^{?NW0(k}zmJ)Cnlw0f?)zc3(19y)ft8cBOkMm3h z7G4rto^E|k7*=9b>^@FC8H=#d*Sd|PEZ_9l|&mP zPEDyUwYf5$th6REFbY$p9dkJFrGEpJ_Ns4U9xiWqoo+)BbNS~?K*O0}T+pu%bQa?R z3<8N2ESy{)Qdu4c;TlEHPLAl@!C|Fd53###QEHD9(A1~I$c+67s`iSVpga0vw)V-H z?xv_d3ytH{R@_cgtesp>;*`b{1*CAWJbkn%=1&06`F01?S2^Lp19ngD??{e{_^*i^ zYPO6Iz|>eXrJ=VLUzd?ZBxPyBRK=p~#U(%|rP_q8J_^CAlf@;mcBK2xp;40opNP7F zb^K+3-07&QS#`eJAjjN{C(Eig2=N;H`jRFm=R=hlb{QqwoZ+0kd#12Xb1NLG@wCn) zJmGZthjuy`L!?}$&8DW4XQF>`2i!J-N#r$q#bDbj?Yiw2tq07)9)D z)7Bk*gSDp_tUxx&?!yQSr`%CL!wi*3ce_4qJRk{yBtHDL$X|V;2q9H_#}1uCfTXh$ zLYqOtqJjS3{SCJJ1N3<|+DIM^=n3jXbeX$WK#i$p{;(fD;>|5%e0g;>+at)sqiI(_ z?=(PYp&X7*y5F??{i+QVX?u7F2PpxRE_Q%|ZqGU9#_N-=TT8Xia3JX)sHsDtb2EJ8 z4Vu3_4~mv^@D2FIqMvB1Hjf^r6CqgXAAuMMFw3?JybC37?Q!wIVc4o(Gj(s?aq(|C zS>DI~j$xNN)txJrW!NH>(Y`>`kov8RA{ZmebuDms&xky``?bsVxA-meBJ$l3-lTug zb_Wczn7|@Vf7UtwjgG_rzvqAubmwGH`jP0NfEsvt>D2agIWo%~8WJ+m;<$y&k4H+X z0F5u;G9P`P$!QTcIFDvlx3|Emfvw?@J)ra3w{*gbx*~hFpsQ~)$$McaN1Vb=+E!G)CKY;uks=mbj_u>4PLC5fxe-Z0!AtvRpvi zkaxVuWBIsltQ+C%MgC3@#=i1MoH|+FC?iR(+y&v6qx7PW&^j-$G@=I?8W{0qp{!Wg zbr!cqzgqThp2OeM2pJ7}+#tT0r%AJEUtkj`k|23!Nm}KCI`<84@_5xVSxeVFPq8at zwrvDD6F5Z-!UHm=4sWyKS65e`7#Dq&562)ceSO*!1qiT(JAYR19~_+CpDe0S$`c8B zwp(tRe0sP#h^hKAltHCoUt`CYg^q4M4+MIoP~1-waePB|J(`P+BNLW8ny=Bik@Q`a zJzMM45Ws||*tk7i{Q~xX6*e>1eG;X#yE|R2FzWVWAnxq%HA^!n?Yjnty(6CCJ~UNo zQn{d?v6={N*tv6G`AqI`3Z8kmOoSWOhZHThFfZK{xOGaa$eT#tnl+}LK}Z-j@ODWM zOGCc?KykV5!Dj%i+PD+#de+HSxG(^7BsEYhy8Nn zjtwP{7T8-`0lScy(jzuh3+SkV0|w@y((ThS6}fTFA$=Wjq-K`<=d3-V`qG9Zs13C8 zq{*g1@L)$=Lk3~zR#>YfN^kFltaaq^YFxC;?PRHfj;-!wp{^*lJSr-xu*(+$aNgM1 zkZWhB3FFT2;p%qP!Y~5$SLet|k9VXvy$@dy2GT{G0sq;sJ|lcScVAY?{An*cXp{19 z?gaEa0Yj^|9ec?vW51*~WfKO$i6_;^AKcPk_G@ol&a%`a$j)_H(1E?e~}#*x{5JKuZO??0p~gWd`(Ojh(hVCk)l_~ z0Fcs?nxUv+?(RNf`l6@Zj5V(c5izwLJb}cOyllP7y%o(+|E2FRg!iiQGTOwN`}xSv zuQ&CLpzq+?7kXhuQ?Qzz6^K|1;LI#|T|$}mI>JJR-iF@3#8OFTf$@BK8QN5?g}y;i-P+l+O-@M-#wB3r${{p16s)63+X(3_C|Sy-yhK zQA-&4fLc0K6At!7lut$o(FE(h3@j|AS@vBSw`XAcw6Q>Vq~teLa2BKK;wQ_^&4T`g z7=;{KYGkaZ%Khjs(S-2}qt<TwZ6b^krj*7^UY zf5d6j$2=^Y-*VL{K?fFvFNihQ&}cGLts`n3JyRE zZ*+M0XEZ-_N~G6*LAd&Ru1w7uLj@@*DHo@^>X|KY65Y_TDB^2xN@%k0F>;Cu#!|C= z9!F9T27Q7FTb9>JtRlomRQRK1kkkz|v+{ zu#6)uMTNub-S?-IM!O(&9f|?P_Lp~$2M=}Xy4&qnkA26hZcF+(l|(Ai9P@)AS zQ&l)L{l17(7BG}cfa_;PB4~={G&H2f+~MNpq1dv62Lb6?tGty)&Q}5LePSdI_sCC2!Kb!l~(r zJ%zhjbMf-(TNxLiXVcJK1x-BeP8K%Ai&&Ug`(Y{?eaaaD%H^PpF*6m?|9Cw1=Q zEb2xaghSH6f@8^5$3OA%x4f-+OyCHwngrZ`lV6|-OR#@)X5e_)mD478Xkw~QQ;L7S zCXp6{pmHkMt;#2mE7q4Hf`e{ix2e~cJ5jwRHt7(n5Ar47yPw^>uEu!n z_Kbg)$ud~zD*p<{D4Us4*Yio|wx0fMskaJU5Qii_@Ut`&kpk~J0=SpH=kxIxOv5n) zY{@3<4bD~GDbSK4>80B?9SQ3qieLT7Xw7050lo6hh-xzvvq44WP%%r%IE66(`mDMk5H-wr0IcGd zTL$<8_i>!8b}Ad|tw33aNaUZ{5N!uX{+Jr)3Y>qs2_6`2lFFMnodqvreRwbQ3l}}e z7cGGDJn!nDEN^NcmUx!^r52lFh;j&e2-;IsRI`(p)WK3zC@U@u;3d})>Ke>0d|IZb zr47f%!Liz(C~%WZaYHlG)s=&;n(iN=IZTEf>F2=co;=lYPJ5N@@Hv`KeiRADCaHCo zHgi54)&u;kRcGn4QTnj3jb<<2AS%L77{#w&p*D={yvEqLT0)}HchXkdVL&+_hUQkY=7Y>fQDKCwJ>TR)D?i|F_@&llG)lAGKO!R@}B`OasI>Ty7p{ z3`f)(BFzr3zj=1$dIhQk5Wq^`*%zASy^`Zl95Y6aO|;b;6@?_{+G?iA1+)4Eu{ng} zd@r(`<~3dTn-T^cbq8dR@VYrP6ZAW-8=Uc5fC6AIux>(rD{jMQf@%vG3teg5O(R-1 zWdW5OsPb@>M{`w040E=qA!wbKo@T0H9pW;*ybDls*WwSE#+0{eW6<(QWzwzYrI*Tt z(FRgTv>2ohtAa;FrnaRo@h(F4upHo){Y=V#Rp#ab{@nKgmJQa0hGL%t(XU)gJyfb+ zF!v`3=LM?8(S0b#pDEXUjpTtPtqB;L6gLiPS0YIxQT8EEUGysBcdRnXW(u62UHits z(3Z^I6+bg7Ug#2;*{CbqB|YmKi&F0j-V1R3=y1uVrsVk8Hpr;yV7g3APA+OH0^tFz zN;)~%{lVzZ#H7CB38?^F z%C|zZj?KLPr>ne=6T9Ki>e{2E&!U4n$?%!NCdHSJ>z-IY9HdQs*5F1!*-TmZ^lS0K z*}-)+XBPPLXJW4Jt&SNHf?DfOj%bWZByyjLCb$em3$6_KR=ls(#mRf8w9}4fNM`~{ zN=+Mj^D0k=h;qb;JDX+P-Ntd{h>Q>`IN*y9Oh)pqt{vZzz#%i&Pw0#+c?YQI^~kt+ zIq@kI2uZ0!Ax1E__nH-M&fp42nq*$8&`nO$9{o%TR9AJ-Mhum1bPy_u%X!!YRMxVU z^fd6GprdSg;}<;X&Ejk2@#<(%Rswc>r!L@I5jPN^Q=+wAmIh)7i{xQ8AgFMnPP(bg zdZk=67a$+#?mmow^|EH@xr0aA53JJJ8WEY2{7=_1fgHm&tAAooDy57it5?9DSoOcv z%UifYm7TZNV;{#Hc^-mo|L}iK^EEw_Zz~X=fcDC_TCT#>?!?tYZw^=h#xzQ_+@+iZS{Qi{RsKB<_j6Fx`-+@U^Q6ENofdcyzPL zrp+ney8a=L?FXCpnl&F#3eVS@5D`SbpMGp<2w*TtEKk%TLSqovWU=lUw<5O5C&^L&#%*#@AY{j<6DcE>Fwmk08hDo2P7x?FQ~CJISL&y=A^Y1HNHto1Sq(Rm z&Us@{?gOzbW*ClB88|$%WUPTf78S`I>J3IZ2q*Vb?y}Qm%RoTd;{y%+YaZY2pZK%snU6W||ZHa7@L+ihY>b^TUF8 z23Z-Ur(8QQ33Bv)lCid9AG}&4q5Y}z(Wj}`vt4Bw^$s&`#=Yu(n5upx;pYb_b&Xmc z?R^v)Kt4Zmpk^{BxfT*SNo_Fl8Q_)~365y@=lR8MG)c4duTVC}fAS?^FayYrDnL(a zgg#$TRsRpBh9*-krNqXa2*MXQC)g!P8B4gKmmK$fjplKaxS=HvW=;6m$${Am*k83OwDTdeET@Lm3ItK}!(TVb&n>kM_@GeFG z8g1sMT<3MT0&6$H?Ppy_R;h-Af==7W(D&mW@6MForxQ1pteCwSoYMYU1?~88$;s`V zbx&AgMJ!0JgNr%Ij`-a4?uAW0po&%s&2L>3FTmbYM={ACPsC%__{6P;|8eXeFg*TE zoY?7|qUBd5fW{~N!)QRD;e=b2G!=Id=LZ`Q-m&yq{D8}$mOLvNfRXckV}&&HGaGG8 zL}R7f0au}fu~cjSHPr{2$&Hxjuh15Q0me1Zo{o=mKB)Hh?ek0lEu+Sv3#h3Ke9r?d zxo6x^=NtX6gxs=4Qb;Gg%LoZ`+tcK5)GC-t2&4oosh3dCx8nTPHbO{6%46UXQA8>@ zI61BQqwogQ6z`1u9?bB_&)zgti8=K8D5q_3{fO@2xOGQD8DHJ{5Qgv<7j>4%7fn&F zoGPmBy8OiRux$ME{;m=|Mfm?fd53T@C#RpQ)^`zlcA{G>CD}Hq$npkhQYCn7hE$ne ziUe}8&Ag0X%;Am>rUfUqsFvD)BOOG0hKdbAHN?{abKKkp`ZR9N9}-cpWjtjII8Gpr zmzIyutHeGu6$u2Ruoh#Pp$3hrgsCmzl}6pU>)Z>UyQ@b2>Qs76gbrnBB5U8wV7fEYkF;Nv1->HD{^Oior;XrMsrYSy>1ghCF# zQt>t|aTxXTvq&u~s~`{EQOUYPrGeV97}(g>V3jkzb)mVBQEGdbVB)|zO^Bbxa-xg5 z#X59Y(fCSS|FrGK0zDL&jY|?hFWx?-V%l3^x=J2-F)P#g#;0JMf=5;hzd2 zy*rtfusVnd@1UtrZccwb(!l$Y#4H(GZJ*yX@i8RZbxz0H=1H&KJXYXo#OTEYO%pPa z%F)HBW$0OQX{w>DoUaLwuo$C5RJn8z9Z()Dc?Mqp;w1YwT~z@S*23I>M1JxZU+mum z*S`#kkJS1?ooR?jho$;Mlrg7_mhRV5T7u((z0akpHZ&!Exf5A&B!Y^e@LHt`jo=RHf{D=1 z`r4*dihtiJX05_(buW2IB;~3?>;5s?R!-gZUvZT3#OgRVt%#x}b3JE&L zyw7+SsJbNmcO2L0TFs(Rb&PM4hB8YQ7t8%VdiX-BM5Ryq)D{;DRW_*Qz(DGAuRZ?M z3!i5)^E*ws6^>WoL*Ya8#-HF&|2(CBPbB&eZPcOXa4-ogzQo$o!=Hv0u)SLAU3;aI z-5sKJ52i+nxeKMq7Nx!->ZpUvBPSS8Mbizb;zZ%Qo^SPnbdGQ4jcV3l(+5H6>=IVW zosWk=F25&_67GmS;%JH<+T{RP_;S7G@7LGUO4Hf=&UD<|8V^N%SCGFb7uboyy6(ez z0;NQzTfzLtn{Szr=Id}#Nywi;F))UgJj+@ zJl|L7h%{V->ki6t|5byLGBl;12iigfZ_qXZ33cS4-R?BU#Q!II77gp7v}Xw(YVA6O zA$y!Z7G)RXHR;zYb|~$DN>V7n7U4>x{cI1V5Dsy<*c!}{Mq_CdvtSf7CPCef8=W(F=&q@qgMPmt#czO@K_3zO{jrhepE#4jGJeZ|<4Zq0Z|nG|7bJ z+;n$+f*P(v<*Is{=52{fq3I0O8mG{FC@nD%BC*ZAuTYJ}cy3gsz(H}+jBG*~MeX_1FM?(0#t3XEX>&iT zmRaodz5{qrG@OqrW%0x|eQ!(`*nD{Heuap-zCh7S#ztG6t2J$F<5&CLS@d}Hc1=W@ z@As20#U#)KZLxYOiZF$jM>Pd^V}{3El~N(P*NhKFDZx4!>aZ{CeObZQ}=b*cYaA>9RH;OC&8%4!9C%BS!q@V$%aukZ|=RcRHQzQ>Fh0xQvf5iJO&`d(1DR#Xu*#-_*O zktdIbpR_*UE>&%#k4GflYO(g&>^KW`H_Gmz?bj7Xiz0;uv{A`lq+B2U@o2&hv2hy@ z)UW+dlcE3%Ysq?ZvaHqWd$H}ct_p7j$J`}|g6cB%kB;IA`CN<~AtgaQ_EqyU`GU-! z==5v=Q`rwX_Ct}LPgAeovRyISw>!IUWiXQlo>biHGE zrc1Xq`oy-KbnJ9&+h)fdqhs40qhs@lZQHhOt7Dw3wfFn&{hjNazjYPw!d*4z7-P!Y zlst$jt=ebE<1bNZp8P5q5h%mOyG#6UzzK*D@iepnNTvJTq5F^V^%loOU(Fb_Cu}9w zQZI1%_i*OfK8^?sBN}D+gJyIUTLFdtsG4)`KwIZQtA(mACP}j;&#@imt4dL5 zkL?gw8mum`Z1%G+{-MwJ{1x#@Apd%vMTx-Ch z4H~$>6ZP(^irP|$nc3tH_pRZ1brc4CZ7F1I@M=qaek-v77QRCAlyTM+Y4hrqpfBZb zRdYn6)zU+wl?cr{>Hl*pF+Yd)3)612)(UKfCn?44w~3YhciB&KqJ(kRCtm*-VkW1C zw0Z=6N7YzbUxQBVM0c$*prKM*31T3Pwq%;@(3jodUp4oCr=l1Pl;k9nu~fuC>J;6d z;Djvz;s`fZ(oX;-)@(A{Tw3qHH~s{&zktI>&W=O}%R7Q0LRs~HhOh39LNKAy{ZG0kJ@K?E3RBHgWLR}IZnB25x;m*W=>Hkk7XywWLxv~k|vTy}XrLU}{ezre`2nY6=FFa(MKOYhm*4bZ};y0VGlePMUypz3r z_;w1m3iNRM}LrExG2g>Z6em~5Yxf#2c_nl$H0;dNtf=yqt30&W};wLOx{(NtV$FNuT zIbU&am6wRuE;_I9G@Z0I0!Lgtypqbw$)X>SiY9%Cdp&6Q*AL(6$-LUzDm^DMUC7D% z$z}&P&MfXa5#-g3*K=T4jk?W8={be;E8f;iIL(xEW=9=LODizcZV%WKX4N*$R$MW2 zN~@|$sysZkXpv%JFLQ-*T_!HCY|=8GJXYMD)B4=>1dSc$hqaJ&uJ9H6gdOW0tqI-l z{uWy*u3#gofJ>Lle8|Ou;W{;EM^6C~`VuIw;<0cgU9IyGMl8nj%>WTy9HE|IQ zzhUhG9K$`H7-mt)fnsKUDVwu)r7`%U&+_chCi;}NI$R=Y3px4#2NcdW2)C-VrwtbI zQF2ncE!6b4xCjB`!)Y!n#kQwU@RN8fjbd70TDd58TQQ<7S@XpS~zBT}Q0p|(4h<4pRo z66hw6NBLf)c@D1NtoDOsU>>%3mb?QoTh4FDAXaXiRdo2R7geX%@5vrKSt`HS|Gf3J~yi6Vjd109|=- zjsR?YWPq23FR<;!n_DH#9eD~!Ciyq!oXLZgHh?CLx4Lcz1hR!i;$E=POcwRh%TXeT zBiy}Zy`A4UWhRPdmQDZ7R@E?{3K9w)5gVV0)4;BK+ph;C5DbU}ReAZ-S%99B9ikOc zRn7f*E_g&^)=)r1O>9hIuf@|or)&#&spk18!$Q{IIuk5+l zPHvGD*)5n5t8x?=$G*yvfpSD&UBPh}_URCJXY8P*r6s0`Sf=IKg&H_&UIG(`E6!tPzv4Mqba|FDK1y0QIrUZ<2ce{Q6A zB4b=)Xm`S1@C8H>q)6SwDb2613lEgnHd}1*uQqQLxYGA!mX;w!P)vna7IN7)lrzsu z%gBJPL`x$tm|J5Aw)^V+XrMaWjVEr?ZNB4*qEfe7QAH8dGA;4iAIlLrWctuF{9;*N;7sm=|9SE!!-GhB;v&4! zYIa5^Ws=?BNb|tbDp7!d`H@kpGdIIm+%7QIPHW0r9o1SIVaLJ5@il)+_TY_Sr&0R) zS8l@r$i1{YHk)=^ZX`ve)cV$;{jwC@yG!I2$a1(PX2%#s%7#c)4n^98w~v<_UxULF zo5@FSl9GMCvBgR%KH-%pvkdM>_tiNNqQ~XLV{}LMq$3rZnYSEsf-hUYvnL$=GHX9PcYUriaV zXncMx-AtkQ`%=9=uVbBRxA$wl30%S*-EbiIgn23tHR8{6G9F$*s3xJhWvmSE4KMLx zj{Hi^e_MARa$_gS^AEY>Xb3NB>R|TU97eD=*BDN$LEV!A_0?Zu>2hePtZTU})&Ywt z+j7YK7;9WmJsoyk-EeU@@D|q6tw_)o;9^W0-uv{6rC1%iI!7uLYTY8knacbwJa{o) z_Etm^1J@!ar1;o2?-gSGY|0IkMDlz425ke68|K2>=T?(fm-7 zmN_1Y(7KbJ`LTnclROh%F=kWh``n_zy#2*h8;v+#n9{4i!DBO^o5*rQX{fKCR{14h zd-J+6Rq==^k(o}p1pWBGN2Swf%wrcqPXn5NC{5R8(mEO9Kc820Sof1Kf2%p?lZsdXpq=sc#y z88|F0{os2#g+mmoI3bmoV`ONZr>K0n20OY5kta0lA-UfTc%^r#p66`Vf9f-OG2Ni4 zVBx!qXe%}o&dcP%e=sE~9NKahS(?Ha!eeOH0;Gi9t@jG(07mtvK0Bt5Dl04Ux_qy( z(#d{FRpu=%>!DN7j^XsDPNF#_!k%_moEM4Wu_YQnN|zR8BKH*iif#h?Ee*s6LU*Zq zyqIIZKiK_&ejN2feKColVYAqHO;!k+4R|l|;foOPiwJ2#k|r#_DU56wVLvIn3o?Mf z`vWOhNDdIXa~TW|4!c)5yASO{x!1gMFhr7h+4ETXpz=5nO*!3Pd_NL_gYa{yUknw- zMvgGv7AZV{A01!CWyFM>?Kt4onb!FN!fwh`T$yStO6eeKWa$%W$_gk{QUIc3Zu4Fy zWM9?(Ca&vcr-ES9VfTpmd1?#esx*;J&uFi8lzFk6<4!@!K_cI+@ zoN1I6z-{TVWRb%~*&0F{HOg`WaZ-lK5g%M7;~~b17#6c;TGMCI0Mm4KZ?~|I?H`

7L~J9A55p=yx(^(2v~}IC>}Jh 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 RD+K_*WF!>Dt3{22{~w4jc`pC} literal 0 HcmV?d00001 From 4882eb90a2985968d689b1386e84a98fead5148a Mon Sep 17 00:00:00 2001 From: Dan J Miller Date: Thu, 30 May 2024 15:12:17 -0230 Subject: [PATCH 04/43] fix: Prevent network request when useCurrencyRateCheck is false (#24888) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** With https://github.com/MetaMask/core/pull/1805, polling in the CurrencyRateController happens when the controller is initialized. Once the extension received an update to use the version containing those changes, we started making cryptocompare network requests even when the "Show balance and token price checker" toggle is off. This PR prevents those requests when that toggle is off by wrapping the `fetchExchangeRates` method of the CurrencyRateController with a function that will just return 0 values if that toggle is off. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24888?quickstart=1) ## **Manual testing steps** 1. Install and build and onboard 2. See requests to cryptocompare in the background console 3. Toggle off "Show balance and token price checker" 4. Reload the extension, there should be no requests to cryptocompare 5. Switch networks, there should be no requests to cryptocompare 1, Install and onboard 2. Toggle off "Show balance and token price checker" in advanced settings during onboarding 3. There should be not requests to cryptocompare after onboarding For either of the above scenarios, toggle "Show balance and token price checker" back on. There should now be requests to cryptocompare ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- app/scripts/metamask-controller.js | 13 +++++++++++++ test/e2e/tests/privacy/basic-functionality.spec.js | 14 ++++++++++++++ .../privacy-settings/privacy-settings.js | 1 + 3 files changed, 28 insertions(+) diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 7c3f8cb4f52f..e3ea33757504 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -809,6 +809,19 @@ export default class MetamaskController extends EventEmitter { messenger: currencyRateMessenger, state: initState.CurrencyController, }); + const initialFetchExchangeRate = + this.currencyRateController.fetchExchangeRate.bind( + this.currencyRateController, + ); + this.currencyRateController.fetchExchangeRate = (...args) => { + if (this.preferencesController.store.getState().useCurrencyRateCheck) { + return initialFetchExchangeRate(...args); + } + return { + conversionRate: null, + usdConversionRate: null, + }; + }; const phishingControllerMessenger = this.controllerMessenger.getRestricted({ name: 'PhishingController', diff --git a/test/e2e/tests/privacy/basic-functionality.spec.js b/test/e2e/tests/privacy/basic-functionality.spec.js index 924e0e15d3df..eea5e02229a4 100644 --- a/test/e2e/tests/privacy/basic-functionality.spec.js +++ b/test/e2e/tests/privacy/basic-functionality.spec.js @@ -19,6 +19,17 @@ async function mockApis(mockServer) { body: [{ fakedata: true }], }; }), + await mockServer + .forGet('https://min-api.cryptocompare.com/data/price') + .withQuery({ fsym: 'ETH', tsyms: 'USD' }) + .thenCallback(() => { + return { + statusCode: 200, + json: { + fakedata: 0, + }, + }; + }), ]; } @@ -45,6 +56,9 @@ describe('MetaMask onboarding @no-mmi', function () { ); await driver.clickElement('[id="basic-configuration-checkbox"]'); await driver.clickElement({ text: 'Turn off', tag: 'button' }); + await driver.clickElement( + '[data-testid="currency-rate-check-toggle"] .toggle-button', + ); await driver.clickElement({ text: 'Done', tag: 'button' }); await driver.clickElement('[data-testid="network-display"]'); diff --git a/ui/pages/onboarding-flow/privacy-settings/privacy-settings.js b/ui/pages/onboarding-flow/privacy-settings/privacy-settings.js index 4af10e7dd92a..3041cec21839 100644 --- a/ui/pages/onboarding-flow/privacy-settings/privacy-settings.js +++ b/ui/pages/onboarding-flow/privacy-settings/privacy-settings.js @@ -448,6 +448,7 @@ export default function PrivacySettings() { value={turnOnCurrencyRateCheck} setValue={setTurnOnCurrencyRateCheck} title={t('currencyRateCheckToggle')} + dataTestId="currency-rate-check-toggle" description={t('currencyRateCheckToggleDescription', [ Date: Fri, 31 May 2024 01:58:51 +0800 Subject: [PATCH 05/43] feat: add Numbers network and token icons (#24508) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** Add Numbers Protocol mainnet network icon and token icon support. ## **Related issues** Fixes: N/A ## **Manual testing steps** 1. Go to [Numbers Mainnet Explorer](https://mainnet.num.network/) 2. Scroll down to bottom and click the Metamask icon to add network 3. Open Metamask extension to check the network and token icons ## **Screenshots/Recordings** ### **Before** 截圖 2024-05-14 下午1 22 26 ### **After** 截圖 2024-05-09 下午4 46 02 ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. Signed-off-by: James Chien --- app/images/numbers-mainnet.svg | 1 + app/images/numbers-token.png | Bin 0 -> 12596 bytes shared/constants/network.ts | 7 +++++++ 3 files changed, 8 insertions(+) create mode 100644 app/images/numbers-mainnet.svg create mode 100644 app/images/numbers-token.png diff --git a/app/images/numbers-mainnet.svg b/app/images/numbers-mainnet.svg new file mode 100644 index 000000000000..704a74329e26 --- /dev/null +++ b/app/images/numbers-mainnet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/images/numbers-token.png b/app/images/numbers-token.png new file mode 100644 index 0000000000000000000000000000000000000000..5cde0226fc4b3f6869b2c48a7578918eac6848e4 GIT binary patch literal 12596 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 K*T|Z``F{ZAfx^H5 literal 0 HcmV?d00001 diff --git a/shared/constants/network.ts b/shared/constants/network.ts index 6eda9fb0bcd4..5a4410d4d70f 100644 --- a/shared/constants/network.ts +++ b/shared/constants/network.ts @@ -156,6 +156,7 @@ export const CHAIN_IDS = { SCROLL_SEPOLIA: '0x8274f', WETHIO: '0x4e', CHZ: '0x15b38', + NUMBERS: '0x290b', } as const; const CHAINLIST_CHAIN_IDS_MAP = { @@ -209,6 +210,7 @@ const CHAINLIST_CHAIN_IDS_MAP = { ZKATANA: '0x133e40', ZORA_MAINNET: '0x76adf1', FILECOIN: '0x13a', + NUMBERS: '0x290b', } as const; // To add a deprecation warning to a network, add it to the array @@ -438,6 +440,8 @@ export const ZKATANA_MAINNET_IMAGE_URL = './images/zkatana.png'; export const ZORA_MAINNET_IMAGE_URL = './images/zora.svg'; export const FILECOIN_MAINNET_IMAGE_URL = './images/filecoin.svg'; export const SCROLL_IMAGE_URL = './images/scroll.svg'; +export const NUMBERS_MAINNET_IMAGE_URL = './images/numbers-mainnet.svg'; +export const NUMBERS_TOKEN_IMAGE_URL = './images/numbers-token.png'; export const INFURA_PROVIDER_TYPES = [ NETWORK_TYPES.MAINNET, @@ -767,6 +771,7 @@ export const CHAIN_ID_TO_NETWORK_IMAGE_URL_MAP = { [CHAINLIST_CHAIN_IDS_MAP.ZORA_MAINNET]: ZORA_MAINNET_IMAGE_URL, [CHAINLIST_CHAIN_IDS_MAP.FILECOIN]: FILECOIN_MAINNET_IMAGE_URL, [CHAINLIST_CHAIN_IDS_MAP.BASE]: BASE_TOKEN_IMAGE_URL, + [CHAINLIST_CHAIN_IDS_MAP.NUMBERS]: NUMBERS_MAINNET_IMAGE_URL, } as const; export const CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP = { @@ -791,6 +796,7 @@ export const CHAIN_ID_TOKEN_IMAGE_MAP = { [CHAIN_IDS.FILECOIN]: FILECOIN_MAINNET_IMAGE_URL, [CHAIN_IDS.SCROLL]: SCROLL_IMAGE_URL, [CHAIN_IDS.SCROLL_SEPOLIA]: SCROLL_IMAGE_URL, + [CHAIN_IDS.NUMBERS]: NUMBERS_TOKEN_IMAGE_URL, } as const; export const INFURA_BLOCKED_KEY = 'countryBlocked'; @@ -937,6 +943,7 @@ export const BUYABLE_CHAINS_MAP: { | typeof CHAIN_IDS.SCROLL_SEPOLIA | typeof CHAIN_IDS.WETHIO | typeof CHAIN_IDS.CHZ + | typeof CHAIN_IDS.NUMBERS >]: BuyableChainSettings; } = { [CHAIN_IDS.MAINNET]: { From f68a5e5ac2aadbd200d87f89ee31cbce37400337 Mon Sep 17 00:00:00 2001 From: Dan J Miller Date: Thu, 30 May 2024 16:10:48 -0230 Subject: [PATCH 06/43] fix: Prevent phishing detection network request when off or not onboarded (#24887) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** When the "Use phishing detection" feature in settings was toggled off, it was still possible for a network request for phishing related data to be made. That is because `this.phishingController.maybeUpdateState();` can result in a network request, and that was not gated by `usePhishDetect`. The same was true if the user was not yet onboarded. This PR corrects that. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24887?quickstart=1) ## **Related issues** Fixes: ## **Manual testing steps** 1. Build this branch 2. Install and onboard 3. go through onboarding and toggle off "Use Phishing Detection" 4. You should not see network requests (in the background console) to phishing-detection.metafi.codefi.network 5. Open any dapp, you still should not see requests to that api 6. Go to settings and Toggle on "Use Phishing Detection" 7. Reload the extension and open any dapp 8. You should see a network request to phishing-detection.metafi.codefi.network ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- app/scripts/metamask-controller.js | 5 +-- app/scripts/metamask-controller.test.js | 45 +++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index e3ea33757504..c58b75302d44 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -4802,6 +4802,7 @@ export default class MetamaskController extends EventEmitter { * @param {string} [options.subjectType] - The type of the sender, i.e. subject. */ setupUntrustedCommunication({ connectionStream, sender, subjectType }) { + const { completedOnboarding } = this.onboardingController.store.getState(); const { usePhishDetect } = this.preferencesController.store.getState(); let _subjectType; @@ -4813,12 +4814,12 @@ export default class MetamaskController extends EventEmitter { _subjectType = SubjectType.Website; } - if (sender.url) { + if (usePhishDetect && completedOnboarding && sender.url) { const { hostname } = new URL(sender.url); this.phishingController.maybeUpdateState(); // Check if new connection is blocked if phishing detection is on const phishingTestResponse = this.phishingController.test(hostname); - if (usePhishDetect && phishingTestResponse?.result) { + if (phishingTestResponse?.result) { this.sendPhishingWarning(connectionStream, hostname); this.metaMetricsController.trackEvent({ event: MetaMetricsEventName.PhishingPageDisplayed, diff --git a/app/scripts/metamask-controller.test.js b/app/scripts/metamask-controller.test.js index a879f3f61add..e412f76f9e23 100644 --- a/app/scripts/metamask-controller.test.js +++ b/app/scripts/metamask-controller.test.js @@ -1069,6 +1069,8 @@ describe('MetaMaskController', () => { metamaskController.preferencesController.setSecurityAlertsEnabled( false, ); + metamaskController.onboardingController.completeOnboarding(); + metamaskController.preferencesController.setUsePhishDetect(true); }); afterAll(() => { @@ -1102,6 +1104,49 @@ describe('MetaMaskController', () => { streamTest.end(); }); + it('checks the sender hostname with the phishing controller', async () => { + jest + .spyOn(metamaskController.phishingController, 'maybeUpdateState') + .mockReturnValue(); + + jest + .spyOn(metamaskController.phishingController, 'test') + .mockReturnValue({ result: 'mock' }); + + jest.spyOn(metamaskController, 'sendPhishingWarning').mockReturnValue(); + const phishingMessageSender = { + url: 'http://test.metamask-phishing.io', + tab: {}, + }; + + const { resolve } = deferredPromise(); + const streamTest = createThoughStream((chunk, _, cb) => { + if (chunk.name !== 'phishing') { + cb(); + return; + } + expect(chunk.data.hostname).toStrictEqual( + new URL(phishingMessageSender.url).hostname, + ); + resolve(); + cb(); + }); + + metamaskController.setupUntrustedCommunication({ + connectionStream: streamTest, + sender: phishingMessageSender, + }); + + expect( + metamaskController.phishingController.maybeUpdateState, + ).toHaveBeenCalled(); + expect(metamaskController.phishingController.test).toHaveBeenCalled(); + expect(metamaskController.sendPhishingWarning).toHaveBeenCalledWith( + expect.anything(), + 'test.metamask-phishing.io', + ); + }); + it('adds a tabId, origin and networkClient to requests', async () => { const messageSender = { url: 'http://mycrypto.com', From 50fdee350bc7c08bedb48ebf4b98236b9e1664cd Mon Sep 17 00:00:00 2001 From: Jony Bursztyn Date: Thu, 30 May 2024 20:21:11 +0100 Subject: [PATCH 07/43] feat: move new privacy policy date to June 18 (#24902) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** Updates the privacy policy date so that it shows up on June 18 [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24902?quickstart=1) ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** ### **Before** ### **After** ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- ui/helpers/constants/privacy-policy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/helpers/constants/privacy-policy.ts b/ui/helpers/constants/privacy-policy.ts index 3dc9a2087913..82519996064b 100644 --- a/ui/helpers/constants/privacy-policy.ts +++ b/ui/helpers/constants/privacy-policy.ts @@ -1,4 +1,4 @@ // This date indicates the date of the latest privacy policy document -const PRIVACY_POLICY_DATE = '2099-06-04T00:00:00Z'; +const PRIVACY_POLICY_DATE = '2024-06-18T12:00:00Z'; export { PRIVACY_POLICY_DATE }; From de14597ed3b4ff98c6c2fb358a906e553bfc73ff Mon Sep 17 00:00:00 2001 From: Marina Boboc <120041701+benjisclowder@users.noreply.github.com> Date: Thu, 30 May 2024 23:36:34 +0300 Subject: [PATCH 08/43] test: Modify smart-swap and swap-eth scenarios based on current feature change (#24711) Smart Swap has changed from a swap setting screen toggle to Smart Transactions in Settings toggle. This PR reflects that change. --------- Co-authored-by: Harika Jetpoluru <153644847+hjetpoluru@users.noreply.github.com> --- test/manual-scenarios/ens/name resolution.csv | 17 +++++------ test/manual-scenarios/swap/smart swap.csv | 28 ++++++++++--------- test/manual-scenarios/swap/swap eth.csv | 10 +++---- 3 files changed, 27 insertions(+), 28 deletions(-) diff --git a/test/manual-scenarios/ens/name resolution.csv b/test/manual-scenarios/ens/name resolution.csv index 6490aad66451..3971da8b08f7 100644 --- a/test/manual-scenarios/ens/name resolution.csv +++ b/test/manual-scenarios/ens/name resolution.csv @@ -3,17 +3,14 @@ Step,Test Steps,Test Data,Expected Result,Notes 2,Proceed to Unlock the wallet.,password (8 characters min).,"The Ether balance is shown on the overview. The wallet address is shown on the overview. The selected network is Ethereum Mainnet.", -3,Switch networks to a test network.,e.g. Sepolia.,"The Sepolia balance is shown on the overview. -The wallet address is shown on the overview. -The selected network is Sepolia.", -4,Proceed to the Send flow.,,, -5,Enter an ENS address.,e.g. peteryinusa.eth.,"A matching result appears in the recipient list. +3,Proceed to the Send flow.,,, +4,Enter an ENS address.,e.g. peteryinusa.eth.,"A matching result appears in the recipient list. The ENS address is shown in the list item. The hexadecimal address is shown in the list item.", -6,Select the matching recipient.,,"The send screen is shown. +5,Select the matching recipient.,,"The send screen is shown. The ENS address is shown in the recipient field. The hexadecimal address is shown in the recipient field.", -7,Enter an amount.,e.g. 0.1.,, -8,Proceed to the confirmation screen.,,The recipient's ENS address is shown., -9,Confirm the transaction.,,"The transaction appears in the activity list.", -10,Open the activity list item.,,The recipient's ENS address is shown in the item details., \ No newline at end of file +6,Enter an amount.,e.g. 0.1.,, +7,Proceed to the confirmation screen.,,The recipient's ENS address is shown., +8,Confirm the transaction.,,"The transaction appears in the activity list.", +9,Open the activity list item.,,The recipient's ENS address is shown in the item details., \ No newline at end of file diff --git a/test/manual-scenarios/swap/smart swap.csv b/test/manual-scenarios/swap/smart swap.csv index 533cab7160b5..a451cad1bfc9 100644 --- a/test/manual-scenarios/swap/smart swap.csv +++ b/test/manual-scenarios/swap/smart swap.csv @@ -1,15 +1,17 @@ Step,Test steps,Preconditions,Test data,Expected result,Notes 1,Open the extension.,,,The Welcome Back screen is shown., -2,Proceed to Unlock the wallet.,,password (8 characters min).,"The Ether balance is shown on the overview. The wallet address is shown on the overview. The selected network is Ethereum Mainnet. ", -3,"Keep the selected network as Ethereum Mainnet. Click ""Swap"" button on MetaMask home screen.","Have funds on mainnet. (We can only test smart swap with real money on Ethereum Mainnet) ",,Swap screen is shown. Default swap from currency is ETH. Settings button is shown., -4,Click on settings button on swap screen. Turn on the smart swap toggle in settings.,The smart swap toggle initially was set to OFF.,,"Slippage tolerance section is displayed. User can choose between 2%, 3%, or enter a custom value.", -5,"In custom field, enter a percentage equals or higher than 5%.",,e.g. 8%,High slippage warning message is shown., -6,"Click ""Update"" in settings.",,,Settings modal is closed., -7,"On swap screen, enter a value for ETH that user wants to swap, then select a token to swap to.",,"e.g. 0.1 ETH to swap, and choose DAI to swap to",The amount for selected token user will obtain is displayed. Swap quote rate is shown. Estimated gas fee and max fee are shown. Included MetaMask fee is shown.,Take a note for the amount of selected token that user will obtain. -8,"Proceed to confirm swap. ",,,High slippage warning notification is shown., -9,"Click ""Swap anyway"" to continue swap.",,,"After processing, transaction complete screen is shown.", -10,"Close the transaction complete screen. Go to tokens tab. ",,,The token we selected to swap to is displayed with the expected amount on tokens list., -11,Go to MetaMask activity tab.,,,Swap transaction appears in the activity list. The swapped amount is shown in the activity list item., -12,Open the activity list item.,,,"The status, recipient's address, nonce, amount, gas and total are shown in the item details.", -13,Expand the activity log for the transaction.,,,"The created, submitted and confirmed activities are shown in the activity log.", -14,Proceed to view the transaction on the block explorer.,,,The block explorer opens in a new tab., \ No newline at end of file +2,Proceed to Unlock the wallet.,,password (8 characters min).,The Ether balance is shown on the overview. The wallet address is shown on the overview. The selected network is Ethereum Mainnet. , +3,Keep the selected network as Ethereum Mainnet. ,Have funds on mainnet. (We can only test Smart Transactions with real money on Ethereum Mainnet) ,,, +4,"Go to Settings, Advanced. Turn ON the Smart Transactions toggle.",The Smart Transactions toggle initially was set to OFF.,,, +5,"Click ""Swap"" button on MetaMask home screen.",,,Swap screen is shown. Default swap from currency is ETH. Settings button is shown., +6,Click on Settings button.,,,"Slippage tolerance section is displayed. User can choose between 2%, 3%, or enter a custom value.", +7,"In custom field, enter a percentage equals or higher than 5%.",,e.g. 8%,High slippage warning message is shown., +8,"Click ""Update"" in settings.",,,Settings modal is closed., +9,"On swap screen, enter a value for ETH that user wants to swap, then select a token to swap to.",,"e.g. 0.1 ETH to swap, and choose DAI to swap to",The amount for selected token user will obtain is displayed. Swap quote rate is shown. Estimated gas fee and max fee are shown. Included MetaMask fee is shown.,Take a note for the amount of selected token that user will obtain. +10,Proceed to confirm swap. ,,,High slippage warning notification is shown., +11,"Click ""Swap anyway"" to continue swap.",,,"After processing, transaction complete screen is shown.", +12,Close the transaction complete screen. Go to tokens tab. ,,,The token we selected to swap to is displayed with the expected amount on tokens list., +13,Go to MetaMask activity tab.,,,Swap transaction appears in the activity list. The swapped amount is shown in the activity list item., +14,Open the activity list item.,,,"The status, recipient's address, nonce, amount, gas and total are shown in the item details.", +15,Expand the activity log for the transaction.,,,"The created, submitted and confirmed activities are shown in the activity log.", +16,Proceed to view the transaction on the block explorer.,,,The block explorer opens in a new tab., \ No newline at end of file diff --git a/test/manual-scenarios/swap/swap eth.csv b/test/manual-scenarios/swap/swap eth.csv index d85d10fc3f83..c4efa65287bc 100644 --- a/test/manual-scenarios/swap/swap eth.csv +++ b/test/manual-scenarios/swap/swap eth.csv @@ -1,15 +1,15 @@ Step,Test steps,Preconditions,Test data,Expected result,Notes 1,Open the extension.,,,The Welcome Back screen is shown., -2,Proceed to Unlock the wallet.,,password (8 characters min).,"The Ether balance is shown on the overview. The wallet address is shown on the overview. The selected network is Ethereum Mainnet. ", +2,Proceed to Unlock the wallet.,,password (8 characters min).,The Ether balance is shown on the overview. The wallet address is shown on the overview. The selected network is Ethereum Mainnet. , 3,Login to Tenderly. Go to Forks tab in the left menu.,"Have a tenderly account. (If not, sign up on https://tenderly.co for a free version)",,, 4,"Click ""Fork a network"". Leave network field as default Mainnet, click ""Create"".",,,, -5,"Click ""Add RPC to MetaMask"". Proceed to add new network and switch to new network on MetaMask Dialog screen.",,,"The selected network is the fork of Ethereum Mainnet started in previous step. The Ether balance is shown on the overview. The wallet address is shown on the overview. ",Take a note of the wallet address. +5,"Click ""Add RPC to MetaMask"". Proceed to add new network and switch to new network on MetaMask Dialog screen.",,,The selected network is the fork of Ethereum Mainnet started in previous step. The Ether balance is shown on the overview. The wallet address is shown on the overview. ,Take a note of the wallet address. 6,"Go back to Tenderly, click ""Fund Accounts"". Enter wallet address we copied in previous step and click ""Submit"".",,,Wait a bit and see the balance on MeteMask has been funded with more Ether., -7,"Click ""Swap"" button on MetaMask home screen.",,,Swap screen is shown. Default swap from currency is ETH. Settings button is shown., -8,Click on settings button on swap screen. Make sure smart swap in settings is set to OFF.,,,"Slippage tolerance section is displayed. User can choose between 2%, 3%, or enter a custom value.", +7,Go to Settings. Make sure Smart Transactions in settings is set to OFF.,,,, +8,"Click ""Swap"" button on MetaMask home screen.",,,"Swap screen is shown. Default swap from currency is ETH. Settings button is shown. Slippage tolerance section is displayed. User can choose between 2%, 3% or enter a custom value.", 9,"Close the settings modal. On swap screen, enter a value for ETH that user wants to swap, then select a token to swap to.",,"e.g. 0.1 ETH to swap, and choose DAI to swap to",The amount for selected token user will obtain is displayed. Swap quote rate is shown. Estimated gas fee and max fee are shown. Included MetaMask fee is shown.,Take a note for the amount of selected token that user will obtain. 10,Proceed to confirm swap.,,,"After processing, transaction complete screen is shown.", -11,"Close the transaction complete screen. Go to tokens tab. ",,,The token we selected to swap to is displayed with the expected amount on tokens list., +11,Close the transaction complete screen. Go to tokens tab. ,,,The token we selected to swap to is displayed with the expected amount on tokens list., 12,Go to MetaMask activity tab.,,,Swap transaction appears in the activity list. The swapped amount is shown in the activity list item., 13,Open the activity list item.,,,"The status, recipient's address, nonce, amount, gas and total are shown in the item details.", 14,Expand the activity log for the transaction.,,,"The created, submitted and confirmed activities are shown in the activity log.", From 11f34ccfecd2ebde6a3dbb451be7a77607c17875 Mon Sep 17 00:00:00 2001 From: Dan J Miller Date: Thu, 30 May 2024 18:08:42 -0230 Subject: [PATCH 09/43] fix: Move the logic to add accounts based on account balance to after onboarding is complete (#24891) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** If you onboard with the import seed phrase option, the `createNewVaultAndRestore` will try to add new accounts for you. This requires network requests to the provider get account balances. We don't want these network requests to happen before the user has finished onboarding and before they have the option to set their provider in the Advanced Settings of onboarding. This PR moves the account adding logic to its own method, so that it is only called after onboarding is completed. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24891?quickstart=1) ## **Manual testing steps** 1. Install and onboard by importing an existing seed phrase, in which at least accounts 1 and 2 have balance on the same network 2. Enter your password during onboarding 3. There should not be network requests to the provider before onboarding is complete 4. During onboarding go into "Advanced Settings". Select the network where accounts 1 and 2 have balance 5. After completing onboarding, you should be able to select between accounts 1 and 2. ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- app/scripts/metamask-controller.js | 86 ++++++------ app/scripts/metamask-controller.test.js | 4 + test/e2e/tests/onboarding/onboarding.spec.js | 131 +++++++++++++++++++ 3 files changed, 184 insertions(+), 37 deletions(-) diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index c58b75302d44..56161d4ce23b 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -1554,6 +1554,8 @@ export default class MetamaskController extends EventEmitter { if (!prevCompletedOnboarding && currCompletedOnboarding) { const { address } = this.accountsController.getSelectedAccount(); + this._addAccountsWithBalance(); + this.postOnboardingInitialization(); this.triggerNetworkrequests(); // execute once the token detection on the post-onboarding @@ -3921,6 +3923,9 @@ export default class MetamaskController extends EventEmitter { async createNewVaultAndRestore(password, encodedSeedPhrase) { const releaseLock = await this.createVaultMutex.acquire(); try { + const { completedOnboarding } = + this.onboardingController.store.getState(); + const seedPhraseAsBuffer = Buffer.from(encodedSeedPhrase); // clear permissions @@ -3938,7 +3943,9 @@ export default class MetamaskController extends EventEmitter { this.txController.clearUnapprovedTransactions(); - this.tokenDetectionController.enable(); + if (completedOnboarding) { + this.tokenDetectionController.enable(); + } // create new vault const vault = await this.keyringController.createNewVaultAndRestore( @@ -3946,43 +3953,9 @@ export default class MetamaskController extends EventEmitter { this._convertMnemonicToWordlistIndices(seedPhraseAsBuffer), ); - // Scan accounts until we find an empty one - const { chainId } = this.networkController.state.providerConfig; - const ethQuery = new EthQuery(this.provider); - const accounts = await this.keyringController.getAccounts(); - let address = accounts[accounts.length - 1]; - - for (let count = accounts.length; ; count++) { - const balance = await this.getBalance(address, ethQuery); - - if (balance === '0x0') { - // This account has no balance, so check for tokens - await this.tokenDetectionController.detectTokens({ - selectedAddress: address, - }); - - const tokens = - this.tokensController.state.allTokens?.[chainId]?.[address]; - const detectedTokens = - this.tokensController.state.allDetectedTokens?.[chainId]?.[address]; - - if ( - (tokens?.length ?? 0) === 0 && - (detectedTokens?.length ?? 0) === 0 - ) { - // This account has no balance or tokens - if (count !== 1) { - await this.removeAccount(address); - } - break; - } - } - - // This account has assets, so check the next one - ({ addedAccountAddress: address } = - await this.keyringController.addNewAccount(count)); + if (completedOnboarding) { + await this._addAccountsWithBalance(); } - // This must be set as soon as possible to communicate to the // keyring's iframe and have the setting initialized properly // Optimistically called to not block MetaMask login due to @@ -3995,6 +3968,45 @@ export default class MetamaskController extends EventEmitter { } } + async _addAccountsWithBalance() { + // Scan accounts until we find an empty one + const { chainId } = this.networkController.state.providerConfig; + const ethQuery = new EthQuery(this.provider); + const accounts = await this.keyringController.getAccounts(); + let address = accounts[accounts.length - 1]; + + for (let count = accounts.length; ; count++) { + const balance = await this.getBalance(address, ethQuery); + + if (balance === '0x0') { + // This account has no balance, so check for tokens + await this.tokenDetectionController.detectTokens({ + selectedAddress: address, + }); + + const tokens = + this.tokensController.state.allTokens?.[chainId]?.[address]; + const detectedTokens = + this.tokensController.state.allDetectedTokens?.[chainId]?.[address]; + + if ( + (tokens?.length ?? 0) === 0 && + (detectedTokens?.length ?? 0) === 0 + ) { + // This account has no balance or tokens + if (count !== 1) { + await this.removeAccount(address); + } + break; + } + } + + // This account has assets, so check the next one + ({ addedAccountAddress: address } = + await this.keyringController.addNewAccount(count)); + } + } + /** * Encodes a BIP-39 mnemonic as the indices of words in the English BIP-39 wordlist. * diff --git a/app/scripts/metamask-controller.test.js b/app/scripts/metamask-controller.test.js index e412f76f9e23..a5be70a0c35b 100644 --- a/app/scripts/metamask-controller.test.js +++ b/app/scripts/metamask-controller.test.js @@ -630,6 +630,10 @@ describe('MetaMaskController', () => { } }); + jest + .spyOn(metamaskController.onboardingController.store, 'getState') + .mockReturnValue({ completedOnboarding: true }); + // Give account 2 a token jest .spyOn(metamaskController.tokensController, 'state', 'get') diff --git a/test/e2e/tests/onboarding/onboarding.spec.js b/test/e2e/tests/onboarding/onboarding.spec.js index e6a628c336ae..de0939ac2282 100644 --- a/test/e2e/tests/onboarding/onboarding.spec.js +++ b/test/e2e/tests/onboarding/onboarding.spec.js @@ -479,6 +479,137 @@ describe('MetaMask onboarding @no-mmi', function () { ); }); + it("doesn't make any network requests to infura before onboarding by import is completed", async function () { + async function mockInfura(mockServer) { + const infuraUrl = + 'https://mainnet.infura.io/v3/00000000000000000000000000000000'; + const sampleAddress = '1111111111111111111111111111111111111111'; + + return [ + await mockServer + .forPost(infuraUrl) + .withJsonBodyIncluding({ method: 'eth_blockNumber' }) + .thenCallback(() => { + return { + statusCode: 200, + json: { + jsonrpc: '2.0', + id: '1111111111111111', + result: '0x1', + }, + }; + }), + await mockServer + .forPost(infuraUrl) + .withJsonBodyIncluding({ method: 'eth_getBalance' }) + .thenCallback(() => { + return { + statusCode: 200, + json: { + jsonrpc: '2.0', + id: '1111111111111111', + result: '0x1', + }, + }; + }), + await mockServer + .forPost(infuraUrl) + .withJsonBodyIncluding({ method: 'eth_getBlockByNumber' }) + .thenCallback(() => { + return { + statusCode: 200, + json: { + jsonrpc: '2.0', + id: '1111111111111111', + result: {}, + }, + }; + }), + await mockServer + .forPost(infuraUrl) + .withJsonBodyIncluding({ method: 'eth_call' }) + .thenCallback(() => { + return { + statusCode: 200, + json: { + jsonrpc: '2.0', + id: '1111111111111111', + result: `0x000000000000000000000000${sampleAddress}`, + }, + }; + }), + await mockServer + .forPost(infuraUrl) + .withJsonBodyIncluding({ method: 'net_version' }) + .thenCallback(() => { + return { + statusCode: 200, + json: { id: 8262367391254633, jsonrpc: '2.0', result: '1337' }, + }; + }), + ]; + } + + await withFixtures( + { + fixtures: new FixtureBuilder({ onboarding: true }) + .withNetworkControllerOnMainnet() + .build(), + ganacheOptions: defaultGanacheOptions, + title: this.test.fullTitle(), + testSpecificMock: mockInfura, + }, + async ({ driver, mockedEndpoint: mockedEndpoints }) => { + const password = 'password'; + + await driver.navigate(); + + await importSRPOnboardingFlow(driver, TEST_SEED_PHRASE, password); + + await driver.delay(regularDelayMs); + + for (let i = 0; i < mockedEndpoints.length; i += 1) { + const mockedEndpoint = await mockedEndpoints[i]; + const requests = await mockedEndpoint.getSeenRequests(); + + assert.equal( + requests.length, + 0, + `${mockedEndpoints[i]} should make no requests before onboarding`, + ); + } + + // complete + await driver.clickElement('[data-testid="onboarding-complete-done"]'); + + // pin extension + await driver.clickElement('[data-testid="pin-extension-next"]'); + await driver.clickElement('[data-testid="pin-extension-done"]'); + + // pin extension walkthrough screen + await driver.findElement('[data-testid="account-menu-icon"]'); + // requests happen here! + + for (let i = 0; i < mockedEndpoints.length; i += 1) { + const mockedEndpoint = await mockedEndpoints[i]; + + await driver.wait(async () => { + const isPending = await mockedEndpoint.isPending(); + return isPending === false; + }, driver.timeout); + + const requests = await mockedEndpoint.getSeenRequests(); + + assert.equal( + requests.length > 0, + true, + `${mockedEndpoints[i]} should make requests after onboarding`, + ); + } + }, + ); + }); + it('Provides an onboarding path for a user who has restored their account from state persistence failure', async function () { // We don't use onboarding:true here because we want there to be a vault, // simulating what will happen when a user eventually restores their vault From a1718d92a634c038a76d7b57c7661c88d596946e Mon Sep 17 00:00:00 2001 From: legobeat <109787230+legobeat@users.noreply.github.com> Date: Fri, 31 May 2024 07:18:51 +0900 Subject: [PATCH 10/43] fix: Revert #24891 (#24923) This reverts commit 11f34ccfecd2ebde6a3dbb451be7a77607c17875 (#24891) It introduced unit test regression after merge. https://app.circleci.com/jobs/github/MetaMask/metamask-extension/3021292 --- app/scripts/metamask-controller.js | 86 ++++++------ app/scripts/metamask-controller.test.js | 4 - test/e2e/tests/onboarding/onboarding.spec.js | 131 ------------------- 3 files changed, 37 insertions(+), 184 deletions(-) diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 56161d4ce23b..c58b75302d44 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -1554,8 +1554,6 @@ export default class MetamaskController extends EventEmitter { if (!prevCompletedOnboarding && currCompletedOnboarding) { const { address } = this.accountsController.getSelectedAccount(); - this._addAccountsWithBalance(); - this.postOnboardingInitialization(); this.triggerNetworkrequests(); // execute once the token detection on the post-onboarding @@ -3923,9 +3921,6 @@ export default class MetamaskController extends EventEmitter { async createNewVaultAndRestore(password, encodedSeedPhrase) { const releaseLock = await this.createVaultMutex.acquire(); try { - const { completedOnboarding } = - this.onboardingController.store.getState(); - const seedPhraseAsBuffer = Buffer.from(encodedSeedPhrase); // clear permissions @@ -3943,9 +3938,7 @@ export default class MetamaskController extends EventEmitter { this.txController.clearUnapprovedTransactions(); - if (completedOnboarding) { - this.tokenDetectionController.enable(); - } + this.tokenDetectionController.enable(); // create new vault const vault = await this.keyringController.createNewVaultAndRestore( @@ -3953,9 +3946,43 @@ export default class MetamaskController extends EventEmitter { this._convertMnemonicToWordlistIndices(seedPhraseAsBuffer), ); - if (completedOnboarding) { - await this._addAccountsWithBalance(); + // Scan accounts until we find an empty one + const { chainId } = this.networkController.state.providerConfig; + const ethQuery = new EthQuery(this.provider); + const accounts = await this.keyringController.getAccounts(); + let address = accounts[accounts.length - 1]; + + for (let count = accounts.length; ; count++) { + const balance = await this.getBalance(address, ethQuery); + + if (balance === '0x0') { + // This account has no balance, so check for tokens + await this.tokenDetectionController.detectTokens({ + selectedAddress: address, + }); + + const tokens = + this.tokensController.state.allTokens?.[chainId]?.[address]; + const detectedTokens = + this.tokensController.state.allDetectedTokens?.[chainId]?.[address]; + + if ( + (tokens?.length ?? 0) === 0 && + (detectedTokens?.length ?? 0) === 0 + ) { + // This account has no balance or tokens + if (count !== 1) { + await this.removeAccount(address); + } + break; + } + } + + // This account has assets, so check the next one + ({ addedAccountAddress: address } = + await this.keyringController.addNewAccount(count)); } + // This must be set as soon as possible to communicate to the // keyring's iframe and have the setting initialized properly // Optimistically called to not block MetaMask login due to @@ -3968,45 +3995,6 @@ export default class MetamaskController extends EventEmitter { } } - async _addAccountsWithBalance() { - // Scan accounts until we find an empty one - const { chainId } = this.networkController.state.providerConfig; - const ethQuery = new EthQuery(this.provider); - const accounts = await this.keyringController.getAccounts(); - let address = accounts[accounts.length - 1]; - - for (let count = accounts.length; ; count++) { - const balance = await this.getBalance(address, ethQuery); - - if (balance === '0x0') { - // This account has no balance, so check for tokens - await this.tokenDetectionController.detectTokens({ - selectedAddress: address, - }); - - const tokens = - this.tokensController.state.allTokens?.[chainId]?.[address]; - const detectedTokens = - this.tokensController.state.allDetectedTokens?.[chainId]?.[address]; - - if ( - (tokens?.length ?? 0) === 0 && - (detectedTokens?.length ?? 0) === 0 - ) { - // This account has no balance or tokens - if (count !== 1) { - await this.removeAccount(address); - } - break; - } - } - - // This account has assets, so check the next one - ({ addedAccountAddress: address } = - await this.keyringController.addNewAccount(count)); - } - } - /** * Encodes a BIP-39 mnemonic as the indices of words in the English BIP-39 wordlist. * diff --git a/app/scripts/metamask-controller.test.js b/app/scripts/metamask-controller.test.js index a5be70a0c35b..e412f76f9e23 100644 --- a/app/scripts/metamask-controller.test.js +++ b/app/scripts/metamask-controller.test.js @@ -630,10 +630,6 @@ describe('MetaMaskController', () => { } }); - jest - .spyOn(metamaskController.onboardingController.store, 'getState') - .mockReturnValue({ completedOnboarding: true }); - // Give account 2 a token jest .spyOn(metamaskController.tokensController, 'state', 'get') diff --git a/test/e2e/tests/onboarding/onboarding.spec.js b/test/e2e/tests/onboarding/onboarding.spec.js index de0939ac2282..e6a628c336ae 100644 --- a/test/e2e/tests/onboarding/onboarding.spec.js +++ b/test/e2e/tests/onboarding/onboarding.spec.js @@ -479,137 +479,6 @@ describe('MetaMask onboarding @no-mmi', function () { ); }); - it("doesn't make any network requests to infura before onboarding by import is completed", async function () { - async function mockInfura(mockServer) { - const infuraUrl = - 'https://mainnet.infura.io/v3/00000000000000000000000000000000'; - const sampleAddress = '1111111111111111111111111111111111111111'; - - return [ - await mockServer - .forPost(infuraUrl) - .withJsonBodyIncluding({ method: 'eth_blockNumber' }) - .thenCallback(() => { - return { - statusCode: 200, - json: { - jsonrpc: '2.0', - id: '1111111111111111', - result: '0x1', - }, - }; - }), - await mockServer - .forPost(infuraUrl) - .withJsonBodyIncluding({ method: 'eth_getBalance' }) - .thenCallback(() => { - return { - statusCode: 200, - json: { - jsonrpc: '2.0', - id: '1111111111111111', - result: '0x1', - }, - }; - }), - await mockServer - .forPost(infuraUrl) - .withJsonBodyIncluding({ method: 'eth_getBlockByNumber' }) - .thenCallback(() => { - return { - statusCode: 200, - json: { - jsonrpc: '2.0', - id: '1111111111111111', - result: {}, - }, - }; - }), - await mockServer - .forPost(infuraUrl) - .withJsonBodyIncluding({ method: 'eth_call' }) - .thenCallback(() => { - return { - statusCode: 200, - json: { - jsonrpc: '2.0', - id: '1111111111111111', - result: `0x000000000000000000000000${sampleAddress}`, - }, - }; - }), - await mockServer - .forPost(infuraUrl) - .withJsonBodyIncluding({ method: 'net_version' }) - .thenCallback(() => { - return { - statusCode: 200, - json: { id: 8262367391254633, jsonrpc: '2.0', result: '1337' }, - }; - }), - ]; - } - - await withFixtures( - { - fixtures: new FixtureBuilder({ onboarding: true }) - .withNetworkControllerOnMainnet() - .build(), - ganacheOptions: defaultGanacheOptions, - title: this.test.fullTitle(), - testSpecificMock: mockInfura, - }, - async ({ driver, mockedEndpoint: mockedEndpoints }) => { - const password = 'password'; - - await driver.navigate(); - - await importSRPOnboardingFlow(driver, TEST_SEED_PHRASE, password); - - await driver.delay(regularDelayMs); - - for (let i = 0; i < mockedEndpoints.length; i += 1) { - const mockedEndpoint = await mockedEndpoints[i]; - const requests = await mockedEndpoint.getSeenRequests(); - - assert.equal( - requests.length, - 0, - `${mockedEndpoints[i]} should make no requests before onboarding`, - ); - } - - // complete - await driver.clickElement('[data-testid="onboarding-complete-done"]'); - - // pin extension - await driver.clickElement('[data-testid="pin-extension-next"]'); - await driver.clickElement('[data-testid="pin-extension-done"]'); - - // pin extension walkthrough screen - await driver.findElement('[data-testid="account-menu-icon"]'); - // requests happen here! - - for (let i = 0; i < mockedEndpoints.length; i += 1) { - const mockedEndpoint = await mockedEndpoints[i]; - - await driver.wait(async () => { - const isPending = await mockedEndpoint.isPending(); - return isPending === false; - }, driver.timeout); - - const requests = await mockedEndpoint.getSeenRequests(); - - assert.equal( - requests.length > 0, - true, - `${mockedEndpoints[i]} should make requests after onboarding`, - ); - } - }, - ); - }); - it('Provides an onboarding path for a user who has restored their account from state persistence failure', async function () { // We don't use onboarding:true here because we want there to be a vault, // simulating what will happen when a user eventually restores their vault From 699411847dd772c6d87a493b24347b97402a09d1 Mon Sep 17 00:00:00 2001 From: Dan J Miller Date: Thu, 30 May 2024 22:19:11 -0230 Subject: [PATCH 11/43] fix: Ensure network request to ledger bridge is not made during onboarding (#24890) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** Currently during onboarding, a network request is made to our github.io ledger bridge page. We want to prevent this until later. The PR ensures that the requests made as a result of establishing a connection with ledger when submitting a password or restoring a vault only happen if the user is already onboarded. Then, when the user goes to the hardware connection page, the communication with the ledger bridge will begin. Because setting the ledger transport type no longer happens during onboarding, we now make sure it happens during hardware wallet connection [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24890?quickstart=1) ## **Manual testing steps** 1. Install and onboarding. There should be no network requests to the github pages ledger bridge during or immediately after onboarding 2. Go to the hardware wallet connect screen and select ledger. There will now be a network request to the ledger bridge 3. You should be able to successfully connect your ledger hardware wallet ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- app/scripts/metamask-controller.js | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index c58b75302d44..e7d82850cb8f 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -3983,11 +3983,16 @@ export default class MetamaskController extends EventEmitter { await this.keyringController.addNewAccount(count)); } + const { completedOnboarding } = + this.onboardingController.store.getState(); + // This must be set as soon as possible to communicate to the // keyring's iframe and have the setting initialized properly // Optimistically called to not block MetaMask login due to // Ledger Keyring GitHub downtime - this.setLedgerTransportPreference(); + if (completedOnboarding) { + this.setLedgerTransportPreference(); + } return vault; } finally { @@ -4056,6 +4061,7 @@ export default class MetamaskController extends EventEmitter { * @param {string} password - The user's password */ async submitPassword(password) { + const { completedOnboarding } = this.onboardingController.store.getState(); await this.keyringController.submitPassword(password); ///: BEGIN:ONLY_INCLUDE_IF(build-mmi) @@ -4074,7 +4080,9 @@ export default class MetamaskController extends EventEmitter { // keyring's iframe and have the setting initialized properly // Optimistically called to not block MetaMask login due to // Ledger Keyring GitHub downtime - this.setLedgerTransportPreference(); + if (completedOnboarding) { + this.setLedgerTransportPreference(); + } } async _loginUser(password) { @@ -4234,6 +4242,10 @@ export default class MetamaskController extends EventEmitter { async connectHardware(deviceName, page, hdPath) { const keyring = await this.getKeyringForDevice(deviceName, hdPath); + if (deviceName === HardwareDeviceNames.ledger) { + await this.setLedgerTransportPreference(keyring); + } + let accounts = []; switch (page) { case -1: @@ -5886,14 +5898,16 @@ export default class MetamaskController extends EventEmitter { /** * Sets the Ledger Live preference to use for Ledger hardware wallet support * + * @param _keyring * @deprecated This method is deprecated and will be removed in the future. * Only webhid connections are supported in chrome and u2f in firefox. */ - async setLedgerTransportPreference() { + async setLedgerTransportPreference(_keyring) { const transportType = window.navigator.hid ? LedgerTransportTypes.webhid : LedgerTransportTypes.u2f; - const keyring = await this.getKeyringForDevice(HardwareDeviceNames.ledger); + const keyring = + _keyring || (await this.getKeyringForDevice(HardwareDeviceNames.ledger)); if (keyring?.updateTransportMethod) { return keyring.updateTransportMethod(transportType).catch((e) => { throw e; From a96817b363733adb9ce7ae83b3aa0a69d85096dd Mon Sep 17 00:00:00 2001 From: Alex Donesky Date: Thu, 30 May 2024 19:53:48 -0500 Subject: [PATCH 12/43] fix: replace `Object.hasOwn` with `Object.prototype.hasOwnProperty.call` for greater browser support (#24907) --- app/scripts/lib/WeakRefObjectMap.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/scripts/lib/WeakRefObjectMap.ts b/app/scripts/lib/WeakRefObjectMap.ts index 56907926daa0..09d0a9c54499 100644 --- a/app/scripts/lib/WeakRefObjectMap.ts +++ b/app/scripts/lib/WeakRefObjectMap.ts @@ -41,7 +41,7 @@ export class WeakRefObjectMap> set(key: string, value: RecordType): this { const weakRefValue: Partial> = {}; for (const keyValue in value) { - if (!Object.hasOwn(value, keyValue)) { + if (!Object.prototype.hasOwnProperty.call(value, keyValue)) { continue; } const item: RecordType[typeof keyValue] = value[keyValue]; @@ -74,7 +74,7 @@ export class WeakRefObjectMap> const deRefValue: Partial = {}; for (const keyValue in weakRefValue) { - if (!Object.hasOwn(weakRefValue, keyValue)) { + if (!Object.prototype.hasOwnProperty.call(weakRefValue, keyValue)) { continue; } const deref = weakRefValue[keyValue].deref(); From a43fc9ea8f3fc0f6a83453dc73bbd4d5543c3e26 Mon Sep 17 00:00:00 2001 From: David Murdoch <187813+davidmurdoch@users.noreply.github.com> Date: Thu, 30 May 2024 21:27:45 -0400 Subject: [PATCH 13/43] test: fix flaky test (#24926) --- test/e2e/tests/account/import-flow.spec.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/e2e/tests/account/import-flow.spec.js b/test/e2e/tests/account/import-flow.spec.js index 7416a17f7438..c669b250c82b 100644 --- a/test/e2e/tests/account/import-flow.spec.js +++ b/test/e2e/tests/account/import-flow.spec.js @@ -87,6 +87,7 @@ describe('Import flow @no-mmi', function () { // accepts the account password after lock await unlockWallet(driver, { + navigate: false, waitLoginSuccess: false, }); From 6168b3a76033eafc9c1b693e4dc200d294150702 Mon Sep 17 00:00:00 2001 From: Danica Shen Date: Fri, 31 May 2024 03:03:58 +0100 Subject: [PATCH 14/43] feat(2404): change mv3 as main build besides firefox (#24746) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** Make MV3 build as default one besides firefox related pipelines [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24746?quickstart=1) ## **Related issues** Fixes: https://github.com/MetaMask/MetaMask-planning/issues/2404 ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** ### **Before** ### **After** ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: Dan J Miller --- .circleci/config.yml | 319 +++++++++++++----- README.md | 6 +- builds.yml | 5 +- development/build/manifest.js | 9 +- development/build/scripts.js | 14 +- development/build/static.js | 6 +- development/metamaskbot-build-announce.js | 30 +- package.json | 19 +- test/e2e/json-rpc/switchEthereumChain.spec.js | 6 +- test/e2e/tests/account/import-flow.spec.js | 5 +- test/e2e/tests/request-queuing/ui.spec.js | 2 +- test/e2e/webdriver/driver.js | 5 +- ui/__mocks__/webextension-polyfill.js | 2 +- 13 files changed, 312 insertions(+), 116 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f4b766d50cb2..3b93d90ed9d3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -118,6 +118,9 @@ workflows: - prep-build: requires: - prep-deps + - prep-build-mv2: + requires: + - prep-deps - prep-build-desktop: filters: branches: @@ -127,21 +130,30 @@ workflows: - prep-build-flask: requires: - prep-deps + - prep-build-flask-mv2: + requires: + - prep-deps - prep-build-test: requires: - prep-deps + - prep-build-test-mv2: + requires: + - prep-deps - prep-build-multichain-test: requires: - prep-deps - prep-build-confirmation-redesign-test: requires: - prep-deps - - prep-build-test-mv3: + - prep-build-confirmation-redesign-test-mv2: requires: - prep-deps - prep-build-test-flask: requires: - prep-deps + - prep-build-test-flask-mv2: + requires: + - prep-deps - prep-build-test-mmi: requires: - prep-deps @@ -176,10 +188,10 @@ workflows: - prep-build-confirmation-redesign-test - test-e2e-firefox: requires: - - prep-build-test + - prep-build-test-mv2 - test-e2e-firefox-confirmation-redesign: requires: - - prep-build-confirmation-redesign-test + - prep-build-confirmation-redesign-test-mv2 - test-e2e-chrome-rpc: requires: - prep-build-test @@ -191,7 +203,7 @@ workflows: - prep-build-test-flask - test-e2e-firefox-flask: requires: - - prep-build-test-flask + - prep-build-test-flask-mv2 - test-e2e-chrome-mmi: requires: - prep-build-test-mmi @@ -201,9 +213,6 @@ workflows: - test-e2e-chrome-rpc-mmi: requires: - prep-build-test-mmi - - test-e2e-chrome-mv3: - requires: - - prep-build-test-mv3 - test-e2e-chrome-vault-decryption: filters: branches: @@ -236,6 +245,9 @@ workflows: - validate-source-maps: requires: - prep-build + - validate-source-maps-mv2: + requires: + - prep-build-mv2 - validate-source-maps-beta: requires: - trigger-beta-build @@ -251,10 +263,13 @@ workflows: - validate-source-maps-flask: requires: - prep-build-flask - - test-mozilla-lint: + - validate-source-maps-flask-mv2: + requires: + - prep-build-flask-mv2 + - test-mozilla-lint-mv2: requires: - prep-deps - - prep-build + - prep-build-mv2 - test-mozilla-lint-desktop: filters: branches: @@ -262,10 +277,10 @@ workflows: requires: - prep-deps - prep-build-desktop - - test-mozilla-lint-flask: + - test-mozilla-lint-flask-mv2: requires: - prep-deps - - prep-build-flask + - prep-build-flask-mv2 - all-tests-pass: requires: - test-deps-depcheck @@ -286,9 +301,9 @@ workflows: - validate-source-maps-desktop - validate-source-maps-flask - validate-source-maps-mmi - - test-mozilla-lint + - test-mozilla-lint-mv2 - test-mozilla-lint-desktop - - test-mozilla-lint-flask + - test-mozilla-lint-flask-mv2 - test-e2e-chrome - test-e2e-chrome-multichain - test-e2e-chrome-multiple-providers @@ -309,18 +324,19 @@ workflows: - prep-build-test - stats-module-load-init: requires: - - prep-build-test-mv3 + - prep-build-test - job-publish-prerelease: requires: - prep-deps - prep-build + - prep-build-mv2 - trigger-beta-build - prep-build-desktop - prep-build-mmi - prep-build-flask + - prep-build-flask-mv2 - prep-build-storybook - prep-build-ts-migration-dashboard - - prep-build-test-mv3 - benchmark - user-actions-benchmark - stats-module-load-init @@ -332,9 +348,11 @@ workflows: requires: - prep-deps - prep-build + - prep-build-mv2 - prep-build-desktop - prep-build-mmi - prep-build-flask + - prep-build-flask-mv2 - all-tests-pass - job-publish-storybook: filters: @@ -543,6 +561,48 @@ jobs: - dist - builds + prep-build-mv2: + executor: node-browsers-medium-plus + steps: + - run: *shallow-git-clone + - attach_workspace: + at: . + - when: + condition: + not: + matches: + pattern: /^master$/ + value: << pipeline.git.branch >> + steps: + - run: + name: build:dist + command: ENABLE_MV3=false yarn build dist + - when: + condition: + matches: + pattern: /^master$/ + value: << pipeline.git.branch >> + steps: + - run: + name: build:prod + command: ENABLE_MV3=false yarn build prod + - run: + name: build:debug + command: find dist/ -type f -exec md5sum {} \; | sort -k 2 + - run: + name: Move mmi build to 'dist-mv2' to avoid conflict with production build + command: mv ./dist ./dist-mv2 + - run: + name: Move mmi zips to 'builds-mv2' to avoid conflict with production build + command: mv ./builds ./builds-mv2 + - store_artifacts: + path: builds-mv2 + - persist_to_workspace: + root: . + paths: + - dist-mv2 + - builds-mv2 + prep-build-desktop: executor: node-browsers-medium-plus steps: @@ -650,6 +710,46 @@ jobs: - dist-flask - builds-flask + prep-build-flask-mv2: + executor: node-browsers-medium-plus + steps: + - run: *shallow-git-clone + - attach_workspace: + at: . + - when: + condition: + not: + matches: + pattern: /^master$/ + value: << pipeline.git.branch >> + steps: + - run: + name: build:dist + command: ENABLE_MV3=false yarn build --build-type flask dist + - when: + condition: + matches: + pattern: /^master$/ + value: << pipeline.git.branch >> + steps: + - run: + name: build:prod + command: yarn build --build-type flask prod + - run: + name: build:debug + command: find dist/ -type f -exec md5sum {} \; | sort -k 2 + - run: + name: Move flask build to 'dist-flask' to avoid conflict with production build + command: mv ./dist ./dist-flask-mv2 + - run: + name: Move flask zips to 'builds-flask' to avoid conflict with production build + command: mv ./builds ./builds-flask-mv2 + - persist_to_workspace: + root: . + paths: + - dist-flask-mv2 + - builds-flask-mv2 + prep-build-test-flask: executor: node-browsers-medium-plus steps: @@ -671,6 +771,27 @@ jobs: - dist-test-flask - builds-test-flask + prep-build-test-flask-mv2: + executor: node-browsers-medium-plus + steps: + - run: *shallow-git-clone + - attach_workspace: + at: . + - run: + name: Build extension for testing + command: yarn build:test:flask:mv2 + - run: + name: Move test build to 'dist-test-flask' to avoid conflict with production build + command: mv ./dist ./dist-test-flask-mv2 + - run: + name: Move test zips to 'builds-test-flask' to avoid conflict with production build + command: mv ./builds ./builds-test-flask-mv2 + - persist_to_workspace: + root: . + paths: + - dist-test-flask-mv2 + - builds-test-flask-mv2 + prep-build-test-mmi: executor: node-browsers-medium-plus steps: @@ -720,28 +841,30 @@ jobs: path: builds-test-mmi-playwright destination: builds-test-mmi-playwright - prep-build-test-mv3: + prep-build-test: executor: node-browsers-medium-plus steps: - run: *shallow-git-clone - attach_workspace: at: . - run: - name: Build extension in mv3 for testing - command: yarn build:test:mv3 + name: Build extension for testing + command: yarn build:test - run: name: Move test build to 'dist-test' to avoid conflict with production build - command: mv ./dist ./dist-test-mv3 + command: mv ./dist ./dist-test - run: - name: Move test zips to 'builds-test-mv3' to avoid conflict with production build - command: mv ./builds ./builds-test-mv3 + name: Move test zips to 'builds-test' to avoid conflict with production build + command: mv ./builds ./builds-test + - store_artifacts: + path: builds-test - persist_to_workspace: root: . paths: - - dist-test-mv3 - - builds-test-mv3 + - dist-test + - builds-test - prep-build-test: + prep-build-test-mv2: executor: node-browsers-medium-plus steps: - run: *shallow-git-clone @@ -749,20 +872,20 @@ jobs: at: . - run: name: Build extension for testing - command: yarn build:test + command: yarn build:test:mv2 - run: - name: Move test build to 'dist-test' to avoid conflict with production build - command: mv ./dist ./dist-test + name: Move test build to 'dist-test-mv2' to avoid conflict with production build + command: mv ./dist ./dist-test-mv2 - run: - name: Move test zips to 'builds-test' to avoid conflict with production build - command: mv ./builds ./builds-test + name: Move test zips to 'builds-test-mv2' to avoid conflict with production build + command: mv ./builds ./builds-test-mv2 - store_artifacts: - path: builds-test + path: builds-test-mv2 - persist_to_workspace: root: . paths: - - dist-test - - builds-test + - dist-test-mv2 + - builds-test-mv2 prep-build-multichain-test: executor: node-browsers-medium-plus @@ -806,6 +929,27 @@ jobs: - dist-test-confirmations - builds-test-confirmations + prep-build-confirmation-redesign-test-mv2: + executor: node-browsers-medium-plus + steps: + - run: *shallow-git-clone + - attach_workspace: + at: . + - run: + name: Build extension for testing + command: ENABLE_CONFIRMATION_REDESIGN=1 yarn build:test:mv2 + - run: + name: Move test build to 'dist-test-confirmations-mv2' to avoid conflict with production build + command: mv ./dist ./dist-test-confirmations-mv2 + - run: + name: Move test zips to 'builds-test-confirmations-mv2' to avoid conflict with production build + command: mv ./builds ./builds-test-confirmations-mv2 + - persist_to_workspace: + root: . + paths: + - dist-test-confirmations-mv2 + - builds-test-confirmations-mv2 + prep-build-storybook: executor: node-browsers-medium-plus steps: @@ -1023,33 +1167,6 @@ jobs: - store_test_results: path: test/test-results/e2e - test-e2e-chrome-mv3: - executor: node-browsers-medium-plus - parallelism: 16 - steps: - - run: *shallow-git-clone - - attach_workspace: - at: . - - run: - name: Move test build to dist - command: mv ./dist-test-mv3 ./dist - - run: - name: Move test zips to builds - command: mv ./builds-test-mv3 ./builds - - run: - name: test:e2e:chrome - command: | - export ENABLE_MV3=true - if .circleci/scripts/test-run-e2e.sh; then - timeout 20m yarn test:e2e:chrome --retries 2 - fi - no_output_timeout: 5m - - store_artifacts: - path: test-artifacts - destination: test-artifacts - - store_test_results: - path: test/test-results/e2e - test-e2e-chrome-rpc: executor: node-browsers-medium parallelism: 1 @@ -1154,13 +1271,14 @@ jobs: at: . - run: name: Move test build to dist - command: mv ./dist-test-flask ./dist + command: mv ./dist-test-flask-mv2 ./dist - run: name: Move test zips to builds - command: mv ./builds-test-flask ./builds + command: mv ./builds-test-flask-mv2 ./builds - run: name: test:e2e:firefox:flask command: | + export ENABLE_MV3=false if .circleci/scripts/test-run-e2e.sh then timeout 20m yarn test:e2e:firefox:flask --retries 2 @@ -1276,13 +1394,14 @@ jobs: at: . - run: name: Move test build to dist - command: mv ./dist-test ./dist + command: mv ./dist-test-mv2 ./dist - run: name: Move test zips to builds - command: mv ./builds-test ./builds + command: mv ./builds-test-mv2 ./builds - run: name: test:e2e:firefox command: | + export ENABLE_MV3=false if .circleci/scripts/test-run-e2e.sh then timeout 20m yarn test:e2e:firefox --retries 2 @@ -1303,13 +1422,14 @@ jobs: at: . - run: name: Move test build to dist - command: mv ./dist-test-confirmations ./dist + command: mv ./dist-test-confirmations-mv2 ./dist - run: name: Move test zips to builds - command: mv ./builds-test-confirmations ./builds + command: mv ./builds-test-confirmations-mv2 ./builds - run: name: test:e2e:firefox-confirmation-redesign command: | + export ENABLE_MV3=false if .circleci/scripts/test-run-e2e.sh then timeout 20m yarn test:e2e:firefox --retries 2 @@ -1323,7 +1443,6 @@ jobs: - store_test_results: path: test/test-results/e2e - benchmark: executor: node-browsers-small steps: @@ -1378,21 +1497,21 @@ jobs: at: . - run: name: Move test build to dist - command: mv ./dist-test-mv3 ./dist + command: mv ./dist-test ./dist - run: name: Move test zips to builds - command: mv ./builds-test-mv3 ./builds + command: mv ./builds-test ./builds - run: name: Run page load benchmark command: | - mkdir -p test-artifacts/chrome/mv3 - cp -R development/charts/flamegraph test-artifacts/chrome/mv3/initialisation - cp -R development/charts/flamegraph/chart test-artifacts/chrome/mv3/initialisation/background - cp -R development/charts/flamegraph/chart test-artifacts/chrome/mv3/initialisation/ui - cp -R development/charts/table test-artifacts/chrome/mv3/load_time + mkdir -p test-artifacts/chrome/ + cp -R development/charts/flamegraph test-artifacts/chrome/initialisation + cp -R development/charts/flamegraph/chart test-artifacts/chrome/initialisation/background + cp -R development/charts/flamegraph/chart test-artifacts/chrome/initialisation/ui + cp -R development/charts/table test-artifacts/chrome/load_time - run: name: Run page load benchmark - command: yarn mv3:stats:chrome --out test-artifacts/chrome/mv3 + command: yarn mv3:stats:chrome --out test-artifacts/chrome - run: name: Install jq command: sudo apt install jq -y @@ -1434,9 +1553,15 @@ jobs: - store_artifacts: path: builds-flask destination: builds-flask + - store_artifacts: + path: builds-flask-mv2 + destination: builds-flask-mv2 - store_artifacts: path: builds-mmi destination: builds-mmi + - store_artifacts: + path: builds-mv2 + destination: builds-mv2 - store_artifacts: path: builds-test - store_artifacts: @@ -1663,12 +1788,50 @@ jobs: name: Validate source maps command: yarn validate-source-maps - test-mozilla-lint: + validate-source-maps-flask-mv2: + executor: node-browsers-small + steps: + - run: *shallow-git-clone + - attach_workspace: + at: . + - run: + name: Move flask build to dist + command: mv ./dist-flask-mv2 ./dist + - run: + name: Move flask zips to builds + command: mv ./builds-flask-mv2 ./builds + - run: + name: Validate source maps + command: yarn validate-source-maps + + validate-source-maps-mv2: + executor: node-browsers-small + steps: + - run: *shallow-git-clone + - attach_workspace: + at: . + - run: + name: Move flask build to dist + command: mv ./dist-mv2 ./dist + - run: + name: Move flask zips to builds + command: mv ./builds-mv2 ./builds + - run: + name: Validate source maps + command: yarn validate-source-maps + + test-mozilla-lint-mv2: executor: node-browsers-medium steps: - run: *shallow-git-clone - attach_workspace: at: . + - run: + name: Move flask build to dist + command: mv ./dist-mv2 ./dist + - run: + name: Move flask zips to builds + command: mv ./builds-mv2 ./builds - run: name: test:mozilla-lint command: yarn mozilla-lint @@ -1689,7 +1852,7 @@ jobs: name: test:mozilla-lint command: yarn mozilla-lint - test-mozilla-lint-flask: + test-mozilla-lint-flask-mv2: executor: node-browsers-medium steps: - run: *shallow-git-clone @@ -1697,10 +1860,10 @@ jobs: at: . - run: name: Move flask build to dist - command: mv ./dist-flask ./dist + command: mv ./dist-flask-mv2 ./dist - run: name: Move flask zips to builds - command: mv ./builds-flask ./builds + command: mv ./builds-flask-mv2 ./builds - run: name: test:mozilla-lint command: yarn mozilla-lint diff --git a/README.md b/README.md index c2d8b8b2a212..0c521ab1746c 100644 --- a/README.md +++ b/README.md @@ -123,11 +123,11 @@ Before running e2e tests, ensure you've run `yarn install` to download dependenc - `yarn build:test` for main build - `yarn build:test:flask` for flask build - `yarn build:test:mmi` for mmi build - - `yarn build:test:mv3` for mv3 build + - `yarn build:test:mv2` for mv2 build 3. Start a test build with live changes: `yarn start:test` is particularly useful for development. It starts a test build that automatically recompiles application code upon changes. This option is ideal for iterative testing and development. This command also allows you to generate test builds for various types, including: - `yarn start:test` for main build - `yarn start:test:flask` for flask build - - `yarn start:test:mv3` for mv3 build + - `yarn start:test:mv2` for mv2 build Note: The `yarn start:test` command (which initiates the testDev build type) has LavaMoat disabled for both the build system and the application, offering a streamlined testing experience during development. On the other hand, `yarn build:test` enables LavaMoat for enhanced security in both the build system and application, mirroring production environments more closely. @@ -183,7 +183,7 @@ Different build types have different e2e tests sets. In order to run them look i ```console "test:e2e:chrome:mmi": "SELENIUM_BROWSER=chrome node test/e2e/run-all.js --mmi", "test:e2e:chrome:snaps": "SELENIUM_BROWSER=chrome node test/e2e/run-all.js --snaps", - "test:e2e:chrome:mv3": "ENABLE_MV3=true SELENIUM_BROWSER=chrome node test/e2e/run-all.js", + "test:e2e:firefox": "ENABLE_MV3=false SELENIUM_BROWSER=firefox node test/e2e/run-all.js", ``` #### Note: Running MMI e2e tests diff --git a/builds.yml b/builds.yml index 43fee8ff2ec0..0f348911f493 100644 --- a/builds.yml +++ b/builds.yml @@ -191,8 +191,7 @@ env: - SUPPORT_REQUEST_LINK: https://metamask.zendesk.com/hc/en-us - SKIP_BACKGROUND_INITIALIZATION: false - # TODO(ritave): Move ManifestV3 into a feature? - - ENABLE_MV3: false + - ENABLE_MV3: true # These are exclusively used for MV3 - USE_SNOW - APPLY_LAVAMOAT @@ -318,4 +317,4 @@ env: # Account Abstraction (EIP-4337) ### - - EIP_4337_ENTRYPOINT: null \ No newline at end of file + - EIP_4337_ENTRYPOINT: null diff --git a/development/build/manifest.js b/development/build/manifest.js index a12f1c455558..c15107564c9a 100644 --- a/development/build/manifest.js +++ b/development/build/manifest.js @@ -3,7 +3,10 @@ const path = require('path'); const childProcess = require('child_process'); const { mergeWith, cloneDeep } = require('lodash'); -const baseManifest = process.env.ENABLE_MV3 +const IS_MV3_ENABLED = + process.env.ENABLE_MV3 === 'true' || process.env.ENABLE_MV3 === undefined; + +const baseManifest = IS_MV3_ENABLED ? require('../../app/manifest/v3/_base.json') : require('../../app/manifest/v2/_base.json'); const { loadBuildTypesConfig } = require('../lib/build-type'); @@ -32,7 +35,7 @@ function createManifestTasks({ '..', '..', 'app', - process.env.ENABLE_MV3 ? 'manifest/v3' : 'manifest/v2', + IS_MV3_ENABLED ? 'manifest/v3' : 'manifest/v2', `${platform}.json`, ), ); @@ -136,7 +139,7 @@ function createManifestTasks({ buildType, applyLavaMoat, shouldIncludeSnow, - shouldIncludeMV3: process.env.ENABLE_MV3, + shouldIncludeMV3: IS_MV3_ENABLED, }); manifest.description = `${environment} build from git id: ${gitRevisionStr}`; diff --git a/development/build/scripts.js b/development/build/scripts.js index 4267aea8d857..de01b9665174 100644 --- a/development/build/scripts.js +++ b/development/build/scripts.js @@ -1,5 +1,4 @@ // TODO(ritave): Remove switches on hardcoded build types - const { callbackify } = require('util'); const path = require('path'); const { writeFileSync, readFileSync, unlinkSync } = require('fs'); @@ -53,6 +52,9 @@ const { createRemoveFencedCodeTransform, } = require('./transforms/remove-fenced-code'); +const isEnableMV3 = + process.env.ENABLE_MV3 === 'true' || process.env.ENABLE_MV3 === undefined; + // map dist files to bag of needed native APIs against LM scuttling const scuttlingConfigBase = { 'scripts/sentry-install.js': { @@ -189,7 +191,7 @@ function createScriptTasks({ // In MV3 we will need to build our offscreen entry point bundle and any // entry points for iframes that we want to lockdown with LavaMoat. - if (process.env.ENABLE_MV3 === 'true') { + if (isEnableMV3) { standardEntryPoints.push('offscreen'); } @@ -350,7 +352,7 @@ function createScriptTasks({ () => { // MV3 injects inpage into the tab's main world, but in MV2 we need // to do it manually: - if (process.env.ENABLE_MV3) { + if (isEnableMV3) { return; } // stringify scripts/inpage.js into itself, and then make it inject itself into the page @@ -714,7 +716,7 @@ function createFactoredBuild({ applyLavaMoat, destinationFileName: 'load-background.js', }); - if (process.env.ENABLE_MV3) { + if (isEnableMV3) { const jsBundles = [ ...commonSet.values(), ...groupSet.values(), @@ -1027,7 +1029,9 @@ function setupMinification(buildConfiguration) { function setupScuttlingWrapping(buildConfiguration, applyLavaMoat, envVars) { const scuttlingConfig = - envVars.ENABLE_MV3 === 'true' + envVars.ENABLE_MV3 === 'true' || + envVars.ENABLE_MV3 === undefined || + envVars.ENABLE_MV3 === true ? mv3ScuttlingConfig : standardScuttlingConfig; const { events } = buildConfiguration; diff --git a/development/build/static.js b/development/build/static.js index 20e22eeddcca..5729828568d6 100644 --- a/development/build/static.js +++ b/development/build/static.js @@ -208,7 +208,11 @@ function getCopyTargets( allCopyTargets.push({ src: getPathInsideNodeModules('@blockaid/ppom_release', '/'), pattern: '*.wasm', - dest: process.env.ENABLE_MV3 ? 'scripts/' : '', + dest: + process.env.ENABLE_MV3 === 'true' || + process.env.ENABLE_MV3 === undefined + ? 'scripts/' + : '', }); } diff --git a/development/metamaskbot-build-announce.js b/development/metamaskbot-build-announce.js index e49bd848ca55..f85d64faa887 100755 --- a/development/metamaskbot-build-announce.js +++ b/development/metamaskbot-build-announce.js @@ -68,14 +68,20 @@ async function start() { const platforms = ['chrome', 'firefox']; const buildLinks = platforms .map((platform) => { - const url = `${BUILD_LINK_BASE}/builds/metamask-${platform}-${VERSION}.zip`; + const url = + platform === 'firefox' + ? `${BUILD_LINK_BASE}/builds-mv2/metamask-${platform}-${VERSION}.zip` + : `${BUILD_LINK_BASE}/builds/metamask-${platform}-${VERSION}.zip`; return `${platform}`; }) .join(', '); const betaBuildLinks = `chrome`; const flaskBuildLinks = platforms .map((platform) => { - const url = `${BUILD_LINK_BASE}/builds-flask/metamask-flask-${platform}-${VERSION}-flask.0.zip`; + const url = + platform === 'firefox' + ? `${BUILD_LINK_BASE}/builds-flask-mv2/metamask-flask-${platform}-${VERSION}-flask.0.zip` + : `${BUILD_LINK_BASE}/builds-flask/metamask-flask-${platform}-${VERSION}-flask.0.zip`; return `${platform}`; }) .join(', '); @@ -87,13 +93,19 @@ async function start() { .join(', '); const testBuildLinks = platforms .map((platform) => { - const url = `${BUILD_LINK_BASE}/builds-test/metamask-${platform}-${VERSION}.zip`; + const url = + platform === 'firefox' + ? `${BUILD_LINK_BASE}/builds-test-mv2/metamask-${platform}-${VERSION}.zip` + : `${BUILD_LINK_BASE}/builds-test/metamask-${platform}-${VERSION}.zip`; return `${platform}`; }) .join(', '); const testFlaskBuildLinks = platforms .map((platform) => { - const url = `${BUILD_LINK_BASE}/builds-test-flask/metamask-flask-${platform}-${VERSION}-flask.0.zip`; + const url = + platform === 'firefox' + ? `${BUILD_LINK_BASE}/builds-test-flask-mv2/metamask-flask-${platform}-${VERSION}-flask.0.zip` + : `${BUILD_LINK_BASE}/builds-test-flask/metamask-flask-${platform}-${VERSION}-flask.0.zip`; return `${platform}`; }) .join(', '); @@ -144,13 +156,13 @@ async function start() { // links to bundle browser builds const depVizUrl = `${BUILD_LINK_BASE}/build-artifacts/build-viz/index.html`; const depVizLink = `Build System`; - const moduleInitStatsBackgroundUrl = `${BUILD_LINK_BASE}/test-artifacts/chrome/mv3/initialisation/background/index.html`; + const moduleInitStatsBackgroundUrl = `${BUILD_LINK_BASE}/test-artifacts/chrome/initialisation/background/index.html`; const moduleInitStatsBackgroundLink = `Background Module Init Stats`; - const moduleInitStatsUIUrl = `${BUILD_LINK_BASE}/test-artifacts/chrome/mv3/initialisation/ui/index.html`; + const moduleInitStatsUIUrl = `${BUILD_LINK_BASE}/test-artifacts/chrome/initialisation/ui/index.html`; const moduleInitStatsUILink = `UI Init Stats`; - const moduleLoadStatsUrl = `${BUILD_LINK_BASE}/test-artifacts/chrome/mv3/load_time/index.html`; + const moduleLoadStatsUrl = `${BUILD_LINK_BASE}/test-artifacts/chrome/load_time/index.html`; const moduleLoadStatsLink = `Module Load Stats`; - const bundleSizeStatsUrl = `${BUILD_LINK_BASE}/test-artifacts/chrome/mv3/bundle_size.json`; + const bundleSizeStatsUrl = `${BUILD_LINK_BASE}/test-artifacts/chrome/bundle_size.json`; const bundleSizeStatsLink = `Bundle Size Stats`; const userActionsStatsUrl = `${BUILD_LINK_BASE}/test-artifacts/chrome/benchmark/user_actions.json`; const userActionsStatsLink = `E2e Actions Stats`; @@ -297,7 +309,7 @@ async function start() { path.resolve( __dirname, '..', - path.join('test-artifacts', 'chrome', 'mv3', 'bundle_size.json'), + path.join('test-artifacts', 'chrome', 'bundle_size.json'), ), 'utf-8', ), diff --git a/package.json b/package.json index c52f9108937f..e07897b6b812 100644 --- a/package.json +++ b/package.json @@ -9,28 +9,30 @@ "scripts": { "start": "yarn build:dev dev --apply-lavamoat=false --snow=false", "start:skip-onboarding": "SKIP_ONBOARDING=true yarn start", - "start:mv3": "ENABLE_MV3=true yarn build:dev dev --apply-lavamoat=false --snow=false", + "start:mv2": "ENABLE_MV3=false yarn build:dev dev --apply-lavamoat=false --snow=false", "start:flask": "yarn start --build-type flask", "start:mmi": "yarn start --build-type mmi", "start:lavamoat": "yarn build:dev dev --apply-lavamoat=true", "dist": "yarn build dist", - "dist:mv3": "ENABLE_MV3=true yarn build dist", + "dist:mv2": "ENABLE_MV3=false yarn build dist", "dist:mmi": "yarn dist --build-type mmi", "dist:mmi:debug": "yarn dist --build-type mmi --apply-lavamoat=false --snow=false", "build": "yarn lavamoat:build", "build:dev": "node development/build/index.js", - "start:test": "BLOCKAID_FILE_CDN=static.cx.metamask.io/api/v1/confirmations/ppom SEGMENT_HOST='https://api.segment.io' SEGMENT_WRITE_KEY='FAKE' SENTRY_DSN_DEV=https://fake@sentry.io/0000000 yarn build:dev testDev --apply-lavamoat=false --snow=false", + "start:test": "SEGMENT_HOST='https://api.segment.io' SEGMENT_WRITE_KEY='FAKE' SENTRY_DSN_DEV=https://fake@sentry.io/0000000 yarn build:dev testDev", "start:test:flask": "SEGMENT_HOST='https://api.segment.io' SEGMENT_WRITE_KEY='FAKE' SENTRY_DSN_DEV=https://fake@sentry.io/0000000 yarn build:dev testDev --build-type flask --apply-lavamoat=false --snow=false", - "start:test:mv3": "ENABLE_MV3=true SEGMENT_HOST='https://api.segment.io' SEGMENT_WRITE_KEY='FAKE' SENTRY_DSN_DEV=https://fake@sentry.io/0000000 yarn build:dev testDev", + "start:test:mv2:flask": "ENABLE_MV3=false SEGMENT_HOST='https://api.segment.io' SEGMENT_WRITE_KEY='FAKE' SENTRY_DSN_DEV=https://fake@sentry.io/0000000 yarn build:dev testDev --build-type flask --apply-lavamoat=false --snow=false", + "start:test:mv2": "ENABLE_MV3=false BLOCKAID_FILE_CDN=static.cx.metamask.io/api/v1/confirmations/ppom SEGMENT_HOST='https://api.segment.io' SEGMENT_WRITE_KEY='FAKE' SENTRY_DSN_DEV=https://fake@sentry.io/0000000 yarn build:dev testDev --apply-lavamoat=false --snow=false", "benchmark:chrome": "SELENIUM_BROWSER=chrome ts-node test/e2e/benchmark.js", - "mv3:stats:chrome": "SELENIUM_BROWSER=chrome ENABLE_MV3=true ts-node test/e2e/mv3-perf-stats/index.js", + "mv3:stats:chrome": "SELENIUM_BROWSER=chrome ts-node test/e2e/mv3-perf-stats/index.js", "user-actions-benchmark:chrome": "SELENIUM_BROWSER=chrome ts-node test/e2e/user-actions-benchmark.js", "benchmark:firefox": "SELENIUM_BROWSER=firefox ts-node test/e2e/benchmark.js", - "build:test": "BLOCKAID_FILE_CDN=static.cx.metamask.io/api/v1/confirmations/ppom SEGMENT_HOST='https://api.segment.io' SEGMENT_WRITE_KEY='FAKE' SENTRY_DSN_DEV=https://fake@sentry.io/0000000 yarn build test", + "build:test": "SEGMENT_HOST='https://api.segment.io' SEGMENT_WRITE_KEY='FAKE' SENTRY_DSN_DEV=https://fake@sentry.io/0000000 yarn build test", + "build:test:dev": "SEGMENT_HOST='https://api.segment.io' SEGMENT_WRITE_KEY='FAKE' SENTRY_DSN_DEV=https://fake@sentry.io/0000000 yarn build:dev testDev --apply-lavamoat=false", "build:test:flask": "SEGMENT_HOST='https://api.segment.io' SEGMENT_WRITE_KEY='FAKE' yarn build test --build-type flask", + "build:test:flask:mv2": "ENABLE_MV3=false SEGMENT_HOST='https://api.segment.io' SEGMENT_WRITE_KEY='FAKE' yarn build test --build-type flask", "build:test:mmi": "SEGMENT_HOST='https://api.segment.io' SEGMENT_WRITE_KEY='FAKE' yarn build test --build-type mmi", - "build:test:mv3": "ENABLE_MV3=true SEGMENT_HOST='https://api.segment.io' SEGMENT_WRITE_KEY='FAKE' SENTRY_DSN_DEV=https://fake@sentry.io/0000000 yarn build test", - "build:test:dev:mv3": "ENABLE_MV3=true SEGMENT_HOST='https://api.segment.io' SEGMENT_WRITE_KEY='FAKE' SENTRY_DSN_DEV=https://fake@sentry.io/0000000 yarn build:dev testDev --apply-lavamoat=false", + "build:test:mv2": "ENABLE_MV3=false BLOCKAID_FILE_CDN=static.cx.metamask.io/api/v1/confirmations/ppom SEGMENT_HOST='https://api.segment.io' SEGMENT_WRITE_KEY='FAKE' SENTRY_DSN_DEV=https://fake@sentry.io/0000000 yarn build test", "test": "yarn lint && yarn test:unit && yarn test:unit:jest", "dapp": "node development/static-server.js node_modules/@metamask/test-dapp/dist --port 8080", "dapp-chain": "GANACHE_ARGS='-b 2' concurrently -k -n ganache,dapp -p '[{time}][{name}]' 'yarn ganache:start' 'sleep 5 && yarn dapp'", @@ -50,7 +52,6 @@ "test:e2e:mmi:visual": "./test/e2e/mmi/scripts/run-visual-test.sh check", "test:e2e:mmi:visual:update": "./test/e2e/mmi/scripts/run-visual-test.sh update", "test:e2e:pw:report": "yarn playwright show-report public/playwright/playwright-reports/html", - "test:e2e:chrome:mv3": "ENABLE_MV3=true SELENIUM_BROWSER=chrome node test/e2e/run-all.js", "test:e2e:chrome:rpc": "SELENIUM_BROWSER=chrome node test/e2e/run-all.js --rpc", "test:e2e:chrome:multi-provider": "MULTIPROVIDER=true SELENIUM_BROWSER=chrome node test/e2e/run-all.js --multi-provider", "test:e2e:firefox": "SELENIUM_BROWSER=firefox node test/e2e/run-all.js", diff --git a/test/e2e/json-rpc/switchEthereumChain.spec.js b/test/e2e/json-rpc/switchEthereumChain.spec.js index 87298d8cd2bc..ef195f4b9a2b 100644 --- a/test/e2e/json-rpc/switchEthereumChain.spec.js +++ b/test/e2e/json-rpc/switchEthereumChain.spec.js @@ -275,7 +275,11 @@ describe('Switch Ethereum Chain for two dapps', function () { // if this is an MV3 build(3 or 4 total) await driver.wait(async () => { const windowHandles = await driver.getAllWindowHandles(); - const numberOfWindowHandlesToExpect = process.env.ENABLE_MV3 ? 4 : 3; + const numberOfWindowHandlesToExpect = + process.env.ENABLE_MV3 === 'true' || + process.env.ENABLE_MV3 === undefined + ? 4 + : 3; return windowHandles.length === numberOfWindowHandlesToExpect; }); }, diff --git a/test/e2e/tests/account/import-flow.spec.js b/test/e2e/tests/account/import-flow.spec.js index c669b250c82b..9724060e2fd3 100644 --- a/test/e2e/tests/account/import-flow.spec.js +++ b/test/e2e/tests/account/import-flow.spec.js @@ -379,7 +379,10 @@ describe('Import flow @no-mmi', function () { }); it('Connects to a Hardware wallet for lattice', async function () { - if (process.env.ENABLE_MV3) { + if ( + process.env.ENABLE_MV3 === 'true' || + process.env.ENABLE_MV3 === undefined + ) { // Hardware wallets not supported in MV3 build yet this.skip(); } diff --git a/test/e2e/tests/request-queuing/ui.spec.js b/test/e2e/tests/request-queuing/ui.spec.js index 5e2f35fad63f..e85d87226e84 100644 --- a/test/e2e/tests/request-queuing/ui.spec.js +++ b/test/e2e/tests/request-queuing/ui.spec.js @@ -74,7 +74,7 @@ async function selectDappClickSendGetNetwork(driver, dappUrl) { // because the offscreen document returned by getAllWindowHandles provides // an extra window handle const newWindowHandles = await driver.waitUntilXWindowHandles( - process.env.ENABLE_MV3 + process.env.ENABLE_MV3 === 'true' || process.env.ENABLE_MV3 === undefined ? currentWindowHandles.length : currentWindowHandles.length + 1, ); diff --git a/test/e2e/webdriver/driver.js b/test/e2e/webdriver/driver.js index 7da0c7481b9f..ab4bc6884273 100644 --- a/test/e2e/webdriver/driver.js +++ b/test/e2e/webdriver/driver.js @@ -831,7 +831,10 @@ class Driver { * @throws {Error} throws an error if the target number of window handles isn't met by the timeout. */ async waitUntilXWindowHandles(_x, delayStep = 1000, timeout = this.timeout) { - const x = process.env.ENABLE_MV3 ? _x + 1 : _x; + const x = + process.env.ENABLE_MV3 === 'true' || process.env.ENABLE_MV3 === undefined + ? _x + 1 + : _x; let timeElapsed = 0; let windowHandles = []; while (timeElapsed <= timeout) { diff --git a/ui/__mocks__/webextension-polyfill.js b/ui/__mocks__/webextension-polyfill.js index 0984c767deb2..693368f15e0c 100644 --- a/ui/__mocks__/webextension-polyfill.js +++ b/ui/__mocks__/webextension-polyfill.js @@ -1,3 +1,3 @@ module.exports = { - runtime: { getManifest: () => ({ manifest_version: 2 }) }, + runtime: { getManifest: () => ({ manifest_version: 3 }) }, }; From 46356f6fac9d9a17563deafd3e269757d9eb300d Mon Sep 17 00:00:00 2001 From: Erik Marks <25517051+rekmarks@users.noreply.github.com> Date: Thu, 30 May 2024 22:42:33 -0700 Subject: [PATCH 15/43] fix: Place permission middleware ahead of all method implementations (#24472) Adds all unrestricted RPC methods to the `unrestrictedMethods` array passed to the permission controller, and moves the permission middleware ahead of all RPC method implementations in `setupProviderEngine`. This forces us to add all methods that aren't permission to the `unrestrictedMethods` array, as a "method not found" error will be thrown otherwise. It's safer this way. Due the requirement that it swallows authorization errors, the implementation of `eth_accounts` (a restricted method) is moved to a new "legacy method middleware", which we by necessity place ahead of the permission middleware. In addition, the responsibility of rejecting intentionally unsupported RPC methods has been moved to a dedicated middleware in front of the legacy method middleware. --- .../controllers/permissions/specifications.js | 33 +++++ .../createMethodMiddleware.js | 115 ++++++++++-------- .../createMethodMiddleware.test.js | 57 ++++----- .../createUnsupportedMethodMiddleware.test.ts | 39 ++++++ .../createUnsupportedMethodMiddleware.ts | 19 +++ .../rpc-method-middleware/handlers/index.ts | 5 +- .../lib/rpc-method-middleware/index.js | 1 + app/scripts/metamask-controller.js | 68 ++++++----- app/scripts/metamask-controller.test.js | 6 + 9 files changed, 228 insertions(+), 115 deletions(-) create mode 100644 app/scripts/lib/rpc-method-middleware/createUnsupportedMethodMiddleware.test.ts create mode 100644 app/scripts/lib/rpc-method-middleware/createUnsupportedMethodMiddleware.ts diff --git a/app/scripts/controllers/permissions/specifications.js b/app/scripts/controllers/permissions/specifications.js index a20a08e73db8..b22175e6819a 100644 --- a/app/scripts/controllers/permissions/specifications.js +++ b/app/scripts/controllers/permissions/specifications.js @@ -339,6 +339,7 @@ export const unrestrictedMethods = Object.freeze([ 'eth_newFilter', 'eth_newPendingTransactionFilter', 'eth_protocolVersion', + 'eth_requestAccounts', 'eth_sendRawTransaction', 'eth_sendTransaction', 'eth_sign', @@ -348,17 +349,49 @@ export const unrestrictedMethods = Object.freeze([ 'eth_signTypedData_v4', 'eth_submitHashrate', 'eth_submitWork', + 'eth_subscribe', 'eth_syncing', 'eth_uninstallFilter', + 'eth_unsubscribe', 'metamask_getProviderState', + 'metamask_logWeb3ShimUsage', + 'metamask_sendDomainMetadata', 'metamask_watchAsset', 'net_listening', 'net_peerCount', 'net_version', 'personal_ecRecover', 'personal_sign', + 'wallet_addEthereumChain', + 'wallet_getPermissions', + 'wallet_requestPermissions', + 'wallet_revokePermissions', + 'wallet_registerOnboarding', 'wallet_switchEthereumChain', 'wallet_watchAsset', 'web3_clientVersion', 'web3_sha3', + ///: BEGIN:ONLY_INCLUDE_IF(snaps) + 'wallet_getAllSnaps', + 'wallet_getSnaps', + 'wallet_requestSnaps', + 'wallet_invokeSnap', + 'wallet_invokeKeyring', + 'snap_getClientStatus', + 'snap_getFile', + 'snap_createInterface', + 'snap_updateInterface', + 'snap_getInterfaceState', + ///: END:ONLY_INCLUDE_IF + ///: BEGIN:ONLY_INCLUDE_IF(build-mmi) + 'metamaskinstitutional_authenticate', + 'metamaskinstitutional_reauthenticate', + 'metamaskinstitutional_refresh_token', + 'metamaskinstitutional_supported', + 'metamaskinstitutional_portfolio', + 'metamaskinstitutional_open_swaps', + 'metamaskinstitutional_checkIfTokenIsPresent', + 'metamaskinstitutional_setAccountAndNetwork', + 'metamaskinstitutional_openAddHardwareWallet', + ///: END:ONLY_INCLUDE_IF ]); diff --git a/app/scripts/lib/rpc-method-middleware/createMethodMiddleware.js b/app/scripts/lib/rpc-method-middleware/createMethodMiddleware.js index db9cde9ed3e5..e4b436163fc6 100644 --- a/app/scripts/lib/rpc-method-middleware/createMethodMiddleware.js +++ b/app/scripts/lib/rpc-method-middleware/createMethodMiddleware.js @@ -2,75 +2,92 @@ import { permissionRpcMethods } from '@metamask/permission-controller'; import { selectHooks } from '@metamask/snaps-rpc-methods'; import { hasProperty } from '@metamask/utils'; import { ethErrors } from 'eth-rpc-errors'; -import { UNSUPPORTED_RPC_METHODS } from '../../../../shared/constants/network'; -import localHandlers from './handlers'; +import { handlers as localHandlers, legacyHandlers } from './handlers'; const allHandlers = [...localHandlers, ...permissionRpcMethods.handlers]; -const handlerMap = allHandlers.reduce((map, handler) => { - for (const methodName of handler.methodNames) { - map[methodName] = handler; - } - return map; -}, {}); +// The primary home of RPC method implementations in MetaMask. MUST be subsequent +// to our permissioning logic in the JSON-RPC middleware pipeline. +export const createMethodMiddleware = makeMethodMiddlewareMaker(allHandlers); -const expectedHookNames = new Set( - allHandlers.flatMap(({ hookNames }) => Object.getOwnPropertyNames(hookNames)), -); +// A collection of RPC method implementations that, for legacy reasons, MAY precede +// our permissioning logic in the JSON-RPC middleware pipeline. +export const createLegacyMethodMiddleware = + makeMethodMiddlewareMaker(legacyHandlers); /** - * Creates a json-rpc-engine middleware of RPC method implementations. - * - * Handlers consume functions that hook into the background, and only depend - * on their signatures, not e.g. controller internals. + * Creates a method middleware factory function given a set of method handlers. * - * @param {Record unknown | Promise>} hooks - Required "hooks" into our - * controllers. - * @returns {import('json-rpc-engine').JsonRpcMiddleware} The method middleware function. + * @param {Record} handlers - The RPC method + * handler implementations. + * @returns The method middleware factory function. */ -export function createMethodMiddleware(hooks) { - assertExpectedHook(hooks); - - return async function methodMiddleware(req, res, next, end) { - // Reject unsupported methods. - if (UNSUPPORTED_RPC_METHODS.has(req.method)) { - return end(ethErrors.rpc.methodNotSupported()); +function makeMethodMiddlewareMaker(handlers) { + const handlerMap = handlers.reduce((map, handler) => { + for (const methodName of handler.methodNames) { + map[methodName] = handler; } + return map; + }, {}); + + const expectedHookNames = new Set( + handlers.flatMap(({ hookNames }) => Object.getOwnPropertyNames(hookNames)), + ); - const handler = handlerMap[req.method]; - if (handler) { - const { implementation, hookNames } = handler; - try { - // Implementations may or may not be async, so we must await them. - return await implementation( - req, - res, - next, - end, - selectHooks(hooks, hookNames), - ); - } catch (error) { - if (process.env.METAMASK_DEBUG) { - console.error(error); + /** + * Creates a json-rpc-engine middleware of RPC method implementations. + * + * Handlers consume functions that hook into the background, and only depend + * on their signatures, not e.g. controller internals. + * + * @param {Record unknown | Promise>} hooks - Required "hooks" into our + * controllers. + * @returns {import('json-rpc-engine').JsonRpcMiddleware} The method middleware function. + */ + const makeMethodMiddleware = (hooks) => { + assertExpectedHook(hooks, expectedHookNames); + + const methodMiddleware = async (req, res, next, end) => { + const handler = handlerMap[req.method]; + if (handler) { + const { implementation, hookNames } = handler; + try { + // Implementations may or may not be async, so we must await them. + return await implementation( + req, + res, + next, + end, + selectHooks(hooks, hookNames), + ); + } catch (error) { + if (process.env.METAMASK_DEBUG) { + console.error(error); + } + return end( + error instanceof Error + ? error + : ethErrors.rpc.internal({ data: error }), + ); } - return end( - error instanceof Error - ? error - : ethErrors.rpc.internal({ data: error }), - ); } - } - return next(); + return next(); + }; + + return methodMiddleware; }; + + return makeMethodMiddleware; } /** - * Asserts that the hooks object only has all expected hooks and no extraneous ones. + * Asserts that the specified hooks object only has all expected hooks and no extraneous ones. * * @param {Record} hooks - Required "hooks" into our controllers. + * @param {string[]} expectedHookNames - The expected hook names. */ -function assertExpectedHook(hooks) { +function assertExpectedHook(hooks, expectedHookNames) { const missingHookNames = []; expectedHookNames.forEach((hookName) => { if (!hasProperty(hooks, hookName)) { diff --git a/app/scripts/lib/rpc-method-middleware/createMethodMiddleware.test.js b/app/scripts/lib/rpc-method-middleware/createMethodMiddleware.test.js index cb26fc8061de..46aba9abe746 100644 --- a/app/scripts/lib/rpc-method-middleware/createMethodMiddleware.test.js +++ b/app/scripts/lib/rpc-method-middleware/createMethodMiddleware.test.js @@ -3,14 +3,14 @@ import { assertIsJsonRpcFailure, assertIsJsonRpcSuccess, } from '@metamask/utils'; -import { createMethodMiddleware } from '.'; +import { createMethodMiddleware, createLegacyMethodMiddleware } from '.'; jest.mock('@metamask/permission-controller', () => ({ permissionRpcMethods: { handlers: [] }, })); -jest.mock('./handlers', () => [ - { +jest.mock('./handlers', () => { + const getHandler = () => ({ implementation: (req, res, _next, end, hooks) => { if (Array.isArray(req.params)) { switch (req.params[0]) { @@ -35,10 +35,18 @@ jest.mock('./handlers', () => [ }, hookNames: { hook1: true, hook2: true }, methodNames: ['method1', 'method2'], - }, -]); + }); + + return { + handlers: [getHandler()], + legacyHandlers: [getHandler()], + }; +}); -describe('createMethodMiddleware', () => { +describe.each([ + ['createMethodMiddleware', createMethodMiddleware], + ['createLegacyMethodMiddleware', createLegacyMethodMiddleware], +])('%s', (_name, createMiddleware) => { const method1 = 'method1'; const getDefaultHooks = () => ({ @@ -47,7 +55,7 @@ describe('createMethodMiddleware', () => { }); it('should return a function', () => { - const middleware = createMethodMiddleware(getDefaultHooks()); + const middleware = createMiddleware(getDefaultHooks()); expect(typeof middleware).toBe('function'); }); @@ -55,9 +63,7 @@ describe('createMethodMiddleware', () => { const hooks = { hook1: () => 42 }; // @ts-expect-error Intentional destructive testing - expect(() => createMethodMiddleware(hooks)).toThrow( - 'Missing expected hooks', - ); + expect(() => createMiddleware(hooks)).toThrow('Missing expected hooks'); }); it('should throw an error if an extraneous hook is provided', () => { @@ -66,13 +72,11 @@ describe('createMethodMiddleware', () => { extraneousHook: () => 100, }; - expect(() => createMethodMiddleware(hooks)).toThrow( - 'Received unexpected hooks', - ); + expect(() => createMiddleware(hooks)).toThrow('Received unexpected hooks'); }); it('should call the handler for the matching method (uses hook1)', async () => { - const middleware = createMethodMiddleware(getDefaultHooks()); + const middleware = createMiddleware(getDefaultHooks()); const engine = new JsonRpcEngine(); engine.push(middleware); @@ -88,7 +92,7 @@ describe('createMethodMiddleware', () => { }); it('should call the handler for the matching method (uses hook2)', async () => { - const middleware = createMethodMiddleware(getDefaultHooks()); + const middleware = createMiddleware(getDefaultHooks()); const engine = new JsonRpcEngine(); engine.push(middleware); @@ -104,7 +108,7 @@ describe('createMethodMiddleware', () => { }); it('should not call the handler for a non-matching method', async () => { - const middleware = createMethodMiddleware(getDefaultHooks()); + const middleware = createMiddleware(getDefaultHooks()); const engine = new JsonRpcEngine(); engine.push(middleware); @@ -122,23 +126,8 @@ describe('createMethodMiddleware', () => { }); }); - it('should reject unsupported methods', async () => { - const middleware = createMethodMiddleware(getDefaultHooks()); - const engine = new JsonRpcEngine(); - engine.push(middleware); - - const response = await engine.handle({ - jsonrpc: '2.0', - id: 1, - method: 'eth_signTransaction', - }); - assertIsJsonRpcFailure(response); - - expect(response.error.message).toBe('Method not supported.'); - }); - it('should handle errors returned by the implementation', async () => { - const middleware = createMethodMiddleware(getDefaultHooks()); + const middleware = createMiddleware(getDefaultHooks()); const engine = new JsonRpcEngine(); engine.push(middleware); @@ -154,7 +143,7 @@ describe('createMethodMiddleware', () => { }); it('should handle errors thrown by the implementation', async () => { - const middleware = createMethodMiddleware(getDefaultHooks()); + const middleware = createMiddleware(getDefaultHooks()); const engine = new JsonRpcEngine(); engine.push(middleware); @@ -170,7 +159,7 @@ describe('createMethodMiddleware', () => { }); it('should handle non-errors thrown by the implementation', async () => { - const middleware = createMethodMiddleware(getDefaultHooks()); + const middleware = createMiddleware(getDefaultHooks()); const engine = new JsonRpcEngine(); engine.push(middleware); diff --git a/app/scripts/lib/rpc-method-middleware/createUnsupportedMethodMiddleware.test.ts b/app/scripts/lib/rpc-method-middleware/createUnsupportedMethodMiddleware.test.ts new file mode 100644 index 000000000000..432f4bf92614 --- /dev/null +++ b/app/scripts/lib/rpc-method-middleware/createUnsupportedMethodMiddleware.test.ts @@ -0,0 +1,39 @@ +import { jsonrpc2 } from '@metamask/utils'; +import { UNSUPPORTED_RPC_METHODS } from '../../../../shared/constants/network'; +import { createUnsupportedMethodMiddleware } from '.'; + +describe('createUnsupportedMethodMiddleware', () => { + const getMockRequest = (method: string) => ({ + jsonrpc: jsonrpc2, + id: 1, + method, + }); + const getMockResponse = () => ({ jsonrpc: jsonrpc2, id: 'foo' }); + + it('forwards requests whose methods are not on the list of unsupported methods', () => { + const middleware = createUnsupportedMethodMiddleware(); + const nextMock = jest.fn(); + const endMock = jest.fn(); + + middleware(getMockRequest('foo'), getMockResponse(), nextMock, endMock); + + expect(nextMock).toHaveBeenCalledTimes(1); + expect(endMock).not.toHaveBeenCalled(); + }); + + it.each([...UNSUPPORTED_RPC_METHODS.keys()])( + 'ends requests for methods that are on the list of unsupported methods: %s', + (method) => { + const middleware = createUnsupportedMethodMiddleware(); + const nextMock = jest.fn(); + const endMock = jest.fn(); + + const response = getMockResponse(); + middleware(getMockRequest(method), response, nextMock, endMock); + + expect('result' in response).toBe(false); + expect(nextMock).not.toHaveBeenCalled(); + expect(endMock).toHaveBeenCalledTimes(1); + }, + ); +}); diff --git a/app/scripts/lib/rpc-method-middleware/createUnsupportedMethodMiddleware.ts b/app/scripts/lib/rpc-method-middleware/createUnsupportedMethodMiddleware.ts new file mode 100644 index 000000000000..193cc54b5a38 --- /dev/null +++ b/app/scripts/lib/rpc-method-middleware/createUnsupportedMethodMiddleware.ts @@ -0,0 +1,19 @@ +import { ethErrors } from 'eth-rpc-errors'; +import type { JsonRpcMiddleware } from 'json-rpc-engine'; +import { UNSUPPORTED_RPC_METHODS } from '../../../../shared/constants/network'; + +/** + * Creates a middleware that rejects explicitly unsupported RPC methods with the + * appropriate error. + */ +export function createUnsupportedMethodMiddleware(): JsonRpcMiddleware< + unknown, + void +> { + return async function unsupportedMethodMiddleware(req, _res, next, end) { + if ((UNSUPPORTED_RPC_METHODS as Set).has(req.method)) { + return end(ethErrors.rpc.methodNotSupported()); + } + return next(); + }; +} diff --git a/app/scripts/lib/rpc-method-middleware/handlers/index.ts b/app/scripts/lib/rpc-method-middleware/handlers/index.ts index 0c4e7acbb4c8..09bca12b5b67 100644 --- a/app/scripts/lib/rpc-method-middleware/handlers/index.ts +++ b/app/scripts/lib/rpc-method-middleware/handlers/index.ts @@ -16,9 +16,8 @@ import mmiSetAccountAndNetwork from './institutional/mmi-set-account-and-network import mmiOpenAddHardwareWallet from './institutional/mmi-open-add-hardware-wallet'; ///: END:ONLY_INCLUDE_IF -const handlers = [ +export const handlers = [ addEthereumChain, - ethAccounts, getProviderState, logWeb3ShimUsage, requestAccounts, @@ -35,4 +34,4 @@ const handlers = [ ///: END:ONLY_INCLUDE_IF ]; -export default handlers; +export const legacyHandlers = [ethAccounts]; diff --git a/app/scripts/lib/rpc-method-middleware/index.js b/app/scripts/lib/rpc-method-middleware/index.js index adf68c359374..591545e1b94b 100644 --- a/app/scripts/lib/rpc-method-middleware/index.js +++ b/app/scripts/lib/rpc-method-middleware/index.js @@ -1 +1,2 @@ export * from './createMethodMiddleware'; +export * from './createUnsupportedMethodMiddleware'; diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index e7d82850cb8f..5d91f0f03ae1 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -271,7 +271,11 @@ import ComposableObservableStore from './lib/ComposableObservableStore'; import AccountTracker from './lib/account-tracker'; import createDupeReqFilterStream from './lib/createDupeReqFilterStream'; import createLoggerMiddleware from './lib/createLoggerMiddleware'; -import { createMethodMiddleware } from './lib/rpc-method-middleware'; +import { + createLegacyMethodMiddleware, + createMethodMiddleware, + createUnsupportedMethodMiddleware, +} from './lib/rpc-method-middleware'; import createOriginMiddleware from './lib/createOriginMiddleware'; import createTabIdMiddleware from './lib/createTabIdMiddleware'; import { NetworkOrderController } from './controllers/network-order'; @@ -5075,23 +5079,15 @@ export default class MetamaskController extends EventEmitter { * @param {tabId} [options.tabId] - The tab ID of the sender - if the sender is within a tab */ setupProviderEngine({ origin, subjectType, sender, tabId }) { - // setup json rpc engine stack const engine = new JsonRpcEngine(); - // append origin to each request + // Append origin to each request engine.push(createOriginMiddleware({ origin })); - // append selectedNetworkClientId to each request + // Append selectedNetworkClientId to each request engine.push(createSelectedNetworkMiddleware(this.controllerMessenger)); - // if the origin is not in the selectedNetworkController's `domains` state - // when the provider engine is created, the selectedNetworkController will - // fetch the globally selected networkClient from the networkController and wrap - // it in a proxy which can be switched to use its own state if/when the origin - // is added to the `domains` state - const proxyClient = - this.selectedNetworkController.getProviderAndBlockTracker(origin); - + // Add a middleware that will switch chain on each request (as needed) const requestQueueMiddleware = createQueuedRequestMiddleware({ enqueueRequest: this.queuedRequestController.enqueueRequest.bind( this.queuedRequestController, @@ -5101,24 +5097,29 @@ export default class MetamaskController extends EventEmitter { ), methodsWithConfirmation, }); - // add some middleware that will switch chain on each request (as needed) engine.push(requestQueueMiddleware); - // create filter polyfill middleware - const filterMiddleware = createFilterMiddleware(proxyClient); + // If the origin is not in the selectedNetworkController's `domains` state + // when the provider engine is created, the selectedNetworkController will + // fetch the globally selected networkClient from the networkController and wrap + // it in a proxy which can be switched to use its own state if/when the origin + // is added to the `domains` state + const proxyClient = + this.selectedNetworkController.getProviderAndBlockTracker(origin); - // create subscription polyfill middleware + // We create the filter and subscription manager middleware now, but they will + // be inserted into the engine later. + const filterMiddleware = createFilterMiddleware(proxyClient); const subscriptionManager = createSubscriptionManager(proxyClient); subscriptionManager.events.on('notification', (message) => engine.emit('notification', message), ); - // append tabId to each request if it exists + // Append tabId to each request if it exists if (tabId) { engine.push(createTabIdMiddleware({ tabId })); } - // logging engine.push(createLoggerMiddleware({ origin })); engine.push(this.permissionLogController.createMiddleware()); @@ -5164,7 +5165,24 @@ export default class MetamaskController extends EventEmitter { }), ); - // onboarding + engine.push(createUnsupportedMethodMiddleware()); + + // Legacy RPC methods that need to be implemented _ahead of_ the permission + // middleware. + engine.push( + createLegacyMethodMiddleware({ + getAccounts: this.getPermittedAccounts.bind(this, origin), + }), + ); + + if (subjectType !== SubjectType.Internal) { + engine.push( + this.permissionController.createPermissionMiddleware({ + origin, + }), + ); + } + if (subjectType === SubjectType.Website) { engine.push( createOnboardingMiddleware({ @@ -5174,7 +5192,8 @@ export default class MetamaskController extends EventEmitter { ); } - // Unrestricted/permissionless RPC method implementations + // Unrestricted/permissionless RPC method implementations. + // They must nevertheless be placed _behind_ the permission middleware. engine.push( createMethodMiddleware({ origin, @@ -5418,17 +5437,8 @@ export default class MetamaskController extends EventEmitter { ); ///: END:ONLY_INCLUDE_IF - // filter and subscription polyfills engine.push(filterMiddleware); engine.push(subscriptionManager.middleware); - if (subjectType !== SubjectType.Internal) { - // permissions - engine.push( - this.permissionController.createPermissionMiddleware({ - origin, - }), - ); - } engine.push(this.metamaskMiddleware); diff --git a/app/scripts/metamask-controller.test.js b/app/scripts/metamask-controller.test.js index e412f76f9e23..419cde4f8045 100644 --- a/app/scripts/metamask-controller.test.js +++ b/app/scripts/metamask-controller.test.js @@ -89,6 +89,12 @@ const rpcMethodMiddlewareMock = { createMethodMiddleware: () => (_req, _res, next, _end) => { next(); }, + createLegacyMethodMiddleware: () => (_req, _res, next, _end) => { + next(); + }, + createUnsupportedMethodMiddleware: () => (_req, _res, next, _end) => { + next(); + }, }; jest.mock('./lib/rpc-method-middleware', () => rpcMethodMiddlewareMock); From 39a1bf172fb9112531c77f79488e45f9b49d494f Mon Sep 17 00:00:00 2001 From: Ariella Vu <20778143+digiwand@users.noreply.github.com> Date: Fri, 31 May 2024 17:41:07 +0900 Subject: [PATCH 16/43] feat: Update TransactionDetail Gas UI Styles (#24241) --- test/e2e/tests/transaction/send-eth.spec.js | 2 +- .../confirm-gas-display.test.js.snap | 42 ++++++------- .../confirm-legacy-gas-display.test.js.snap | 13 ++-- .../confirm-legacy-gas-display.js | 30 ++++------ .../confirm-page-container-content/index.scss | 12 ++++ .../contract-interaction.test.tsx.snap | 4 +- .../edit-gas-fee-icon/edit-gas-fee-icon.js | 17 ++++-- .../fee-details-component.js | 60 +++++++++++++++---- .../gas-details-item/gas-details-item.js | 45 +++++++++++--- .../components/gas-details-item/index.scss | 4 +- .../gas-timing/gas-timing.component.js | 19 +++--- .../multi-layer-fee-message.test.js.snap | 32 +++++----- .../multilayer-fee-message/index.scss | 4 +- .../multi-layer-fee-message.js | 1 + .../simulation-details/simulation-details.tsx | 5 +- .../transaction-detail-item/index.scss | 24 ++++---- .../transaction-detail-item.component.js | 43 ++++++------- .../transaction-detail-item.stories.js | 9 --- .../components/transaction-detail/index.scss | 8 +-- .../confirm-approve-content.component.js | 8 +++ .../confirm-send-ether.test.js.snap | 46 +++++++------- .../confirm-transaction-base.test.js.snap | 15 +++-- .../confirm-transaction-base.component.js | 44 +++++++++++--- .../send-content.component.test.js.snap | 33 +++++----- 24 files changed, 319 insertions(+), 201 deletions(-) diff --git a/test/e2e/tests/transaction/send-eth.spec.js b/test/e2e/tests/transaction/send-eth.spec.js index 96c1d46f59a3..8a7b9e44b328 100644 --- a/test/e2e/tests/transaction/send-eth.spec.js +++ b/test/e2e/tests/transaction/send-eth.spec.js @@ -337,7 +337,7 @@ describe('Send ETH', function () { await driver.assertElementNotPresent( { text: 'Data', tag: 'li' }, - { findElementGuard: { text: 'Estimated fee', tag: 'p' } }, // make sure the Dialog has loaded + { findElementGuard: { text: 'Estimated fee' } }, // make sure the Dialog has loaded ); await driver.clickElement('[data-testid="edit-gas-fee-icon"]'); diff --git a/ui/pages/confirmations/components/confirm-gas-display/__snapshots__/confirm-gas-display.test.js.snap b/ui/pages/confirmations/components/confirm-gas-display/__snapshots__/confirm-gas-display.test.js.snap index 99e089514026..b7fac195387f 100644 --- a/ui/pages/confirmations/components/confirm-gas-display/__snapshots__/confirm-gas-display.test.js.snap +++ b/ui/pages/confirmations/components/confirm-gas-display/__snapshots__/confirm-gas-display.test.js.snap @@ -10,25 +10,22 @@ exports[`ConfirmGasDisplay should match snapshot 1`] = ` class="transaction-detail-item__row" >

-

- Estimated fee -

+ Estimated fee
0.001197 @@ -53,7 +50,7 @@ exports[`ConfirmGasDisplay should match snapshot 1`] = `
0.001197 ETH @@ -82,15 +79,15 @@ exports[`ConfirmGasDisplay should match snapshot 1`] = ` >

Market

- +

Max fee: - +

0.00147 ETH diff --git a/ui/pages/confirmations/components/confirm-gas-display/confirm-legacy-gas-display/__snapshots__/confirm-legacy-gas-display.test.js.snap b/ui/pages/confirmations/components/confirm-gas-display/confirm-legacy-gas-display/__snapshots__/confirm-legacy-gas-display.test.js.snap index a380323e7974..b586f2d5cd95 100644 --- a/ui/pages/confirmations/components/confirm-gas-display/confirm-legacy-gas-display/__snapshots__/confirm-legacy-gas-display.test.js.snap +++ b/ui/pages/confirmations/components/confirm-gas-display/confirm-legacy-gas-display/__snapshots__/confirm-legacy-gas-display.test.js.snap @@ -9,7 +9,7 @@ exports[`ConfirmLegacyGasDisplay should match snapshot 1`] = ` class="transaction-detail-item__row" >
Estimated gas fee
0.000021 ETH @@ -83,7 +83,10 @@ exports[`ConfirmLegacyGasDisplay should match snapshot 1`] = `
-
+
diff --git a/ui/pages/confirmations/components/confirm-gas-display/confirm-legacy-gas-display/confirm-legacy-gas-display.js b/ui/pages/confirmations/components/confirm-gas-display/confirm-legacy-gas-display/confirm-legacy-gas-display.js index e8a4293a981a..34440be28693 100644 --- a/ui/pages/confirmations/components/confirm-gas-display/confirm-legacy-gas-display/confirm-legacy-gas-display.js +++ b/ui/pages/confirmations/components/confirm-gas-display/confirm-legacy-gas-display/confirm-legacy-gas-display.js @@ -18,16 +18,11 @@ import UserPreferencedCurrencyDisplay from '../../../../../components/app/user-p import InfoTooltip from '../../../../../components/ui/info-tooltip'; import LoadingHeartBeat from '../../../../../components/ui/loading-heartbeat'; import { - FONT_STYLE, TextVariant, TextColor, } from '../../../../../helpers/constants/design-system'; import { useDraftTransactionWithTxParams } from '../../../hooks/useDraftTransactionWithTxParams'; -import { - Icon, - IconName, - Text, -} from '../../../../../components/component-library'; +import { Icon, IconName } from '../../../../../components/component-library'; import { addHexes } from '../../../../../../shared/modules/conversion.utils'; const renderHeartBeatIfNotInTest = () => @@ -125,6 +120,14 @@ const ConfirmLegacyGasDisplay = ({ 'data-testid': dataTestId } = {}) => { type={PRIMARY} value={estimatedHexMinFeeTotal} hideLabel={!useNativeCurrencyAsPrimaryCurrency} + suffixProps={{ + color: TextColor.textDefault, + variant: TextVariant.bodyMdBold, + }} + textProps={{ + color: TextColor.textDefault, + variant: TextVariant.bodyMdBold, + }} numberOfDecimals={6} />
@@ -145,20 +148,7 @@ const ConfirmLegacyGasDisplay = ({ 'data-testid': dataTestId } = {}) => {
} - subTitle={ - <> - {dappSuggestedGasFees && ( - - {t('transactionDetailDappGasMoreInfo')} - - )} - - } + subTitle={dappSuggestedGasFees && t('transactionDetailDappGasMoreInfo')} /> ); }; diff --git a/ui/pages/confirmations/components/confirm-page-container/confirm-page-container-content/index.scss b/ui/pages/confirmations/components/confirm-page-container/confirm-page-container-content/index.scss index ad6660cdcc79..311293ca9bdc 100644 --- a/ui/pages/confirmations/components/confirm-page-container/confirm-page-container-content/index.scss +++ b/ui/pages/confirmations/components/confirm-page-container/confirm-page-container-content/index.scss @@ -55,6 +55,18 @@ } } + &__total-amount { + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + } + + &__total-value { + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + } + .page-container__footer { margin-top: auto; } diff --git a/ui/pages/confirmations/components/confirm/info/contract-interaction/__snapshots__/contract-interaction.test.tsx.snap b/ui/pages/confirmations/components/confirm/info/contract-interaction/__snapshots__/contract-interaction.test.tsx.snap index 2e9543b076d7..cf11076fc92e 100644 --- a/ui/pages/confirmations/components/confirm/info/contract-interaction/__snapshots__/contract-interaction.test.tsx.snap +++ b/ui/pages/confirmations/components/confirm/info/contract-interaction/__snapshots__/contract-interaction.test.tsx.snap @@ -8,7 +8,7 @@ exports[` renders component for contract interaction class="mm-box mm-box--margin-bottom-4 mm-box--background-color-background-default mm-box--rounded-md" >
renders component for contract interaction >
diff --git a/ui/pages/confirmations/components/edit-gas-fee-icon/edit-gas-fee-icon.js b/ui/pages/confirmations/components/edit-gas-fee-icon/edit-gas-fee-icon.js index 9d734bafd8d6..caf4b84db202 100644 --- a/ui/pages/confirmations/components/edit-gas-fee-icon/edit-gas-fee-icon.js +++ b/ui/pages/confirmations/components/edit-gas-fee-icon/edit-gas-fee-icon.js @@ -5,11 +5,15 @@ import { useGasFeeContext } from '../../../../contexts/gasFee'; import { useTransactionEventFragment } from '../../hooks/useTransactionEventFragment'; import { useTransactionModalContext } from '../../../../contexts/transaction-modal'; import { - BUTTON_VARIANT, + ButtonVariant, Button, IconName, } from '../../../../components/component-library'; -import { IconColor, Size } from '../../../../helpers/constants/design-system'; +import { + AlignItems, + IconColor, + Size, +} from '../../../../helpers/constants/design-system'; export default function EditGasFeeIcon({ userAcknowledgedGasMissing = false }) { const { hasSimulationError, estimateUsed, supportsEIP1559 } = @@ -31,11 +35,16 @@ export default function EditGasFeeIcon({ userAcknowledgedGasMissing = false }) { return (
@@ -64,15 +73,23 @@ export default function FeeDetailsComponent({ const renderTotalDetailValue = useCallback( (value) => { return ( -
+ -
+ ); }, [txData, useNativeCurrencyAsPrimaryCurrency], @@ -90,7 +107,7 @@ export default function FeeDetailsComponent({ > {!hideGasDetails && hasLayer1GasFee && ( setExpandFeeDetails(!expandFeeDetails)} > {t('feeDetails')} @@ -118,26 +136,42 @@ export default function FeeDetailsComponent({ {!hideGasDetails && expandFeeDetails && ( - + {hasLayer1GasFee && ( + {t('layer2Fees')} + + } detailText={ useCurrencyRateCheck && renderTotalDetailText(hexMinimumTransactionFee) } detailTotal={renderTotalDetailValue(hexMinimumTransactionFee)} - boldHeadings={false} /> )} {layer1GasFee && ( + {t('layer1Fees')} + + } detailText={ useCurrencyRateCheck && renderTotalDetailText(layer1GasFee) } detailTotal={renderTotalDetailValue(layer1GasFee)} - boldHeadings={false} /> )} {!hasLayer1GasFee && ( diff --git a/ui/pages/confirmations/components/gas-details-item/gas-details-item.js b/ui/pages/confirmations/components/gas-details-item/gas-details-item.js index 50309e1c27f3..b1d90054981b 100644 --- a/ui/pages/confirmations/components/gas-details-item/gas-details-item.js +++ b/ui/pages/confirmations/components/gas-details-item/gas-details-item.js @@ -12,6 +12,7 @@ import { import { IconColor, TextColor, + TextVariant, } from '../../../../helpers/constants/design-system'; import { PRIMARY, SECONDARY } from '../../../../helpers/constants/common'; import { PriorityLevels } from '../../../../../shared/constants/gas'; @@ -102,7 +103,7 @@ const GasDetailsItem = ({ if (supportsEIP1559 && isNetworkBusy) { return ( <> - {t('estimatedFee')} + {t('estimatedFee')}    ); } - return {t('estimatedFee')}; + return <>{t('estimatedFee')}; }; return ( +
{useCurrencyRateCheck && (
} + hasDetailTextInSeparateRow subText={ <> - - + + {(estimateUsed === PriorityLevels.high || estimateUsed === PriorityLevels.dappSuggestedHigh) && '⚠ '} {t('editGasSubTextFeeLabel')} - +
{t('editGasTooLow')} @@ -191,16 +192,16 @@ export default function GasTiming({ }; return ( - - + + {text} - + ~{time} diff --git a/ui/pages/confirmations/components/multilayer-fee-message/__snapshots__/multi-layer-fee-message.test.js.snap b/ui/pages/confirmations/components/multilayer-fee-message/__snapshots__/multi-layer-fee-message.test.js.snap index 0e65b25f132c..362926d71ce8 100644 --- a/ui/pages/confirmations/components/multilayer-fee-message/__snapshots__/multi-layer-fee-message.test.js.snap +++ b/ui/pages/confirmations/components/multilayer-fee-message/__snapshots__/multi-layer-fee-message.test.js.snap @@ -12,7 +12,7 @@ exports[`Multi layer fee message when balance and token price checker is disable class="transaction-detail-item__row" >
Layer 1 fees
@@ -20,7 +20,7 @@ exports[`Multi layer fee message when balance and token price checker is disable class="transaction-detail-item__detail-values" >
0.000000003000 ETH
@@ -30,7 +30,8 @@ exports[`Multi layer fee message when balance and token price checker is disable class="transaction-detail-item__row" >
Total
@@ -52,7 +53,7 @@ exports[`Multi layer fee message when balance and token price checker is disable class="transaction-detail-item__detail-values" >
0.001000024000 ETH
@@ -62,7 +63,8 @@ exports[`Multi layer fee message when balance and token price checker is disable class="transaction-detail-item__row" >
Amount + fees
@@ -87,7 +89,7 @@ exports[`Multi layer fee message when balance and token price checker is enabled class="transaction-detail-item__row" >
Layer 1 fees
@@ -109,7 +111,7 @@ exports[`Multi layer fee message when balance and token price checker is enabled
0.000000003000 ETH
@@ -119,7 +121,8 @@ exports[`Multi layer fee message when balance and token price checker is enabled class="transaction-detail-item__row" >
Total
@@ -155,7 +158,7 @@ exports[`Multi layer fee message when balance and token price checker is enabled
0.001000024000 ETH
@@ -165,7 +168,8 @@ exports[`Multi layer fee message when balance and token price checker is enabled class="transaction-detail-item__row" >
Amount + fees
diff --git a/ui/pages/confirmations/components/multilayer-fee-message/index.scss b/ui/pages/confirmations/components/multilayer-fee-message/index.scss index f4b684ecdc79..e15629533440 100644 --- a/ui/pages/confirmations/components/multilayer-fee-message/index.scss +++ b/ui/pages/confirmations/components/multilayer-fee-message/index.scss @@ -1,3 +1,5 @@ .multi-layer-fee-message { - padding-top: 24px; + &__transaction-detail-item__total-item { + padding-top: 8px; + } } diff --git a/ui/pages/confirmations/components/multilayer-fee-message/multi-layer-fee-message.js b/ui/pages/confirmations/components/multilayer-fee-message/multi-layer-fee-message.js index a7133771d338..bbbe8bc4e6ed 100644 --- a/ui/pages/confirmations/components/multilayer-fee-message/multi-layer-fee-message.js +++ b/ui/pages/confirmations/components/multilayer-fee-message/multi-layer-fee-message.js @@ -75,6 +75,7 @@ export default function MultilayerFeeMessage({ flexWidthValues={plainStyle} /> { {t('simulationDetailsTitle')} @@ -139,7 +138,7 @@ const SimulationDetailsLayout: React.FC<{ className="simulation-details-layout" display={Display.Flex} flexDirection={FlexDirection.Column} - borderRadius={BorderRadius.MD} + borderRadius={BorderRadius.LG} borderColor={ isTransactionsRedesign ? BorderColor.transparent diff --git a/ui/pages/confirmations/components/transaction-detail-item/index.scss b/ui/pages/confirmations/components/transaction-detail-item/index.scss index bf224c3beeb0..fc64d0e82c04 100644 --- a/ui/pages/confirmations/components/transaction-detail-item/index.scss +++ b/ui/pages/confirmations/components/transaction-detail-item/index.scss @@ -1,6 +1,5 @@ .transaction-detail-item { color: var(--color-text-alternative); - margin-bottom: 8px; &__row { display: flex; @@ -10,6 +9,8 @@ &-subText { display: flex; align-items: center; + flex-wrap: wrap; + justify-content: flex-end; .currency-display-component { margin-left: 4px; @@ -21,7 +22,8 @@ display: flex; flex-wrap: wrap; justify-content: flex-end; - width: 52%; + flex: 1 1 50%; + width: 50%; &--flex-width { width: auto; @@ -30,7 +32,7 @@ .info-tooltip { display: inline-block; - margin-inline-start: 4px; + margin-inline-start: 8px; path { fill: var(--color-icon-alternative); @@ -38,19 +40,17 @@ } .currency-display-component { - display: inline; - } - - &:first-of-type { - padding-top: 0; - } + justify-content: end; + min-width: 0; - &:first-child { - padding-top: 0; + &__text { + max-width: 100%; + overflow-wrap: break-word; + text-align: end; + } } &:last-child { - padding-bottom: 0; border-bottom: 0; } } diff --git a/ui/pages/confirmations/components/transaction-detail-item/transaction-detail-item.component.js b/ui/pages/confirmations/components/transaction-detail-item/transaction-detail-item.component.js index ede36a341051..891dd634503d 100644 --- a/ui/pages/confirmations/components/transaction-detail-item/transaction-detail-item.component.js +++ b/ui/pages/confirmations/components/transaction-detail-item/transaction-detail-item.component.js @@ -4,12 +4,11 @@ import classnames from 'classnames'; import { Color, - FontWeight, - AlignItems, TextAlign, TextVariant, Display, FlexWrap, + BlockSize, } from '../../../../helpers/constants/design-system'; import { Text } from '../../../../components/component-library'; @@ -17,23 +16,26 @@ export default function TransactionDetailItem({ 'data-testid': dataTestId, detailTitle = '', detailText, - detailTitleColor = Color.textDefault, detailTotal = '', + hasDetailTextInSeparateRow = false, subTitle = '', subText = '', - boldHeadings = true, flexWidthValues = false, + ...props }) { return ( -
+
{detailTitle} @@ -44,16 +46,20 @@ export default function TransactionDetailItem({ })} > {detailText && ( - + {detailText} )} {detailTotal} @@ -66,7 +72,8 @@ export default function TransactionDetailItem({ {subTitle} @@ -95,18 +102,18 @@ TransactionDetailItem.propTypes = { * Detail title text wrapped in Typography component. */ detailTitle: PropTypes.oneOfType([PropTypes.string, PropTypes.node]), - /** - * The color of the detailTitle text accepts all Typography color props - */ - detailTitleColor: PropTypes.string, /** * Text to show on the left of the detailTotal. Wrapped in Typography component. */ detailText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]), /** - * Total amount to show. Wrapped in Typography component. Will be bold if boldHeadings is true + * Total amount to show. Wrapped in Typography component. */ detailTotal: PropTypes.oneOfType([PropTypes.string, PropTypes.node]), + /** + * If true, separates detailText and detailTotal into separate rows + */ + hasDetailTextInSeparateRow: PropTypes.bool, /** * Subtitle text. Checks if React.isValidElement before displaying. Displays under detailTitle */ @@ -115,10 +122,6 @@ TransactionDetailItem.propTypes = { * Text to show under detailTotal. Wrapped in Typography component. */ subText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]), - /** - * Whether detailTotal is bold or not. Defaults to true - */ - boldHeadings: PropTypes.bool, /** * Changes width to auto for transaction-detail-item__detail-values */ diff --git a/ui/pages/confirmations/components/transaction-detail-item/transaction-detail-item.stories.js b/ui/pages/confirmations/components/transaction-detail-item/transaction-detail-item.stories.js index 557ce10f991e..d625dd81a0ae 100644 --- a/ui/pages/confirmations/components/transaction-detail-item/transaction-detail-item.stories.js +++ b/ui/pages/confirmations/components/transaction-detail-item/transaction-detail-item.stories.js @@ -1,8 +1,6 @@ import React from 'react'; import InfoTooltip from '../../../../components/ui/info-tooltip/info-tooltip'; -import { TextColor } from '../../../../helpers/constants/design-system'; - import { Icon, IconName } from '../../../../components/component-library'; import README from './README.mdx'; import TransactionDetailItem from '.'; @@ -17,12 +15,6 @@ export default { }, argTypes: { detailTitle: { control: 'object' }, - detailTitleColor: { - control: { - type: 'select', - }, - options: Object.values(TextColor), - }, detailText: { control: 'text' }, detailTotal: { control: 'text' }, subTitle: { control: 'object' }, @@ -52,7 +44,6 @@ DefaultStory.args = { detailText: '16565.30', detailTotal: '0.0089 ETH', subTitle: 'Likely in < 30 seconds', - boldHeadings: true, flexWidthValues: false, subText: ( diff --git a/ui/pages/confirmations/components/transaction-detail/index.scss b/ui/pages/confirmations/components/transaction-detail/index.scss index 83b6b23d0c7a..7ae30601ac0f 100644 --- a/ui/pages/confirmations/components/transaction-detail/index.scss +++ b/ui/pages/confirmations/components/transaction-detail/index.scss @@ -2,14 +2,14 @@ .transaction-detail { margin: 15px; - padding: 0 12px; + padding: 16px 12px; border-radius: 8px; border: 1px solid var(--color-border-default); position: relative; .transaction-detail-edit { text-align: end; - padding-top: 20px; + padding-bottom: 4px; button { @include design-system.H7; @@ -21,8 +21,4 @@ text-transform: uppercase; } } - - &-rows { - margin-top: 10px; - } } diff --git a/ui/pages/confirmations/confirm-approve/confirm-approve-content/confirm-approve-content.component.js b/ui/pages/confirmations/confirm-approve/confirm-approve-content/confirm-approve-content.component.js index a057069cc20d..546e0514397e 100644 --- a/ui/pages/confirmations/confirm-approve/confirm-approve-content/confirm-approve-content.component.js +++ b/ui/pages/confirmations/confirm-approve/confirm-approve-content/confirm-approve-content.component.js @@ -189,6 +189,14 @@ export default class ConfirmApproveContent extends Component { value={hexMinimumTransactionFee} hideLabel={!useNativeCurrencyAsPrimaryCurrency} numberOfDecimals={18} + suffixProps={{ + color: TextColor.textDefault, + variant: TextVariant.bodyMdBold, + }} + textProps={{ + color: TextColor.textDefault, + variant: TextVariant.bodyMdBold, + }} /> } detailText={ diff --git a/ui/pages/confirmations/confirm-send-ether/__snapshots__/confirm-send-ether.test.js.snap b/ui/pages/confirmations/confirm-send-ether/__snapshots__/confirm-send-ether.test.js.snap index fe38fbf65a72..d577a079e735 100644 --- a/ui/pages/confirmations/confirm-send-ether/__snapshots__/confirm-send-ether.test.js.snap +++ b/ui/pages/confirmations/confirm-send-ether/__snapshots__/confirm-send-ether.test.js.snap @@ -342,7 +342,7 @@ exports[`ConfirmSendEther should render correct information for for confirm send
@@ -442,25 +442,22 @@ exports[`ConfirmSendEther should render correct information for for confirm send class="transaction-detail-item__row" >
-

- Estimated fee -

+ Estimated fee
0.000021 @@ -485,7 +482,7 @@ exports[`ConfirmSendEther should render correct information for for confirm send
0.000021 ETH @@ -514,15 +511,15 @@ exports[`ConfirmSendEther should render correct information for for confirm send >

Unknown processing time

- +

Max fee: - +

0.00021 ETH diff --git a/ui/pages/confirmations/confirm-transaction-base/__snapshots__/confirm-transaction-base.test.js.snap b/ui/pages/confirmations/confirm-transaction-base/__snapshots__/confirm-transaction-base.test.js.snap index 94f02dd403af..0c3fc78907bb 100644 --- a/ui/pages/confirmations/confirm-transaction-base/__snapshots__/confirm-transaction-base.test.js.snap +++ b/ui/pages/confirmations/confirm-transaction-base/__snapshots__/confirm-transaction-base.test.js.snap @@ -307,7 +307,7 @@ exports[`Confirm Transaction Base should match snapshot 1`] = ` class="transaction-alerts" />
@@ -376,7 +376,7 @@ exports[`Confirm Transaction Base should match snapshot 1`] = ` class="transaction-detail-item__row" >
Estimated gas fee
0.000021 @@ -429,7 +429,10 @@ exports[`Confirm Transaction Base should match snapshot 1`] = `
-
+
diff --git a/ui/pages/confirmations/confirm-transaction-base/confirm-transaction-base.component.js b/ui/pages/confirmations/confirm-transaction-base/confirm-transaction-base.component.js index 48b298ba74cd..2ff257986f43 100644 --- a/ui/pages/confirmations/confirm-transaction-base/confirm-transaction-base.component.js +++ b/ui/pages/confirmations/confirm-transaction-base/confirm-transaction-base.component.js @@ -7,7 +7,10 @@ import { import ConfirmPageContainer from '../components/confirm-page-container'; import { isBalanceSufficient } from '../send/send.utils'; import { DEFAULT_ROUTE } from '../../../helpers/constants/routes'; - +import { + TextVariant, + TextColor, +} from '../../../helpers/constants/design-system'; import { INSUFFICIENT_FUNDS_ERROR_KEY, GAS_LIMIT_TOO_LOW_ERROR_KEY, @@ -16,6 +19,7 @@ import { IS_SIGNING_OR_SUBMITTING, USER_OP_CONTRACT_DEPLOY_ERROR_KEY, } from '../../../helpers/constants/error-keys'; + import UserPreferencedCurrencyDisplay from '../../../components/app/user-preferenced-currency-display'; import { PRIMARY, SECONDARY } from '../../../helpers/constants/common'; @@ -34,6 +38,7 @@ import NoteToTrader from '../../../components/institutional/note-to-trader'; import { TransactionModalContextProvider } from '../../../contexts/transaction-modal'; import TransactionDetail from '../components/transaction-detail/transaction-detail.component'; import TransactionDetailItem from '../components/transaction-detail-item/transaction-detail-item.component'; +import { Text } from '../../../components/component-library'; import LoadingHeartBeat from '../../../components/ui/loading-heartbeat'; import LedgerInstructionField from '../components/ledger-instruction-field'; import { @@ -409,7 +414,10 @@ export default class ConfirmTransactionBase extends Component { ); }; - const renderTotalMaxAmount = (useMaxFee) => { + const renderTotalMaxAmount = ({ + useMaxFee, + isBoldTextAndNotOverridden = false, + } = {}) => { if ( primaryTotalTextOverrideMaxAmount === undefined && secondaryTotalTextOverride === undefined @@ -429,9 +437,15 @@ export default class ConfirmTransactionBase extends Component { const primaryTotal = useMaxFee ? primaryTotalTextOverrideMaxAmount : primaryTotalTextOverride; - return useNativeCurrencyAsPrimaryCurrency + const totalMaxAmount = useNativeCurrencyAsPrimaryCurrency ? primaryTotal : secondaryTotalTextOverride; + + return isBoldTextAndNotOverridden ? ( + {totalMaxAmount} + ) : ( + totalMaxAmount + ); }; const renderTotalDetailText = (value) => { @@ -447,6 +461,14 @@ export default class ConfirmTransactionBase extends Component { type={SECONDARY} key="total-detail-text" value={value} + suffixProps={{ + color: TextColor.textDefault, + variant: TextVariant.bodyMdBold, + }} + textProps={{ + color: TextColor.textDefault, + variant: TextVariant.bodyMdBold, + }} hideLabel={Boolean(useNativeCurrencyAsPrimaryCurrency)} />
@@ -548,17 +570,25 @@ export default class ConfirmTransactionBase extends Component { useCurrencyRateCheck && renderTotalDetailText(getTotalAmount()) } - detailTotal={renderTotalMaxAmount(false)} + detailTotal={renderTotalMaxAmount({ + useMaxFee: false, + isBoldTextAndNotOverridden: true, + })} subTitle={t('transactionDetailGasTotalSubtitle')} subText={
- + {t('editGasSubTextAmountLabel')} - {' '} - {renderTotalMaxAmount(true)} + {' '} + {renderTotalMaxAmount({ + useMaxFee: true, + })}
} />, diff --git a/ui/pages/confirmations/send/send-content/__snapshots__/send-content.component.test.js.snap b/ui/pages/confirmations/send/send-content/__snapshots__/send-content.component.test.js.snap index cb49ebaeec94..b336c0c7362f 100644 --- a/ui/pages/confirmations/send/send-content/__snapshots__/send-content.component.test.js.snap +++ b/ui/pages/confirmations/send/send-content/__snapshots__/send-content.component.test.js.snap @@ -175,19 +175,15 @@ exports[`SendContent Component render should match snapshot 1`] = ` class="transaction-detail-item__row" >
-

- Estimated fee -

+ Estimated fee
0.0000315 ETH @@ -216,15 +212,15 @@ exports[`SendContent Component render should match snapshot 1`] = ` >

Unknown processing time

- +

Max fee: - +

0.0000315 ETH From e2aa6ea7d33739c00954a7497d35f03a3ecafb25 Mon Sep 17 00:00:00 2001 From: Danica Shen Date: Fri, 31 May 2024 11:29:31 +0100 Subject: [PATCH 17/43] fix: fix flaky snap update e2e test in MV3 (#24908) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** Captured in workflow of running e2e tests in chrome mv3 build, there's an unstable test `Test Snap update can install an old and then updated version`: https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/83920/workflows/40fd32b8-474a-4cbc-b504-e1371d264ae0/jobs/3011910/tests The error message is ``` TimeoutError: Waiting for element to be located By(xpath, //*[contains(text(), "OK")]) Wait timed out after 10202ms ``` It is difficult to reproduce locally, but it is a clear fix from [artifact](https://circleci-tasks-prod.s3.us-east-1.amazonaws.com/storage/artifacts/fb281712-ea41-446f-b28f-c0bea18842cc/fa51b9ed-ac64-4a60-b898-4415df7dd9b4/15/test-artifacts/chrome/Test%20Snap%20update%20can%20install%20an%20old%20and%20then%20updated%20version/test-failure-screenshot.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAQVFQINEONI2BX3OH%2F20240530%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240530T144723Z&X-Amz-Expires=60&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEKf%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIQCMhZ6r%2BEjJKQ%2Bs%2FjCR30%2B0djGU62uzddnaxQdSffBE%2BQIga33Re7bJvsJPnXtHN1BnRVHHGwFPuNskEpNOu7k9KMsqqwIIMBADGgwwNDU0NjY4MDY1NTYiDDZc2RAlXE9MJXqF7iqIAuUT2Rd9C4YT4bgdhiktvfp%2FvC%2B8sXI9g3aOKiUiqea5NggL8qMVh83qg3k7P%2FonRbdQ1In6%2FDekrhdHWDQhR2Nn18WAPh0bE7eDFxOwWmZBb3QZihROjfGNRiDl30JxeDlsZHmAhivR9uoLtsElX71ekFeDwh2yb6tjEHtXPBcK%2BRDwp59uENNBr0sdyg6W3zCifsgyZ2n98rOwLMFgvN9nUBM2sRvBUTCUeEcFYi03GaExPbyNkN7RAf1vYU1nxVK%2BFaoVbohXuG8UQwBIYMmhOPbMPWV602lmsIF95yAZVqTpAbwodSpzdKK6x%2Bbic3aGIaf3relHVLYBBvvF4bfRHu%2BDxjoWozDkneKyBjqdAX77znbdL7JRyBZHlEwX2M9s9bMgWyqLRgPiFRjaD%2FNL53YXjFt1vh0iADljGL%2BH%2BhewHPqQmWFw%2FRC2h7HK1A7EW4NVpagbIV2oXa5yGl8SCOc9EY1BNcE4bqZSVs0KcBr6UjE7ZcR%2BR2%2BTPCrUfvzBzJGXnEGYCFGwvyOgByLakVbdnu3%2BkydvhZZ0ke51nWS%2F6jYX824xWIB2sQ8%3D&X-Amz-SignedHeaders=host&x-id=GetObject&X-Amz-Signature=b0e177b4e6bc158018e386c28e34f4ff13a795db7fac55c75224af70b4d7b0f7). What can be done is to wait until confirm button is clicked and then disappears, which will bring us to next final success page, where the test is looking for "ok" button. Few improvements are also added to make sure the elements are found, clicked, and next frame is rendered before we try to click any button. 截屏2024-05-30 15 47 46 [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24908?quickstart=1) ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** ### **Before** ### **After** ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. Co-authored-by: Harika Jetpoluru <153644847+hjetpoluru@users.noreply.github.com> Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com> --- test/e2e/snaps/test-snap-update.spec.js | 44 ++++++++++--------------- 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/test/e2e/snaps/test-snap-update.spec.js b/test/e2e/snaps/test-snap-update.spec.js index 881e0fea3d92..6f5500d593a4 100644 --- a/test/e2e/snaps/test-snap-update.spec.js +++ b/test/e2e/snaps/test-snap-update.spec.js @@ -43,6 +43,7 @@ describe('Test Snap update', function () { await driver.waitForSelector({ text: 'Confirm' }); + // scroll to bottom await driver.clickElementSafe('[data-testid="snap-install-scroll"]'); await driver.clickElement({ @@ -51,22 +52,18 @@ describe('Test Snap update', function () { }); // wait for permissions popover, click checkboxes and confirm - await driver.delay(500); + const permissionsConfirmButtonSelector = + '[data-testid="snap-install-warning-modal-confirm"]'; + await driver.waitForSelector(permissionsConfirmButtonSelector); await driver.clickElement('.mm-checkbox__input'); - await driver.waitForSelector( - '[data-testid="snap-install-warning-modal-confirm"]', - ); - await driver.clickElement( - '[data-testid="snap-install-warning-modal-confirm"]', - ); - // deal with OK button - await driver.waitForSelector({ text: 'OK' }); + await driver.findClickableElement(permissionsConfirmButtonSelector); + await driver.clickElementAndWaitToDisappear( + permissionsConfirmButtonSelector, + ); - await driver.clickElement({ - text: 'OK', - tag: 'button', - }); + // finish the permission with OK button + await driver.clickElement('[data-testid="page-container-footer-next"]'); // navigate to test snap page await driver.switchToWindowWithTitle(WINDOW_TITLES.TestSnaps); @@ -85,22 +82,17 @@ describe('Test Snap update', function () { // switch to metamask extension and update await switchToNotificationWindow(driver, 2); + await driver.waitForSelector({ text: 'Update request' }); - await driver.waitForSelector({ text: 'Update' }); - + // Scroll to bottom of dialog await driver.clickElementSafe('[data-testid="snap-update-scroll"]'); - - await driver.clickElement({ - text: 'Confirm', - tag: 'button', - }); - + // Click confirm button + await driver.clickElementAndWaitToDisappear( + '[data-testid="page-container-footer-next"]', + ); + // When it is confirmed, click okay button await driver.waitForSelector({ text: 'OK' }); - - await driver.clickElement({ - text: 'OK', - tag: 'button', - }); + await driver.clickElement('[data-testid="page-container-footer-next"]'); // navigate to test snap page await driver.switchToWindowWithTitle(WINDOW_TITLES.TestSnaps); From 62bd68d7a4fa1e975b258c51ef5a29b4e1b179a5 Mon Sep 17 00:00:00 2001 From: seaona <54408225+seaona@users.noreply.github.com> Date: Fri, 31 May 2024 14:21:28 +0200 Subject: [PATCH 18/43] fix: flaky test `Test Snap update via snaps component -can install an old and then update via the snaps component` (#24939) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** Pr fix for `Test Snap update via snaps component -can install an old and then update via the snaps component`. The problem is that whenever we click Confirm, there is a confirmation popup that we also need to confirm before seeing the Ok button to proceed. ![Screenshot from 2024-05-31 13-22-29](https://github.com/MetaMask/metamask-extension/assets/54408225/24e0b40e-3208-45df-8f4e-691d5b1a347c) [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24939?quickstart=1) ## **Related issues** Fixes: ## **Manual testing steps** 1. Check ci 2. Run test locally multiple times `yarn test:e2e:single test/e2e/snaps/test-snap-update-component.spec.js --browser=chrome --leave-running --retryUntilFailure --retries=10` ## **Screenshots/Recordings** ### **Before** https://github.com/MetaMask/metamask-extension/assets/54408225/52a7ce0f-4ff9-499d-a341-8ed44949ce6b ### **After** https://github.com/MetaMask/metamask-extension/assets/54408225/9f991c34-e89b-45a4-bf83-2e0eca65e01f ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- test/e2e/snaps/test-snap-update-component.spec.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/e2e/snaps/test-snap-update-component.spec.js b/test/e2e/snaps/test-snap-update-component.spec.js index aafa637788b9..e471c76ad6e8 100644 --- a/test/e2e/snaps/test-snap-update-component.spec.js +++ b/test/e2e/snaps/test-snap-update-component.spec.js @@ -131,6 +131,11 @@ describe('Test Snap update via snaps component', function () { tag: 'button', }); + await driver.clickElement('.mm-checkbox__input'); + await driver.clickElement( + '[data-testid="snap-install-warning-modal-confirm"]', + ); + await driver.waitForSelector({ text: 'OK' }); await driver.clickElement({ From 5f223572532117adf2bb738336533690629a8f9c Mon Sep 17 00:00:00 2001 From: seaona <54408225+seaona@users.noreply.github.com> Date: Fri, 31 May 2024 16:21:22 +0200 Subject: [PATCH 19/43] fix: flaky test `Create token, approve token and approve token without gas approves an already created token and displays the token approval data @no-mmi` (#24937) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** This PR fixes the flaky test `Create token, approve token and approve token without gas approves an already created token and displays the token approval data @no-mmi`. The problem seems to be that we are first going to the test dapp, and right after, going to the Extension full view, and we try to click on a the token tab, but the element cannot be located: `TimeoutError: Waiting for element to be located By(css selector, [data-testid="home__asset-tab"])` After looking into the code, we see that there is no reason on why are we going to the test dapp in the first place, since we are not using the test dapp in this test. The solution is to remove the first steps of going to the test dapp, this removes any point of flakiness in the window switch, as there is no window switch needed anymore. https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/84207/workflows/b324f068-a209-4c13-9ee4-74ce464966e5/jobs/3027291/parallel-runs/8 [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24937?quickstart=1) ## **Related issues** Fixes: ## **Manual testing steps** 1. Check ci 2. Run the test multiple times `yarn test:e2e:single test/e2e/tests/tokens/custom-token-add-approve.spec.js --browser=chrome --leave-running --retryUntilFailure --retries=10` ## **Screenshots/Recordings** ![Screenshot from 2024-05-31 11-35-47](https://github.com/MetaMask/metamask-extension/assets/54408225/672622ba-447d-42fa-bda0-f04520255322) ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com> --- .../tests/tokens/custom-token-add-approve.spec.js | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/test/e2e/tests/tokens/custom-token-add-approve.spec.js b/test/e2e/tests/tokens/custom-token-add-approve.spec.js index 41c4fe1e758d..da70984eb606 100644 --- a/test/e2e/tests/tokens/custom-token-add-approve.spec.js +++ b/test/e2e/tests/tokens/custom-token-add-approve.spec.js @@ -18,10 +18,7 @@ describe('Create token, approve token and approve token without gas', function ( it('imports and renders the balance for the new token', async function () { await withFixtures( { - dapp: true, - fixtures: new FixtureBuilder() - .withPermissionControllerConnectedToTestDapp() - .build(), + fixtures: new FixtureBuilder().build(), ganacheOptions: defaultGanacheOptions, smartContract, title: this.test.fullTitle(), @@ -32,14 +29,7 @@ describe('Create token, approve token and approve token without gas', function ( ); await unlockWallet(driver); - // create token - await openDapp(driver, contractAddress); - - const windowHandles = await driver.getAllWindowHandles(); - const extension = windowHandles[0]; - // imports custom token from extension - await driver.switchToWindow(extension); await driver.clickElement(`[data-testid="home__asset-tab"]`); await clickNestedButton(driver, 'Tokens'); @@ -52,14 +42,12 @@ describe('Create token, approve token and approve token without gas', function ( await driver.waitForSelector( '[data-testid="import-tokens-modal-custom-decimals"]', ); - await driver.delay(2000); await driver.clickElement({ text: 'Next', tag: 'button', }); - await driver.delay(2000); await driver.clickElement( '[data-testid="import-tokens-modal-import-button"]', ); From b560fdc9942cf5cc674eae92d927a6e1ef0e004e Mon Sep 17 00:00:00 2001 From: salimtb Date: Fri, 31 May 2024 19:19:01 +0200 Subject: [PATCH 20/43] feat: add token autodetect modal (#24281) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** Add in recommended auto token enablement button in new Extension app update, once we enable auto token detection by default for new users, for existing users, we need to get them to turn on auto token detection as well. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24281?quickstart=1) ## **Related issues** Fixes: ## **Manual testing steps** 1. you are an existing user and you have token autodetection off 2. once the upgrade will be done , you should see the modal below right after what's new pop up 3. if you have it of and you decide to disable , you should see the pop up once ## **Screenshots/Recordings** ### **Before** No Modal was displayed ### **After** Existing users with toggle off https://github.com/MetaMask/metamask-extension/assets/26223211/2ff49f38-e652-4287-9b0a-a7092b8a1812 Users with toggle on and want to disable it ( the modal should be displayed once ) https://github.com/MetaMask/metamask-extension/assets/26223211/4438312f-cbb3-47f1-bc80-d1158b73e66a ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- app/_locales/en/messages.json | 18 +++ app/images/wallet-alpha.png | Bin 0 -> 22880 bytes app/scripts/controllers/app-metadata.ts | 12 ++ app/scripts/controllers/preferences.js | 1 + app/scripts/lib/backup.test.js | 1 + app/scripts/lib/setupSentry.js | 2 + app/scripts/metamask-controller.js | 7 + shared/constants/metametrics.ts | 2 + shared/modules/selectors/index.test.ts | 9 ++ shared/modules/selectors/index.ts | 1 + shared/modules/selectors/token-auto-detect.ts | 32 ++++ test/e2e/default-fixture.js | 1 + test/e2e/fixture-builder.js | 1 + test/e2e/restore/MetaMaskUserData.json | 3 +- ...rs-after-init-opt-in-background-state.json | 6 +- .../errors-after-init-opt-in-ui-state.json | 4 +- ...s-before-init-opt-in-background-state.json | 3 +- .../errors-before-init-opt-in-ui-state.json | 3 +- test/jest/mock-store.js | 1 + ui/components/app/app-components.scss | 1 + .../auto-detect-token-modal.test.stories.js | 48 ++++++ .../auto-detect-token-modal.test.tsx | 75 ++++++++++ .../auto-detect-token-modal.tsx | 138 ++++++++++++++++++ .../app/auto-detect-token/index.scss | 10 ++ .../asset-picker/asset-picker.tsx | 1 + ui/ducks/metamask/metamask.js | 9 ++ ui/pages/home/home.component.js | 24 +++ ui/pages/home/home.container.js | 14 +- ui/store/actionConstants.ts | 3 + ui/store/actions.ts | 25 ++++ 30 files changed, 448 insertions(+), 7 deletions(-) create mode 100644 app/images/wallet-alpha.png create mode 100644 shared/modules/selectors/token-auto-detect.ts create mode 100644 ui/components/app/auto-detect-token/auto-detect-token-modal.test.stories.js create mode 100644 ui/components/app/auto-detect-token/auto-detect-token-modal.test.tsx create mode 100644 ui/components/app/auto-detect-token/auto-detect-token-modal.tsx create mode 100644 ui/components/app/auto-detect-token/index.scss diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json index b99c3976b8c9..b2754b85e4f2 100644 --- a/app/_locales/en/messages.json +++ b/app/_locales/en/messages.json @@ -405,6 +405,9 @@ "allow": { "message": "Allow" }, + "allowMetaMaskToDetectTokens": { + "message": "Allow MetaMask to detect and display your tokens with autodetection. You’ll be able to:" + }, "allowMmiToConnectToCustodian": { "message": "This will allow MMI to connect to $1 to import your accounts." }, @@ -1529,6 +1532,9 @@ "displayNftMediaDescription": { "message": "Displaying NFT media and data exposes your IP address to OpenSea or other third parties. This can allow attackers to associate your IP address with your Ethereum address. NFT autodetection relies on this setting, and won't be available when this is turned off." }, + "diveStraightIntoUsingYourTokens": { + "message": "Dive straight into using your tokens" + }, "doNotShare": { "message": "Do not share this with anyone" }, @@ -1657,6 +1663,9 @@ "editSpeedUpEditGasFeeModalTitle": { "message": "Edit speed up gas fee" }, + "effortlesslyNavigateYourDigitalAssets": { + "message": "Effortlessly navigate your digital assets" + }, "enable": { "message": "Enable" }, @@ -1673,6 +1682,9 @@ "message": "enable $1", "description": "$1 is a token symbol, e.g. ETH" }, + "enableTokenAutoDetection": { + "message": "Enable token autodetection" + }, "enabled": { "message": "Enabled" }, @@ -2161,6 +2173,9 @@ "imToken": { "message": "imToken" }, + "immediateAccessToYourTokens": { + "message": "Immediate access to your tokens" + }, "import": { "message": "Import", "description": "Button to import an account from a selected file" @@ -3094,6 +3109,9 @@ "notEnoughGas": { "message": "Not enough gas" }, + "notRightNow": { + "message": "Not right now" + }, "note": { "message": "Note" }, diff --git a/app/images/wallet-alpha.png b/app/images/wallet-alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..bc88bcfb5f2d66b656753e8ac9a7271a1e65e5a2 GIT binary patch literal 22880 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 literal 0 HcmV?d00001 diff --git a/app/scripts/controllers/app-metadata.ts b/app/scripts/controllers/app-metadata.ts index 0d745730d0c0..79d346c8412d 100644 --- a/app/scripts/controllers/app-metadata.ts +++ b/app/scripts/controllers/app-metadata.ts @@ -9,6 +9,7 @@ export type AppMetadataControllerState = { previousAppVersion: string; previousMigrationVersion: number; currentMigrationVersion: number; + showTokenAutodetectModalOnUpgrade: boolean | null; }; /** @@ -25,6 +26,7 @@ const defaultState: AppMetadataControllerState = { previousAppVersion: '', previousMigrationVersion: 0, currentMigrationVersion: 0, + showTokenAutodetectModalOnUpgrade: false, }; /** @@ -76,6 +78,7 @@ export default class AppMetadataController extends EventEmitter { this.store.updateState({ currentAppVersion: maybeNewAppVersion, previousAppVersion: oldCurrentAppVersion, + showTokenAutodetectModalOnUpgrade: null, }); } } @@ -96,4 +99,13 @@ export default class AppMetadataController extends EventEmitter { }); } } + + /** + * Setter for the `showTokenAutodetectModalOnUpgrade` property + * + * @param val - Indicates the value of showTokenAutodetectModalOnUpgrade + */ + setShowTokenAutodetectModalOnUpgrade(val: boolean): void { + this.store.updateState({ showTokenAutodetectModalOnUpgrade: val }); + } } diff --git a/app/scripts/controllers/preferences.js b/app/scripts/controllers/preferences.js index 635eb5d4fc77..a8b6b7f1a755 100644 --- a/app/scripts/controllers/preferences.js +++ b/app/scripts/controllers/preferences.js @@ -97,6 +97,7 @@ export default class PreferencesController { petnamesEnabled: true, redesignedConfirmationsEnabled: true, featureNotificationsEnabled: false, + showTokenAutodetectModal: null, }, // ENS decentralized website resolution ipfsGateway: IPFS_DEFAULT_GATEWAY_URL, diff --git a/app/scripts/lib/backup.test.js b/app/scripts/lib/backup.test.js index 81a7cd8c0093..b9f209a9a408 100644 --- a/app/scripts/lib/backup.test.js +++ b/app/scripts/lib/backup.test.js @@ -163,6 +163,7 @@ const jsonData = JSON.stringify({ showTestNetworks: true, smartTransactionsOptInStatus: false, useNativeCurrencyAsPrimaryCurrency: true, + showTokenAutodetectModal: false, }, ipfsGateway: 'dweb.link', ledgerTransportType: 'webhid', diff --git a/app/scripts/lib/setupSentry.js b/app/scripts/lib/setupSentry.js index d0cdef3d6480..8cc5881d08d1 100644 --- a/app/scripts/lib/setupSentry.js +++ b/app/scripts/lib/setupSentry.js @@ -79,6 +79,7 @@ export const SENTRY_BACKGROUND_STATE = { currentMigrationVersion: true, previousAppVersion: true, previousMigrationVersion: true, + showTokenAutodetectModalOnUpgrade: false, }, ApprovalController: { approvalFlows: false, @@ -240,6 +241,7 @@ export const SENTRY_BACKGROUND_STATE = { smartTransactionsOptInStatus: true, useNativeCurrencyAsPrimaryCurrency: true, petnamesEnabled: true, + showTokenAutodetectModal: false, }, useExternalServices: false, selectedAddress: false, diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 5d91f0f03ae1..52289a11182c 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -2961,6 +2961,7 @@ export default class MetamaskController extends EventEmitter { networkController, announcementController, onboardingController, + appMetadataController, permissionController, preferencesController, swapsController, @@ -3394,6 +3395,12 @@ export default class MetamaskController extends EventEmitter { this.encryptionPublicKeyController, ), + // AppMetadataController + setShowTokenAutodetectModalOnUpgrade: + appMetadataController.setShowTokenAutodetectModalOnUpgrade.bind( + appMetadataController, + ), + // onboarding controller setSeedPhraseBackedUp: onboardingController.setSeedPhraseBackedUp.bind(onboardingController), diff --git a/shared/constants/metametrics.ts b/shared/constants/metametrics.ts index 9a9f8e7b9b13..e3f5dd805145 100644 --- a/shared/constants/metametrics.ts +++ b/shared/constants/metametrics.ts @@ -712,6 +712,8 @@ export enum MetaMetricsEventName { SnapAccountTransactionFinalizeRedirectGoToSiteClicked = 'Snap Account Transaction Finalize Redirect "Go To Site" Clicked', SnapAccountTransactionFinalizeRedirectSnapUrlClicked = 'Snap Account Transaction Finalize Redirect "Snap URL" Clicked', SnapAccountTransactionFinalizeClosed = 'Snap Account Transaction Finalize Closed', + TokenAutoDetectionEnableModal = 'Token Autodetection Enabled from modal', + TokenAutoDetectionDisableModal = 'Token Autodetection Disabled from modal', ///: END:ONLY_INCLUDE_IF TurnOffProfileSyncing = 'Turn Off Profile Syncing', TurnOnProfileSyncing = 'Turn On Profile Syncing', diff --git a/shared/modules/selectors/index.test.ts b/shared/modules/selectors/index.test.ts index b2174eadcc8a..6f1298952d76 100644 --- a/shared/modules/selectors/index.test.ts +++ b/shared/modules/selectors/index.test.ts @@ -13,6 +13,7 @@ describe('Selectors', () => { metamask: { preferences: { smartTransactionsOptInStatus: true, + showTokenAutodetectModal: true, }, internalAccounts: { selectedAccount: 'account1', @@ -68,6 +69,14 @@ describe('Selectors', () => { }); }); + describe('getShowTokenAutodetectModal', () => { + it('should return show autodetection token modal status', () => { + const state = createMockState(); + const result = getSmartTransactionsOptInStatus(state); + expect(result).toBe(true); + }); + }); + describe('getCurrentChainSupportsSmartTransactions', () => { it('should return true if the chain ID is allowed for smart transactions', () => { const state = createMockState(); diff --git a/shared/modules/selectors/index.ts b/shared/modules/selectors/index.ts index 79362360877f..51c2d67f930c 100644 --- a/shared/modules/selectors/index.ts +++ b/shared/modules/selectors/index.ts @@ -1,2 +1,3 @@ export * from './smart-transactions'; export * from './feature-flags'; +export * from './token-auto-detect'; diff --git a/shared/modules/selectors/token-auto-detect.ts b/shared/modules/selectors/token-auto-detect.ts new file mode 100644 index 000000000000..a6680a47af8d --- /dev/null +++ b/shared/modules/selectors/token-auto-detect.ts @@ -0,0 +1,32 @@ +import { getUseTokenDetection } from '../../../ui/selectors/selectors'; + +type TokenAutoDetectionMetaMaskState = { + metamask: { + preferences: { + showTokenAutodetectModal: boolean | null; + }; + showTokenAutodetectModalOnUpgrade: boolean | null; + }; +}; + +export const getShowTokenAutodetectModal = ( + state: TokenAutoDetectionMetaMaskState, +): boolean | null => { + return state.metamask.preferences?.showTokenAutodetectModal; +}; + +export const getIsShowTokenAutodetectModal = ( + state: TokenAutoDetectionMetaMaskState, +) => { + // Upgrade case + if (state.metamask.showTokenAutodetectModalOnUpgrade === null) { + return ( + !getUseTokenDetection(state) && + state.metamask.showTokenAutodetectModalOnUpgrade === null + ); + } + + return ( + !getUseTokenDetection(state) && getShowTokenAutodetectModal(state) === null + ); +}; diff --git a/test/e2e/default-fixture.js b/test/e2e/default-fixture.js index eb6c6ea7f4a4..74b526bb532c 100644 --- a/test/e2e/default-fixture.js +++ b/test/e2e/default-fixture.js @@ -190,6 +190,7 @@ function defaultFixture(inputChainId = CHAIN_IDS.LOCALHOST) { smartTransactionsOptInStatus: false, useNativeCurrencyAsPrimaryCurrency: true, petnamesEnabled: true, + showTokenAutodetectModal: false, }, selectedAddress: '0x5cfe73b6021e818b776b421b1c4db2474086a7e1', theme: 'light', diff --git a/test/e2e/fixture-builder.js b/test/e2e/fixture-builder.js index e52fed2cfae4..04f5dd5e06b5 100644 --- a/test/e2e/fixture-builder.js +++ b/test/e2e/fixture-builder.js @@ -87,6 +87,7 @@ function onboardingFixture() { smartTransactionsOptInStatus: false, useNativeCurrencyAsPrimaryCurrency: true, petnamesEnabled: true, + showTokenAutodetectModal: false, }, useExternalServices: true, theme: 'light', diff --git a/test/e2e/restore/MetaMaskUserData.json b/test/e2e/restore/MetaMaskUserData.json index 0f400e8a34e7..380efd5c5205 100644 --- a/test/e2e/restore/MetaMaskUserData.json +++ b/test/e2e/restore/MetaMaskUserData.json @@ -37,7 +37,8 @@ "showFiatInTestnets": false, "showTestNetworks": false, "smartTransactionsOptInStatus": false, - "useNativeCurrencyAsPrimaryCurrency": true + "useNativeCurrencyAsPrimaryCurrency": true, + "showTokenAutodetectModal": "boolean" }, "theme": "light", "useBlockie": false, diff --git a/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-background-state.json b/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-background-state.json index f76c758dc98d..5570ea4b92ba 100644 --- a/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-background-state.json +++ b/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-background-state.json @@ -18,7 +18,8 @@ "currentAppVersion": "string", "previousAppVersion": "", "previousMigrationVersion": 0, - "currentMigrationVersion": "number" + "currentMigrationVersion": "number", + "showTokenAutodetectModalOnUpgrade": "object" }, "AppStateController": { "connectedStatusPopoverHasBeenShown": true, @@ -187,7 +188,8 @@ "showTestNetworks": false, "smartTransactionsOptInStatus": false, "useNativeCurrencyAsPrimaryCurrency": true, - "petnamesEnabled": true + "petnamesEnabled": true, + "showTokenAutodetectModal": "boolean" }, "ipfsGateway": "string", "isIpfsGatewayEnabled": "boolean", diff --git a/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-ui-state.json b/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-ui-state.json index 416bc7fc6fc8..ac852521854d 100644 --- a/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-ui-state.json +++ b/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-ui-state.json @@ -33,7 +33,8 @@ "showTestNetworks": false, "smartTransactionsOptInStatus": false, "useNativeCurrencyAsPrimaryCurrency": true, - "petnamesEnabled": true + "petnamesEnabled": true, + "showTokenAutodetectModal": "boolean" }, "firstTimeFlowType": "import", "completedOnboarding": true, @@ -91,6 +92,7 @@ "previousMigrationVersion": 0, "currentMigrationVersion": "number", "selectedNetworkClientId": "string", + "showTokenAutodetectModalOnUpgrade": "object", "networksMetadata": { "networkConfigurationId": { "EIPS": { "1559": false }, diff --git a/test/e2e/tests/metrics/state-snapshots/errors-before-init-opt-in-background-state.json b/test/e2e/tests/metrics/state-snapshots/errors-before-init-opt-in-background-state.json index f8f209648ccd..707752ddef05 100644 --- a/test/e2e/tests/metrics/state-snapshots/errors-before-init-opt-in-background-state.json +++ b/test/e2e/tests/metrics/state-snapshots/errors-before-init-opt-in-background-state.json @@ -112,7 +112,8 @@ "showTestNetworks": false, "smartTransactionsOptInStatus": false, "useNativeCurrencyAsPrimaryCurrency": true, - "petnamesEnabled": true + "petnamesEnabled": true, + "showTokenAutodetectModal": "boolean" }, "selectedAddress": "string", "theme": "light", diff --git a/test/e2e/tests/metrics/state-snapshots/errors-before-init-opt-in-ui-state.json b/test/e2e/tests/metrics/state-snapshots/errors-before-init-opt-in-ui-state.json index 472e9ea517fb..cccbca085552 100644 --- a/test/e2e/tests/metrics/state-snapshots/errors-before-init-opt-in-ui-state.json +++ b/test/e2e/tests/metrics/state-snapshots/errors-before-init-opt-in-ui-state.json @@ -112,7 +112,8 @@ "showTestNetworks": false, "smartTransactionsOptInStatus": false, "useNativeCurrencyAsPrimaryCurrency": true, - "petnamesEnabled": true + "petnamesEnabled": true, + "showTokenAutodetectModal": "boolean" }, "selectedAddress": "string", "theme": "light", diff --git a/test/jest/mock-store.js b/test/jest/mock-store.js index 0719c6f1eea8..234a1316b94c 100644 --- a/test/jest/mock-store.js +++ b/test/jest/mock-store.js @@ -151,6 +151,7 @@ export const createSwapsMockStore = () => { preferences: { showFiatInTestnets: true, smartTransactionsOptInStatus: true, + showTokenAutodetectModal: false, }, transactions: [ { diff --git a/ui/components/app/app-components.scss b/ui/components/app/app-components.scss index 4623b27cfd91..e516ff1fd8f6 100644 --- a/ui/components/app/app-components.scss +++ b/ui/components/app/app-components.scss @@ -45,6 +45,7 @@ @import 'recovery-phrase-reminder/index'; @import 'step-progress-bar/index.scss'; @import 'selected-account/index'; +@import 'auto-detect-token/index'; @import 'smart-transactions/index'; @import 'srp-input/srp-input'; @import 'snaps/snap-privacy-warning/index'; diff --git a/ui/components/app/auto-detect-token/auto-detect-token-modal.test.stories.js b/ui/components/app/auto-detect-token/auto-detect-token-modal.test.stories.js new file mode 100644 index 000000000000..f9164697d402 --- /dev/null +++ b/ui/components/app/auto-detect-token/auto-detect-token-modal.test.stories.js @@ -0,0 +1,48 @@ +import React from 'react'; +import { Provider } from 'react-redux'; +import testData from '../../../../.storybook/test-data'; +import configureStore from '../../../store/store'; +import AutoDetectTokenModal from './auto-detect-token-modal'; + +const customData = { + ...testData, + metamask: { + ...testData.metamask, + currentCurrency: 'USD', + intlLocale: 'en-US', + }, +}; +const customStore = configureStore(customData); + +export default { + title: 'Components/App/AutoDetectTokenModal', + component: AutoDetectTokenModal, + decorators: [ + (Story) => ( + + + + ), + ], + argTypes: { + isOpen: { + control: 'boolean', + }, + onClose: { action: 'onClose' }, + }, + args: { + isOpen: true, + }, +}; + +const Template = (args) => ; + +export const ModalOpen = Template.bind({}); +ModalOpen.args = { + isOpen: true, +}; + +export const ModalClosed = Template.bind({}); +ModalClosed.args = { + isOpen: false, +}; diff --git a/ui/components/app/auto-detect-token/auto-detect-token-modal.test.tsx b/ui/components/app/auto-detect-token/auto-detect-token-modal.test.tsx new file mode 100644 index 000000000000..95f2dc8127a5 --- /dev/null +++ b/ui/components/app/auto-detect-token/auto-detect-token-modal.test.tsx @@ -0,0 +1,75 @@ +import React from 'react'; +import { screen, fireEvent } from '@testing-library/react'; +import '@testing-library/jest-dom'; +import { useDispatch } from 'react-redux'; +import configureMockStore from 'redux-mock-store'; +import mockState from '../../../../test/data/mock-state.json'; +import { renderWithProvider } from '../../../../test/lib/render-helpers'; +import AutoDetectTokenModal from './auto-detect-token-modal'; + +// Mock store setup +const mockStore = configureMockStore([])(mockState); + +jest.mock('react-redux', () => ({ + ...jest.requireActual('react-redux'), + useDispatch: jest.fn(), +})); + +describe('AutoDetectTokenModal', () => { + const useDispatchMock = jest.mocked(useDispatch); + + beforeEach(() => { + jest.resetAllMocks(); + useDispatchMock.mockReturnValue(jest.fn()); + }); + + it('renders the modal when isOpen is true', () => { + renderWithProvider( + ({})} + setShowTokenAutodetectModalOnUpgrade={() => ({})} + />, + mockStore, + ); + + expect(screen.getByText('Enable token autodetection')).toBeInTheDocument(); + expect(screen.getByText('Allow')).toBeInTheDocument(); + expect(screen.getByText('Not right now')).toBeInTheDocument(); + }); + + it('calls onClose with true when Allow button is clicked', () => { + useDispatchMock.mockReturnValue(jest.fn().mockResolvedValue({})); + const handleClose = jest.fn(); + renderWithProvider( + ({})} + />, + mockStore, + ); + + fireEvent.click(screen.getByText('Allow')); + expect(handleClose).toHaveBeenCalledWith(true); + }); + + it('calls onClose with false when Not right now button is clicked', () => { + useDispatchMock.mockReturnValue(jest.fn().mockResolvedValue({})); + const handleClose = jest.fn(); + const handleSetShowTokenAutodetectModalOnUpgrade = jest.fn(); + renderWithProvider( + , + mockStore, + ); + + fireEvent.click(screen.getByText('Not right now')); + expect(handleClose).toHaveBeenCalledWith(false); + }); +}); diff --git a/ui/components/app/auto-detect-token/auto-detect-token-modal.tsx b/ui/components/app/auto-detect-token/auto-detect-token-modal.tsx new file mode 100644 index 000000000000..27ea2bfcaf70 --- /dev/null +++ b/ui/components/app/auto-detect-token/auto-detect-token-modal.tsx @@ -0,0 +1,138 @@ +import React, { useCallback, useContext } from 'react'; + +import { useDispatch, useSelector } from 'react-redux'; +import { + Modal, + ModalContent, + ModalOverlay, + ModalHeader, + Box, + Text, + ModalBody, + ModalFooter, +} from '../../component-library'; +import { useI18nContext } from '../../../hooks/useI18nContext'; +import { + AlignItems, + BorderRadius, + Display, + FlexDirection, + JustifyContent, + TextAlign, + TextVariant, +} from '../../../helpers/constants/design-system'; +import { setUseTokenDetection } from '../../../store/actions'; +import { MetaMetricsContext } from '../../../contexts/metametrics'; +import { + MetaMetricsEventCategory, + MetaMetricsEventName, +} from '../../../../shared/constants/metametrics'; +import { getProviderConfig } from '../../../ducks/metamask/metamask'; +import { getCurrentLocale } from '../../../ducks/locale/locale'; +import { ORIGIN_METAMASK } from '../../../../shared/constants/app'; + +type AutoDetectTokenModalProps = { + isOpen: boolean; + onClose: (arg: boolean) => void; + setShowTokenAutodetectModalOnUpgrade: (arg: boolean) => void; +}; +function AutoDetectTokenModal({ + isOpen, + onClose, + setShowTokenAutodetectModalOnUpgrade, +}: AutoDetectTokenModalProps) { + const t = useI18nContext(); + const dispatch = useDispatch(); + const trackEvent = useContext(MetaMetricsContext); + const { chainId } = useSelector(getProviderConfig); + + const handleTokenAutoDetection = useCallback( + (val) => { + trackEvent({ + event: val + ? MetaMetricsEventName.TokenAutoDetectionEnableModal + : MetaMetricsEventName.TokenAutoDetectionDisableModal, + category: MetaMetricsEventCategory.Navigation, + properties: { + chain_id: chainId, + locale: getCurrentLocale, + referrer: ORIGIN_METAMASK, + }, + }); + dispatch(setUseTokenDetection(val)); + onClose(val); + setShowTokenAutodetectModalOnUpgrade(val); + }, + [dispatch], + ); + + return ( + onClose(true)} + isClosedOnOutsideClick={false} + isClosedOnEscapeKey={false} + className="mm-modal__custom-scrollbar auto-detect-in-modal" + autoFocus={false} + > + + + + {t('enableTokenAutoDetection')} + + + + + + + {t('allowMetaMaskToDetectTokens')} + + + {t('immediateAccessToYourTokens')} + + + {t('effortlesslyNavigateYourDigitalAssets')} + + + {t('diveStraightIntoUsingYourTokens')} + + + + + handleTokenAutoDetection(true)} + submitButtonProps={{ + children: t('allow'), + block: true, + }} + onCancel={() => handleTokenAutoDetection(false)} + cancelButtonProps={{ + children: t('notRightNow'), + block: true, + }} + /> + + + ); +} + +export default AutoDetectTokenModal; diff --git a/ui/components/app/auto-detect-token/index.scss b/ui/components/app/auto-detect-token/index.scss new file mode 100644 index 000000000000..5714d957f0f9 --- /dev/null +++ b/ui/components/app/auto-detect-token/index.scss @@ -0,0 +1,10 @@ +.auto-detect-in-modal { + &__benefit { + flex: 1; + } + + &__dialog { + background-position: -80px 16px; + background-repeat: no-repeat; + } +} diff --git a/ui/components/multichain/asset-picker-amount/asset-picker/asset-picker.tsx b/ui/components/multichain/asset-picker-amount/asset-picker/asset-picker.tsx index 1d39f37b2bd6..4c7be3c9db44 100644 --- a/ui/components/multichain/asset-picker-amount/asset-picker/asset-picker.tsx +++ b/ui/components/multichain/asset-picker-amount/asset-picker/asset-picker.tsx @@ -111,6 +111,7 @@ export function AssetPicker({ sendingAsset?.details?.symbol || nativeCurrencySymbol } /> + @@ -27,12 +28,13 @@ exports[`ConfirmFooter should match snapshot with transaction confirmation 1`] = > diff --git a/ui/pages/confirmations/components/confirm/footer/footer.test.tsx b/ui/pages/confirmations/components/confirm/footer/footer.test.tsx index 55e4f17d1b14..c0216d45e66d 100644 --- a/ui/pages/confirmations/components/confirm/footer/footer.test.tsx +++ b/ui/pages/confirmations/components/confirm/footer/footer.test.tsx @@ -212,7 +212,7 @@ describe('ConfirmFooter', () => { it('sets the alert modal visible when the review alerts button is clicked', () => { const { getByTestId } = render(stateWithAlertsMock); - fireEvent.click(getByTestId('confirm-footer-confirm-button')); + fireEvent.click(getByTestId('confirm-footer-button')); expect(getByTestId('confirm-alert-modal-submit-button')).toBeDefined(); }); }); diff --git a/ui/pages/confirmations/components/confirm/footer/footer.tsx b/ui/pages/confirmations/components/confirm/footer/footer.tsx index c83d52f762bf..ee4a58634a92 100644 --- a/ui/pages/confirmations/components/confirm/footer/footer.tsx +++ b/ui/pages/confirmations/components/confirm/footer/footer.tsx @@ -67,7 +67,7 @@ const ConfirmButton = ({ )} @@ -1139,12 +1140,13 @@ exports[`Confirm should match snapshot for typed sign signature 1`] = ` > From 86bb66e9cb452b9749939d0d6d0c4266d6885503 Mon Sep 17 00:00:00 2001 From: Ariella Vu <20778143+digiwand@users.noreply.github.com> Date: Mon, 3 Jun 2024 19:30:50 +0900 Subject: [PATCH 28/43] refactor: rn isEthGasPrice -> isEthGasPriceFetched (#24826) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** small PR to rename const name isEthGasPrice -> isEthGasPriceFetched [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24826?quickstart=1) ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** ### **Before** ### **After** ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- .../confirm-transaction-base.component.js | 10 +++++----- .../confirm-transaction-base.container.js | 4 ++-- .../send/send-content/send-content.component.js | 6 +++--- .../send/send-content/send-content.stories.js | 6 +++--- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/ui/pages/confirmations/confirm-transaction-base/confirm-transaction-base.component.js b/ui/pages/confirmations/confirm-transaction-base/confirm-transaction-base.component.js index 2ff257986f43..e7f99f6f3b36 100644 --- a/ui/pages/confirmations/confirm-transaction-base/confirm-transaction-base.component.js +++ b/ui/pages/confirmations/confirm-transaction-base/confirm-transaction-base.component.js @@ -134,7 +134,7 @@ export default class ConfirmTransactionBase extends Component { hideSenderToRecipient: PropTypes.bool, showAccountInHeader: PropTypes.bool, mostRecentOverviewPage: PropTypes.string.isRequired, - isEthGasPrice: PropTypes.bool, + isEthGasPriceFetched: PropTypes.bool, noGasPrice: PropTypes.bool, setDefaultHomeActiveTabName: PropTypes.func, primaryTotalTextOverride: PropTypes.string, @@ -203,7 +203,7 @@ export default class ConfirmTransactionBase extends Component { customNonceValue, toAddress, tryReverseResolveAddress, - isEthGasPrice, + isEthGasPriceFetched, setDefaultHomeActiveTabName, hexMaximumTransactionFee, useMaxValue, @@ -213,7 +213,7 @@ export default class ConfirmTransactionBase extends Component { nextNonce: prevNextNonce, toAddress: prevToAddress, transactionStatus: prevTxStatus, - isEthGasPrice: prevIsEthGasPrice, + isEthGasPriceFetched: prevIsEthGasPriceFetched, hexMaximumTransactionFee: prevHexMaximumTransactionFee, } = prevProps; const statusUpdated = transactionStatus !== prevTxStatus; @@ -249,8 +249,8 @@ export default class ConfirmTransactionBase extends Component { tryReverseResolveAddress(toAddress); } - if (isEthGasPrice !== prevIsEthGasPrice) { - if (isEthGasPrice) { + if (isEthGasPriceFetched !== prevIsEthGasPriceFetched) { + if (isEthGasPriceFetched) { this.setState({ ethGasPriceWarning: this.context.t(ETH_GAS_PRICE_FETCH_WARNING_KEY), }); diff --git a/ui/pages/confirmations/confirm-transaction-base/confirm-transaction-base.container.js b/ui/pages/confirmations/confirm-transaction-base/confirm-transaction-base.container.js index 5e381e2db35f..3734b231dad5 100644 --- a/ui/pages/confirmations/confirm-transaction-base/confirm-transaction-base.container.js +++ b/ui/pages/confirmations/confirm-transaction-base/confirm-transaction-base.container.js @@ -238,7 +238,7 @@ const mapStateToProps = (state, ownProps) => { ); customNonceValue = getCustomNonceValue(state); - const isEthGasPrice = getIsEthGasPriceFetched(state); + const isEthGasPriceFetched = getIsEthGasPriceFetched(state); const noGasPrice = !supportsEIP1559 && getNoGasPriceFetched(state); const { useNativeCurrencyAsPrimaryCurrency } = getPreferences(state); const gasFeeIsCustom = @@ -313,7 +313,7 @@ const mapStateToProps = (state, ownProps) => { mostRecentOverviewPage: getMostRecentOverviewPage(state), isMainnet, selectedNetworkClientId, - isEthGasPrice, + isEthGasPriceFetched, noGasPrice, supportsEIP1559, gasIsLoading: isGasEstimatesLoading || gasLoadingAnimationIsShowing, diff --git a/ui/pages/confirmations/send/send-content/send-content.component.js b/ui/pages/confirmations/send/send-content/send-content.component.js index 97340b404db3..a14a87bab9b2 100644 --- a/ui/pages/confirmations/send/send-content/send-content.component.js +++ b/ui/pages/confirmations/send/send-content/send-content.component.js @@ -26,7 +26,7 @@ export default class SendContent extends Component { warning: PropTypes.string, error: PropTypes.string, gasIsExcessive: PropTypes.bool.isRequired, - isEthGasPrice: PropTypes.bool, + isEthGasPriceFetched: PropTypes.bool, noGasPrice: PropTypes.bool, networkOrAccountNotSupports1559: PropTypes.bool, asset: PropTypes.object, @@ -42,7 +42,7 @@ export default class SendContent extends Component { warning, error, gasIsExcessive, - isEthGasPrice, + isEthGasPriceFetched, noGasPrice, networkOrAccountNotSupports1559, asset, @@ -70,7 +70,7 @@ export default class SendContent extends Component {
{assetError ? this.renderError(assetError) : null} - {isEthGasPrice + {isEthGasPriceFetched ? this.renderWarning(ETH_GAS_PRICE_FETCH_WARNING_KEY) : null} {error ? this.renderError(error) : null} diff --git a/ui/pages/confirmations/send/send-content/send-content.stories.js b/ui/pages/confirmations/send/send-content/send-content.stories.js index 92192ab181fb..7cc4d447ae9c 100644 --- a/ui/pages/confirmations/send/send-content/send-content.stories.js +++ b/ui/pages/confirmations/send/send-content/send-content.stories.js @@ -56,7 +56,7 @@ export default { noGasPrice: { control: 'boolean', }, - isEthGasPrice: { + isEthGasPriceFetched: { control: 'boolean', }, @@ -103,7 +103,7 @@ DefaultStory.args = { showHexData: false, isOwnedAccount: true, noGasPrice: false, - isEthGasPrice: false, + isEthGasPriceFetched: false, gasIsExcessive: false, error: 'connecting', warning: 'connecting', @@ -139,7 +139,7 @@ NftStory.args = { showHexData: false, isOwnedAccount: true, noGasPrice: false, - isEthGasPrice: false, + isEthGasPriceFetched: false, gasIsExcessive: false, error: 'connecting', warning: 'connecting', From 44f8cb2a2386da8ff570f18ef99c9a377571742d Mon Sep 17 00:00:00 2001 From: Matteo Scurati Date: Mon, 3 Jun 2024 14:44:39 +0200 Subject: [PATCH 29/43] chore: update CODEOWNERS to include specific notifications paths (#24909) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** This PR updates the `CODEOWNERS` file to ensure that all notification-related paths are correctly covered by the Notifications team. The changes include adding specific paths for Redux and Context related to notifications. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24909?quickstart=1) ## **Related issues** Fixes: ## **Manual testing steps** ## **Screenshots/Recordings** ### **Before** ### **After** ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com> --- .github/CODEOWNERS | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 38aaafbd1422..8e51116e4343 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -64,3 +64,18 @@ ui/selectors/institutional @MetaMask/mmi # Design System to own code for the component-library folder # Slack handle: @metamask-design-system-team | Slack channel: #metamask-design-system ui/components/component-library @MetaMask/design-system-engineers + +# The Notifications team is responsible for code related to notifications, +# authentication, and profile syncing inside the Extension. + +# Controllers +**/controllers/authentication/** @MetaMask/notifications +**/controllers/metamask-notifications/** @MetaMask/notifications +**/controllers/push-platform-notifications/** @MetaMask/notifications +**/controllers/user-storage/** @MetaMask/notifications + +# UI +**/metamask-notifications/** @MetaMask/notifications +**/multichain/notification*/** @MetaMask/notifications +**/pages/notification*/** @MetaMask/notifications +**/utils/notification.util.ts @MetaMask/notifications \ No newline at end of file From cf417bb27df74701163fdddea9afcdc36eee4e51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B3nio=20Regadas?= Date: Mon, 3 Jun 2024 15:45:42 +0100 Subject: [PATCH 30/43] chore: adds to allowlist AccountsController:getSelectedAccount and other (#24992) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** Adds to the MMI actions allow list: ``` AccountsController:getSelectedAccount AccountsController:setSelectedAccount ``` ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** ### **Before** ### **After** ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- app/scripts/metamask-controller.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 4cd768b47dcf..a16e3c4943ed 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -1842,6 +1842,8 @@ export default class MetamaskController extends EventEmitter { 'AccountsController:getAccountByAddress', 'AccountsController:setAccountName', 'AccountsController:listAccounts', + 'AccountsController:getSelectedAccount', + 'AccountsController:setSelectedAccount', ], }); From 895d1f1a9d8ff83b9409ed54cab88f4222056d19 Mon Sep 17 00:00:00 2001 From: Monte Lai Date: Tue, 4 Jun 2024 00:15:08 +0800 Subject: [PATCH 31/43] chore(deps): bump accounts-controller to ^14.0.0 (#24130) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** This PR bumps the AccountsController to 14.0.0, @metamask/keyring-api to ^6.3.1, @metamask/eth-snap-keyring to ^4.2.1 and @metamask/user-operation-controller to ^10.0.0 ## **Related issues** Fixes https://github.com/MetaMask/accounts-planning/issues/465 ## **Manual testing steps** ## **Screenshots/Recordings** ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: MetaMask Bot Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com> Co-authored-by: Michele Esposito Co-authored-by: Gustavo Antunes <17601467+gantunesr@users.noreply.github.com> --- .storybook/test-data.js | 29 +- .../controllers/mmi-controller.test.ts | 15 +- .../permissions/specifications.test.js | 23 +- app/scripts/lib/backup.test.js | 12 +- app/scripts/metamask-controller.test.js | 5 +- app/scripts/migrations/105.test.ts | 12 +- app/scripts/migrations/105.ts | 16 +- app/scripts/migrations/119.test.ts | 125 +++++ app/scripts/migrations/119.ts | 62 +++ app/scripts/migrations/index.js | 1 + lavamoat/browserify/beta/policy.json | 26 +- lavamoat/browserify/desktop/policy.json | 26 +- lavamoat/browserify/flask/policy.json | 26 +- lavamoat/browserify/main/policy.json | 26 +- lavamoat/browserify/mmi/policy.json | 26 +- package.json | 8 +- shared/constants/eth-methods.ts | 16 + test/e2e/accounts/common.ts | 8 +- test/jest/mock-store.js | 13 +- test/jest/mocks.js | 1 + .../account-list-item-component.test.js | 7 +- .../account-list-item.stories.js | 5 +- .../connected-accounts-list.stories.js | 5 +- .../confirm-remove-account.stories.js | 12 +- .../confirm-remove-account.test.js | 7 +- ui/components/app/nfts-tab/nfts-tab.test.js | 5 +- .../transaction-status-label.test.js | 11 +- .../app/wallet-overview/eth-overview.test.js | 5 +- .../wallet-overview/token-overview.test.js | 5 +- ...ive-replacement-token-notification.test.js | 5 +- .../wrong-network-notification.test.js | 5 +- .../account-list-menu.test.js | 5 +- .../connected-site-menu.test.js | 7 +- .../multichain/pages/send/send.test.js | 5 +- ui/ducks/metamask/metamask.test.js | 27 +- ui/ducks/send/send.test.js | 40 +- ui/hooks/useAddressDetails.test.js | 7 +- ui/hooks/useAssetDetails.test.js | 5 +- .../confirm-add-suggested-token.test.js | 5 +- .../confirm-decrypt-message.component.test.js | 5 +- ...rm-encryption-public-key.component.test.js | 5 +- .../edit-gas-fee-popover.test.js | 5 +- .../signature-request-original.test.js | 7 +- .../signature-request-data.test.js | 7 +- ...signature-request-header.component.test.js | 5 +- .../signature-request.test.js | 16 +- .../confirm-signature-request/index.test.js | 5 +- .../confirm-transaction-base.test.js | 5 +- .../confirmations/hooks/useBalance.test.js | 5 +- ui/pages/confirmations/send/send.test.js | 5 +- .../token-allowance/token-allowance.test.js | 7 +- .../connected-accounts.stories.js | 7 +- .../token-details/token-details-page.test.js | 5 +- ui/selectors/institutional/selectors.test.js | 31 +- ...nonce-sorted-transactions-selector.test.js | 5 +- ui/selectors/permissions.test.js | 33 +- ui/selectors/selectors.test.js | 3 +- ui/selectors/transactions.test.js | 14 +- ui/store/actions.test.js | 9 +- yarn.lock | 507 ++++-------------- 60 files changed, 635 insertions(+), 705 deletions(-) create mode 100644 app/scripts/migrations/119.test.ts create mode 100644 app/scripts/migrations/119.ts create mode 100644 shared/constants/eth-methods.ts diff --git a/.storybook/test-data.js b/.storybook/test-data.js index 2a4df90e4c3a..dcf4adb624e1 100644 --- a/.storybook/test-data.js +++ b/.storybook/test-data.js @@ -2,11 +2,12 @@ import { draftTransactionInitialState } from '../ui/ducks/send'; import { KeyringType } from '../shared/constants/keyring'; import { NetworkType } from '@metamask/controller-utils'; import { NetworkStatus } from '@metamask/network-controller'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { CHAIN_IDS } from '../shared/constants/network'; import { copyable, divider, heading, panel, text } from '@metamask/snaps-sdk'; import { getJsxElementFromComponent } from '@metamask/snaps-utils'; import { FirstTimeFlowType } from '../shared/constants/onboarding'; +import { ETH_EOA_METHODS } from '../shared/constants/eth-methods'; const state = { invalidCustomNetwork: { @@ -282,13 +283,15 @@ const state = { }, interfaces: { 'test-interface': { - content: getJsxElementFromComponent(panel([ - heading('Foo bar'), - text('Description'), - divider(), - text('More text'), - copyable('Text you can copy'), - ])), + content: getJsxElementFromComponent( + panel([ + heading('Foo bar'), + text('Description'), + divider(), + text('More text'), + copyable('Text you can copy'), + ]), + ), state: {}, snapId: 'local:http://localhost:8080/', }, @@ -324,7 +327,7 @@ const state = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '07c2cfec-36c9-46c4-8115-3836d3ac9047': { @@ -337,7 +340,7 @@ const state = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '15e69915-2a1a-4019-93b3-916e11fd432f': { @@ -350,7 +353,7 @@ const state = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '784225f4-d30b-4e77-a900-c8bbce735b88': { @@ -363,7 +366,7 @@ const state = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, 'b990b846-b384-4508-93d9-587461f1123e': { @@ -376,7 +379,7 @@ const state = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/app/scripts/controllers/mmi-controller.test.ts b/app/scripts/controllers/mmi-controller.test.ts index 50c7ef197fdf..e30e9a44aa00 100644 --- a/app/scripts/controllers/mmi-controller.test.ts +++ b/app/scripts/controllers/mmi-controller.test.ts @@ -10,7 +10,7 @@ import { SignatureController } from '@metamask/signature-controller'; import { NetworkController } from '@metamask/network-controller'; import { AccountsController } from '@metamask/accounts-controller'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { CustodyController } from '@metamask-institutional/custody-controller'; import { @@ -30,6 +30,7 @@ jest.mock('@metamask-institutional/portfolio-dashboard', () => ({ })); import * as PortfolioDashboard from '@metamask-institutional/portfolio-dashboard'; +import { ETH_EOA_METHODS } from '../../../shared/constants/eth-methods'; jest.mock('./permissions', () => ({ getPermissionBackgroundApiMethods: jest.fn().mockImplementation(() => { @@ -49,7 +50,7 @@ const mockAccount = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }; const mockAccount2 = { @@ -62,7 +63,7 @@ const mockAccount2 = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }; @@ -349,7 +350,7 @@ describe('MMIController', function () { }); describe('getAllCustodianAccountsWithToken', () => { - it('should return custodian accounts with tokens', async () => { }); + it('should return custodian accounts with tokens', async () => {}); }); describe('handleMmiDashboardData', () => { @@ -438,7 +439,11 @@ describe('MMIController', function () { getCustodianAccounts: mockCustodialKeyring, }); - await mmiController.getCustodianAccounts('token', 'neptune-custody', 'ECA3'); + await mmiController.getCustodianAccounts( + 'token', + 'neptune-custody', + 'ECA3', + ); expect(selectedAccountSpy).toHaveBeenCalledTimes(0); diff --git a/app/scripts/controllers/permissions/specifications.test.js b/app/scripts/controllers/permissions/specifications.test.js index 94312fa57881..9d07a90c0735 100644 --- a/app/scripts/controllers/permissions/specifications.test.js +++ b/app/scripts/controllers/permissions/specifications.test.js @@ -1,9 +1,10 @@ -import { EthMethod, EthAccountType } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { SnapCaveatType } from '@metamask/snaps-rpc-methods'; import { CaveatTypes, RestrictedMethods, } from '../../../../shared/constants/permissions'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import { getCaveatSpecifications, getPermissionSpecifications, @@ -149,7 +150,7 @@ describe('PermissionController specifications', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, { @@ -163,7 +164,7 @@ describe('PermissionController specifications', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, ]; @@ -290,7 +291,7 @@ describe('PermissionController specifications', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, { @@ -303,7 +304,7 @@ describe('PermissionController specifications', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, { @@ -317,7 +318,7 @@ describe('PermissionController specifications', () => { lastSelected: 3, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, { @@ -331,7 +332,7 @@ describe('PermissionController specifications', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, ]; @@ -367,7 +368,7 @@ describe('PermissionController specifications', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, { @@ -381,7 +382,7 @@ describe('PermissionController specifications', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, ]; @@ -415,7 +416,7 @@ describe('PermissionController specifications', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, { @@ -429,7 +430,7 @@ describe('PermissionController specifications', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, ]; diff --git a/app/scripts/lib/backup.test.js b/app/scripts/lib/backup.test.js index b9f209a9a408..9f994ec52d55 100644 --- a/app/scripts/lib/backup.test.js +++ b/app/scripts/lib/backup.test.js @@ -1,7 +1,8 @@ /** * @jest-environment node */ -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; +import { ETH_EOA_METHODS } from '../../../shared/constants/eth-methods'; import Backup from './backup'; function getMockPreferencesController() { @@ -185,14 +186,7 @@ const jsonData = JSON.stringify({ lastSelected: 1693289751176, }, options: {}, - methods: [ - EthMethod.PersonalSign, - EthMethod.Sign, - EthMethod.SignTransaction, - EthMethod.SignTypedDataV1, - EthMethod.SignTypedDataV3, - EthMethod.SignTypedDataV4, - ], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/app/scripts/metamask-controller.test.js b/app/scripts/metamask-controller.test.js index 7014834587ef..22c24fcb7707 100644 --- a/app/scripts/metamask-controller.test.js +++ b/app/scripts/metamask-controller.test.js @@ -14,7 +14,7 @@ import { METAMASK_STALELIST_FILE, METAMASK_HOTLIST_DIFF_FILE, } from '@metamask/phishing-controller'; -import { EthMethod, EthAccountType } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { NetworkType } from '@metamask/controller-utils'; import { ControllerMessenger } from '@metamask/base-controller'; import { LoggingController, LogType } from '@metamask/logging-controller'; @@ -28,6 +28,7 @@ import { LOG_EVENT } from '../../shared/constants/logs'; import mockEncryptor from '../../test/lib/mock-encryptor'; import * as tokenUtils from '../../shared/lib/token-util'; import { flushPromises } from '../../test/lib/timer-helpers'; +import { ETH_EOA_METHODS } from '../../shared/constants/eth-methods'; import { deferredPromise } from './lib/util'; import MetaMaskController from './metamask-controller'; @@ -141,7 +142,7 @@ const TEST_INTERNAL_ACCOUNT = { lastSelected: 0, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }; diff --git a/app/scripts/migrations/105.test.ts b/app/scripts/migrations/105.test.ts index a57c422c8992..944606043075 100644 --- a/app/scripts/migrations/105.test.ts +++ b/app/scripts/migrations/105.test.ts @@ -1,6 +1,7 @@ import { v4 as uuid } from 'uuid'; import { sha256FromString } from 'ethereumjs-util'; -import { EthMethod, InternalAccount } from '@metamask/keyring-api'; +import { InternalAccount } from '@metamask/keyring-api'; +import { ETH_EOA_METHODS } from '../../../shared/constants/eth-methods'; import { migrate } from './105'; const MOCK_ADDRESS = '0x0'; @@ -73,14 +74,7 @@ function expectedInternalAccount( lastSelected: lastSelected ? expect.any(Number) : undefined, }, options: {}, - methods: [ - EthMethod.Sign, - EthMethod.PersonalSign, - EthMethod.SignTransaction, - EthMethod.SignTypedDataV1, - EthMethod.SignTypedDataV3, - EthMethod.SignTypedDataV4, - ], + methods: ETH_EOA_METHODS, type: 'eip155:eoa', }; } diff --git a/app/scripts/migrations/105.ts b/app/scripts/migrations/105.ts index 8640d9c6c645..d4f5f2985215 100644 --- a/app/scripts/migrations/105.ts +++ b/app/scripts/migrations/105.ts @@ -1,11 +1,8 @@ -import { - EthAccountType, - InternalAccount, - EthMethod, -} from '@metamask/keyring-api'; +import { EthAccountType, InternalAccount } from '@metamask/keyring-api'; import { sha256FromString } from 'ethereumjs-util'; import { v4 as uuid } from 'uuid'; import { cloneDeep } from 'lodash'; +import { ETH_EOA_METHODS } from '../../../shared/constants/eth-methods'; type VersionedData = { meta: { version: number }; @@ -107,14 +104,7 @@ function createInternalAccountsForAccountsController( type: 'HD Key Tree', }, }, - methods: [ - EthMethod.Sign, - EthMethod.PersonalSign, - EthMethod.SignTransaction, - EthMethod.SignTypedDataV1, - EthMethod.SignTypedDataV3, - EthMethod.SignTypedDataV4, - ], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }; }); diff --git a/app/scripts/migrations/119.test.ts b/app/scripts/migrations/119.test.ts new file mode 100644 index 000000000000..c37a1e5919ae --- /dev/null +++ b/app/scripts/migrations/119.test.ts @@ -0,0 +1,125 @@ +import { createMockInternalAccount } from '../../../test/jest/mocks'; +import { migrate, version } from './119'; + +const mockTimeStamp = 1716972230; +jest.useFakeTimers().setSystemTime(new Date(mockTimeStamp)); + +const oldVersion = 118; +const newVersion = version; + +describe('migration #119', () => { + it('updates the version metadata', async () => { + const oldStorage = { + meta: { version: oldVersion }, + data: {}, + }; + + const newStorage = await migrate(oldStorage); + expect(newStorage.meta).toStrictEqual({ version }); + }); + + it('returns the default state if the AccountsController state is undefined', async () => { + const defaultState = { + internalAccounts: { + accounts: {}, + selectedAccount: '', + }, + }; + + const oldStorage = { + meta: { + version: oldVersion, + }, + data: { + AccountsController: defaultState, + }, + }; + + const newStorage = await migrate(oldStorage); + expect(newStorage).toStrictEqual({ + meta: { + version: newVersion, + }, + data: { + AccountsController: defaultState, + }, + }); + expect(newStorage); + }); + + it('adds importTime attribute to InternalAccount if it is not defined"', async () => { + const mockInternalAccount = createMockInternalAccount(); + // @ts-expect-error forcing the importTime to be undefined for migration test. + mockInternalAccount.metadata.importTime = undefined; + + const oldStorage = { + meta: { + version: oldVersion, + }, + data: { + AccountsController: { + internalAccounts: { + accounts: { + [mockInternalAccount.id]: mockInternalAccount, + }, + selectedAccount: mockInternalAccount.id, + }, + }, + }, + }; + + const newStorage = await migrate(oldStorage); + expect(newStorage).toStrictEqual({ + meta: { + version: newVersion, + }, + data: { + AccountsController: { + internalAccounts: { + accounts: { + [mockInternalAccount.id]: { + ...mockInternalAccount, + metadata: { + ...mockInternalAccount.metadata, + importTime: mockTimeStamp, + }, + }, + }, + selectedAccount: mockInternalAccount.id, + }, + }, + }, + }); + expect(newStorage); + }); + + it('does not change the importTime attribute if it already exists', async () => { + const mockInternalAccount = createMockInternalAccount(); + const mockAccountsControllerState = { + internalAccounts: { + accounts: { + [mockInternalAccount.id]: mockInternalAccount, + }, + selectedAccount: mockInternalAccount.id, + }, + }; + const oldStorage = { + meta: { + version: oldVersion, + }, + data: { + AccountsController: mockAccountsControllerState, + }, + }; + + const newStorage = await migrate(oldStorage); + expect(newStorage).toStrictEqual({ + meta: { + version: newVersion, + }, + data: { + AccountsController: mockAccountsControllerState, + }, + }); + }); +}); diff --git a/app/scripts/migrations/119.ts b/app/scripts/migrations/119.ts new file mode 100644 index 000000000000..6e0f66687350 --- /dev/null +++ b/app/scripts/migrations/119.ts @@ -0,0 +1,62 @@ +import { cloneDeep, isObject } from 'lodash'; +import { hasProperty } from '@metamask/utils'; +import { AccountsControllerState } from '@metamask/accounts-controller'; +import { InternalAccount } from '@metamask/keyring-api'; + +type VersionedData = { + meta: { version: number }; + data: Record; +}; + +export const version = 119; + +/** + * Add a default value for importTime in the InternalAccount + * + * @param originalVersionedData + */ +export async function migrate( + originalVersionedData: VersionedData, +): Promise { + const versionedData = cloneDeep(originalVersionedData); + versionedData.meta.version = version; + transformState(versionedData.data); + return versionedData; +} +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function transformState(state: Record) { + const accountsController = state?.AccountsController || {}; + + if ( + isObject(state.AccountsController) && + hasProperty(state.AccountsController, 'internalAccounts') && + hasProperty( + state.AccountsController + .internalAccounts as AccountsControllerState['internalAccounts'], + 'accounts', + ) && + Array.isArray( + Object.values( + (state.AccountsController as AccountsControllerState).internalAccounts + .accounts, + ), + ) && + Object.values( + (state.AccountsController as AccountsControllerState).internalAccounts + .accounts, + ).length > 0 + ) { + Object.values(accountsController.internalAccounts.accounts).forEach( + (internalAccount: InternalAccount) => { + if (!internalAccount.metadata?.importTime) { + internalAccount.metadata.importTime = Date.now(); + } + }, + ); + } + + return { + ...state, + AccountsController: accountsController, + }; +} diff --git a/app/scripts/migrations/index.js b/app/scripts/migrations/index.js index 9cd79ee18a35..bcd4fef72698 100644 --- a/app/scripts/migrations/index.js +++ b/app/scripts/migrations/index.js @@ -129,6 +129,7 @@ const migrations = [ require('./116'), require('./117'), require('./118'), + require('./119'), ]; export default migrations; diff --git a/lavamoat/browserify/beta/policy.json b/lavamoat/browserify/beta/policy.json index 2f9449c8264c..c88fe81c8157 100644 --- a/lavamoat/browserify/beta/policy.json +++ b/lavamoat/browserify/beta/policy.json @@ -749,13 +749,21 @@ "packages": { "@ethereumjs/tx>@ethereumjs/util": true, "@ethereumjs/tx>ethereum-cryptography": true, - "@metamask/base-controller": true, + "@metamask/accounts-controller>@metamask/base-controller": true, "@metamask/eth-snap-keyring": true, "@metamask/keyring-api": true, "@metamask/keyring-controller": true, "uuid": true } }, + "@metamask/accounts-controller>@metamask/base-controller": { + "globals": { + "setTimeout": true + }, + "packages": { + "immer": true + } + }, "@metamask/address-book-controller": { "packages": { "@metamask/address-book-controller>@metamask/base-controller": true, @@ -1103,25 +1111,19 @@ }, "@metamask/eth-snap-keyring": { "globals": { + "URL": true, "console.error": true }, "packages": { "@ethereumjs/tx": true, "@metamask/eth-sig-util": true, - "@metamask/eth-snap-keyring>@metamask/keyring-api": true, "@metamask/eth-snap-keyring>uuid": true, + "@metamask/keyring-api": true, "@metamask/utils": true, "superstruct": true, "webpack>events": true } }, - "@metamask/eth-snap-keyring>@metamask/keyring-api": { - "packages": { - "@metamask/eth-snap-keyring>uuid": true, - "@metamask/utils": true, - "superstruct": true - } - }, "@metamask/eth-snap-keyring>uuid": { "globals": { "crypto": true @@ -1471,7 +1473,11 @@ } }, "@metamask/keyring-api": { + "globals": { + "URL": true + }, "packages": { + "@metamask/keyring-api>bech32": true, "@metamask/keyring-api>uuid": true, "@metamask/utils": true, "superstruct": true @@ -3363,13 +3369,13 @@ "@ethereumjs/tx>@ethereumjs/common>crc-32": true, "@ethersproject/abi": true, "@metamask/ethjs>js-sha3": true, + "@metamask/keyring-api>bech32": true, "@metamask/ppom-validator>elliptic": true, "bn.js": true, "browserify>buffer": true, "eth-lattice-keyring>gridplus-sdk>@ethereumjs/common": true, "eth-lattice-keyring>gridplus-sdk>@ethereumjs/tx": true, "eth-lattice-keyring>gridplus-sdk>aes-js": true, - "eth-lattice-keyring>gridplus-sdk>bech32": true, "eth-lattice-keyring>gridplus-sdk>bignumber.js": true, "eth-lattice-keyring>gridplus-sdk>bitwise": true, "eth-lattice-keyring>gridplus-sdk>borc": true, diff --git a/lavamoat/browserify/desktop/policy.json b/lavamoat/browserify/desktop/policy.json index 8e303a4e73c9..7c5d7ecd3dae 100644 --- a/lavamoat/browserify/desktop/policy.json +++ b/lavamoat/browserify/desktop/policy.json @@ -749,13 +749,21 @@ "packages": { "@ethereumjs/tx>@ethereumjs/util": true, "@ethereumjs/tx>ethereum-cryptography": true, - "@metamask/base-controller": true, + "@metamask/accounts-controller>@metamask/base-controller": true, "@metamask/eth-snap-keyring": true, "@metamask/keyring-api": true, "@metamask/keyring-controller": true, "uuid": true } }, + "@metamask/accounts-controller>@metamask/base-controller": { + "globals": { + "setTimeout": true + }, + "packages": { + "immer": true + } + }, "@metamask/address-book-controller": { "packages": { "@metamask/address-book-controller>@metamask/base-controller": true, @@ -1248,25 +1256,19 @@ }, "@metamask/eth-snap-keyring": { "globals": { + "URL": true, "console.error": true }, "packages": { "@ethereumjs/tx": true, "@metamask/eth-sig-util": true, - "@metamask/eth-snap-keyring>@metamask/keyring-api": true, "@metamask/eth-snap-keyring>uuid": true, + "@metamask/keyring-api": true, "@metamask/utils": true, "superstruct": true, "webpack>events": true } }, - "@metamask/eth-snap-keyring>@metamask/keyring-api": { - "packages": { - "@metamask/eth-snap-keyring>uuid": true, - "@metamask/utils": true, - "superstruct": true - } - }, "@metamask/eth-snap-keyring>uuid": { "globals": { "crypto": true @@ -1616,7 +1618,11 @@ } }, "@metamask/keyring-api": { + "globals": { + "URL": true + }, "packages": { + "@metamask/keyring-api>bech32": true, "@metamask/keyring-api>uuid": true, "@metamask/utils": true, "superstruct": true @@ -3670,13 +3676,13 @@ "@ethereumjs/tx>@ethereumjs/common>crc-32": true, "@ethersproject/abi": true, "@metamask/ethjs>js-sha3": true, + "@metamask/keyring-api>bech32": true, "@metamask/ppom-validator>elliptic": true, "bn.js": true, "browserify>buffer": true, "eth-lattice-keyring>gridplus-sdk>@ethereumjs/common": true, "eth-lattice-keyring>gridplus-sdk>@ethereumjs/tx": true, "eth-lattice-keyring>gridplus-sdk>aes-js": true, - "eth-lattice-keyring>gridplus-sdk>bech32": true, "eth-lattice-keyring>gridplus-sdk>bignumber.js": true, "eth-lattice-keyring>gridplus-sdk>bitwise": true, "eth-lattice-keyring>gridplus-sdk>borc": true, diff --git a/lavamoat/browserify/flask/policy.json b/lavamoat/browserify/flask/policy.json index 149ca7bf6a43..95538eded218 100644 --- a/lavamoat/browserify/flask/policy.json +++ b/lavamoat/browserify/flask/policy.json @@ -749,13 +749,21 @@ "packages": { "@ethereumjs/tx>@ethereumjs/util": true, "@ethereumjs/tx>ethereum-cryptography": true, - "@metamask/base-controller": true, + "@metamask/accounts-controller>@metamask/base-controller": true, "@metamask/eth-snap-keyring": true, "@metamask/keyring-api": true, "@metamask/keyring-controller": true, "uuid": true } }, + "@metamask/accounts-controller>@metamask/base-controller": { + "globals": { + "setTimeout": true + }, + "packages": { + "immer": true + } + }, "@metamask/address-book-controller": { "packages": { "@metamask/address-book-controller>@metamask/base-controller": true, @@ -1248,25 +1256,19 @@ }, "@metamask/eth-snap-keyring": { "globals": { + "URL": true, "console.error": true }, "packages": { "@ethereumjs/tx": true, "@metamask/eth-sig-util": true, - "@metamask/eth-snap-keyring>@metamask/keyring-api": true, "@metamask/eth-snap-keyring>uuid": true, + "@metamask/keyring-api": true, "@metamask/utils": true, "superstruct": true, "webpack>events": true } }, - "@metamask/eth-snap-keyring>@metamask/keyring-api": { - "packages": { - "@metamask/eth-snap-keyring>uuid": true, - "@metamask/utils": true, - "superstruct": true - } - }, "@metamask/eth-snap-keyring>uuid": { "globals": { "crypto": true @@ -1616,7 +1618,11 @@ } }, "@metamask/keyring-api": { + "globals": { + "URL": true + }, "packages": { + "@metamask/keyring-api>bech32": true, "@metamask/keyring-api>uuid": true, "@metamask/utils": true, "superstruct": true @@ -3722,13 +3728,13 @@ "@ethereumjs/tx>@ethereumjs/common>crc-32": true, "@ethersproject/abi": true, "@metamask/ethjs>js-sha3": true, + "@metamask/keyring-api>bech32": true, "@metamask/ppom-validator>elliptic": true, "bn.js": true, "browserify>buffer": true, "eth-lattice-keyring>gridplus-sdk>@ethereumjs/common": true, "eth-lattice-keyring>gridplus-sdk>@ethereumjs/tx": true, "eth-lattice-keyring>gridplus-sdk>aes-js": true, - "eth-lattice-keyring>gridplus-sdk>bech32": true, "eth-lattice-keyring>gridplus-sdk>bignumber.js": true, "eth-lattice-keyring>gridplus-sdk>bitwise": true, "eth-lattice-keyring>gridplus-sdk>borc": true, diff --git a/lavamoat/browserify/main/policy.json b/lavamoat/browserify/main/policy.json index 3161d99399f4..1a3958cffba7 100644 --- a/lavamoat/browserify/main/policy.json +++ b/lavamoat/browserify/main/policy.json @@ -749,13 +749,21 @@ "packages": { "@ethereumjs/tx>@ethereumjs/util": true, "@ethereumjs/tx>ethereum-cryptography": true, - "@metamask/base-controller": true, + "@metamask/accounts-controller>@metamask/base-controller": true, "@metamask/eth-snap-keyring": true, "@metamask/keyring-api": true, "@metamask/keyring-controller": true, "uuid": true } }, + "@metamask/accounts-controller>@metamask/base-controller": { + "globals": { + "setTimeout": true + }, + "packages": { + "immer": true + } + }, "@metamask/address-book-controller": { "packages": { "@metamask/address-book-controller>@metamask/base-controller": true, @@ -1103,25 +1111,19 @@ }, "@metamask/eth-snap-keyring": { "globals": { + "URL": true, "console.error": true }, "packages": { "@ethereumjs/tx": true, "@metamask/eth-sig-util": true, - "@metamask/eth-snap-keyring>@metamask/keyring-api": true, "@metamask/eth-snap-keyring>uuid": true, + "@metamask/keyring-api": true, "@metamask/utils": true, "superstruct": true, "webpack>events": true } }, - "@metamask/eth-snap-keyring>@metamask/keyring-api": { - "packages": { - "@metamask/eth-snap-keyring>uuid": true, - "@metamask/utils": true, - "superstruct": true - } - }, "@metamask/eth-snap-keyring>uuid": { "globals": { "crypto": true @@ -1471,7 +1473,11 @@ } }, "@metamask/keyring-api": { + "globals": { + "URL": true + }, "packages": { + "@metamask/keyring-api>bech32": true, "@metamask/keyring-api>uuid": true, "@metamask/utils": true, "superstruct": true @@ -3571,13 +3577,13 @@ "@ethereumjs/tx>@ethereumjs/common>crc-32": true, "@ethersproject/abi": true, "@metamask/ethjs>js-sha3": true, + "@metamask/keyring-api>bech32": true, "@metamask/ppom-validator>elliptic": true, "bn.js": true, "browserify>buffer": true, "eth-lattice-keyring>gridplus-sdk>@ethereumjs/common": true, "eth-lattice-keyring>gridplus-sdk>@ethereumjs/tx": true, "eth-lattice-keyring>gridplus-sdk>aes-js": true, - "eth-lattice-keyring>gridplus-sdk>bech32": true, "eth-lattice-keyring>gridplus-sdk>bignumber.js": true, "eth-lattice-keyring>gridplus-sdk>bitwise": true, "eth-lattice-keyring>gridplus-sdk>borc": true, diff --git a/lavamoat/browserify/mmi/policy.json b/lavamoat/browserify/mmi/policy.json index e6abab647fa5..44e91993d391 100644 --- a/lavamoat/browserify/mmi/policy.json +++ b/lavamoat/browserify/mmi/policy.json @@ -1034,13 +1034,21 @@ "packages": { "@ethereumjs/tx>@ethereumjs/util": true, "@ethereumjs/tx>ethereum-cryptography": true, - "@metamask/base-controller": true, + "@metamask/accounts-controller>@metamask/base-controller": true, "@metamask/eth-snap-keyring": true, "@metamask/keyring-api": true, "@metamask/keyring-controller": true, "uuid": true } }, + "@metamask/accounts-controller>@metamask/base-controller": { + "globals": { + "setTimeout": true + }, + "packages": { + "immer": true + } + }, "@metamask/address-book-controller": { "packages": { "@metamask/address-book-controller>@metamask/base-controller": true, @@ -1388,25 +1396,19 @@ }, "@metamask/eth-snap-keyring": { "globals": { + "URL": true, "console.error": true }, "packages": { "@ethereumjs/tx": true, "@metamask/eth-sig-util": true, - "@metamask/eth-snap-keyring>@metamask/keyring-api": true, "@metamask/eth-snap-keyring>uuid": true, + "@metamask/keyring-api": true, "@metamask/utils": true, "superstruct": true, "webpack>events": true } }, - "@metamask/eth-snap-keyring>@metamask/keyring-api": { - "packages": { - "@metamask/eth-snap-keyring>uuid": true, - "@metamask/utils": true, - "superstruct": true - } - }, "@metamask/eth-snap-keyring>uuid": { "globals": { "crypto": true @@ -1756,7 +1758,11 @@ } }, "@metamask/keyring-api": { + "globals": { + "URL": true + }, "packages": { + "@metamask/keyring-api>bech32": true, "@metamask/keyring-api>uuid": true, "@metamask/utils": true, "superstruct": true @@ -3856,13 +3862,13 @@ "@ethereumjs/tx>@ethereumjs/common>crc-32": true, "@ethersproject/abi": true, "@metamask/ethjs>js-sha3": true, + "@metamask/keyring-api>bech32": true, "@metamask/ppom-validator>elliptic": true, "bn.js": true, "browserify>buffer": true, "eth-lattice-keyring>gridplus-sdk>@ethereumjs/common": true, "eth-lattice-keyring>gridplus-sdk>@ethereumjs/tx": true, "eth-lattice-keyring>gridplus-sdk>aes-js": true, - "eth-lattice-keyring>gridplus-sdk>bech32": true, "eth-lattice-keyring>gridplus-sdk>bignumber.js": true, "eth-lattice-keyring>gridplus-sdk>bitwise": true, "eth-lattice-keyring>gridplus-sdk>borc": true, diff --git a/package.json b/package.json index 362e285724fd..56fd2df6ad52 100644 --- a/package.json +++ b/package.json @@ -283,7 +283,7 @@ "@metamask-institutional/sdk": "^0.1.27", "@metamask-institutional/transaction-update": "^0.2.2", "@metamask/abi-utils": "^2.0.2", - "@metamask/accounts-controller": "^11.0.0", + "@metamask/accounts-controller": "^14.0.0", "@metamask/address-book-controller": "^4.0.1", "@metamask/announcement-controller": "^6.1.0", "@metamask/approval-controller": "^6.0.1", @@ -300,7 +300,7 @@ "@metamask/eth-ledger-bridge-keyring": "^2.0.1", "@metamask/eth-query": "^4.0.0", "@metamask/eth-sig-util": "^7.0.1", - "@metamask/eth-snap-keyring": "^2.1.2", + "@metamask/eth-snap-keyring": "^4.2.1", "@metamask/eth-token-tracker": "^8.0.0", "@metamask/eth-trezor-keyring": "^3.1.0", "@metamask/etherscan-link": "^3.0.0", @@ -309,7 +309,7 @@ "@metamask/ethjs-query": "^0.7.1", "@metamask/gas-fee-controller": "^15.1.2", "@metamask/jazzicon": "^2.0.0", - "@metamask/keyring-api": "^3.0.0", + "@metamask/keyring-api": "^6.3.1", "@metamask/keyring-controller": "patch:@metamask/keyring-controller@npm%3A15.0.0#~/.yarn/patches/@metamask-keyring-controller-npm-15.0.0-fa070ce311.patch", "@metamask/logging-controller": "^3.0.1", "@metamask/logo": "^3.1.2", @@ -340,7 +340,7 @@ "@metamask/snaps-sdk": "^4.3.0", "@metamask/snaps-utils": "^7.4.0", "@metamask/transaction-controller": "^29.1.0", - "@metamask/user-operation-controller": "^8.0.1", + "@metamask/user-operation-controller": "^10.0.0", "@metamask/utils": "^8.2.1", "@ngraveio/bc-ur": "^1.1.12", "@noble/ciphers": "^0.5.2", diff --git a/shared/constants/eth-methods.ts b/shared/constants/eth-methods.ts new file mode 100644 index 000000000000..3eea6c662594 --- /dev/null +++ b/shared/constants/eth-methods.ts @@ -0,0 +1,16 @@ +import { EthMethod } from '@metamask/keyring-api'; + +export const ETH_EOA_METHODS = [ + EthMethod.PersonalSign, + EthMethod.Sign, + EthMethod.SignTransaction, + EthMethod.SignTypedDataV1, + EthMethod.SignTypedDataV3, + EthMethod.SignTypedDataV4, +]; + +export const ETH_4337_METHODS = [ + EthMethod.PrepareUserOperation, + EthMethod.PatchUserOperation, + EthMethod.SignUserOperation, +]; diff --git a/test/e2e/accounts/common.ts b/test/e2e/accounts/common.ts index 7cd62170641b..f90a80036c46 100644 --- a/test/e2e/accounts/common.ts +++ b/test/e2e/accounts/common.ts @@ -53,6 +53,7 @@ export async function installSnapSimpleKeyring( // navigate to test Snaps page and connect await driver.openNewPage(TEST_SNAPS_SIMPLE_KEYRING_WEBSITE_URL); + await driver.clickElement('#connectButton'); await driver.delay(500); @@ -217,7 +218,10 @@ export async function disconnectFromTestDapp(driver: Driver) { await driver.switchToWindowWithTitle(WINDOW_TITLES.ExtensionInFullScreenView); await driver.clickElement('[data-testid="account-options-menu-button"]'); await driver.clickElement({ text: 'All Permissions', tag: 'div' }); - await driver.clickElementAndWaitToDisappear({ text: 'Got it', tag: 'button' }); + await driver.clickElementAndWaitToDisappear({ + text: 'Got it', + tag: 'button', + }); await driver.clickElement({ text: '127.0.0.1:8080', tag: 'p', @@ -243,7 +247,7 @@ export async function approveOrRejectRequest(driver: Driver, flowType: string) { // get the JSON from the screen const requestJSON = await ( await driver.findElement({ - text: '"scope": "",', + text: '"scope":', tag: 'div', }) ).getText(); diff --git a/test/jest/mock-store.js b/test/jest/mock-store.js index 234a1316b94c..5cc7e5bb9325 100644 --- a/test/jest/mock-store.js +++ b/test/jest/mock-store.js @@ -1,8 +1,9 @@ import { NetworkType } from '@metamask/controller-utils'; import { NetworkStatus } from '@metamask/network-controller'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { CHAIN_IDS, CURRENCY_SYMBOLS } from '../../shared/constants/network'; import { KeyringType } from '../../shared/constants/keyring'; +import { ETH_EOA_METHODS } from '../../shared/constants/eth-methods'; export const createGetSmartTransactionFeesApiResponse = () => { return { @@ -263,7 +264,7 @@ export const createSwapsMockStore = () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '07c2cfec-36c9-46c4-8115-3836d3ac9047': { @@ -276,7 +277,7 @@ export const createSwapsMockStore = () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '15e69915-2a1a-4019-93b3-916e11fd432f': { @@ -289,7 +290,7 @@ export const createSwapsMockStore = () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '784225f4-d30b-4e77-a900-c8bbce735b88': { @@ -302,7 +303,7 @@ export const createSwapsMockStore = () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '36eb02e0-7925-47f0-859f-076608f09b69': { @@ -319,7 +320,7 @@ export const createSwapsMockStore = () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/test/jest/mocks.js b/test/jest/mocks.js index 645597c51d78..7289f687bcd3 100644 --- a/test/jest/mocks.js +++ b/test/jest/mocks.js @@ -176,6 +176,7 @@ export function createMockInternalAccount({ id: uuidv4(), metadata: { name: name ?? `${keyringTypeToName(keyringType)} 1`, + importTime: Date.now(), keyring: { type: keyringType, }, diff --git a/ui/components/app/account-list-item/account-list-item-component.test.js b/ui/components/app/account-list-item/account-list-item-component.test.js index 4618e9b26c1e..3c7d033e6dfa 100644 --- a/ui/components/app/account-list-item/account-list-item-component.test.js +++ b/ui/components/app/account-list-item/account-list-item-component.test.js @@ -1,9 +1,10 @@ import React from 'react'; import configureStore from 'redux-mock-store'; import { fireEvent } from '@testing-library/react'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { renderWithProvider } from '../../../../test/lib/render-helpers'; import mockState from '../../../../test/data/mock-state.json'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import AccountListItem from './account-list-item'; describe('AccountListItem Component', () => { @@ -22,7 +23,7 @@ describe('AccountListItem Component', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, className: 'mockClassName', @@ -77,7 +78,7 @@ describe('AccountListItem Component', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }; diff --git a/ui/components/app/account-list-item/account-list-item.stories.js b/ui/components/app/account-list-item/account-list-item.stories.js index 8e131c09013b..e4155b4312b9 100644 --- a/ui/components/app/account-list-item/account-list-item.stories.js +++ b/ui/components/app/account-list-item/account-list-item.stories.js @@ -1,5 +1,6 @@ import React from 'react'; -import { EthMethod, EthAccountType } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import README from './README.mdx'; import AccountListItem from './account-list-item'; @@ -31,7 +32,7 @@ const account = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, address: '0xb19ac54efa18cc3a14a5b821bfec73d284bf0c5e', balance: '0x2d3142f5000', diff --git a/ui/components/app/connected-accounts-list/connected-accounts-list.stories.js b/ui/components/app/connected-accounts-list/connected-accounts-list.stories.js index 398b2e88d1b3..9860047cd9fd 100644 --- a/ui/components/app/connected-accounts-list/connected-accounts-list.stories.js +++ b/ui/components/app/connected-accounts-list/connected-accounts-list.stories.js @@ -1,5 +1,6 @@ import React from 'react'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import ConnectedAccountsList from '.'; export default { @@ -44,7 +45,7 @@ export default { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/components/app/modals/confirm-remove-account/confirm-remove-account.stories.js b/ui/components/app/modals/confirm-remove-account/confirm-remove-account.stories.js index 3c6ce0ae6497..1cf35240b59f 100644 --- a/ui/components/app/modals/confirm-remove-account/confirm-remove-account.stories.js +++ b/ui/components/app/modals/confirm-remove-account/confirm-remove-account.stories.js @@ -1,5 +1,6 @@ import React from 'react'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; +import { ETH_EOA_METHODS } from '../../../../../shared/constants/eth-methods'; import ConfirmRemoveAccount from '.'; export default { @@ -22,14 +23,7 @@ export default { }, }, options: {}, - methods: [ - EthMethod.PersonalSign, - EthMethod.Sign, - EthMethod.SignTransaction, - EthMethod.SignTypedDataV1, - EthMethod.SignTypedDataV3, - EthMethod.SignTypedDataV4, - ], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/components/app/modals/confirm-remove-account/confirm-remove-account.test.js b/ui/components/app/modals/confirm-remove-account/confirm-remove-account.test.js index 64cf8f4513f5..51810a2554e9 100644 --- a/ui/components/app/modals/confirm-remove-account/confirm-remove-account.test.js +++ b/ui/components/app/modals/confirm-remove-account/confirm-remove-account.test.js @@ -1,8 +1,9 @@ import React from 'react'; import configureMockStore from 'redux-mock-store'; import { fireEvent } from '@testing-library/react'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { renderWithProvider } from '../../../../../test/lib/render-helpers'; +import { ETH_EOA_METHODS } from '../../../../../shared/constants/eth-methods'; import ConfirmRemoveAccount from '.'; describe('Confirm Remove Account', () => { @@ -23,7 +24,7 @@ describe('Confirm Remove Account', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -45,7 +46,7 @@ describe('Confirm Remove Account', () => { }, }, options: {}, - mmethods: [...Object.values(EthMethod)], + mmethods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, chainId: '0x99', diff --git a/ui/components/app/nfts-tab/nfts-tab.test.js b/ui/components/app/nfts-tab/nfts-tab.test.js index 0ee9a7179e85..ae7ea6737ece 100644 --- a/ui/components/app/nfts-tab/nfts-tab.test.js +++ b/ui/components/app/nfts-tab/nfts-tab.test.js @@ -1,12 +1,13 @@ import React from 'react'; import { fireEvent, screen } from '@testing-library/react'; import reactRouterDom from 'react-router-dom'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import configureStore from '../../../store/store'; import { renderWithProvider } from '../../../../test/jest'; import { SECURITY_ROUTE } from '../../../helpers/constants/routes'; import { setBackgroundConnection } from '../../../store/background-connection'; import { CHAIN_IDS, NETWORK_TYPES } from '../../../../shared/constants/network'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import NftsTab from '.'; const ETH_BALANCE = '0x16345785d8a0000'; // 0.1 ETH @@ -191,7 +192,7 @@ const render = ({ }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/components/app/transaction-status-label/transaction-status-label.test.js b/ui/components/app/transaction-status-label/transaction-status-label.test.js index 57ef06c706b0..4fa8e832201f 100644 --- a/ui/components/app/transaction-status-label/transaction-status-label.test.js +++ b/ui/components/app/transaction-status-label/transaction-status-label.test.js @@ -1,9 +1,10 @@ import React from 'react'; import configureMockStore from 'redux-mock-store'; import thunk from 'redux-thunk'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { TransactionStatus } from '@metamask/transaction-controller'; import { renderWithProvider } from '../../../../test/lib/render-helpers'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import TransactionStatusLabel from '.'; describe('TransactionStatusLabel Component', () => { @@ -23,7 +24,7 @@ describe('TransactionStatusLabel Component', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -145,7 +146,7 @@ describe('TransactionStatusLabel Component', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -199,7 +200,7 @@ describe('TransactionStatusLabel Component', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -255,7 +256,7 @@ describe('TransactionStatusLabel Component', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/components/app/wallet-overview/eth-overview.test.js b/ui/components/app/wallet-overview/eth-overview.test.js index a17ee3cc499d..10151afe79c4 100644 --- a/ui/components/app/wallet-overview/eth-overview.test.js +++ b/ui/components/app/wallet-overview/eth-overview.test.js @@ -12,6 +12,7 @@ import { import { renderWithProvider } from '../../../../test/jest/rendering'; import { KeyringType } from '../../../../shared/constants/keyring'; import { useIsOriginalNativeTokenSymbol } from '../../../hooks/useIsOriginalNativeTokenSymbol'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import EthOverview from './eth-overview'; // Mock BUYABLE_CHAINS_MAP @@ -99,7 +100,7 @@ describe('EthOverview', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, 'e9b992f9-e151-4317-b8b7-c771bb73dd02': { @@ -112,7 +113,7 @@ describe('EthOverview', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/components/app/wallet-overview/token-overview.test.js b/ui/components/app/wallet-overview/token-overview.test.js index d852a58a9b7c..bd61ac5f2a6f 100644 --- a/ui/components/app/wallet-overview/token-overview.test.js +++ b/ui/components/app/wallet-overview/token-overview.test.js @@ -2,10 +2,11 @@ import React from 'react'; import configureMockStore from 'redux-mock-store'; import thunk from 'redux-thunk'; import { fireEvent, waitFor } from '@testing-library/react'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { CHAIN_IDS } from '../../../../shared/constants/network'; import { renderWithProvider } from '../../../../test/jest/rendering'; import { KeyringType } from '../../../../shared/constants/keyring'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import TokenOverview from './token-overview'; // Mock BUYABLE_CHAINS_MAP @@ -49,7 +50,7 @@ describe('TokenOverview', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/components/institutional/interactive-replacement-token-notification/interactive-replacement-token-notification.test.js b/ui/components/institutional/interactive-replacement-token-notification/interactive-replacement-token-notification.test.js index a5cc0c435ac1..a4f45acbc831 100644 --- a/ui/components/institutional/interactive-replacement-token-notification/interactive-replacement-token-notification.test.js +++ b/ui/components/institutional/interactive-replacement-token-notification/interactive-replacement-token-notification.test.js @@ -2,11 +2,12 @@ import React from 'react'; import configureMockStore from 'redux-mock-store'; import thunk from 'redux-thunk'; import { screen, fireEvent } from '@testing-library/react'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { act } from 'react-dom/test-utils'; import { sha256 } from '../../../../shared/modules/hash.utils'; import { KeyringType } from '../../../../shared/constants/keyring'; import { renderWithProvider } from '../../../../test/lib/render-helpers'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import InteractiveReplacementTokenNotification from './interactive-replacement-token-notification'; jest.mock('../../../../shared/modules/hash.utils'); @@ -58,7 +59,7 @@ describe('Interactive Replacement Token Notification', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/components/institutional/wrong-network-notification/wrong-network-notification.test.js b/ui/components/institutional/wrong-network-notification/wrong-network-notification.test.js index 9e01b8b2bd93..c87f1399e7e7 100644 --- a/ui/components/institutional/wrong-network-notification/wrong-network-notification.test.js +++ b/ui/components/institutional/wrong-network-notification/wrong-network-notification.test.js @@ -1,9 +1,10 @@ import React from 'react'; import configureMockStore from 'redux-mock-store'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { toHex } from '@metamask/controller-utils'; import { renderWithProvider } from '../../../../test/lib/render-helpers'; import testData from '../../../../.storybook/test-data'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import WrongNetworkNotification from '.'; jest.mock('../../../../shared/modules/hash.utils'); @@ -40,7 +41,7 @@ describe('Wrong Network Notification', function () { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/components/multichain/account-list-menu/account-list-menu.test.js b/ui/components/multichain/account-list-menu/account-list-menu.test.js index 04596d0f71d0..aaeb95e05bfc 100644 --- a/ui/components/multichain/account-list-menu/account-list-menu.test.js +++ b/ui/components/multichain/account-list-menu/account-list-menu.test.js @@ -1,7 +1,7 @@ /* eslint-disable jest/require-top-level-describe */ import React from 'react'; import reactRouterDom from 'react-router-dom'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { fireEvent, renderWithProvider, waitFor } from '../../../../test/jest'; import configureStore from '../../../store/store'; import mockState from '../../../../test/data/mock-state.json'; @@ -9,6 +9,7 @@ import mockState from '../../../../test/data/mock-state.json'; import messages from '../../../../app/_locales/en/messages.json'; import { CONNECT_HARDWARE_ROUTE } from '../../../helpers/constants/routes'; ///: END:ONLY_INCLUDE_IF +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import { AccountListMenu } from '.'; ///: BEGIN:ONLY_INCLUDE_IF(keyring-snaps) @@ -147,7 +148,7 @@ describe('AccountListMenu', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/components/multichain/connected-site-menu/connected-site-menu.test.js b/ui/components/multichain/connected-site-menu/connected-site-menu.test.js index 7cc519851601..67ea5a99efb5 100644 --- a/ui/components/multichain/connected-site-menu/connected-site-menu.test.js +++ b/ui/components/multichain/connected-site-menu/connected-site-menu.test.js @@ -1,6 +1,6 @@ import React from 'react'; import configureMockStore from 'redux-mock-store'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { renderWithProvider } from '../../../../test/jest'; import { STATUS_CONNECTED, @@ -11,6 +11,7 @@ import { BackgroundColor, Color, } from '../../../helpers/constants/design-system'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import { ConnectedSiteMenu } from '.'; describe('Connected Site Menu', () => { @@ -26,7 +27,7 @@ describe('Connected Site Menu', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '07c2cfec-36c9-46c4-8115-3836d3ac9047': { @@ -39,7 +40,7 @@ describe('Connected Site Menu', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/components/multichain/pages/send/send.test.js b/ui/components/multichain/pages/send/send.test.js index 9d85893071e0..9b9fdefebc6f 100644 --- a/ui/components/multichain/pages/send/send.test.js +++ b/ui/components/multichain/pages/send/send.test.js @@ -2,7 +2,7 @@ import React from 'react'; import thunk from 'redux-thunk'; import configureMockStore from 'redux-mock-store'; import { NetworkType } from '@metamask/controller-utils'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { act } from '@testing-library/react'; import { renderWithProvider, @@ -22,6 +22,7 @@ import { import mockSendState from '../../../../../test/data/mock-send-state.json'; import { useIsOriginalNativeTokenSymbol } from '../../../../hooks/useIsOriginalNativeTokenSymbol'; import { KeyringType } from '../../../../../shared/constants/keyring'; +import { ETH_EOA_METHODS } from '../../../../../shared/constants/eth-methods'; import { SendPage } from '.'; jest.mock('@ethersproject/providers', () => { @@ -137,7 +138,7 @@ const baseStore = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, permissionHistory: { diff --git a/ui/ducks/metamask/metamask.test.js b/ui/ducks/metamask/metamask.test.js index c8cbacc74ce4..8cd2972eb97d 100644 --- a/ui/ducks/metamask/metamask.test.js +++ b/ui/ducks/metamask/metamask.test.js @@ -1,6 +1,6 @@ import { NetworkType } from '@metamask/controller-utils'; import { NetworkStatus } from '@metamask/network-controller'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { GasFeeEstimateType, TransactionStatus, @@ -8,6 +8,7 @@ import { } from '@metamask/transaction-controller'; import { GAS_ESTIMATE_TYPES } from '@metamask/gas-fee-controller'; import * as actionConstants from '../../store/actionConstants'; +import { ETH_EOA_METHODS } from '../../../shared/constants/eth-methods'; import reduceMetamask, { getBlockGasLimit, getConversionRate, @@ -22,14 +23,6 @@ import reduceMetamask, { isNotEIP1559Network, } from './metamask'; -const EOA_EVM_METHODS = [ - EthMethod.PersonalSign, - EthMethod.Sign, - EthMethod.SignTransaction, - EthMethod.SignTypedDataV1, - EthMethod.SignTypedDataV3, - EthMethod.SignTypedDataV4, -]; jest.mock('@metamask/transaction-controller', () => ({ ...jest.requireActual('@metamask/transaction-controller'), mergeGasFeeEstimates: jest.fn(), @@ -77,7 +70,7 @@ describe('MetaMask Reducers', () => { }, }, options: {}, - methods: EOA_EVM_METHODS, + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '07c2cfec-36c9-46c4-8115-3836d3ac9047': { @@ -90,7 +83,7 @@ describe('MetaMask Reducers', () => { }, }, options: {}, - methods: EOA_EVM_METHODS, + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '15e69915-2a1a-4019-93b3-916e11fd432f': { @@ -103,7 +96,7 @@ describe('MetaMask Reducers', () => { }, }, options: {}, - methods: EOA_EVM_METHODS, + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '784225f4-d30b-4e77-a900-c8bbce735b88': { @@ -116,7 +109,7 @@ describe('MetaMask Reducers', () => { }, }, options: {}, - methods: EOA_EVM_METHODS, + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -431,7 +424,7 @@ describe('MetaMask Reducers', () => { }, }, options: {}, - methods: EOA_EVM_METHODS, + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, code: '0x', balance: '0x47c9d71831c76efe', @@ -447,7 +440,7 @@ describe('MetaMask Reducers', () => { }, }, options: {}, - methods: EOA_EVM_METHODS, + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, code: '0x', balance: '0x37452b1315889f80', @@ -463,7 +456,7 @@ describe('MetaMask Reducers', () => { }, }, options: {}, - methods: EOA_EVM_METHODS, + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, code: '0x', balance: '0x30c9d71831c76efe', @@ -479,7 +472,7 @@ describe('MetaMask Reducers', () => { }, }, options: {}, - methods: EOA_EVM_METHODS, + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, code: '0x', balance: '0x0', diff --git a/ui/ducks/send/send.test.js b/ui/ducks/send/send.test.js index d0ad1eb8fbf1..ff8e0eb24026 100644 --- a/ui/ducks/send/send.test.js +++ b/ui/ducks/send/send.test.js @@ -4,7 +4,7 @@ import thunk from 'redux-thunk'; import { BigNumber } from '@ethersproject/bignumber'; import { NetworkType } from '@metamask/controller-utils'; import { NetworkStatus } from '@metamask/network-controller'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { TransactionEnvelopeType } from '@metamask/transaction-controller'; import { waitFor } from '@testing-library/react'; import { @@ -34,6 +34,7 @@ import { getInitialSendStateWithExistingTxState, INITIAL_SEND_STATE_FOR_EXISTING_DRAFT, } from '../../../test/jest/mocks'; +import { ETH_EOA_METHODS } from '../../../shared/constants/eth-methods'; import sendReducer, { initialState, initializeSendState, @@ -1501,7 +1502,7 @@ describe('Send Slice', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -1688,7 +1689,7 @@ describe('Send Slice', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -1761,7 +1762,7 @@ describe('Send Slice', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -1828,7 +1829,7 @@ describe('Send Slice', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -1906,7 +1907,7 @@ describe('Send Slice', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -1978,7 +1979,7 @@ describe('Send Slice', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -2042,7 +2043,7 @@ describe('Send Slice', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -2336,7 +2337,7 @@ describe('Send Slice', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -2654,7 +2655,7 @@ describe('Send Slice', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -2888,7 +2889,7 @@ describe('Send Slice', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -3190,7 +3191,7 @@ describe('Send Slice', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -3270,7 +3271,7 @@ describe('Send Slice', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, balance: '0x0', }, @@ -3369,7 +3370,7 @@ describe('Send Slice', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -3451,7 +3452,7 @@ describe('Send Slice', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, balance: '0x0', }, @@ -3561,7 +3562,7 @@ describe('Send Slice', () => { address: mockAddress1, id: 'cf8dace4-9439-4bd4-b3a8-88c821c8fcb3', options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, metadata: { name: 'Test Account', @@ -3681,7 +3682,7 @@ describe('Send Slice', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, balance: '0x0', }, @@ -3787,7 +3788,7 @@ describe('Send Slice', () => { address: mockAddress1, id: 'cf8dace4-9439-4bd4-b3a8-88c821c8fcb3', options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, metadata: { name: 'Test Account', @@ -3934,9 +3935,6 @@ describe('Send Slice', () => { 'eth_signTypedData_v1', 'eth_signTypedData_v3', 'eth_signTypedData_v4', - 'eth_prepareUserOperation', - 'eth_patchUserOperation', - 'eth_signUserOperation', ], options: {}, type: 'eip155:eoa', diff --git a/ui/hooks/useAddressDetails.test.js b/ui/hooks/useAddressDetails.test.js index 4c723d318bba..2a4e03eee343 100644 --- a/ui/hooks/useAddressDetails.test.js +++ b/ui/hooks/useAddressDetails.test.js @@ -1,9 +1,10 @@ import React from 'react'; import { Provider } from 'react-redux'; import { renderHook } from '@testing-library/react-hooks'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import configureStore from '../store/store'; +import { ETH_EOA_METHODS } from '../../shared/constants/eth-methods'; import useAddressDetails from './useAddressDetails'; const renderUseAddressDetails = (toAddress, stateVariables = {}) => { @@ -26,7 +27,7 @@ const renderUseAddressDetails = (toAddress, stateVariables = {}) => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -89,7 +90,7 @@ describe('useAddressDetails', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/hooks/useAssetDetails.test.js b/ui/hooks/useAssetDetails.test.js index 08b10ceefc58..f14725bdd4b8 100644 --- a/ui/hooks/useAssetDetails.test.js +++ b/ui/hooks/useAssetDetails.test.js @@ -1,12 +1,13 @@ import React from 'react'; import { Provider } from 'react-redux'; import { renderHook } from '@testing-library/react-hooks'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { useAssetDetails } from '../pages/confirmations/hooks/useAssetDetails'; import configureStore from '../store/store'; import * as Actions from '../store/actions'; import { TokenStandard } from '../../shared/constants/transaction'; +import { ETH_EOA_METHODS } from '../../shared/constants/eth-methods'; const renderUseAssetDetails = ({ tokenAddress, @@ -33,7 +34,7 @@ const renderUseAssetDetails = ({ }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/pages/confirm-add-suggested-token/confirm-add-suggested-token.test.js b/ui/pages/confirm-add-suggested-token/confirm-add-suggested-token.test.js index 12cea388a40b..295625196ded 100644 --- a/ui/pages/confirm-add-suggested-token/confirm-add-suggested-token.test.js +++ b/ui/pages/confirm-add-suggested-token/confirm-add-suggested-token.test.js @@ -2,13 +2,14 @@ import React from 'react'; import { act } from 'react-dom/test-utils'; import { fireEvent, screen } from '@testing-library/react'; import { ApprovalType } from '@metamask/controller-utils'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { resolvePendingApproval, rejectPendingApproval, } from '../../store/actions'; import configureStore from '../../store/store'; import { renderWithProvider } from '../../../test/jest/rendering'; +import { ETH_EOA_METHODS } from '../../../shared/constants/eth-methods'; import ConfirmAddSuggestedToken from '.'; const PENDING_APPROVALS = { @@ -81,7 +82,7 @@ const renderComponent = (tokens = []) => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/pages/confirm-decrypt-message/confirm-decrypt-message.component.test.js b/ui/pages/confirm-decrypt-message/confirm-decrypt-message.component.test.js index bdd49dd21369..e073474d79fe 100644 --- a/ui/pages/confirm-decrypt-message/confirm-decrypt-message.component.test.js +++ b/ui/pages/confirm-decrypt-message/confirm-decrypt-message.component.test.js @@ -1,8 +1,9 @@ import React from 'react'; import configureMockStore from 'redux-mock-store'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import mockState from '../../../test/data/mock-state.json'; import { renderWithProvider } from '../../../test/lib/render-helpers'; +import { ETH_EOA_METHODS } from '../../../shared/constants/eth-methods'; import ConfirmDecryptMessage from './confirm-decrypt-message.component'; const messageData = { @@ -89,7 +90,7 @@ const baseProps = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }; diff --git a/ui/pages/confirm-encryption-public-key/confirm-encryption-public-key.component.test.js b/ui/pages/confirm-encryption-public-key/confirm-encryption-public-key.component.test.js index 1cd76046bd4a..771a5a5f5ef7 100644 --- a/ui/pages/confirm-encryption-public-key/confirm-encryption-public-key.component.test.js +++ b/ui/pages/confirm-encryption-public-key/confirm-encryption-public-key.component.test.js @@ -1,8 +1,9 @@ import React from 'react'; import configureMockStore from 'redux-mock-store'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import mockState from '../../../test/data/mock-state.json'; import { renderWithProvider } from '../../../test/lib/render-helpers'; +import { ETH_EOA_METHODS } from '../../../shared/constants/eth-methods'; import ConfirmEncryptionPublicKey from './confirm-encryption-public-key.component'; const baseProps = { @@ -38,7 +39,7 @@ const baseProps = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, name: 'Antonio', }, diff --git a/ui/pages/confirmations/components/edit-gas-fee-popover/edit-gas-fee-popover.test.js b/ui/pages/confirmations/components/edit-gas-fee-popover/edit-gas-fee-popover.test.js index 9a6472824c5c..35f01bf36f1b 100644 --- a/ui/pages/confirmations/components/edit-gas-fee-popover/edit-gas-fee-popover.test.js +++ b/ui/pages/confirmations/components/edit-gas-fee-popover/edit-gas-fee-popover.test.js @@ -1,6 +1,6 @@ import React from 'react'; import { act, screen } from '@testing-library/react'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { TransactionStatus, @@ -16,6 +16,7 @@ import { CHAIN_IDS, GOERLI_DISPLAY_NAME, } from '../../../../../shared/constants/network'; +import { ETH_EOA_METHODS } from '../../../../../shared/constants/eth-methods'; import EditGasFeePopover from './edit-gas-fee-popover'; jest.mock('../../../../store/actions', () => ({ @@ -103,7 +104,7 @@ const render = async ({ txProps, contextProps } = {}) => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/pages/confirmations/components/signature-request-original/signature-request-original.test.js b/ui/pages/confirmations/components/signature-request-original/signature-request-original.test.js index bc3b732466bb..2d8ab54e6ce7 100644 --- a/ui/pages/confirmations/components/signature-request-original/signature-request-original.test.js +++ b/ui/pages/confirmations/components/signature-request-original/signature-request-original.test.js @@ -2,7 +2,7 @@ import React from 'react'; import configureMockStore from 'redux-mock-store'; import { fireEvent, screen } from '@testing-library/react'; import { act } from 'react-dom/test-utils'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { MESSAGE_TYPE } from '../../../../../shared/constants/app'; import { SECURITY_PROVIDER_MESSAGE_SEVERITY } from '../../../../../shared/constants/security-provider'; import mockState from '../../../../../test/data/mock-state.json'; @@ -14,6 +14,7 @@ import { completedTx, } from '../../../../store/actions'; import { shortenAddress } from '../../../../helpers/utils/util'; +import { ETH_EOA_METHODS } from '../../../../../shared/constants/eth-methods'; import SignatureRequestOriginal from '.'; jest.mock('../../../../store/actions', () => ({ @@ -77,7 +78,7 @@ const props = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }; @@ -235,7 +236,7 @@ describe('SignatureRequestOriginal', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }; const mismatchAccountText = `Your selected account (${shortenAddress( diff --git a/ui/pages/confirmations/components/signature-request/signature-request-data/signature-request-data.test.js b/ui/pages/confirmations/components/signature-request/signature-request-data/signature-request-data.test.js index c5b642ab3a77..8d7714361349 100644 --- a/ui/pages/confirmations/components/signature-request/signature-request-data/signature-request-data.test.js +++ b/ui/pages/confirmations/components/signature-request/signature-request-data/signature-request-data.test.js @@ -1,9 +1,10 @@ import React from 'react'; import configureMockStore from 'redux-mock-store'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { renderWithProvider } from '../../../../../../test/lib/render-helpers'; import { sanitizeMessage } from '../../../../../helpers/utils/util'; import Identicon from '../../../../../components/ui/identicon'; +import { ETH_EOA_METHODS } from '../../../../../../shared/constants/eth-methods'; import SignatureRequestData from './signature-request-data'; describe('Signature Request Data', () => { @@ -51,7 +52,7 @@ describe('Signature Request Data', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '07c2cfec-36c9-46c4-8115-3836d3ac9047': { @@ -64,7 +65,7 @@ describe('Signature Request Data', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/pages/confirmations/components/signature-request/signature-request-header/signature-request-header.component.test.js b/ui/pages/confirmations/components/signature-request/signature-request-header/signature-request-header.component.test.js index 0f651f661045..2430640e6cb7 100644 --- a/ui/pages/confirmations/components/signature-request/signature-request-header/signature-request-header.component.test.js +++ b/ui/pages/confirmations/components/signature-request/signature-request-header/signature-request-header.component.test.js @@ -1,8 +1,9 @@ import React from 'react'; import configureMockStore from 'redux-mock-store'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import mockState from '../../../../../../test/data/mock-state.json'; import { renderWithProvider } from '../../../../../../test/lib/render-helpers'; +import { ETH_EOA_METHODS } from '../../../../../../shared/constants/eth-methods'; import SignatureRequestHeader from './signature-request-header.component'; describe('SignatureRequestHeader', () => { @@ -19,7 +20,7 @@ describe('SignatureRequestHeader', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }; diff --git a/ui/pages/confirmations/components/signature-request/signature-request.test.js b/ui/pages/confirmations/components/signature-request/signature-request.test.js index 1756ffa36219..52ebe747d9be 100644 --- a/ui/pages/confirmations/components/signature-request/signature-request.test.js +++ b/ui/pages/confirmations/components/signature-request/signature-request.test.js @@ -2,7 +2,7 @@ import React from 'react'; import { useSelector } from 'react-redux'; import { fireEvent } from '@testing-library/react'; import configureMockStore from 'redux-mock-store'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import mockState from '../../../../../test/data/mock-state.json'; import { renderWithProvider } from '../../../../../test/lib/render-helpers'; import { SECURITY_PROVIDER_MESSAGE_SEVERITY } from '../../../../../shared/constants/security-provider'; @@ -24,6 +24,7 @@ import { getMemoizedMetaMaskInternalAccounts, getSelectedInternalAccount, } from '../../../../selectors'; +import { ETH_EOA_METHODS } from '../../../../../shared/constants/eth-methods'; import SignatureRequest from './signature-request'; const baseProps = { @@ -65,14 +66,7 @@ const mockStore = { }, }, options: {}, - methods: [ - EthMethod.PersonalSign, - EthMethod.Sign, - EthMethod.SignTransaction, - EthMethod.SignTypedDataV1, - EthMethod.SignTypedDataV3, - EthMethod.SignTypedDataV4, - ], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -507,7 +501,7 @@ describe('Signature Request Component', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, 'cf8dace4-9439-4bd4-b3a8-88c821c8fcb3': { @@ -520,7 +514,7 @@ describe('Signature Request Component', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/pages/confirmations/confirm-signature-request/index.test.js b/ui/pages/confirmations/confirm-signature-request/index.test.js index 8f9376e83911..7ca14941ccb6 100644 --- a/ui/pages/confirmations/confirm-signature-request/index.test.js +++ b/ui/pages/confirmations/confirm-signature-request/index.test.js @@ -1,7 +1,8 @@ import React from 'react'; import configureMockStore from 'redux-mock-store'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { renderWithProvider } from '../../../../test/lib/render-helpers'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import ConfTx from '.'; const mockState = { @@ -46,7 +47,7 @@ const mockState = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/pages/confirmations/confirm-transaction-base/confirm-transaction-base.test.js b/ui/pages/confirmations/confirm-transaction-base/confirm-transaction-base.test.js index e567aca60397..5cf90c0da6cb 100644 --- a/ui/pages/confirmations/confirm-transaction-base/confirm-transaction-base.test.js +++ b/ui/pages/confirmations/confirm-transaction-base/confirm-transaction-base.test.js @@ -5,7 +5,7 @@ import { fireEvent } from '@testing-library/react'; import { NetworkType } from '@metamask/controller-utils'; import { NetworkStatus } from '@metamask/network-controller'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { TransactionStatus, TransactionType, @@ -27,6 +27,7 @@ import { BlockaidReason, BlockaidResultType, } from '../../../../shared/constants/security-provider'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import ConfirmTransactionBase from './confirm-transaction-base.container'; jest.mock('../components/simulation-details/useSimulationMetrics'); @@ -151,7 +152,7 @@ const baseStore = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/pages/confirmations/hooks/useBalance.test.js b/ui/pages/confirmations/hooks/useBalance.test.js index ea4c3b384081..1909f1a6410f 100644 --- a/ui/pages/confirmations/hooks/useBalance.test.js +++ b/ui/pages/confirmations/hooks/useBalance.test.js @@ -1,9 +1,10 @@ import React from 'react'; import { Provider } from 'react-redux'; import { renderHook } from '@testing-library/react-hooks'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import configureStore from '../../../store/store'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import { useBalance } from './useBalance'; const renderUseBalance = (fromAddress, stateVariables = {}) => { @@ -33,7 +34,7 @@ const renderUseBalance = (fromAddress, stateVariables = {}) => { 'cf8dace4-9439-4bd4-b3a8-88c821c8fcb3': { address: '0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc', id: 'cf8dace4-9439-4bd4-b3a8-88c821c8fcb3', - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/pages/confirmations/send/send.test.js b/ui/pages/confirmations/send/send.test.js index f8b17cfb627f..d0dab0516116 100644 --- a/ui/pages/confirmations/send/send.test.js +++ b/ui/pages/confirmations/send/send.test.js @@ -3,7 +3,7 @@ import configureMockStore from 'redux-mock-store'; import thunk from 'redux-thunk'; import { useLocation } from 'react-router-dom'; import { NetworkType } from '@metamask/controller-utils'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { SEND_STAGES, startNewDraftTransaction } from '../../../ducks/send'; import { domainInitialState } from '../../../ducks/domains'; import { setBackgroundConnection } from '../../../store/background-connection'; @@ -16,6 +16,7 @@ import { renderWithProvider } from '../../../../test/jest'; import { GasEstimateTypes } from '../../../../shared/constants/gas'; import { KeyringType } from '../../../../shared/constants/keyring'; import { INITIAL_SEND_STATE_FOR_EXISTING_DRAFT } from '../../../../test/jest/mocks'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import Send from './send'; const middleware = [thunk]; @@ -93,7 +94,7 @@ const baseStore = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/pages/confirmations/token-allowance/token-allowance.test.js b/ui/pages/confirmations/token-allowance/token-allowance.test.js index 37e8a58b5e5c..d727b89b25a8 100644 --- a/ui/pages/confirmations/token-allowance/token-allowance.test.js +++ b/ui/pages/confirmations/token-allowance/token-allowance.test.js @@ -4,9 +4,10 @@ import { act, fireEvent } from '@testing-library/react'; import thunk from 'redux-thunk'; import { NetworkType } from '@metamask/controller-utils'; import { NetworkStatus } from '@metamask/network-controller'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { renderWithProvider } from '../../../../test/lib/render-helpers'; import { KeyringType } from '../../../../shared/constants/keyring'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import TokenAllowance from './token-allowance'; const testTokenAddress = '0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F'; @@ -34,7 +35,7 @@ const state = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '07c2cfec-36c9-46c4-8115-3836d3ac9047': { @@ -47,7 +48,7 @@ const state = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/pages/connected-accounts/connected-accounts.stories.js b/ui/pages/connected-accounts/connected-accounts.stories.js index be492597b5e8..a93b385ae95f 100644 --- a/ui/pages/connected-accounts/connected-accounts.stories.js +++ b/ui/pages/connected-accounts/connected-accounts.stories.js @@ -1,6 +1,7 @@ import React from 'react'; import { action } from '@storybook/addon-actions'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; +import { ETH_EOA_METHODS } from '../../../shared/constants/eth-methods'; import ConnectedAccounts from './connected-accounts.component'; export default { @@ -66,7 +67,7 @@ const accounts = [ }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, { @@ -79,7 +80,7 @@ const accounts = [ }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, ]; diff --git a/ui/pages/token-details/token-details-page.test.js b/ui/pages/token-details/token-details-page.test.js index a2f00370a9bf..033e8418a711 100644 --- a/ui/pages/token-details/token-details-page.test.js +++ b/ui/pages/token-details/token-details-page.test.js @@ -1,10 +1,11 @@ import React from 'react'; import configureMockStore from 'redux-mock-store'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { fireEvent } from '@testing-library/react'; import { renderWithProvider } from '../../../test/lib/render-helpers'; import Identicon from '../../components/ui/identicon'; import { isEqualCaseInsensitive } from '../../../shared/modules/string-utils'; +import { ETH_EOA_METHODS } from '../../../shared/constants/eth-methods'; import TokenDetailsPage from './token-details-page'; const testTokenAddress = '0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F'; @@ -22,7 +23,7 @@ const state = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/selectors/institutional/selectors.test.js b/ui/selectors/institutional/selectors.test.js index 4645b59ad633..3e399ad8746f 100644 --- a/ui/selectors/institutional/selectors.test.js +++ b/ui/selectors/institutional/selectors.test.js @@ -1,7 +1,8 @@ import { toChecksumAddress } from 'ethereumjs-util'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { toHex } from '@metamask/controller-utils'; import { createMockInternalAccount } from '../../../test/jest/mocks'; +import { ETH_EOA_METHODS } from '../../../shared/constants/eth-methods'; import { getConfiguredCustodians, getCustodianIconForAddress, @@ -38,14 +39,8 @@ function buildState(overrides = {}) { }, }, options: {}, - methods: [ - EthMethod.PersonalSign, - EthMethod.Sign, - EthMethod.SignTransaction, - EthMethod.SignTypedDataV1, - EthMethod.SignTypedDataV3, - EthMethod.SignTypedDataV4, - ], + methods: ETH_EOA_METHODS, + type: EthAccountType.Eoa, code: '0x', balance: '0x47c9d71831c76efe', @@ -196,7 +191,7 @@ describe('Institutional selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, code: '0x', balance: '0x47c9d71831c76efe', @@ -237,7 +232,7 @@ describe('Institutional selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, code: '0x', balance: '0x47c9d71831c76efe', @@ -289,7 +284,7 @@ describe('Institutional selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -319,7 +314,7 @@ describe('Institutional selectors', () => { name: 'Custody Account A', }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, code: '0x', balance: '0x47c9d71831c76efe', @@ -355,7 +350,7 @@ describe('Institutional selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, code: '0x', balance: '0x47c9d71831c76efe', @@ -396,7 +391,7 @@ describe('Institutional selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, code: '0x', balance: '0x47c9d71831c76efe', @@ -441,7 +436,7 @@ describe('Institutional selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, code: '0x', balance: '0x47c9d71831c76efe', @@ -488,7 +483,7 @@ describe('Institutional selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, code: '0x', balance: '0x47c9d71831c76efe', @@ -535,7 +530,7 @@ describe('Institutional selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, code: '0x', balance: '0x47c9d71831c76efe', diff --git a/ui/selectors/nonce-sorted-transactions-selector.test.js b/ui/selectors/nonce-sorted-transactions-selector.test.js index a3488a20a13b..f4b41a982c1b 100644 --- a/ui/selectors/nonce-sorted-transactions-selector.test.js +++ b/ui/selectors/nonce-sorted-transactions-selector.test.js @@ -1,10 +1,11 @@ import { head, last } from 'lodash'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { TransactionStatus, TransactionType, } from '@metamask/transaction-controller'; import { CHAIN_IDS } from '../../shared/constants/network'; +import { ETH_EOA_METHODS } from '../../shared/constants/eth-methods'; import { nonceSortedTransactionsSelector } from './transactions'; const RECIPIENTS = { @@ -98,7 +99,7 @@ const getStateTree = ({ }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/selectors/permissions.test.js b/ui/selectors/permissions.test.js index 9bf5b1a0aa96..5c10c9b27e3a 100644 --- a/ui/selectors/permissions.test.js +++ b/ui/selectors/permissions.test.js @@ -1,6 +1,7 @@ -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { CHAIN_IDS } from '../../shared/constants/network'; import { createMockInternalAccount } from '../../test/jest/mocks'; +import { ETH_EOA_METHODS } from '../../shared/constants/eth-methods'; import { getConnectedSubjectsForSelectedAddress, getLastConnectedInfo, @@ -25,7 +26,7 @@ describe('selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -234,7 +235,7 @@ describe('selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '07c2cfec-36c9-46c4-8115-3836d3ac9047': { @@ -249,7 +250,7 @@ describe('selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '15e69915-2a1a-4019-93b3-916e11fd432f': { @@ -264,7 +265,7 @@ describe('selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '784225f4-d30b-4e77-a900-c8bbce735b88': { @@ -279,7 +280,7 @@ describe('selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, 'f9305241-c50f-4725-ad0f-cbd3f24ac7ab': { @@ -292,7 +293,7 @@ describe('selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -382,7 +383,7 @@ describe('selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, { @@ -397,7 +398,7 @@ describe('selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, { @@ -413,7 +414,7 @@ describe('selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, { @@ -428,7 +429,7 @@ describe('selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, { @@ -444,7 +445,7 @@ describe('selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, ]); @@ -499,7 +500,7 @@ describe('selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '07c2cfec-36c9-46c4-8115-3836d3ac9047': { @@ -514,7 +515,7 @@ describe('selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '15e69915-2a1a-4019-93b3-916e11fd432f': { @@ -529,7 +530,7 @@ describe('selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, '784225f4-d30b-4e77-a900-c8bbce735b88': { @@ -544,7 +545,7 @@ describe('selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/selectors/selectors.test.js b/ui/selectors/selectors.test.js index d3fce24142f0..875551a8618b 100644 --- a/ui/selectors/selectors.test.js +++ b/ui/selectors/selectors.test.js @@ -13,6 +13,7 @@ import { import { SURVEY_DATE, SURVEY_GMT } from '../helpers/constants/survey'; import { PRIVACY_POLICY_DATE } from '../helpers/constants/privacy-policy'; import { createMockInternalAccount } from '../../test/jest/mocks'; +import { ETH_EOA_METHODS } from '../../shared/constants/eth-methods'; import * as selectors from './selectors'; jest.mock('../../app/scripts/lib/util', () => ({ @@ -87,7 +88,7 @@ describe('Selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }; expect( diff --git a/ui/selectors/transactions.test.js b/ui/selectors/transactions.test.js index 88fcbe63a44a..3f8593bc06a4 100644 --- a/ui/selectors/transactions.test.js +++ b/ui/selectors/transactions.test.js @@ -1,7 +1,11 @@ import { ApprovalType } from '@metamask/controller-utils'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { TransactionStatus } from '@metamask/transaction-controller'; import { CHAIN_IDS } from '../../shared/constants/network'; +import { + ETH_4337_METHODS, + ETH_EOA_METHODS, +} from '../../shared/constants/eth-methods'; import { unapprovedMessagesSelector, transactionsSelector, @@ -48,7 +52,7 @@ describe('Transaction Selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -146,7 +150,7 @@ describe('Transaction Selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -293,7 +297,7 @@ describe('Transaction Selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -396,7 +400,7 @@ describe('Transaction Selectors', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_4337_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/ui/store/actions.test.js b/ui/store/actions.test.js index 7aa1e340bbb5..e43c02e4bcb4 100644 --- a/ui/store/actions.test.js +++ b/ui/store/actions.test.js @@ -1,7 +1,7 @@ import sinon from 'sinon'; import configureStore from 'redux-mock-store'; import thunk from 'redux-thunk'; -import { EthAccountType, EthMethod } from '@metamask/keyring-api'; +import { EthAccountType } from '@metamask/keyring-api'; import { TransactionStatus } from '@metamask/transaction-controller'; import enLocale from '../../app/_locales/en/messages.json'; import MetaMaskController from '../../app/scripts/metamask-controller'; @@ -10,6 +10,7 @@ import { GAS_LIMITS } from '../../shared/constants/gas'; import { ORIGIN_METAMASK } from '../../shared/constants/app'; import { MetaMetricsNetworkEventSource } from '../../shared/constants/metametrics'; import { TRIGGER_TYPES } from '../../app/scripts/controllers/metamask-notifications/constants/notification-schema'; +import { ETH_EOA_METHODS } from '../../shared/constants/eth-methods'; import * as actions from './actions'; import * as actionConstants from './actionConstants'; import { setBackgroundConnection } from './background-connection'; @@ -36,7 +37,7 @@ const defaultState = { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -264,7 +265,7 @@ describe('Actions', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, @@ -2074,7 +2075,7 @@ describe('Actions', () => { }, }, options: {}, - methods: [...Object.values(EthMethod)], + methods: ETH_EOA_METHODS, type: EthAccountType.Eoa, }, }, diff --git a/yarn.lock b/yarn.lock index 9a7916e08d40..2fa690649d51 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4601,28 +4601,6 @@ __metadata: languageName: node linkType: hard -"@metamask/accounts-controller@npm:^11.0.0": - version: 11.0.0 - resolution: "@metamask/accounts-controller@npm:11.0.0" - dependencies: - "@ethereumjs/util": "npm:^8.1.0" - "@metamask/base-controller": "npm:^4.1.1" - "@metamask/eth-snap-keyring": "npm:^2.1.1" - "@metamask/keyring-api": "npm:^3.0.0" - "@metamask/snaps-sdk": "npm:^1.3.2" - "@metamask/snaps-utils": "npm:^5.1.2" - "@metamask/utils": "npm:^8.3.0" - deepmerge: "npm:^4.2.2" - ethereum-cryptography: "npm:^2.1.2" - immer: "npm:^9.0.6" - uuid: "npm:^8.3.2" - peerDependencies: - "@metamask/keyring-controller": ^13.0.0 - "@metamask/snaps-controllers": ^4.0.0 - checksum: 10/3d57f8763a0553ca22b492534cbb6b3ee40f61f434386f567965127382e2049919e9a5101eb97eb5e00d81f4b8e691c7a7f7ab0c177aee879a3e4da9cef3e8c1 - languageName: node - linkType: hard - "@metamask/accounts-controller@npm:^14.0.0": version: 14.0.0 resolution: "@metamask/accounts-controller@npm:14.0.0" @@ -4665,18 +4643,6 @@ __metadata: languageName: node linkType: hard -"@metamask/approval-controller@npm:^5.1.1": - version: 5.1.3 - resolution: "@metamask/approval-controller@npm:5.1.3" - dependencies: - "@metamask/base-controller": "npm:^4.1.1" - "@metamask/rpc-errors": "npm:^6.2.1" - "@metamask/utils": "npm:^8.3.0" - nanoid: "npm:^3.1.31" - checksum: 10/6d13cae814ee2a7301a6c17d071fef9c7bcdf9a3499c090178052a659be7d9d7bc93b609ec0f84a139ce873be0aff62e0b235b50d2f327c354d0d4e4fa19cea1 - languageName: node - linkType: hard - "@metamask/approval-controller@npm:^6.0.1, @metamask/approval-controller@npm:^6.0.2": version: 6.0.2 resolution: "@metamask/approval-controller@npm:6.0.2" @@ -4755,7 +4721,7 @@ __metadata: languageName: node linkType: hard -"@metamask/base-controller@npm:^4.0.0, @metamask/base-controller@npm:^4.0.1, @metamask/base-controller@npm:^4.1.0, @metamask/base-controller@npm:^4.1.1": +"@metamask/base-controller@npm:^4.1.0, @metamask/base-controller@npm:^4.1.1": version: 4.1.1 resolution: "@metamask/base-controller@npm:4.1.1" dependencies: @@ -4801,7 +4767,7 @@ __metadata: languageName: node linkType: hard -"@metamask/controller-utils@npm:^8.0.1, @metamask/controller-utils@npm:^8.0.2, @metamask/controller-utils@npm:^8.0.4": +"@metamask/controller-utils@npm:^8.0.1, @metamask/controller-utils@npm:^8.0.4": version: 8.0.4 resolution: "@metamask/controller-utils@npm:8.0.4" dependencies: @@ -5098,39 +5064,21 @@ __metadata: languageName: node linkType: hard -"@metamask/eth-snap-keyring@npm:^2.1.1, @metamask/eth-snap-keyring@npm:^2.1.2": - version: 2.1.2 - resolution: "@metamask/eth-snap-keyring@npm:2.1.2" - dependencies: - "@ethereumjs/tx": "npm:^4.2.0" - "@metamask/eth-sig-util": "npm:^7.0.1" - "@metamask/keyring-api": "npm:^2.0.0" - "@metamask/snaps-controllers": "npm:^4.1.0" - "@metamask/snaps-sdk": "npm:^1.4.0" - "@metamask/snaps-utils": "npm:^5.2.0" - "@metamask/utils": "npm:^8.1.0" - "@types/uuid": "npm:^9.0.1" - superstruct: "npm:^1.0.3" - uuid: "npm:^9.0.0" - checksum: 10/f2106954475c4f6bcbae5ba371b84963bf12b3a1540790bf9e9941eed82b3ad7cf52e3ee70c632691f363e6e3179b5d54aeb6567933ffa4d6790613e708459aa - languageName: node - linkType: hard - -"@metamask/eth-snap-keyring@npm:^4.0.0": - version: 4.0.0 - resolution: "@metamask/eth-snap-keyring@npm:4.0.0" +"@metamask/eth-snap-keyring@npm:^4.0.0, @metamask/eth-snap-keyring@npm:^4.2.1": + version: 4.2.1 + resolution: "@metamask/eth-snap-keyring@npm:4.2.1" dependencies: "@ethereumjs/tx": "npm:^4.2.0" "@metamask/eth-sig-util": "npm:^7.0.1" - "@metamask/keyring-api": "npm:^6.0.0" - "@metamask/snaps-controllers": "npm:^7.0.1" - "@metamask/snaps-sdk": "npm:^4.0.1" - "@metamask/snaps-utils": "npm:^7.0.3" + "@metamask/keyring-api": "npm:^6.3.1" + "@metamask/snaps-controllers": "npm:^8.1.1" + "@metamask/snaps-sdk": "npm:^4.2.0" + "@metamask/snaps-utils": "npm:^7.4.0" "@metamask/utils": "npm:^8.4.0" "@types/uuid": "npm:^9.0.1" superstruct: "npm:^1.0.3" uuid: "npm:^9.0.0" - checksum: 10/6f5a89ae400356a0f545f798d61d3cf1deb2dc17a24a9ab7304a5851a06be946573fe594787321d12cd1599ad86b61570bd43d7f700a23fb1aa65e52f981e118 + checksum: 10/96bccfe67fc490ea7891a7ef54839dc5bab6d6ffd4107fa05342045fc25e9045338df058b07c2942248e437c98279ae9addd13f632530cdca4f7cdeabcae0497 languageName: node linkType: hard @@ -5298,7 +5246,7 @@ __metadata: languageName: node linkType: hard -"@metamask/gas-fee-controller@npm:^15.0.0, @metamask/gas-fee-controller@npm:^15.1.0, @metamask/gas-fee-controller@npm:^15.1.2": +"@metamask/gas-fee-controller@npm:^15.1.0, @metamask/gas-fee-controller@npm:^15.1.1, @metamask/gas-fee-controller@npm:^15.1.2": version: 15.1.2 resolution: "@metamask/gas-fee-controller@npm:15.1.2" dependencies: @@ -5329,7 +5277,7 @@ __metadata: languageName: node linkType: hard -"@metamask/json-rpc-engine@npm:^7.1.0, @metamask/json-rpc-engine@npm:^7.1.1, @metamask/json-rpc-engine@npm:^7.3.1, @metamask/json-rpc-engine@npm:^7.3.2": +"@metamask/json-rpc-engine@npm:^7.1.0, @metamask/json-rpc-engine@npm:^7.1.1, @metamask/json-rpc-engine@npm:^7.3.2": version: 7.3.3 resolution: "@metamask/json-rpc-engine@npm:7.3.3" dependencies: @@ -5363,7 +5311,7 @@ __metadata: languageName: node linkType: hard -"@metamask/key-tree@npm:^9.0.0, @metamask/key-tree@npm:^9.1.0": +"@metamask/key-tree@npm:^9.1.0": version: 9.1.1 resolution: "@metamask/key-tree@npm:9.1.1" dependencies: @@ -5376,36 +5324,6 @@ __metadata: languageName: node linkType: hard -"@metamask/keyring-api@npm:^2.0.0": - version: 2.0.0 - resolution: "@metamask/keyring-api@npm:2.0.0" - dependencies: - "@metamask/providers": "npm:^14.0.1" - "@metamask/snaps-controllers": "npm:^3.4.1" - "@metamask/snaps-sdk": "npm:^1.2.0" - "@metamask/snaps-utils": "npm:^5.0.0" - "@metamask/utils": "npm:^8.1.0" - "@types/uuid": "npm:^9.0.1" - superstruct: "npm:^1.0.3" - uuid: "npm:^9.0.0" - checksum: 10/65dcca4d7f94102fafbccbb3ee79647f94f92985e8e3dab795fde5ee563fd3ff050ec59ee16c0276d06bb7d474a2281c504d2dc7cac60df3b2bfc918aa17615f - languageName: node - linkType: hard - -"@metamask/keyring-api@npm:^3.0.0": - version: 3.0.0 - resolution: "@metamask/keyring-api@npm:3.0.0" - dependencies: - "@metamask/providers": "npm:^14.0.1" - "@metamask/snaps-sdk": "npm:^1.3.2" - "@metamask/utils": "npm:^8.1.0" - "@types/uuid": "npm:^9.0.1" - superstruct: "npm:^1.0.3" - uuid: "npm:^9.0.0" - checksum: 10/ca07392e2cef1f5f7056e73c7a5d0a4092234b3d794aa3bca1ce3a1df0dc40832ec3fc0026965b54c07aec0ee175267de365033b028909484bc6d9fe4fb4c329 - languageName: node - linkType: hard - "@metamask/keyring-api@npm:^5.1.0": version: 5.1.0 resolution: "@metamask/keyring-api@npm:5.1.0" @@ -5421,23 +5339,23 @@ __metadata: languageName: node linkType: hard -"@metamask/keyring-api@npm:^6.0.0": - version: 6.1.0 - resolution: "@metamask/keyring-api@npm:6.1.0" +"@metamask/keyring-api@npm:^6.0.0, @metamask/keyring-api@npm:^6.3.1": + version: 6.3.1 + resolution: "@metamask/keyring-api@npm:6.3.1" dependencies: - "@metamask/snaps-sdk": "npm:^4.0.0" - "@metamask/utils": "npm:^8.3.0" - "@types/uuid": "npm:^9.0.1" + "@metamask/snaps-sdk": "npm:^4.2.0" + "@metamask/utils": "npm:^8.4.0" + "@types/uuid": "npm:^9.0.8" bech32: "npm:^2.0.0" superstruct: "npm:^1.0.3" - uuid: "npm:^9.0.0" + uuid: "npm:^9.0.1" peerDependencies: "@metamask/providers": ">=15 <17" - checksum: 10/a1fc89907f462dcfdf6d9ed63953f73d98f5b1b3277754b77ca3a1787ba4b422e2b251949cdda26f2b7b0840ba482f1a1a42f0543bbc130e4077b949ba9db8ee + checksum: 10/f2fd6e5a8c4f7c1f24c9a029f30f3c8cfa4394556eaa045e4bc98993583007c783c4124289569e3f49aa1cc7dceb49a2d2656d6e385ee5a44daaeeea8edc00c8 languageName: node linkType: hard -"@metamask/keyring-controller@npm:15.0.0, @metamask/keyring-controller@npm:^15.0.0": +"@metamask/keyring-controller@npm:15.0.0": version: 15.0.0 resolution: "@metamask/keyring-controller@npm:15.0.0" dependencies: @@ -5723,25 +5641,6 @@ __metadata: languageName: node linkType: hard -"@metamask/permission-controller@npm:^7.0.0, @metamask/permission-controller@npm:^7.1.0": - version: 7.1.0 - resolution: "@metamask/permission-controller@npm:7.1.0" - dependencies: - "@metamask/base-controller": "npm:^4.0.1" - "@metamask/controller-utils": "npm:^8.0.1" - "@metamask/json-rpc-engine": "npm:^7.3.1" - "@metamask/rpc-errors": "npm:^6.1.0" - "@metamask/utils": "npm:^8.2.0" - "@types/deep-freeze-strict": "npm:^1.1.0" - deep-freeze-strict: "npm:^1.1.1" - immer: "npm:^9.0.6" - nanoid: "npm:^3.1.31" - peerDependencies: - "@metamask/approval-controller": ^5.1.1 - checksum: 10/c438048533512e52083171fc81fe364fd108e8219250a43409a085e960ecb0241c649824c1f05a2272b10ef0ea44fc4df283c0fa32acf2df73db6a0b1cae6487 - languageName: node - linkType: hard - "@metamask/permission-controller@npm:^9.0.1, @metamask/permission-controller@npm:^9.0.2": version: 9.0.2 resolution: "@metamask/permission-controller@npm:9.0.2" @@ -5772,19 +5671,6 @@ __metadata: languageName: node linkType: hard -"@metamask/phishing-controller@npm:^8.0.1": - version: 8.0.2 - resolution: "@metamask/phishing-controller@npm:8.0.2" - dependencies: - "@metamask/base-controller": "npm:^4.1.1" - "@metamask/controller-utils": "npm:^8.0.2" - "@types/punycode": "npm:^2.1.0" - eth-phishing-detect: "npm:^1.2.0" - punycode: "npm:^2.1.1" - checksum: 10/f00b70a7b50d2093c035c1c974ffb42d61cc998efbab35f0bc7d9ea406388cf2b8b9303aa3c14def12a0f7eefb47fb24a0938ed734525f2bc1d6bf9b24aa85c1 - languageName: node - linkType: hard - "@metamask/phishing-controller@npm:^9.0.1, @metamask/phishing-controller@npm:^9.0.2": version: 9.0.2 resolution: "@metamask/phishing-controller@npm:9.0.2" @@ -5880,7 +5766,7 @@ __metadata: languageName: node linkType: hard -"@metamask/providers@npm:^14.0.1, @metamask/providers@npm:^14.0.2": +"@metamask/providers@npm:^14.0.2": version: 14.0.2 resolution: "@metamask/providers@npm:14.0.2" dependencies: @@ -5948,7 +5834,7 @@ __metadata: languageName: node linkType: hard -"@metamask/rpc-errors@npm:^6.0.0, @metamask/rpc-errors@npm:^6.1.0, @metamask/rpc-errors@npm:^6.2.1": +"@metamask/rpc-errors@npm:^6.0.0, @metamask/rpc-errors@npm:^6.2.1": version: 6.2.1 resolution: "@metamask/rpc-errors@npm:6.2.1" dependencies: @@ -6049,115 +5935,7 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-controllers@npm:^3.4.1": - version: 3.6.0 - resolution: "@metamask/snaps-controllers@npm:3.6.0" - dependencies: - "@metamask/approval-controller": "npm:^5.1.1" - "@metamask/base-controller": "npm:^4.0.0" - "@metamask/json-rpc-engine": "npm:^7.3.1" - "@metamask/object-multiplex": "npm:^2.0.0" - "@metamask/permission-controller": "npm:^7.0.0" - "@metamask/phishing-controller": "npm:^8.0.1" - "@metamask/post-message-stream": "npm:^7.0.0" - "@metamask/rpc-errors": "npm:^6.1.0" - "@metamask/snaps-registry": "npm:^3.0.0" - "@metamask/snaps-rpc-methods": "npm:^4.1.0" - "@metamask/snaps-sdk": "npm:^1.3.1" - "@metamask/snaps-utils": "npm:^5.1.1" - "@metamask/utils": "npm:^8.2.1" - "@xstate/fsm": "npm:^2.0.0" - browserify-zlib: "npm:^0.2.0" - concat-stream: "npm:^2.0.0" - get-npm-tarball-url: "npm:^2.0.3" - immer: "npm:^9.0.6" - json-rpc-middleware-stream: "npm:^5.0.0" - nanoid: "npm:^3.1.31" - readable-stream: "npm:^3.6.2" - readable-web-to-node-stream: "npm:^3.0.2" - tar-stream: "npm:^3.1.6" - peerDependencies: - "@metamask/snaps-execution-environments": ^3.4.3 - peerDependenciesMeta: - "@metamask/snaps-execution-environments": - optional: true - checksum: 10/1aae53533ff6317bcc775a8e40f76b0e2a6ef519d3f8553390ed9bde65ceeb0ec914cd9c7439514404a5688c5b16d527ce757eb0ff24adfcb33cac2b59f5268f - languageName: node - linkType: hard - -"@metamask/snaps-controllers@npm:^4.1.0": - version: 4.1.0 - resolution: "@metamask/snaps-controllers@npm:4.1.0" - dependencies: - "@metamask/approval-controller": "npm:^5.1.1" - "@metamask/base-controller": "npm:^4.1.0" - "@metamask/json-rpc-engine": "npm:^7.3.1" - "@metamask/object-multiplex": "npm:^2.0.0" - "@metamask/permission-controller": "npm:^7.1.0" - "@metamask/phishing-controller": "npm:^8.0.1" - "@metamask/post-message-stream": "npm:^7.0.0" - "@metamask/rpc-errors": "npm:^6.1.0" - "@metamask/snaps-registry": "npm:^3.0.0" - "@metamask/snaps-rpc-methods": "npm:^5.0.0" - "@metamask/snaps-sdk": "npm:^1.4.0" - "@metamask/snaps-utils": "npm:^5.2.0" - "@metamask/utils": "npm:^8.3.0" - "@xstate/fsm": "npm:^2.0.0" - browserify-zlib: "npm:^0.2.0" - concat-stream: "npm:^2.0.0" - get-npm-tarball-url: "npm:^2.0.3" - immer: "npm:^9.0.6" - json-rpc-middleware-stream: "npm:^5.0.0" - nanoid: "npm:^3.1.31" - readable-stream: "npm:^3.6.2" - readable-web-to-node-stream: "npm:^3.0.2" - tar-stream: "npm:^3.1.6" - peerDependencies: - "@metamask/snaps-execution-environments": ^3.5.0 - peerDependenciesMeta: - "@metamask/snaps-execution-environments": - optional: true - checksum: 10/d84843ca91d6e525c42c11000c69c392cb0e7cc24e347c55c9c8e9660addebb91f6ff1b931b1be69e3b99f9b31e37ef48bef099986918eb2e18f62f67b299c41 - languageName: node - linkType: hard - -"@metamask/snaps-controllers@npm:^7.0.1": - version: 7.0.1 - resolution: "@metamask/snaps-controllers@npm:7.0.1" - dependencies: - "@metamask/approval-controller": "npm:^6.0.1" - "@metamask/base-controller": "npm:^5.0.1" - "@metamask/json-rpc-engine": "npm:^8.0.1" - "@metamask/json-rpc-middleware-stream": "npm:^7.0.1" - "@metamask/object-multiplex": "npm:^2.0.0" - "@metamask/permission-controller": "npm:^9.0.2" - "@metamask/phishing-controller": "npm:^9.0.1" - "@metamask/post-message-stream": "npm:^8.0.0" - "@metamask/rpc-errors": "npm:^6.2.1" - "@metamask/snaps-registry": "npm:^3.1.0" - "@metamask/snaps-rpc-methods": "npm:^8.0.0" - "@metamask/snaps-sdk": "npm:^4.0.0" - "@metamask/snaps-utils": "npm:^7.1.0" - "@metamask/utils": "npm:^8.3.0" - "@xstate/fsm": "npm:^2.0.0" - browserify-zlib: "npm:^0.2.0" - concat-stream: "npm:^2.0.0" - get-npm-tarball-url: "npm:^2.0.3" - immer: "npm:^9.0.6" - nanoid: "npm:^3.1.31" - readable-stream: "npm:^3.6.2" - readable-web-to-node-stream: "npm:^3.0.2" - tar-stream: "npm:^3.1.7" - peerDependencies: - "@metamask/snaps-execution-environments": ^6.0.0 - peerDependenciesMeta: - "@metamask/snaps-execution-environments": - optional: true - checksum: 10/4c8208aee45635f206e0663caaaa32c64a48aa78a6fcc6b3507d2214c1740db186ae750d8e9eb972283fd89d3a8f4f054b4ddf77443519fdd1bd35e97f6141d2 - languageName: node - linkType: hard - -"@metamask/snaps-controllers@npm:^8.2.0": +"@metamask/snaps-controllers@npm:^8.1.1, @metamask/snaps-controllers@npm:^8.2.0": version: 8.2.0 resolution: "@metamask/snaps-controllers@npm:8.2.0" dependencies: @@ -6213,7 +5991,7 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-registry@npm:^3.0.0, @metamask/snaps-registry@npm:^3.1.0": +"@metamask/snaps-registry@npm:^3.1.0": version: 3.1.0 resolution: "@metamask/snaps-registry@npm:3.1.0" dependencies: @@ -6225,54 +6003,6 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-rpc-methods@npm:^4.1.0": - version: 4.1.0 - resolution: "@metamask/snaps-rpc-methods@npm:4.1.0" - dependencies: - "@metamask/key-tree": "npm:^9.0.0" - "@metamask/permission-controller": "npm:^7.0.0" - "@metamask/rpc-errors": "npm:^6.1.0" - "@metamask/snaps-sdk": "npm:^1.3.1" - "@metamask/snaps-utils": "npm:^5.1.1" - "@metamask/utils": "npm:^8.2.1" - "@noble/hashes": "npm:^1.3.1" - superstruct: "npm:^1.0.3" - checksum: 10/1e3f0bcb407b1bf53ed045a1914ee70f4e692c4d8cb453bf0d9e9ff7519a24adb695181d2eb336e010e908f7e4198e76b498dc3510e3271a75c2c5a3db98068f - languageName: node - linkType: hard - -"@metamask/snaps-rpc-methods@npm:^5.0.0": - version: 5.0.0 - resolution: "@metamask/snaps-rpc-methods@npm:5.0.0" - dependencies: - "@metamask/key-tree": "npm:^9.0.0" - "@metamask/permission-controller": "npm:^7.1.0" - "@metamask/rpc-errors": "npm:^6.1.0" - "@metamask/snaps-sdk": "npm:^1.4.0" - "@metamask/snaps-utils": "npm:^5.2.0" - "@metamask/utils": "npm:^8.3.0" - "@noble/hashes": "npm:^1.3.1" - superstruct: "npm:^1.0.3" - checksum: 10/6d8e0727782b1c25858916c6892cd83acc7a5a26babbd0ef0f402e1af6e065a72abeb48b5cc8031eb7f3729f7d023ba80a657b0d21501033e6cfb0dc39154cd6 - languageName: node - linkType: hard - -"@metamask/snaps-rpc-methods@npm:^8.0.0": - version: 8.1.0 - resolution: "@metamask/snaps-rpc-methods@npm:8.1.0" - dependencies: - "@metamask/key-tree": "npm:^9.0.0" - "@metamask/permission-controller": "npm:^9.0.2" - "@metamask/rpc-errors": "npm:^6.2.1" - "@metamask/snaps-sdk": "npm:^4.1.0" - "@metamask/snaps-utils": "npm:^7.3.0" - "@metamask/utils": "npm:^8.3.0" - "@noble/hashes": "npm:^1.3.1" - superstruct: "npm:^1.0.3" - checksum: 10/08ceb8582c3d8671b9eebc963ba834d56d48c207f26cdf2b969976e36e4db21f602e6ac743216fb4da5c7c2b7e1d3f677617ee37a8be13fb38b679b5e1975970 - languageName: node - linkType: hard - "@metamask/snaps-rpc-methods@npm:^9.1.0": version: 9.1.0 resolution: "@metamask/snaps-rpc-methods@npm:9.1.0" @@ -6303,37 +6033,7 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-utils@npm:^5.0.0, @metamask/snaps-utils@npm:^5.1.1, @metamask/snaps-utils@npm:^5.1.2, @metamask/snaps-utils@npm:^5.2.0": - version: 5.2.0 - resolution: "@metamask/snaps-utils@npm:5.2.0" - dependencies: - "@babel/core": "npm:^7.23.2" - "@babel/types": "npm:^7.23.0" - "@metamask/base-controller": "npm:^4.1.0" - "@metamask/key-tree": "npm:^9.0.0" - "@metamask/permission-controller": "npm:^7.1.0" - "@metamask/rpc-errors": "npm:^6.1.0" - "@metamask/slip44": "npm:^3.1.0" - "@metamask/snaps-registry": "npm:^3.0.0" - "@metamask/snaps-sdk": "npm:^1.4.0" - "@metamask/utils": "npm:^8.3.0" - "@noble/hashes": "npm:^1.3.1" - "@scure/base": "npm:^1.1.1" - chalk: "npm:^4.1.2" - cron-parser: "npm:^4.5.0" - fast-deep-equal: "npm:^3.1.3" - fast-json-stable-stringify: "npm:^2.1.0" - is-svg: "npm:^4.4.0" - rfdc: "npm:^1.3.0" - semver: "npm:^7.5.4" - ses: "npm:^1.1.0" - superstruct: "npm:^1.0.3" - validate-npm-package-name: "npm:^5.0.0" - checksum: 10/bd3aa8212e7c79923769fe4102c19313ba0b55a58cc87bad3fb22e308e32faa9de80f0f36f0e3420f931115edc0b1ccac205e8a2e09247f37802b545110c48bb - languageName: node - linkType: hard - -"@metamask/snaps-utils@npm:^7.0.3, @metamask/snaps-utils@npm:^7.1.0, @metamask/snaps-utils@npm:^7.3.0, @metamask/snaps-utils@npm:^7.4.0": +"@metamask/snaps-utils@npm:^7.1.0, @metamask/snaps-utils@npm:^7.4.0": version: 7.4.0 resolution: "@metamask/snaps-utils@npm:7.4.0" dependencies: @@ -6435,7 +6135,7 @@ __metadata: languageName: node linkType: hard -"@metamask/transaction-controller@npm:^29.1.0": +"@metamask/transaction-controller@npm:^29.0.0, @metamask/transaction-controller@npm:^29.1.0": version: 29.1.0 resolution: "@metamask/transaction-controller@npm:29.1.0" dependencies: @@ -6470,20 +6170,20 @@ __metadata: languageName: node linkType: hard -"@metamask/user-operation-controller@npm:^8.0.1": - version: 8.0.1 - resolution: "@metamask/user-operation-controller@npm:8.0.1" +"@metamask/user-operation-controller@npm:^10.0.0": + version: 10.0.0 + resolution: "@metamask/user-operation-controller@npm:10.0.0" dependencies: - "@metamask/approval-controller": "npm:^6.0.1" - "@metamask/base-controller": "npm:^5.0.1" + "@metamask/approval-controller": "npm:^6.0.2" + "@metamask/base-controller": "npm:^5.0.2" "@metamask/controller-utils": "npm:^9.1.0" "@metamask/eth-query": "npm:^4.0.0" - "@metamask/gas-fee-controller": "npm:^15.0.0" - "@metamask/keyring-controller": "npm:^15.0.0" + "@metamask/gas-fee-controller": "npm:^15.1.1" + "@metamask/keyring-controller": "npm:^16.0.0" "@metamask/network-controller": "npm:^18.1.0" - "@metamask/polling-controller": "npm:^6.0.1" + "@metamask/polling-controller": "npm:^6.0.2" "@metamask/rpc-errors": "npm:^6.2.1" - "@metamask/transaction-controller": "npm:^28.1.0" + "@metamask/transaction-controller": "npm:^29.0.0" "@metamask/utils": "npm:^8.3.0" bn.js: "npm:^5.2.1" immer: "npm:^9.0.6" @@ -6493,10 +6193,10 @@ __metadata: peerDependencies: "@metamask/approval-controller": ^6.0.0 "@metamask/gas-fee-controller": ^15.0.0 - "@metamask/keyring-controller": ^15.0.0 + "@metamask/keyring-controller": ^16.0.0 "@metamask/network-controller": ^18.0.0 - "@metamask/transaction-controller": ^28.0.0 - checksum: 10/b489706430c526a795d408e0d719f2a0d7f79586ea5f556f1a737c61eb61319022e168b65527e5be061bb7bb9a3fa56a58ff50d78fce8eab89ba8663c6877ab0 + "@metamask/transaction-controller": ^29.0.0 + checksum: 10/b1b6fb1c9eba5880a9ebe2ea68897de85f788ca961ec2add0b2c0313e992c3f9053e6113e789b4823b71454fb42b424af010d03e7a39f183c828e7897bb30498 languageName: node linkType: hard @@ -10530,10 +10230,10 @@ __metadata: languageName: node linkType: hard -"@types/uuid@npm:^9.0.0, @types/uuid@npm:^9.0.1": - version: 9.0.2 - resolution: "@types/uuid@npm:9.0.2" - checksum: 10/1754bcf3444e1e3aeadd6e774fc328eb53bc956665e2e8fb6ec127aa8e1f43d9a224c3d22a9a6233dca8dd81a12dc7fed4d84b8876dd5ec82d40f574f7ff8b68 +"@types/uuid@npm:^9.0.0, @types/uuid@npm:^9.0.1, @types/uuid@npm:^9.0.8": + version: 9.0.8 + resolution: "@types/uuid@npm:9.0.8" + checksum: 10/b8c60b7ba8250356b5088302583d1704a4e1a13558d143c549c408bf8920535602ffc12394ede77f8a8083511b023704bc66d1345792714002bfa261b17c5275 languageName: node linkType: hard @@ -10657,14 +10357,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.10.0" + version: 7.11.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.11.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:7.10.0" - "@typescript-eslint/type-utils": "npm:7.10.0" - "@typescript-eslint/utils": "npm:7.10.0" - "@typescript-eslint/visitor-keys": "npm:7.10.0" + "@typescript-eslint/scope-manager": "npm:7.11.0" + "@typescript-eslint/type-utils": "npm:7.11.0" + "@typescript-eslint/utils": "npm:7.11.0" + "@typescript-eslint/visitor-keys": "npm:7.11.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -10675,7 +10375,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/dfe505cdf718dd29e8637b902e4c544c6b7d246d2051fd1936090423eb3dadfe2bd757de51e565e6fd80e74cf1918e191c26fee6df515100484ec3efd9b8d111 + checksum: 10/be95ed0bbd5b34c47239677ea39d531bcd8a18717a67d70a297bed5b0050b256159856bb9c1e894ac550d011c24bb5b4abf8056c5d70d0d5895f0cc1accd14ea languageName: node linkType: hard @@ -10698,20 +10398,20 @@ __metadata: linkType: hard "@typescript-eslint/parser@npm:^7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/parser@npm:7.10.0" + version: 7.11.0 + resolution: "@typescript-eslint/parser@npm:7.11.0" dependencies: - "@typescript-eslint/scope-manager": "npm:7.10.0" - "@typescript-eslint/types": "npm:7.10.0" - "@typescript-eslint/typescript-estree": "npm:7.10.0" - "@typescript-eslint/visitor-keys": "npm:7.10.0" + "@typescript-eslint/scope-manager": "npm:7.11.0" + "@typescript-eslint/types": "npm:7.11.0" + "@typescript-eslint/typescript-estree": "npm:7.11.0" + "@typescript-eslint/visitor-keys": "npm:7.11.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/1fa71049b2debf2f7f5366fb433e3d4c8e1591c2061a15fa8797d14623a2b6984340a59e7717acc013ce8c6a2ed32c5c0e811fe948b5936d41c2a5a09b61d130 + checksum: 10/0a32417aec62d7de04427323ab3fc8159f9f02429b24f739d8748e8b54fc65b0e3dbae8e4779c4b795f0d8e5f98a4d83a43b37ea0f50ebda51546cdcecf73caa languageName: node linkType: hard @@ -10735,22 +10435,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/scope-manager@npm:7.10.0" +"@typescript-eslint/scope-manager@npm:7.11.0": + version: 7.11.0 + resolution: "@typescript-eslint/scope-manager@npm:7.11.0" dependencies: - "@typescript-eslint/types": "npm:7.10.0" - "@typescript-eslint/visitor-keys": "npm:7.10.0" - checksum: 10/838a7a9573577d830b2f65801ce045abe6fad08ac7e04bac4cc9b2e5b7cbac07e645de9c79b9485f4cc361fe25da5319025aa0336fad618023fff62e4e980638 + "@typescript-eslint/types": "npm:7.11.0" + "@typescript-eslint/visitor-keys": "npm:7.11.0" + checksum: 10/79eff310405c6657ff092641e3ad51c6698c6708b915ecef945ebdd1737bd48e1458c5575836619f42dec06143ec0e3a826f3e551af590d297367da3d08f329e languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/type-utils@npm:7.10.0" +"@typescript-eslint/type-utils@npm:7.11.0": + version: 7.11.0 + resolution: "@typescript-eslint/type-utils@npm:7.11.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.10.0" - "@typescript-eslint/utils": "npm:7.10.0" + "@typescript-eslint/typescript-estree": "npm:7.11.0" + "@typescript-eslint/utils": "npm:7.11.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependencies: @@ -10758,7 +10458,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/e62db9ffbfbccce60258108f7ed025005e04df18da897ff1b30049e3c10a47150e94c2fb5ac0ab9711ebb60517521213dcccbea6d08125107a87a67088a79042 + checksum: 10/ab6ebeff68a60fc40d0ace88e03d6b4242b8f8fe2fa300db161780d58777b57f69fa077cd482e1b673316559459bd20b8cc89a7f9f30e644bfed8293f77f0e4b languageName: node linkType: hard @@ -10783,10 +10483,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/types@npm:7.10.0" - checksum: 10/76075a7b87ddfff8e7e4aebf3d225e67bf79ead12a7709999d4d5c31611d9c0813ca69a9298f320efb018fe493ce3763c964a0e670a4c953d8eff000f10672c0 +"@typescript-eslint/types@npm:7.11.0": + version: 7.11.0 + resolution: "@typescript-eslint/types@npm:7.11.0" + checksum: 10/c6a0b47ef43649a59c9d51edfc61e367b55e519376209806b1c98385a8385b529e852c7a57e081fb15ef6a5dc0fc8e90bd5a508399f5ac2137f4d462e89cdc30 languageName: node linkType: hard @@ -10827,12 +10527,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.10.0" +"@typescript-eslint/typescript-estree@npm:7.11.0": + version: 7.11.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.11.0" dependencies: - "@typescript-eslint/types": "npm:7.10.0" - "@typescript-eslint/visitor-keys": "npm:7.10.0" + "@typescript-eslint/types": "npm:7.11.0" + "@typescript-eslint/visitor-keys": "npm:7.11.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" @@ -10842,7 +10542,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/d11d0c45749c9bd4a187b6dfdf5600e36ba8c87667cd2020d9158667c47c32ec0bcb1ef3b7eee5577b667def5f7f33d8131092a0f221b3d3e8105078800f923f + checksum: 10/b98b101e42d3b91003510a5c5a83f4350b6c1cf699bf2e409717660579ffa71682bc280c4f40166265c03f9546ed4faedc3723e143f1ab0ed7f5990cc3dff0ae languageName: node linkType: hard @@ -10864,17 +10564,17 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/utils@npm:7.10.0" +"@typescript-eslint/utils@npm:7.11.0": + version: 7.11.0 + resolution: "@typescript-eslint/utils@npm:7.11.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:7.10.0" - "@typescript-eslint/types": "npm:7.10.0" - "@typescript-eslint/typescript-estree": "npm:7.10.0" + "@typescript-eslint/scope-manager": "npm:7.11.0" + "@typescript-eslint/types": "npm:7.11.0" + "@typescript-eslint/typescript-estree": "npm:7.11.0" peerDependencies: eslint: ^8.56.0 - checksum: 10/62327b585295f9c3aa2508aefac639d562b6f7f270a229aa3a2af8dbd055f4a4d230a8facae75a8a53bb8222b0041162072d259add56b541f8bdfda8da36ea5f + checksum: 10/fbef14e166a70ccc4527c0731e0338acefa28218d1a018aa3f5b6b1ad9d75c56278d5f20bda97cf77da13e0a67c4f3e579c5b2f1c2e24d676960927921b55851 languageName: node linkType: hard @@ -10926,13 +10626,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.10.0" +"@typescript-eslint/visitor-keys@npm:7.11.0": + version: 7.11.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.11.0" dependencies: - "@typescript-eslint/types": "npm:7.10.0" + "@typescript-eslint/types": "npm:7.11.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10/44b555a075bdff38e3e13c454ceaac50aa2546635e81f907d1ea84822c8887487d1d6bb4ff690f627da9585dc19ad07e228847c162c30bb06c46fb119899d8cc + checksum: 10/1f2cf1214638e9e78e052393c9e24295196ec4781b05951659a3997e33f8699a760ea3705c17d770e10eda2067435199e0136ab09e5fac63869e22f2da184d89 languageName: node linkType: hard @@ -18428,7 +18128,7 @@ __metadata: languageName: node linkType: hard -"fast-xml-parser@npm:^4.1.3, fast-xml-parser@npm:^4.3.4": +"fast-xml-parser@npm:^4.3.4": version: 4.3.4 resolution: "fast-xml-parser@npm:4.3.4" dependencies: @@ -21972,15 +21672,6 @@ __metadata: languageName: node linkType: hard -"is-svg@npm:^4.4.0": - version: 4.4.0 - resolution: "is-svg@npm:4.4.0" - dependencies: - fast-xml-parser: "npm:^4.1.3" - checksum: 10/cd5a0ba1af653e4897721913b0b80de968fa5b19eb1a592412f4672d3a1203935d183c2a9dbf61d68023739ee43d3761ea795ae1a9f618c6098a9e89eacdd256 - languageName: node - linkType: hard - "is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": version: 1.0.4 resolution: "is-symbol@npm:1.0.4" @@ -23237,7 +22928,7 @@ __metadata: languageName: node linkType: hard -"json-rpc-middleware-stream@npm:^5.0.0, json-rpc-middleware-stream@npm:^5.0.1": +"json-rpc-middleware-stream@npm:^5.0.1": version: 5.0.1 resolution: "json-rpc-middleware-stream@npm:5.0.1" dependencies: @@ -25069,7 +24760,7 @@ __metadata: "@metamask-institutional/sdk": "npm:^0.1.27" "@metamask-institutional/transaction-update": "npm:^0.2.2" "@metamask/abi-utils": "npm:^2.0.2" - "@metamask/accounts-controller": "npm:^11.0.0" + "@metamask/accounts-controller": "npm:^14.0.0" "@metamask/address-book-controller": "npm:^4.0.1" "@metamask/announcement-controller": "npm:^6.1.0" "@metamask/approval-controller": "npm:^6.0.1" @@ -25094,7 +24785,7 @@ __metadata: "@metamask/eth-ledger-bridge-keyring": "npm:^2.0.1" "@metamask/eth-query": "npm:^4.0.0" "@metamask/eth-sig-util": "npm:^7.0.1" - "@metamask/eth-snap-keyring": "npm:^2.1.2" + "@metamask/eth-snap-keyring": "npm:^4.2.1" "@metamask/eth-token-tracker": "npm:^8.0.0" "@metamask/eth-trezor-keyring": "npm:^3.1.0" "@metamask/etherscan-link": "npm:^3.0.0" @@ -25104,7 +24795,7 @@ __metadata: "@metamask/forwarder": "npm:^1.1.0" "@metamask/gas-fee-controller": "npm:^15.1.2" "@metamask/jazzicon": "npm:^2.0.0" - "@metamask/keyring-api": "npm:^3.0.0" + "@metamask/keyring-api": "npm:^6.3.1" "@metamask/keyring-controller": "patch:@metamask/keyring-controller@npm%3A15.0.0#~/.yarn/patches/@metamask-keyring-controller-npm-15.0.0-fa070ce311.patch" "@metamask/logging-controller": "npm:^3.0.1" "@metamask/logo": "npm:^3.1.2" @@ -25138,7 +24829,7 @@ __metadata: "@metamask/test-bundler": "npm:^1.0.0" "@metamask/test-dapp": "npm:^8.4.0" "@metamask/transaction-controller": "npm:^29.1.0" - "@metamask/user-operation-controller": "npm:^8.0.1" + "@metamask/user-operation-controller": "npm:^10.0.0" "@metamask/utils": "npm:^8.2.1" "@ngraveio/bc-ur": "npm:^1.1.12" "@noble/ciphers": "npm:^0.5.2" @@ -33261,7 +32952,7 @@ __metadata: languageName: node linkType: hard -"tar-stream@npm:^3.1.6, tar-stream@npm:^3.1.7": +"tar-stream@npm:^3.1.7": version: 3.1.7 resolution: "tar-stream@npm:3.1.7" dependencies: From 23111811b19b9c4ab461cf70fab8b81ee1bb10e9 Mon Sep 17 00:00:00 2001 From: Harika Jetpoluru <153644847+hjetpoluru@users.noreply.github.com> Date: Mon, 3 Jun 2024 13:16:32 -0400 Subject: [PATCH 32/43] chore: Master sync (#25002) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Its a master sync PR to update the change log and package version against develop [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/25002?quickstart=1) --------- Co-authored-by: Marina Boboc <120041701+benjisclowder@users.noreply.github.com> Co-authored-by: Mark Stacey Co-authored-by: Kanthesha Devaramane Co-authored-by: MetaMask Bot Co-authored-by: Dan J Miller Co-authored-by: Derek Brans Co-authored-by: David Walsh Co-authored-by: Daniel <80175477+dan437@users.noreply.github.com> Co-authored-by: Matteo Scurati Co-authored-by: Victor Thomas <10986371+vthomas13@users.noreply.github.com> Co-authored-by: Frederik Bolding Co-authored-by: OGPoyraz Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com> Co-authored-by: Jony Bursztyn Co-authored-by: Michele Esposito <34438276+mikesposito@users.noreply.github.com> Co-authored-by: salimtb Co-authored-by: seaona <54408225+seaona@users.noreply.github.com> Co-authored-by: Ariella Vu <20778143+digiwand@users.noreply.github.com> Co-authored-by: Jyoti Puri Co-authored-by: NidhiKJha Co-authored-by: Sébastien Van Eyck --- CHANGELOG.md | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++- package.json | 2 +- 2 files changed, 66 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e193425f8b82..cc8e54a166d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,66 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [11.16.3] +### Changed +- Update Trezor logo ([#24343]https://github.com/MetaMask/metamask-extension/pull/24343) + +## [11.16.2] +### Fixed +- Fix gas fee displays on the Scroll network ([#24854](https://github.com/MetaMask/metamask-extension/pull/24854)) + +## [11.16.1] +### Changed +- Update Smart Transactions opt-in moda ([#24771](https://github.com/MetaMask/metamask-extension/pull/24771)) + +## [11.16.0] +### Added +- Revamped the UI for Snap installation and update processes ([#23870](https://github.com/MetaMask/metamask-extension/pull/23870)) +- Added a 'Restore' onboarding option for seamless recovery from backup ([#23739](https://github.com/MetaMask/metamask-extension/pull/23739)) +- Enabled ERC20 token detection on seven new networks ([#24121](https://github.com/MetaMask/metamask-extension/pull/24121)) +- Activated token and NFT Auto-Detect by default for new mobile users ([#23700](https://github.com/MetaMask/metamask-extension/pull/23700)) +- Introduced the Filecoin SVG logo ([#24039](https://github.com/MetaMask/metamask-extension/pull/24039)) +- Enhanced transaction confirmations with a tooltip and icon for busy network status ([#24104](https://github.com/MetaMask/metamask-extension/pull/24104)) +- Added a setting to experiment with redesigned confirmation pages through a feature flag ([#24052](https://github.com/MetaMask/metamask-extension/pull/24052)) +- Introduced 'Developer Options' in settings for easier app state management and feature toggling during development ([#22382](https://github.com/MetaMask/metamask-extension/pull/22382)) +- Automated Layer 1 gas fee inclusion for Scroll network transactions ([#23991](https://github.com/MetaMask/metamask-extension/pull/23991)) +- Enhanced the Smart Transactions status page to display simulation details for native balance changes ([#24075](https://github.com/MetaMask/metamask-extension/pull/24075)) +- Enhanced security by disabling paste functionality in the Snap removal confirmation field ([#23993](https://github.com/MetaMask/metamask-extension/pull/23993)) +- Launched Transaction Insights V2 and Signature Insights to all users ([#23630](https://github.com/MetaMask/metamask-extension/pull/23630)) + +### Changed +- Updated the messaging for Blockaid warnings to provide clearer information to users during transactions ([#24037](https://github.com/MetaMask/metamask-extension/pull/24037)) +- Optimized Smart Transactions by hiding the 'retry' button and displaying cancelled transactions only for Swaps in the Activity tab ([#24176](https://github.com/MetaMask/metamask-extension/pull/24176)) +- Refreshed the Smart Transactions Opt In modal with updated UI and content, alongside a rebranding to 'Smart Transactions' ([#24053](https://github.com/MetaMask/metamask-extension/pull/24053)) +- Eliminated the product tour from the home page ([#24051](https://github.com/MetaMask/metamask-extension/pull/24051)) +- Refreshed the look of toggle buttons ([#24090](https://github.com/MetaMask/metamask-extension/pull/24090)) + +### Fixed +- Improved the redirect screen by caching dapp icons to prevent disappearance during loading ([#23999](https://github.com/MetaMask/metamask-extension/pull/23999)) +- Fixed PPOM/Blockaid functionality in MV3 builds ([#24115](https://github.com/MetaMask/metamask-extension/pull/24115)) +- Fixed offscreen document loading errors in MV3 ([#24083](https://github.com/MetaMask/metamask-extension/pull/24083)) +- Improved account connection process by automatically filtering out duplicate or already connected accounts ([#24057](https://github.com/MetaMask/metamask-extension/pull/24057)) +- Fixed an issue where the token list was cleared upon network switch ([#24212](https://github.com/MetaMask/metamask-extension/pull/24212)) +- Improved how NFTs appear in MetaMask by addressing an issue with fetching details for certain NFTs ([#24029](https://github.com/MetaMask/metamask-extension/pull/24029)) +- Resolved an issue where fiat prices for ERC20 tokens were not updating ([#24021](https://github.com/MetaMask/metamask-extension/pull/24021)) +- Deprecated the Mumbai and Linea Goerli test networks ([#23695](https://github.com/MetaMask/metamask-extension/pull/23695)) +- Fixed the issue where the checkmark icon was missing in the confirmation message after importing an ERC20 token ([#24005](https://github.com/MetaMask/metamask-extension/pull/24005)) +- Resolved an issue where transactions triggered during a pending signature request caused an indefinite loading state ([#24173](https://github.com/MetaMask/metamask-extension/pull/24173)) +- Implemented UI improvements on redesigned signature request pages based on feedback ([#24135](https://github.com/MetaMask/metamask-extension/pull/24135)) +- Enhanced the 'scroll to bottom' button with improved hover effects ([#24147](https://github.com/MetaMask/metamask-extension/pull/24147)) +- Enabled Ledger wallet users to sign signature requests seamlessly on the newly designed confirmation pages ([#23780](https://github.com/MetaMask/metamask-extension/pull/23780)) +- Optimized gas estimation failure warnings to display a single alert ([#23886](https://github.com/MetaMask/metamask-extension/pull/23886)) +- Improved the readability of footer button labels in the new-network component for both light and dark modes ([#23988](https://github.com/MetaMask/metamask-extension/pull/23988)) +- Fixed synchronization issues with per-dapp selected network preferences across toggle changes ([#24093](https://github.com/MetaMask/metamask-extension/pull/24093)) +- Fixed a problem where changing site permissions didn't immediately update the network used by the site ([#23525](https://github.com/MetaMask/metamask-extension/pull/23525)) +- Corrected the display and spacing of the permissions tooltip within the connect accounts modal ([#24098](https://github.com/MetaMask/metamask-extension/pull/24098)) +- Disabled the 'Connect more accounts' button when all accounts are already connected ([#24084](https://github.com/MetaMask/metamask-extension/pull/24084)) +- Improved back navigation from Connected Accounts ([#24085](https://github.com/MetaMask/metamask-extension/pull/24085)) +- Updated the wallet, permissions, and connections screens to align with the latest design improvements ([#24023](https://github.com/MetaMask/metamask-extension/pull/24023)) +- Improved the permissions page to correctly display all permissions across networks ([#23986](https://github.com/MetaMask/metamask-extension/pull/23986)) +- Enhanced the connections page to accurately display connected dApp information and status ([#24022](https://github.com/MetaMask/metamask-extension/pull/24022)) +- Fixed an issue to ensure smooth disconnection of a single account from a dApp without breaking the page ([#23935](https://github.com/MetaMask/metamask-extension/pull/23935)) + ## [11.15.6] ### Changed - Disable smart transaction opt-in modal ([#24715](https://github.com/MetaMask/metamask-extension/pull/24715)) @@ -4700,7 +4760,11 @@ Update styles and spacing on the critical error page ([#20350](https://github.c - Added the ability to restore accounts from seed words. -[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v11.15.6...HEAD +[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v11.16.3...HEAD +[11.16.3]: https://github.com/MetaMask/metamask-extension/compare/v11.16.2...v11.16.3 +[11.16.2]: https://github.com/MetaMask/metamask-extension/compare/v11.16.1...v11.16.2 +[11.16.1]: https://github.com/MetaMask/metamask-extension/compare/v11.16.0...v11.16.1 +[11.16.0]: https://github.com/MetaMask/metamask-extension/compare/v11.15.6...v11.16.0 [11.15.6]: https://github.com/MetaMask/metamask-extension/compare/v11.15.5...v11.15.6 [11.15.5]: https://github.com/MetaMask/metamask-extension/compare/v11.15.4...v11.15.5 [11.15.4]: https://github.com/MetaMask/metamask-extension/compare/v11.15.3...v11.15.4 diff --git a/package.json b/package.json index 56fd2df6ad52..cb33679b90d5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "metamask-crx", - "version": "11.15.6", + "version": "11.16.3", "private": true, "repository": { "type": "git", From 5ba078229606209c8c71e0ca46ba152cc7a8a932 Mon Sep 17 00:00:00 2001 From: Dan J Miller Date: Mon, 3 Jun 2024 15:02:20 -0230 Subject: [PATCH 33/43] fix: Update file path for fetching locales, to match mv3 folder structure (#24983) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** This fixes an error found in this comment https://github.com/MetaMask/metamask-extension/pull/24942#issuecomment-2143346898 "I get Fail to fetch when I switch languages." This error is a result of the changes in https://github.com/MetaMask/metamask-extension/pull/23672 That PR has the following in the description: > ...The manifest file sometimes references files using a path relative to both the repo and the bundled extension (background.html and popup.html) and sometimes it doesn't (inpage.js lives in the scripts folder). This PR makes the paths relative to the repo (and the bundled extension). We need to adjust the filepath for fetching these locales as well, which this PR does [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24983?quickstart=1) ## **Manual testing steps** 1. Go to the settings page and try to switch a language 2. The language should update successfully AND there should be no error in the console 3. Reload the extension. The same language should be selected ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- shared/modules/i18n.test.ts | 2 +- shared/modules/i18n.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/shared/modules/i18n.test.ts b/shared/modules/i18n.test.ts index 7a52137b7dc8..8452ef48238c 100644 --- a/shared/modules/i18n.test.ts +++ b/shared/modules/i18n.test.ts @@ -281,7 +281,7 @@ describe('I18N Module', () => { it('returns json from locale file', async () => { const result = await fetchLocale(localeCodeMock); expect(result).toStrictEqual({ - url: `./_locales/${localeCodeMock}/messages.json`, + url: `../_locales/${localeCodeMock}/messages.json`, }); }); diff --git a/shared/modules/i18n.ts b/shared/modules/i18n.ts index 790d9da25313..d19cfa4b3b11 100644 --- a/shared/modules/i18n.ts +++ b/shared/modules/i18n.ts @@ -91,7 +91,7 @@ export async function fetchLocale( ): Promise { try { const response = await fetchWithTimeout( - `./_locales/${localeCode}/messages.json`, + `../_locales/${localeCode}/messages.json`, ); return await response.json(); } catch (error) { From 91c182215f15673407c666e3f6a6f1fe7d01af1c Mon Sep 17 00:00:00 2001 From: Alex Donesky Date: Mon, 3 Jun 2024 12:47:19 -0500 Subject: [PATCH 34/43] fix: `wallet_addEthereumChain` validation: `iconUrls` should be an expected param (#24920) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** In https://github.com/MetaMask/metamask-extension/pull/24415, I introduced a bug where if an `iconUrls` property is included in a `wallet_addEthereumChain` request an error is thrown suggesting that this property is not expected. Though this property is not actually used it is in the spec as an optional (and thus valid) param for the `wallet_addEthereumChain` method and we may eventually leverage it. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24920?quickstart=1) ## **Related issues** Fixes: https://github.com/MetaMask/MetaMask-planning/issues/2581 ## **Manual testing steps** 1. Go to https://docs.metamask.io/wallet/reference/wallet_addethereumchain/ 2. A `wallet_addEthereumChain` request is already formatted including an `iconUrls` param 3. Click the `Send Request` button 4. You should see an add ethereum chain confirmation pop up 5. Confirm the request and verify that the chain is added to the wallet. ## **Screenshots/Recordings** N/A ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: jiexi Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com> --- .../handlers/add-ethereum-chain.test.js | 43 +++++++++++++++++++ .../handlers/ethereum-chain-utils.js | 11 +++-- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.test.js b/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.test.js index ea8193840e23..ee8993ceb3fc 100644 --- a/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.test.js +++ b/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.test.js @@ -91,6 +91,7 @@ describe('addEthereumChainHandler', () => { decimals: 18, }, blockExplorerUrls: ['https://optimistic.etherscan.io'], + iconUrls: ['https://optimism.icon.com'], }, ], }, @@ -424,6 +425,47 @@ describe('addEthereumChainHandler', () => { }); }); }); + + it('should return an error if an unexpected parameter is provided', async () => { + const mocks = makeMocks({ + permissionsFeatureFlagIsActive: false, + }); + const mockEnd = jest.fn(); + + const unexpectedParam = 'unexpected'; + + await addEthereumChainHandler( + { + origin: 'example.com', + params: [ + { + chainId: createMockNonInfuraConfiguration().chainId, + chainName: createMockNonInfuraConfiguration().nickname, + rpcUrls: [createMockNonInfuraConfiguration().rpcUrl], + nativeCurrency: { + symbol: createMockNonInfuraConfiguration().ticker, + decimals: 18, + }, + blockExplorerUrls: [ + createMockNonInfuraConfiguration().rpcPrefs.blockExplorerUrl, + ], + [unexpectedParam]: 'parameter', + }, + ], + }, + {}, + jest.fn(), + mockEnd, + mocks, + ); + + expect(mockEnd).toHaveBeenCalledWith( + ethErrors.rpc.invalidParams({ + message: `Received unexpected keys on object parameter. Unsupported keys:\n${unexpectedParam}`, + }), + ); + }); + it('should handle errors during the switch network permission request', async () => { const mockError = new Error('Permission request failed'); const mocks = makeMocks({ @@ -463,6 +505,7 @@ describe('addEthereumChainHandler', () => { expect(mockEnd).toHaveBeenCalledWith(mockError); expect(mocks.setActiveNetwork).not.toHaveBeenCalled(); }); + it('should return an error if nativeCurrency.symbol does not match an existing network with the same chainId', async () => { const mocks = makeMocks({ permissionedChainIds: [CHAIN_IDS.MAINNET], diff --git a/app/scripts/lib/rpc-method-middleware/handlers/ethereum-chain-utils.js b/app/scripts/lib/rpc-method-middleware/handlers/ethereum-chain-utils.js index 08c9a6cc8894..f32caf49a66c 100644 --- a/app/scripts/lib/rpc-method-middleware/handlers/ethereum-chain-utils.js +++ b/app/scripts/lib/rpc-method-middleware/handlers/ethereum-chain-utils.js @@ -90,11 +90,14 @@ export function validateAddEthereumChainParams(params, end) { ...otherParams } = params; - if (Object.keys(otherParams).length > 0) { + const otherKeys = Object.keys(otherParams).filter( + // iconUrls is a valid optional but not currently used parameter + (v) => !['iconUrls'].includes(v), + ); + + if (otherKeys.length > 0) { throw ethErrors.rpc.invalidParams({ - message: `Received unexpected keys on object parameter. Unsupported keys:\n${Object.keys( - otherParams, - )}`, + message: `Received unexpected keys on object parameter. Unsupported keys:\n${otherKeys}`, }); } From 48faea7110b4ec83268cef1ae7ce9632d9a59498 Mon Sep 17 00:00:00 2001 From: Dan J Miller Date: Mon, 3 Jun 2024 16:06:06 -0230 Subject: [PATCH 35/43] chore: Fix bundle-stats-commit.sh (#24936) ## **Description** `test-artifacts/chrome/mv3/` was moved to `test-artifacts/chrome/` in https://github.com/MetaMask/metamask-extension/pull/24746. This path was updated in most places in that PR, but this file was missed ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com> --- .circleci/scripts/bundle-stats-commit.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/scripts/bundle-stats-commit.sh b/.circleci/scripts/bundle-stats-commit.sh index b7cb44ac756a..14b3604d82ec 100755 --- a/.circleci/scripts/bundle-stats-commit.sh +++ b/.circleci/scripts/bundle-stats-commit.sh @@ -42,7 +42,7 @@ git clone git@github.com:MetaMask/extension_bundlesize_stats.git temp { echo " '${CIRCLE_SHA1}': "; - cat test-artifacts/chrome/mv3/bundle_size_stats.json; + cat test-artifacts/chrome/bundle_size_stats.json; echo ", "; } >> temp/stats/bundle_size_data.temp.js @@ -57,14 +57,14 @@ if [ -f temp/stats/bundle_size_data.json ]; then { echo "},"; echo "\"$CIRCLE_SHA1\":"; - cat test-artifacts/chrome/mv3/bundle_size_stats.json; + cat test-artifacts/chrome/bundle_size_stats.json; echo "}"; } >> bundle_size_stats.temp.json else { echo "{"; echo "\"$CIRCLE_SHA1\":"; - cat test-artifacts/chrome/mv3/bundle_size_stats.json; + cat test-artifacts/chrome/bundle_size_stats.json; echo "}"; } > bundle_size_stats.temp.json fi From 63851c9d055d5afa84e04762e615e9ea3cddd805 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Mon, 3 Jun 2024 18:01:29 -0230 Subject: [PATCH 36/43] test: Enable type checking of tests (#24844) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** Most tests were not being type-checked by the `yarn lint:tsc` command because they were omitted from `tsconfig.json`. `tsconfig.json` has been updated to include tests, and all affected files were updated to fix resulting ESLint and type errors. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24844?quickstart=1) ## **Related issues** N/A ## **Manual testing steps** N/A ## **Screenshots/Recordings** N/A ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- .../controllers/encryption-public-key.test.ts | 6 +- .../process-onchain-notifications.test.ts | 3 +- .../user-storage-controller.test.ts | 66 +- .../AccountIdentitiesPetnamesBridge.test.ts | 9 +- .../lib/keyring-snaps-permissions.test.ts | 4 +- .../createUnsupportedMethodMiddleware.test.ts | 3 +- .../snap-keyring/utils/isBlockedUrl.test.ts | 1 + app/scripts/migrations/095.test.ts | 3 +- test/data/confirmations/personal_sign.ts | 3 +- test/e2e/accounts/remove-account-snap.spec.ts | 2 +- test/e2e/flask/user-operations.spec.ts | 3 - .../custodian-hooks/ICustodianTestClient.ts | 4 +- test/e2e/mmi/custodian-hooks/hooks.ts | 26 +- test/e2e/mmi/helpers/custodian-helper.ts | 2 + test/e2e/mmi/helpers/dapps-helpers.ts | 4 +- .../mmi/pageObjects/mmi-accountMenu-page.ts | 26 +- test/e2e/mmi/pageObjects/mmi-main-page.ts | 4 +- test/e2e/mmi/pageObjects/mmi-mainMenu-page.ts | 9 +- test/e2e/mmi/specs/navigation.spec.ts | 1 - test/e2e/mmi/specs/qrCode.spec.ts | 1 - test/e2e/mmi/specs/transactions.spec.ts | 9 +- test/e2e/seeder/ganache.ts | 6 +- test/e2e/tests/confirmations/helpers.ts | 20 +- .../confirmations/signatures/permit.spec.ts | 45 +- .../signatures/personal-sign.spec.ts | 35 +- .../signatures/sign-typed-data-v3.spec.ts | 40 +- .../signatures/sign-typed-data-v4.spec.ts | 40 +- .../signatures/sign-typed-data.spec.ts | 25 +- test/e2e/tests/ppom/mocks/json-rpc-result.ts | 6 +- .../tests/ppom/mocks/mock-server-json-rpc.ts | 6 + .../tests/settings/change-language.spec.ts | 13 +- .../mock-request-buy-erc1155.ts | 635 +++---- .../mock-request-buy-erc20.ts | 1495 +++++++++-------- .../mock-request-buy-erc721.ts | 639 +++---- .../mock-request-error-insuffient-gas.ts | 45 +- ...ock-request-error-malformed-transaction.ts | 43 +- .../mock-request-no-changes.ts | 110 +- .../mock-request-send-eth.ts | 124 +- .../simulation-details.spec.ts | 285 ++-- test/e2e/tests/simulation-details/types.ts | 14 +- test/e2e/tests/swap-send/mocks/erc20-data.ts | 2 +- test/e2e/tests/swap-send/mocks/eth-data.ts | 6 +- .../tests/swap-send/swap-send-erc20.spec.ts | 11 +- .../e2e/tests/swap-send/swap-send-eth.spec.ts | 7 +- .../tests/swap-send/swap-send-test-utils.ts | 28 +- tsconfig.json | 11 +- ui/components/app/alert-system/utils.test.ts | 6 +- ui/components/app/name/name.test.tsx | 52 +- ui/ducks/locale/locale.test.ts | 12 +- .../simulation-details/amount-pill.test.tsx | 36 +- .../simulation-details/asset-pill.test.tsx | 41 +- .../simulation-details/fiat-display.test.tsx | 30 +- .../simulation-details/formatAmount.test.ts | 6 +- .../sortBalanceChanges.test.ts | 9 +- .../useSimulationMetrics.test.ts | 176 +- .../confirmations/hooks/alerts/utils.test.ts | 14 +- 56 files changed, 2420 insertions(+), 1842 deletions(-) diff --git a/app/scripts/controllers/encryption-public-key.test.ts b/app/scripts/controllers/encryption-public-key.test.ts index 274f0c67d7e9..5ac41fd28a90 100644 --- a/app/scripts/controllers/encryption-public-key.test.ts +++ b/app/scripts/controllers/encryption-public-key.test.ts @@ -214,6 +214,7 @@ describe('EncryptionPublicKeyController', () => { }); describe('newRequestEncryptionPublicKey', () => { + // @ts-expect-error This function is missing from the Mocha type definitions it.each([ ['Ledger', KeyringType.ledger], ['Trezor', KeyringType.trezor], @@ -221,7 +222,10 @@ describe('EncryptionPublicKeyController', () => { ['QR hardware', KeyringType.qr], ])( 'throws if keyring is not supported', - async (keyringName, keyringType) => { + async ( + keyringName: string, + keyringType: (typeof KeyringType)[keyof typeof KeyringType], + ) => { getAccountKeyringTypeMock.mockResolvedValueOnce(keyringType); await expect( diff --git a/app/scripts/controllers/metamask-notifications/processors/process-onchain-notifications.test.ts b/app/scripts/controllers/metamask-notifications/processors/process-onchain-notifications.test.ts index cd2159a9fb01..8c703c0bedda 100644 --- a/app/scripts/controllers/metamask-notifications/processors/process-onchain-notifications.test.ts +++ b/app/scripts/controllers/metamask-notifications/processors/process-onchain-notifications.test.ts @@ -41,9 +41,10 @@ const rawNotificationTestSuite = rawNotifications.map( ); describe('process-onchain-notifications - processOnChainNotification()', () => { + // @ts-expect-error This is missing from the Mocha type definitions test.each(rawNotificationTestSuite)( 'Converts Raw On-Chain Notification (%s) to a shared Notification Type', - (_, rawNotification) => { + (_: string, rawNotification: OnChainRawNotification) => { const result = processOnChainNotification(rawNotification); expect(result.id).toBe(rawNotification.id); expect(result.type).toBe(rawNotification.type); diff --git a/app/scripts/controllers/user-storage/user-storage-controller.test.ts b/app/scripts/controllers/user-storage/user-storage-controller.test.ts index b7006554365e..471f82cbbd58 100644 --- a/app/scripts/controllers/user-storage/user-storage-controller.test.ts +++ b/app/scripts/controllers/user-storage/user-storage-controller.test.ts @@ -73,6 +73,7 @@ describe('user-storage/user-storage-controller - performGetStorage() tests', () ).rejects.toThrow(); }); + // @ts-expect-error This is missing from the Mocha type definitions test.each([ [ 'fails when no bearer token is found (auth errors)', @@ -88,18 +89,26 @@ describe('user-storage/user-storage-controller - performGetStorage() tests', () new Error('MOCK FAILURE'), ), ], - ])('rejects on auth failure - %s', async (_, arrangeFailureCase) => { - const { messengerMocks } = arrangeMocks(); - arrangeFailureCase(messengerMocks); - const controller = new UserStorageController({ - messenger: messengerMocks.messenger, - getMetaMetricsState: () => true, - }); - - await expect( - controller.performGetStorage('notification_settings'), - ).rejects.toThrow(); - }); + ])( + 'rejects on auth failure - %s', + async ( + _: string, + arrangeFailureCase: ( + messengerMocks: ReturnType, + ) => void, + ) => { + const { messengerMocks } = arrangeMocks(); + arrangeFailureCase(messengerMocks); + const controller = new UserStorageController({ + messenger: messengerMocks.messenger, + getMetaMetricsState: () => true, + }); + + await expect( + controller.performGetStorage('notification_settings'), + ).rejects.toThrow(); + }, + ); function arrangeMocks() { return { @@ -137,6 +146,7 @@ describe('user-storage/user-storage-controller - performSetStorage() tests', () ).rejects.toThrow(); }); + // @ts-expect-error This is missing from the Mocha type definitions test.each([ [ 'fails when no bearer token is found (auth errors)', @@ -152,18 +162,26 @@ describe('user-storage/user-storage-controller - performSetStorage() tests', () new Error('MOCK FAILURE'), ), ], - ])('rejects on auth failure - %s', async (_, arrangeFailureCase) => { - const { messengerMocks } = arrangeMocks(); - arrangeFailureCase(messengerMocks); - const controller = new UserStorageController({ - messenger: messengerMocks.messenger, - getMetaMetricsState: () => true, - }); - - await expect( - controller.performSetStorage('notification_settings', 'new data'), - ).rejects.toThrow(); - }); + ])( + 'rejects on auth failure - %s', + async ( + _: string, + arrangeFailureCase: ( + messengerMocks: ReturnType, + ) => void, + ) => { + const { messengerMocks } = arrangeMocks(); + arrangeFailureCase(messengerMocks); + const controller = new UserStorageController({ + messenger: messengerMocks.messenger, + getMetaMetricsState: () => true, + }); + + await expect( + controller.performSetStorage('notification_settings', 'new data'), + ).rejects.toThrow(); + }, + ); test('rejects if api call fails', async () => { const { messengerMocks } = arrangeMocks({ diff --git a/app/scripts/lib/AccountIdentitiesPetnamesBridge.test.ts b/app/scripts/lib/AccountIdentitiesPetnamesBridge.test.ts index b7ac979f3a1c..7e1a23a5902e 100644 --- a/app/scripts/lib/AccountIdentitiesPetnamesBridge.test.ts +++ b/app/scripts/lib/AccountIdentitiesPetnamesBridge.test.ts @@ -205,6 +205,7 @@ describe('AccountIdentitiesPetnamesBridge', () => { }); describe('shouldSyncPetname', () => { + // @ts-expect-error This is missing from the Mocha type definitions it.each([ { origin: NameOrigin.ACCOUNT_IDENTITY, @@ -216,7 +217,13 @@ describe('AccountIdentitiesPetnamesBridge', () => { }, ])( 'returns $expectedReturn if origin is $origin', - ({ origin, expectedReturn }) => { + ({ + origin, + expectedReturn, + }: { + origin: NameOrigin; + expectedReturn: boolean; + }) => { class TestBridge extends AccountIdentitiesPetnamesBridge { public shouldSyncPetname(entry: PetnameEntry): boolean { return super.shouldSyncPetname(entry); diff --git a/app/scripts/lib/keyring-snaps-permissions.test.ts b/app/scripts/lib/keyring-snaps-permissions.test.ts index 3e457df2e258..bd48d78cd6bb 100644 --- a/app/scripts/lib/keyring-snaps-permissions.test.ts +++ b/app/scripts/lib/keyring-snaps-permissions.test.ts @@ -71,6 +71,7 @@ describe('keyringSnapPermissionsBuilder', () => { expect(permissions()).toStrictEqual([]); }); + // @ts-expect-error This is missing from the Mocha type definitions it.each([ '', 'null', @@ -84,7 +85,7 @@ describe('keyringSnapPermissionsBuilder', () => { 1, 0, -1, - ])('"%s" cannot call any methods', (origin) => { + ])('"%s" cannot call any methods', (origin: unknown) => { const permissions = keyringSnapPermissionsBuilder( mockController, // TODO: Replace `any` with type @@ -96,6 +97,7 @@ describe('keyringSnapPermissionsBuilder', () => { }); describe('isProtocolAllowed', () => { + // @ts-expect-error This is missing from the Mocha type definitions it.each([ ['http://some-dapp.com', true], ['https://some-dapp.com', true], diff --git a/app/scripts/lib/rpc-method-middleware/createUnsupportedMethodMiddleware.test.ts b/app/scripts/lib/rpc-method-middleware/createUnsupportedMethodMiddleware.test.ts index 432f4bf92614..e50c86d13268 100644 --- a/app/scripts/lib/rpc-method-middleware/createUnsupportedMethodMiddleware.test.ts +++ b/app/scripts/lib/rpc-method-middleware/createUnsupportedMethodMiddleware.test.ts @@ -21,9 +21,10 @@ describe('createUnsupportedMethodMiddleware', () => { expect(endMock).not.toHaveBeenCalled(); }); + // @ts-expect-error This function is missing from the Mocha type definitions it.each([...UNSUPPORTED_RPC_METHODS.keys()])( 'ends requests for methods that are on the list of unsupported methods: %s', - (method) => { + (method: string) => { const middleware = createUnsupportedMethodMiddleware(); const nextMock = jest.fn(); const endMock = jest.fn(); diff --git a/app/scripts/lib/snap-keyring/utils/isBlockedUrl.test.ts b/app/scripts/lib/snap-keyring/utils/isBlockedUrl.test.ts index 3a493b764b35..ba7ef745ffa5 100644 --- a/app/scripts/lib/snap-keyring/utils/isBlockedUrl.test.ts +++ b/app/scripts/lib/snap-keyring/utils/isBlockedUrl.test.ts @@ -27,6 +27,7 @@ describe('isBlockedUrl', () => { }, }); + // @ts-expect-error This is missing from the Mocha type definitions it.each([ ['http://metamask.io', false], ['https://metamask.io', false], diff --git a/app/scripts/migrations/095.test.ts b/app/scripts/migrations/095.test.ts index d4858de9066f..988f59b8f5f8 100644 --- a/app/scripts/migrations/095.test.ts +++ b/app/scripts/migrations/095.test.ts @@ -156,12 +156,13 @@ describe('migration #95', () => { }); }); + // @ts-expect-error This is missing from the Mocha type definitions it.each([ ['undefined', undefined], ['empty', {}], ])( 'does nothing if incoming transactions %s', - async (_title, incomingTransactions) => { + async (_title: string, incomingTransactions: unknown) => { const oldData = { some: 'data', IncomingTransactionsController: { diff --git a/test/data/confirmations/personal_sign.ts b/test/data/confirmations/personal_sign.ts index b022949076f6..e0c9d093d78c 100644 --- a/test/data/confirmations/personal_sign.ts +++ b/test/data/confirmations/personal_sign.ts @@ -1,4 +1,5 @@ -export const PERSONAL_SIGN_SENDER_ADDRESS = '0x8eeee1781fd885ff5ddef7789486676961873d12'; +export const PERSONAL_SIGN_SENDER_ADDRESS = + '0x8eeee1781fd885ff5ddef7789486676961873d12'; export const unapprovedPersonalSignMsg = { id: '0050d5b0-c023-11ee-a0cb-3390a510a0ab', diff --git a/test/e2e/accounts/remove-account-snap.spec.ts b/test/e2e/accounts/remove-account-snap.spec.ts index 688cd5983a05..f4b8e025c62d 100644 --- a/test/e2e/accounts/remove-account-snap.spec.ts +++ b/test/e2e/accounts/remove-account-snap.spec.ts @@ -1,4 +1,4 @@ -const { strict: assert } = require('assert'); +import { strict as assert } from 'assert'; import { Suite } from 'mocha'; import FixtureBuilder from '../fixture-builder'; import { WINDOW_TITLES, defaultGanacheOptions, withFixtures } from '../helpers'; diff --git a/test/e2e/flask/user-operations.spec.ts b/test/e2e/flask/user-operations.spec.ts index b239c426d1cf..6b6904071aed 100644 --- a/test/e2e/flask/user-operations.spec.ts +++ b/test/e2e/flask/user-operations.spec.ts @@ -1,10 +1,7 @@ -import { TransactionParams } from '@metamask/transaction-controller'; import { withFixtures, unlockWallet, - openDapp, switchToNotificationWindow, - DAPP_URL, WINDOW_TITLES, sendTransaction, convertETHToHexGwei, diff --git a/test/e2e/mmi/custodian-hooks/ICustodianTestClient.ts b/test/e2e/mmi/custodian-hooks/ICustodianTestClient.ts index 2ea67946b525..00565e5d85b5 100644 --- a/test/e2e/mmi/custodian-hooks/ICustodianTestClient.ts +++ b/test/e2e/mmi/custodian-hooks/ICustodianTestClient.ts @@ -1,6 +1,6 @@ import { type BrowserContext } from '@playwright/test'; -export interface ICustodianTestClient { +export type ICustodianTestClient = { /** This method is expected to be used for initial test setup and to keep the context object in order to manage extra screen actions */ setup: (context?: BrowserContext) => Promise; @@ -36,4 +36,4 @@ export interface ICustodianTestClient { /** This method should return the list of account titles to be selected when MMI custodian is connected */ getSelectedAccounts: () => Promise; -} +}; diff --git a/test/e2e/mmi/custodian-hooks/hooks.ts b/test/e2e/mmi/custodian-hooks/hooks.ts index e41910d3cdbe..a012f5633224 100644 --- a/test/e2e/mmi/custodian-hooks/hooks.ts +++ b/test/e2e/mmi/custodian-hooks/hooks.ts @@ -134,6 +134,8 @@ export class CustodianTestClient implements ICustodianTestClient { const maxRetries = 3; const retryInterval = 3000; let retries = 0; + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any let transaction: any; while (retries < maxRetries) { try { @@ -154,7 +156,7 @@ export class CustodianTestClient implements ICustodianTestClient { console.log(`Retrying in ${retryInterval / 1000} seconds...`); await new Promise((resolve) => setTimeout(resolve, retryInterval)); } else { - throw error( + throw new Error( `👎 Max retries (${maxRetries}) reached. Saturn tx not found.`, ); } @@ -193,6 +195,8 @@ export class CustodianTestClient implements ICustodianTestClient { try { const transactions = await this.getEIP721TransactionStatusCreated(); const { id } = transactions.find( + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any (transaction: any) => transaction?.payload?.message?.contents === signedTransactionTime, ); @@ -260,7 +264,7 @@ export class CustodianTestClient implements ICustodianTestClient { const diffTime = transactions.map((tx: { createdAt: string }) => Math.abs( new Date(tx.createdAt).getTime() - - parseInt(signedTransactionTime, 10), + parseInt(signedTransactionTime, 10), ), ); const min = Math.min(...diffTime); @@ -295,6 +299,8 @@ export class CustodianTestClient implements ICustodianTestClient { return transactions[index]; } + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any async getPersonalSignatureTransactionStatusCreated(): Promise { const authorization = this.bearerToken; return await axios @@ -317,6 +323,8 @@ export class CustodianTestClient implements ICustodianTestClient { }); } + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any async getEIP721TransactionStatusCreated(): Promise { const authorization = this.bearerToken; return await axios @@ -347,13 +355,19 @@ export class CustodianTestClient implements ICustodianTestClient { return txId; } + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any public async postConnectionRequest(data: any) { return (await axios - .post("https://neptune-custody.dev.metamask-institutional.io/qrcode/connection-request", data, { - headers: { - 'Content-Type': 'application/json', + .post( + 'https://neptune-custody.dev.metamask-institutional.io/qrcode/connection-request', + data, + { + headers: { + 'Content-Type': 'application/json', + }, }, - }) + ) .then(function (response) { expect(response.status).toBe(200); return response.data; diff --git a/test/e2e/mmi/helpers/custodian-helper.ts b/test/e2e/mmi/helpers/custodian-helper.ts index eab47957aba2..a45e5a7e84c3 100644 --- a/test/e2e/mmi/helpers/custodian-helper.ts +++ b/test/e2e/mmi/helpers/custodian-helper.ts @@ -6,6 +6,8 @@ export async function getCustodianInfoByName(name: string) { // First get an admin token try { const { custodians } = (await axios.get(`${MMI_E2E_MMI_CONFIG_URL}`)).data; + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any return custodians.filter(function (custodian: any) { return custodian.name === name; }); diff --git a/test/e2e/mmi/helpers/dapps-helpers.ts b/test/e2e/mmi/helpers/dapps-helpers.ts index 04492ab56ace..0cf01ec3f47d 100644 --- a/test/e2e/mmi/helpers/dapps-helpers.ts +++ b/test/e2e/mmi/helpers/dapps-helpers.ts @@ -74,6 +74,6 @@ export async function callTestDappBtn( ); return { dummyDApp, - signedTransactionTime - } + signedTransactionTime, + }; } diff --git a/test/e2e/mmi/pageObjects/mmi-accountMenu-page.ts b/test/e2e/mmi/pageObjects/mmi-accountMenu-page.ts index 5d34402662d8..83a8f2a91e2d 100644 --- a/test/e2e/mmi/pageObjects/mmi-accountMenu-page.ts +++ b/test/e2e/mmi/pageObjects/mmi-accountMenu-page.ts @@ -1,7 +1,7 @@ import { type Locator, type Page, test, expect } from '@playwright/test'; import { getCustodianInfoByName } from '../helpers/custodian-helper'; -import { MMISaturnUIPage } from './mmi-saturn-ui-page'; import { CustodianTestClient } from '../custodian-hooks/hooks'; +import { MMISaturnUIPage } from './mmi-saturn-ui-page'; export class MMIAccountMenuPage { readonly page: Page; @@ -78,16 +78,21 @@ export class MMIAccountMenuPage { let data = await spanElement.getAttribute('data-value'); while (!data) { - await new Promise(resolve => setTimeout(resolve, 1000)); + await new Promise((resolve) => setTimeout(resolve, 1000)); data = await spanElement.getAttribute('data-value'); } const client = new CustodianTestClient(); await client.setup(); await client.postConnectionRequest(data); - await this.page.getByTestId('select-all-accounts-selected-false').click(); + await this.page + .getByTestId('select-all-accounts-selected-false') + .click(); await this.page.getByRole('button', { name: /connect/iu }).click(); - await this.page.getByRole('button', { name: /close/iu }).first().click(); + await this.page + .getByRole('button', { name: /close/iu }) + .first() + .click(); } } else { await expect( @@ -96,7 +101,9 @@ export class MMIAccountMenuPage { if (visual) { await test.expect .soft(this.page) - .toHaveScreenshot('custodian_connection_info.png', { fullPage: true }); + .toHaveScreenshot('custodian_connection_info.png', { + fullPage: true, + }); } const pagePromise = this.page.context().waitForEvent('page'); @@ -109,7 +116,6 @@ export class MMIAccountMenuPage { await this.page.getByRole('button', { name: /cancel/iu }).click(); await this.page.getByRole('button', { name: /back/iu }).click(); } - } async selectCustodyAccount(account: string) { @@ -128,11 +134,9 @@ export class MMIAccountMenuPage { '.multichain-account-list-item__content', ); - await test.expect - .soft(dialog) - .toHaveScreenshot(screenshotName, { - mask: [accountsFunds, networkBanner], - }); + await test.expect.soft(dialog).toHaveScreenshot(screenshotName, { + mask: [accountsFunds, networkBanner], + }); } async removeTokenScreenshot(accountToRemoveName: string) { diff --git a/test/e2e/mmi/pageObjects/mmi-main-page.ts b/test/e2e/mmi/pageObjects/mmi-main-page.ts index c6c06b544a2c..6d3ab315488f 100644 --- a/test/e2e/mmi/pageObjects/mmi-main-page.ts +++ b/test/e2e/mmi/pageObjects/mmi-main-page.ts @@ -27,7 +27,9 @@ export class MMIMainPage { async finishOnboarding() { await this.page.getByRole('button', { name: /continue/iu }).click(); - await this.page.getByRole('button', { name: /continue to wallet/iu }).click(); + await this.page + .getByRole('button', { name: /continue to wallet/iu }) + .click(); } async checkLastTransactionStatus(status: string | RegExp) { diff --git a/test/e2e/mmi/pageObjects/mmi-mainMenu-page.ts b/test/e2e/mmi/pageObjects/mmi-mainMenu-page.ts index af93c7f5b56e..7780c2ce8893 100644 --- a/test/e2e/mmi/pageObjects/mmi-mainMenu-page.ts +++ b/test/e2e/mmi/pageObjects/mmi-mainMenu-page.ts @@ -89,16 +89,19 @@ export class MMIMainMenuPage { } async fillPassword() { - await this.page.getByTestId('unlock-password').fill(process.env.MMI_E2E_MMI_PASSWORD as string); + await this.page + .getByTestId('unlock-password') + .fill(process.env.MMI_E2E_MMI_PASSWORD as string); await this.page.getByRole('button', { name: /unlock/iu }).click(); } async finishOnboarding() { await this.page.getByRole('button', { name: /continue/iu }).click(); - await this.page.getByRole('button', { name: /continue to wallet/iu }).click(); + await this.page + .getByRole('button', { name: /continue to wallet/iu }) + .click(); } - async switchTestNetwork() { await this.page .locator( diff --git a/test/e2e/mmi/specs/navigation.spec.ts b/test/e2e/mmi/specs/navigation.spec.ts index ee5d3e34503f..b1c8c896d31f 100644 --- a/test/e2e/mmi/specs/navigation.spec.ts +++ b/test/e2e/mmi/specs/navigation.spec.ts @@ -11,7 +11,6 @@ import { Auth0Page } from '../pageObjects/mmi-auth0-page'; import { MMIMainPage } from '../pageObjects/mmi-main-page'; const portfolio = `${process.env.MMI_E2E_MMI_DASHBOARD_URL}/portfolio`; -const swap = `${process.env.MMI_E2E_MMI_DASHBOARD_URL}/swap`; const stake = `${process.env.MMI_E2E_MMI_DASHBOARD_URL}/stake`; const support = 'https://mmi-support.metamask.io/hc/en-us'; const supportContactUs = diff --git a/test/e2e/mmi/specs/qrCode.spec.ts b/test/e2e/mmi/specs/qrCode.spec.ts index 5db3e97f6ecc..64d977459403 100644 --- a/test/e2e/mmi/specs/qrCode.spec.ts +++ b/test/e2e/mmi/specs/qrCode.spec.ts @@ -1,4 +1,3 @@ -import { type Page, type BrowserContext } from '@playwright/test'; import { test } from '../helpers/extension-loader'; import { ChromeExtensionPage } from '../pageObjects/mmi-extension-page'; import { MMIMainMenuPage } from '../pageObjects/mmi-mainMenu-page'; diff --git a/test/e2e/mmi/specs/transactions.spec.ts b/test/e2e/mmi/specs/transactions.spec.ts index b9b6b06cce99..5eabb8298dc7 100644 --- a/test/e2e/mmi/specs/transactions.spec.ts +++ b/test/e2e/mmi/specs/transactions.spec.ts @@ -115,12 +115,8 @@ test.describe('MMI send', () => { const client = new CustodianTestClient(); await client.setup(); const repeatTx = true; - const { mainPage, custodianTxId, secondCustodianTxId } = await sendTransaction( - page, - context, - client, - repeatTx, - ); + const { mainPage, custodianTxId, secondCustodianTxId } = + await sendTransaction(page, context, client, repeatTx); // Sign and submit const statusName = await client.submitTransactionById(custodianTxId); @@ -131,7 +127,6 @@ test.describe('MMI send', () => { } }); - test('Send a transaction from one account to another and abort it from custody', async ({ page, context, diff --git a/test/e2e/seeder/ganache.ts b/test/e2e/seeder/ganache.ts index f838dcde028d..e7eab2461a86 100644 --- a/test/e2e/seeder/ganache.ts +++ b/test/e2e/seeder/ganache.ts @@ -14,6 +14,8 @@ const defaultOptions = { export class Ganache { #server: Server | undefined; + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any async start(opts: any) { const options = { ...defaultOptions, ...opts }; @@ -36,7 +38,7 @@ export class Ganache { const accounts = await this.getAccounts(); const provider = await this.getProvider(); - if (!accounts || !accounts[0] || !provider) { + if (!accounts?.[0] || !provider) { console.log('No accounts found'); return 0; } @@ -67,6 +69,8 @@ export class Ganache { } try { await this.#server.close(); + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (e: any) { // We can safely ignore the EBUSY error if (e.code !== 'EBUSY') { diff --git a/test/e2e/tests/confirmations/helpers.ts b/test/e2e/tests/confirmations/helpers.ts index 22ef90799a7f..b6a19a6b95a9 100644 --- a/test/e2e/tests/confirmations/helpers.ts +++ b/test/e2e/tests/confirmations/helpers.ts @@ -1,18 +1,20 @@ -import { strict as assert } from 'assert'; import FixtureBuilder from '../../fixture-builder'; -import { - defaultGanacheOptions, - withFixtures, -} from '../../helpers'; +import { defaultGanacheOptions, withFixtures } from '../../helpers'; import { Driver } from '../../webdriver/driver'; -export async function scrollAndConfirmAndAssertConfirm (driver: Driver) { - const confirmButton = await driver.findElement({ xpath: '//button[@data-testid="confirm-footer-button"]'}); +export async function scrollAndConfirmAndAssertConfirm(driver: Driver) { await driver.clickElement('.confirm-scroll-to-bottom__button'); await driver.clickElement('[data-testid="confirm-footer-button"]'); } -export function withRedesignConfirmationFixtures (title: string = '', testFunction: Function) { +export function withRedesignConfirmationFixtures( + // Default params first is discouraged because it makes it hard to call the function without the + // optional parameters. But it doesn't apply here because we're always passing in a variable for + // title. It's optional because it's sometimes unset. + // eslint-disable-next-line @typescript-eslint/default-param-last + title: string = '', + testFunction: Parameters[1], +) { return withFixtures( { dapp: true, @@ -32,4 +34,4 @@ export function withRedesignConfirmationFixtures (title: string = '', testFuncti }, testFunction, ); -} \ No newline at end of file +} diff --git a/test/e2e/tests/confirmations/signatures/permit.spec.ts b/test/e2e/tests/confirmations/signatures/permit.spec.ts index e0bbef3a481a..5afe288f869b 100644 --- a/test/e2e/tests/confirmations/signatures/permit.spec.ts +++ b/test/e2e/tests/confirmations/signatures/permit.spec.ts @@ -1,6 +1,9 @@ import { strict as assert } from 'assert'; import { Suite } from 'mocha'; -import { scrollAndConfirmAndAssertConfirm, withRedesignConfirmationFixtures } from '../helpers'; +import { + scrollAndConfirmAndAssertConfirm, + withRedesignConfirmationFixtures, +} from '../helpers'; import { DAPP_HOST_ADDRESS, WINDOW_TITLES, @@ -12,12 +15,20 @@ import { Ganache } from '../../../seeder/ganache'; import { Driver } from '../../../webdriver/driver'; describe('Confirmation Signature - Permit', function (this: Suite) { - if (!process.env.ENABLE_CONFIRMATION_REDESIGN) { return; } + if (!process.env.ENABLE_CONFIRMATION_REDESIGN) { + return; + } it('initiates and confirms', async function () { await withRedesignConfirmationFixtures( this.test?.fullTitle(), - async ({ driver, ganacheServer }: { driver: Driver, ganacheServer: Ganache }) => { + async ({ + driver, + ganacheServer, + }: { + driver: Driver; + ganacheServer: Ganache; + }) => { const addresses = await ganacheServer.getAccounts(); const publicAddress = addresses?.[0] as string; @@ -42,7 +53,9 @@ describe('Confirmation Signature - Permit', function (this: Suite) { await driver.clickElement('#signPermit'); await switchToNotificationWindow(driver); - await driver.clickElement('[data-testid="confirm-footer-cancel-button"]'); + await driver.clickElement( + '[data-testid="confirm-footer-cancel-button"]', + ); await driver.waitUntilXWindowHandles(2); await driver.switchToWindowWithTitle(WINDOW_TITLES.TestDApp); @@ -66,7 +79,10 @@ async function assertInfoValues(driver: Driver) { const primaryType = driver.findElement({ text: 'Permit' }); const owner = driver.findElement({ css: '.name__name', text: 'Account 1' }); - const spender = driver.findElement({ css: '.name__value', text: '0x5B38D...eddC4' }); + const spender = driver.findElement({ + css: '.name__value', + text: '0x5B38D...eddC4', + }); const value = driver.findElement({ text: '3000' }); const nonce = driver.findElement({ text: '0' }); const deadline = driver.findElement({ text: '50000000000' }); @@ -95,11 +111,22 @@ async function assertVerifiedResults(driver: Driver, publicAddress: string) { css: '#signPermitVerifyResult', text: publicAddress, }); - const verifyRecoverAddress = await driver.findElement('#signPermitVerifyResult'); + const verifyRecoverAddress = await driver.findElement( + '#signPermitVerifyResult', + ); - assert.equal(await verifyResult.getText(), '0x0a396f89ee073214f7e055e700048abd7b4aba6ecca0352937d6a2ebb7176f2f43c63097ad7597632e34d6a801695702ba603d5872a33ee7d7562fcdb9e816ee1c'); - assert.equal(await verifyResultR.getText(), 'r: 0x0a396f89ee073214f7e055e700048abd7b4aba6ecca0352937d6a2ebb7176f2f'); - assert.equal(await verifyResultS.getText(), 's: 0x43c63097ad7597632e34d6a801695702ba603d5872a33ee7d7562fcdb9e816ee'); + assert.equal( + await verifyResult.getText(), + '0x0a396f89ee073214f7e055e700048abd7b4aba6ecca0352937d6a2ebb7176f2f43c63097ad7597632e34d6a801695702ba603d5872a33ee7d7562fcdb9e816ee1c', + ); + assert.equal( + await verifyResultR.getText(), + 'r: 0x0a396f89ee073214f7e055e700048abd7b4aba6ecca0352937d6a2ebb7176f2f', + ); + assert.equal( + await verifyResultS.getText(), + 's: 0x43c63097ad7597632e34d6a801695702ba603d5872a33ee7d7562fcdb9e816ee', + ); assert.equal(await verifyResultV.getText(), 'v: 28'); assert.equal(await verifyRecoverAddress.getText(), publicAddress); } diff --git a/test/e2e/tests/confirmations/signatures/personal-sign.spec.ts b/test/e2e/tests/confirmations/signatures/personal-sign.spec.ts index 8a5cb50d4856..175f7459d467 100644 --- a/test/e2e/tests/confirmations/signatures/personal-sign.spec.ts +++ b/test/e2e/tests/confirmations/signatures/personal-sign.spec.ts @@ -12,12 +12,20 @@ import { Ganache } from '../../../seeder/ganache'; import { Driver } from '../../../webdriver/driver'; describe('Confirmation Signature - Personal Sign', function (this: Suite) { - if (!process.env.ENABLE_CONFIRMATION_REDESIGN) { return; } + if (!process.env.ENABLE_CONFIRMATION_REDESIGN) { + return; + } it('initiates and confirms', async function () { await withRedesignConfirmationFixtures( this.test?.fullTitle(), - async ({ driver, ganacheServer }: { driver: Driver, ganacheServer: Ganache }) => { + async ({ + driver, + ganacheServer, + }: { + driver: Driver; + ganacheServer: Ganache; + }) => { const addresses = await ganacheServer.getAccounts(); const publicAddress = addresses?.[0] as string; @@ -31,7 +39,7 @@ describe('Confirmation Signature - Personal Sign', function (this: Suite) { await driver.clickElement('[data-testid="confirm-footer-button"]'); await assertVerifiedPersonalMessage(driver, publicAddress); - } + }, ); }); @@ -44,7 +52,9 @@ describe('Confirmation Signature - Personal Sign', function (this: Suite) { await driver.clickElement('#personalSign'); await switchToNotificationWindow(driver); - await driver.clickElement('[data-testid="confirm-footer-cancel-button"]'); + await driver.clickElement( + '[data-testid="confirm-footer-cancel-button"]', + ); await driver.waitUntilXWindowHandles(2); await driver.switchToWindowWithTitle(WINDOW_TITLES.TestDApp); @@ -61,23 +71,32 @@ describe('Confirmation Signature - Personal Sign', function (this: Suite) { async function assertInfoValues(driver: Driver) { const origin = driver.findElement({ text: DAPP_HOST_ADDRESS }); - const message = driver.findElement({ text: 'Example `personal_sign` message' }); + const message = driver.findElement({ + text: 'Example `personal_sign` message', + }); assert.ok(await origin); assert.ok(await message); } -async function assertVerifiedPersonalMessage(driver: Driver, publicAddress: string) { +async function assertVerifiedPersonalMessage( + driver: Driver, + publicAddress: string, +) { await driver.waitUntilXWindowHandles(2); await driver.switchToWindowWithTitle(WINDOW_TITLES.TestDApp); await driver.clickElement('#personalSignVerify'); - const verifySigUtil = await driver.findElement('#personalSignVerifySigUtilResult'); + const verifySigUtil = await driver.findElement( + '#personalSignVerifySigUtilResult', + ); await driver.waitForSelector({ css: '#personalSignVerifyECRecoverResult', text: publicAddress, }); - const verifyECRecover = await driver.findElement('#personalSignVerifyECRecoverResult'); + const verifyECRecover = await driver.findElement( + '#personalSignVerifyECRecoverResult', + ); assert.equal(await verifySigUtil.getText(), publicAddress); assert.equal(await verifyECRecover.getText(), publicAddress); diff --git a/test/e2e/tests/confirmations/signatures/sign-typed-data-v3.spec.ts b/test/e2e/tests/confirmations/signatures/sign-typed-data-v3.spec.ts index 1f3da6c4aeba..4dfdb9851b2a 100644 --- a/test/e2e/tests/confirmations/signatures/sign-typed-data-v3.spec.ts +++ b/test/e2e/tests/confirmations/signatures/sign-typed-data-v3.spec.ts @@ -1,6 +1,9 @@ import { strict as assert } from 'assert'; import { Suite } from 'mocha'; -import { scrollAndConfirmAndAssertConfirm, withRedesignConfirmationFixtures } from '../helpers'; +import { + scrollAndConfirmAndAssertConfirm, + withRedesignConfirmationFixtures, +} from '../helpers'; import { DAPP_HOST_ADDRESS, WINDOW_TITLES, @@ -12,12 +15,20 @@ import { Ganache } from '../../../seeder/ganache'; import { Driver } from '../../../webdriver/driver'; describe('Confirmation Signature - Sign Typed Data V3', function (this: Suite) { - if (!process.env.ENABLE_CONFIRMATION_REDESIGN) { return; } + if (!process.env.ENABLE_CONFIRMATION_REDESIGN) { + return; + } it('initiates and confirms', async function () { await withRedesignConfirmationFixtures( this.test?.fullTitle(), - async ({ driver, ganacheServer }: { driver: Driver, ganacheServer: Ganache }) => { + async ({ + driver, + ganacheServer, + }: { + driver: Driver; + ganacheServer: Ganache; + }) => { const addresses = await ganacheServer.getAccounts(); const publicAddress = addresses?.[0] as string; @@ -42,7 +53,9 @@ describe('Confirmation Signature - Sign Typed Data V3', function (this: Suite) { await driver.clickElement('#signTypedDataV3'); await switchToNotificationWindow(driver); - await driver.clickElement('[data-testid="confirm-footer-cancel-button"]'); + await driver.clickElement( + '[data-testid="confirm-footer-cancel-button"]', + ); await driver.waitUntilXWindowHandles(2); await driver.switchToWindowWithTitle(WINDOW_TITLES.TestDApp); @@ -66,9 +79,15 @@ async function assertInfoValues(driver: Driver) { const primaryType = driver.findElement({ text: 'Mail' }); const fromName = driver.findElement({ text: 'Cow' }); - const fromAddress = driver.findElement({ css: '.name__value', text: '0xCD2a3...DD826' }); + const fromAddress = driver.findElement({ + css: '.name__value', + text: '0xCD2a3...DD826', + }); const toName = driver.findElement({ text: 'Bob' }); - const toAddress = driver.findElement({ css: '.name__value', text: '0xbBbBB...bBBbB' }); + const toAddress = driver.findElement({ + css: '.name__value', + text: '0xbBbBB...bBBbB', + }); const contents = driver.findElement({ text: 'Hello, Bob!' }); assert.ok(await origin, 'origin'); @@ -91,8 +110,13 @@ async function assertVerifiedResults(driver: Driver, publicAddress: string) { css: '#signTypedDataV3VerifyResult', text: publicAddress, }); - const verifyRecoverAddress = await driver.findElement('#signTypedDataV3VerifyResult'); + const verifyRecoverAddress = await driver.findElement( + '#signTypedDataV3VerifyResult', + ); - assert.equal(await verifyResult.getText(), '0x0a22f7796a2a70c8dc918e7e6eb8452c8f2999d1a1eb5ad714473d36270a40d6724472e5609948c778a07216bd082b60b6f6853d6354c731fd8ccdd3a2f4af261b'); + assert.equal( + await verifyResult.getText(), + '0x0a22f7796a2a70c8dc918e7e6eb8452c8f2999d1a1eb5ad714473d36270a40d6724472e5609948c778a07216bd082b60b6f6853d6354c731fd8ccdd3a2f4af261b', + ); assert.equal(await verifyRecoverAddress.getText(), publicAddress); } diff --git a/test/e2e/tests/confirmations/signatures/sign-typed-data-v4.spec.ts b/test/e2e/tests/confirmations/signatures/sign-typed-data-v4.spec.ts index 2ca76ab23b4e..5c5101d5e018 100644 --- a/test/e2e/tests/confirmations/signatures/sign-typed-data-v4.spec.ts +++ b/test/e2e/tests/confirmations/signatures/sign-typed-data-v4.spec.ts @@ -1,6 +1,9 @@ import { strict as assert } from 'assert'; import { Suite } from 'mocha'; -import { scrollAndConfirmAndAssertConfirm, withRedesignConfirmationFixtures } from '../helpers'; +import { + scrollAndConfirmAndAssertConfirm, + withRedesignConfirmationFixtures, +} from '../helpers'; import { DAPP_HOST_ADDRESS, WINDOW_TITLES, @@ -12,12 +15,20 @@ import { Ganache } from '../../../seeder/ganache'; import { Driver } from '../../../webdriver/driver'; describe('Confirmation Signature - Sign Typed Data V4', function (this: Suite) { - if (!process.env.ENABLE_CONFIRMATION_REDESIGN) { return; } + if (!process.env.ENABLE_CONFIRMATION_REDESIGN) { + return; + } it('initiates and confirms', async function () { await withRedesignConfirmationFixtures( this.test?.fullTitle(), - async ({ driver, ganacheServer }: { driver: Driver, ganacheServer: Ganache }) => { + async ({ + driver, + ganacheServer, + }: { + driver: Driver; + ganacheServer: Ganache; + }) => { const addresses = await ganacheServer.getAccounts(); const publicAddress = addresses?.[0] as string; @@ -42,7 +53,9 @@ describe('Confirmation Signature - Sign Typed Data V4', function (this: Suite) { await driver.clickElement('#signTypedDataV4'); await switchToNotificationWindow(driver); - await driver.clickElement('[data-testid="confirm-footer-cancel-button"]'); + await driver.clickElement( + '[data-testid="confirm-footer-cancel-button"]', + ); await driver.waitUntilXWindowHandles(2); await driver.switchToWindowWithTitle(WINDOW_TITLES.TestDApp); @@ -67,9 +80,15 @@ async function assertInfoValues(driver: Driver) { const primaryType = driver.findElement({ text: 'Mail' }); const contents = driver.findElement({ text: 'Hello, Bob!' }); const fromName = driver.findElement({ text: 'Cow' }); - const fromAddressNum0 = driver.findElement({ css: '.name__value', text: '0xCD2a3...DD826' }); + const fromAddressNum0 = driver.findElement({ + css: '.name__value', + text: '0xCD2a3...DD826', + }); const toName = driver.findElement({ text: 'Bob' }); - const toAddressNum2 = driver.findElement({ css: '.name__value', text: '0xB0B0b...00000' }); + const toAddressNum2 = driver.findElement({ + css: '.name__value', + text: '0xB0B0b...00000', + }); const attachment = driver.findElement({ text: '0x' }); assert.ok(await origin, 'origin'); @@ -93,8 +112,13 @@ async function assertVerifiedResults(driver: Driver, publicAddress: string) { css: '#signTypedDataV4VerifyResult', text: publicAddress, }); - const verifyRecoverAddress = await driver.findElement('#signTypedDataV4VerifyResult'); + const verifyRecoverAddress = await driver.findElement( + '#signTypedDataV4VerifyResult', + ); - assert.equal(await verifyResult.getText(), '0xcd2f9c55840f5e1bcf61812e93c1932485b524ca673b36355482a4fbdf52f692684f92b4f4ab6f6c8572dacce46bd107da154be1c06939b855ecce57a1616ba71b'); + assert.equal( + await verifyResult.getText(), + '0xcd2f9c55840f5e1bcf61812e93c1932485b524ca673b36355482a4fbdf52f692684f92b4f4ab6f6c8572dacce46bd107da154be1c06939b855ecce57a1616ba71b', + ); assert.equal(await verifyRecoverAddress.getText(), publicAddress); } diff --git a/test/e2e/tests/confirmations/signatures/sign-typed-data.spec.ts b/test/e2e/tests/confirmations/signatures/sign-typed-data.spec.ts index 3d3fe5faaa5b..01f807397a97 100644 --- a/test/e2e/tests/confirmations/signatures/sign-typed-data.spec.ts +++ b/test/e2e/tests/confirmations/signatures/sign-typed-data.spec.ts @@ -12,12 +12,20 @@ import { Ganache } from '../../../seeder/ganache'; import { Driver } from '../../../webdriver/driver'; describe('Confirmation Signature - Sign Typed Data', function (this: Suite) { - if (!process.env.ENABLE_CONFIRMATION_REDESIGN) { return; } + if (!process.env.ENABLE_CONFIRMATION_REDESIGN) { + return; + } it('initiates and confirms', async function () { await withRedesignConfirmationFixtures( this.test?.fullTitle(), - async ({ driver, ganacheServer }: { driver: Driver, ganacheServer: Ganache }) => { + async ({ + driver, + ganacheServer, + }: { + driver: Driver; + ganacheServer: Ganache; + }) => { const addresses = await ganacheServer.getAccounts(); const publicAddress = addresses?.[0] as string; @@ -44,7 +52,9 @@ describe('Confirmation Signature - Sign Typed Data', function (this: Suite) { await driver.clickElement('#signTypedData'); await switchToNotificationWindow(driver); - await driver.clickElement('[data-testid="confirm-footer-cancel-button"]'); + await driver.clickElement( + '[data-testid="confirm-footer-cancel-button"]', + ); await driver.waitUntilXWindowHandles(2); await driver.switchToWindowWithTitle(WINDOW_TITLES.TestDApp); @@ -77,8 +87,13 @@ async function assertVerifiedResults(driver: Driver, publicAddress: string) { css: '#signTypedDataVerifyResult', text: publicAddress, }); - const verifyRecoverAddress = await driver.findElement('#signTypedDataVerifyResult'); + const verifyRecoverAddress = await driver.findElement( + '#signTypedDataVerifyResult', + ); - assert.equal(await result.getText(), '0x32791e3c41d40dd5bbfb42e66cf80ca354b0869ae503ad61cd19ba68e11d4f0d2e42a5835b0bfd633596b6a7834ef7d36033633a2479dacfdb96bda360d51f451b'); + assert.equal( + await result.getText(), + '0x32791e3c41d40dd5bbfb42e66cf80ca354b0869ae503ad61cd19ba68e11d4f0d2e42a5835b0bfd633596b6a7834ef7d36033633a2479dacfdb96bda360d51f451b', + ); assert.equal(await verifyRecoverAddress.getText(), publicAddress); } diff --git a/test/e2e/tests/ppom/mocks/json-rpc-result.ts b/test/e2e/tests/ppom/mocks/json-rpc-result.ts index 9fe4fa7dc301..775e049e02b7 100644 --- a/test/e2e/tests/ppom/mocks/json-rpc-result.ts +++ b/test/e2e/tests/ppom/mocks/json-rpc-result.ts @@ -1,8 +1,10 @@ const MOCK_BLOCK_NUMBER = '0x1'; -export interface mockJsonRpcResultType { +export type mockJsonRpcResultType = { + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any [methodName: string]: { [arbitraryVariantName: string]: any }; -} +}; export const mockJsonRpcResult: mockJsonRpcResultType = { eth_blockNumber: { diff --git a/test/e2e/tests/ppom/mocks/mock-server-json-rpc.ts b/test/e2e/tests/ppom/mocks/mock-server-json-rpc.ts index f539df033b02..2c560c20c522 100644 --- a/test/e2e/tests/ppom/mocks/mock-server-json-rpc.ts +++ b/test/e2e/tests/ppom/mocks/mock-server-json-rpc.ts @@ -7,8 +7,12 @@ type RequestConfig = [ /** optional arbitrary method variant name to return various result values */ methodResultVariant?: string; /** optional params value for JSON request used in withJsonBodyIncluding() */ + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any params?: any; /** optional result value returned in JSON response */ + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any result?: any; }, ]; @@ -53,6 +57,8 @@ async function mockServerJsonRpc( await mockServer .forPost() .withJsonBodyIncluding(params ? { method, params } : { method }) + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any .thenCallback(async (req: any) => { return { statusCode: 200, diff --git a/test/e2e/tests/settings/change-language.spec.ts b/test/e2e/tests/settings/change-language.spec.ts index 3e69209e0804..9560991194f3 100644 --- a/test/e2e/tests/settings/change-language.spec.ts +++ b/test/e2e/tests/settings/change-language.spec.ts @@ -1,12 +1,13 @@ -const { strict: assert } = require('assert'); +import { strict as assert } from 'assert'; import { Suite } from 'mocha'; -const { + +import { Driver } from '../../webdriver/driver'; +import { defaultGanacheOptions, withFixtures, unlockWallet, -} = require('../../helpers'); -const FixtureBuilder = require('../../fixture-builder'); -import { Driver } from '../../webdriver/driver'; +} from '../../helpers'; +import FixtureBuilder from '../../fixture-builder'; const selectors = { accountOptionsMenuButton: '[data-testid="account-options-menu-button"]', @@ -255,4 +256,4 @@ describe('Settings - general tab @no-mmi', function (this: Suite) { }, ); }); -}); \ No newline at end of file +}); diff --git a/test/e2e/tests/simulation-details/mock-request-buy-erc1155.ts b/test/e2e/tests/simulation-details/mock-request-buy-erc1155.ts index 4c9e0b0e06bf..8925264cf10b 100644 --- a/test/e2e/tests/simulation-details/mock-request-buy-erc1155.ts +++ b/test/e2e/tests/simulation-details/mock-request-buy-erc1155.ts @@ -1,393 +1,414 @@ -import { MockRequestResponse, SENDER_ADDRESS_MOCK, SENDER_ADDRESS_NO_0x_MOCK } from "./types"; +import { + MockRequestResponse, + SENDER_ADDRESS_MOCK, + SENDER_ADDRESS_NO_0X_MOCK, +} from './types'; export const BUY_ERC1155_TRANSACTION_MOCK = { - "data": "0xe7acab24000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000006200000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000580000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000065e517b200000000000000000000000000000000000000000000000000000000660de8220000000000000000000000000000000000000000000000000000000000000000360c6ebe0000000000000000000000000000000000000000187d7f63de4580450000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000076be3b62873462d2142405439777e971754e8e77000000000000000000000000000000000000000000000000000000000000286400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059874438570000000000000000000000000000000000000000000000000000005987443857000000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028ed6103d000000000000000000000000000000000000000000000000000000028ed6103d0000000000000000000000000000000a26b00c1f0df003000390027140000faa7190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a3b5840f40000000000000000000000000000000000000000000000000000000a3b5840f4000000000000000000000000000157e23d3e68ac6f99334b8b0fe71f0eb844911dd0000000000000000000000000000000000000000000000000000000000000040100fc5b608d71976e87680aa0b785ae11ac8b9004316b9721222a5d6bea2c7a346d74d85776450c82d2ee3e4fa24eb8d612f5975a577789ad2b58dfc6a6e49760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000360c6ebe", - "from": SENDER_ADDRESS_MOCK, - "maxFeePerGas": "0x0", - "maxPriorityFeePerGas": "0x0", - "to": "0x00000000000000adc04c56bf30ac9d3c0aaf14dc", - "value": "0x19945ca262000" + data: '0xe7acab24000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000006200000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000580000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000065e517b200000000000000000000000000000000000000000000000000000000660de8220000000000000000000000000000000000000000000000000000000000000000360c6ebe0000000000000000000000000000000000000000187d7f63de4580450000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000076be3b62873462d2142405439777e971754e8e77000000000000000000000000000000000000000000000000000000000000286400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059874438570000000000000000000000000000000000000000000000000000005987443857000000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028ed6103d000000000000000000000000000000000000000000000000000000028ed6103d0000000000000000000000000000000a26b00c1f0df003000390027140000faa7190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a3b5840f40000000000000000000000000000000000000000000000000000000a3b5840f4000000000000000000000000000157e23d3e68ac6f99334b8b0fe71f0eb844911dd0000000000000000000000000000000000000000000000000000000000000040100fc5b608d71976e87680aa0b785ae11ac8b9004316b9721222a5d6bea2c7a346d74d85776450c82d2ee3e4fa24eb8d612f5975a577789ad2b58dfc6a6e49760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000360c6ebe', + from: SENDER_ADDRESS_MOCK, + maxFeePerGas: '0x0', + maxPriorityFeePerGas: '0x0', + to: '0x00000000000000adc04c56bf30ac9d3c0aaf14dc', + value: '0x19945ca262000', }; export const BUY_ERC1155_REQUEST_1_MOCK: MockRequestResponse = { request: { - "id": "0", - "jsonrpc": "2.0", - "method": "infura_simulateTransactions", - "params": [ + id: '0', + jsonrpc: '2.0', + method: 'infura_simulateTransactions', + params: [ { - "transactions": [BUY_ERC1155_TRANSACTION_MOCK], - "withCallTrace": true, - "withLogs": true - } - ] + transactions: [BUY_ERC1155_TRANSACTION_MOCK], + withCallTrace: true, + withLogs: true, + }, + ], }, response: { - "jsonrpc": "2.0", - "result": { - "transactions": [ + jsonrpc: '2.0', + result: { + transactions: [ { - "return": "0x0000000000000000000000000000000000000000000000000000000000000001", - "status": "0x1", - "gasUsed": "0x25f36", - "gasLimit": "0x2759d", - "fees": [ + return: + '0x0000000000000000000000000000000000000000000000000000000000000001', + status: '0x1', + gasUsed: '0x25f36', + gasLimit: '0x2759d', + fees: [ { - "maxFeePerGas": "0x0", - "maxPriorityFeePerGas": "0x0", - "balanceNeeded": "0x19945ca262000", - "currentBalance": "0x32795c83616e692", - "error": "" - } + maxFeePerGas: '0x0', + maxPriorityFeePerGas: '0x0', + balanceNeeded: '0x19945ca262000', + currentBalance: '0x32795c83616e692', + error: '', + }, ], - "stateDiff": { - "post": { - "0x00000000000000adc04c56bf30ac9d3c0aaf14dc": { - "storage": { - "0x4c72287b4ec27ed52187d8d12dd2efcc80b62258ecd302f3a49cc31b5e309c12": "0x0000000000000000000000000000040000000000000000000000000000010001" - } + stateDiff: { + post: { + '0x00000000000000adc04c56bf30ac9d3c0aaf14dc': { + storage: { + '0x4c72287b4ec27ed52187d8d12dd2efcc80b62258ecd302f3a49cc31b5e309c12': + '0x0000000000000000000000000000040000000000000000000000000000010001', + }, }, - "0x0000a26b00c1f0df003000390027140000faa719": { - "balance": "0x366ca9f378bea7f25" + '0x0000a26b00c1f0df003000390027140000faa719': { + balance: '0x366ca9f378bea7f25', }, - "0x157e23d3e68ac6f99334b8b0fe71f0eb844911dd": { - "balance": "0x2866997b0e4edc141" + '0x157e23d3e68ac6f99334b8b0fe71f0eb844911dd': { + balance: '0x2866997b0e4edc141', }, [SENDER_ADDRESS_MOCK]: { - "balance": "0x325fc826bf0c692", - "nonce": "0x3bc" - }, - "0x76be3b62873462d2142405439777e971754e8e77": { - "storage": { - "0x3796904d67106d2573261f46f55a01017a279e51efbe4fc47d78ed4f984f2c79": "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x55052ce5c7ff3ae88fff66c1ed7bba5d2e8349a1787d18f50854e16e886b2445": "0x0000000000000000000000000000000000000000000000000000000000000003" - } - }, - "0xa0d884d99316d14d7727a6a9223a8266a4595468": { - "balance": "0xd1563f4a6c5a8" - } + balance: '0x325fc826bf0c692', + nonce: '0x3bc', + }, + '0x76be3b62873462d2142405439777e971754e8e77': { + storage: { + '0x3796904d67106d2573261f46f55a01017a279e51efbe4fc47d78ed4f984f2c79': + '0x0000000000000000000000000000000000000000000000000000000000000001', + '0x55052ce5c7ff3ae88fff66c1ed7bba5d2e8349a1787d18f50854e16e886b2445': + '0x0000000000000000000000000000000000000000000000000000000000000003', + }, + }, + '0xa0d884d99316d14d7727a6a9223a8266a4595468': { + balance: '0xd1563f4a6c5a8', + }, }, - "pre": { - "0x00000000000000adc04c56bf30ac9d3c0aaf14dc": { - "balance": "0x0", - "nonce": "0x1" + pre: { + '0x00000000000000adc04c56bf30ac9d3c0aaf14dc': { + balance: '0x0', + nonce: '0x1', }, - "0x0000a26b00c1f0df003000390027140000faa719": { - "balance": "0x366ca94fc33a98b25", - "nonce": "0x1" + '0x0000a26b00c1f0df003000390027140000faa719': { + balance: '0x366ca94fc33a98b25', + nonce: '0x1', }, - "0x157e23d3e68ac6f99334b8b0fe71f0eb844911dd": { - "balance": "0x286696ec383e9f141", - "nonce": "0x18" + '0x157e23d3e68ac6f99334b8b0fe71f0eb844911dd': { + balance: '0x286696ec383e9f141', + nonce: '0x18', }, [SENDER_ADDRESS_MOCK]: { - "balance": "0x32795c83616e692", - "nonce": "0x3bb" - }, - "0x76be3b62873462d2142405439777e971754e8e77": { - "balance": "0x0", - "nonce": "0x1", - "storage": { - "0x55052ce5c7ff3ae88fff66c1ed7bba5d2e8349a1787d18f50854e16e886b2445": "0x0000000000000000000000000000000000000000000000000000000000000004" - } - }, - "0xa0d884d99316d14d7727a6a9223a8266a4595468": { - "balance": "0xbaf46e3c569a8", - "nonce": "0x12fc" - } - } + balance: '0x32795c83616e692', + nonce: '0x3bb', + }, + '0x76be3b62873462d2142405439777e971754e8e77': { + balance: '0x0', + nonce: '0x1', + storage: { + '0x55052ce5c7ff3ae88fff66c1ed7bba5d2e8349a1787d18f50854e16e886b2445': + '0x0000000000000000000000000000000000000000000000000000000000000004', + }, + }, + '0xa0d884d99316d14d7727a6a9223a8266a4595468': { + balance: '0xbaf46e3c569a8', + nonce: '0x12fc', + }, + }, }, - "callTrace": { - "from": SENDER_ADDRESS_MOCK, - "to": "0x00000000000000adc04c56bf30ac9d3c0aaf14dc", - "type": "CALL", - "gas": "0x1dcd6500", - "gasUsed": "0x25f36", - "value": "0x19945ca262000", - "input": "0xe7acab24000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000006200000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000580000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000065e517b200000000000000000000000000000000000000000000000000000000660de8220000000000000000000000000000000000000000000000000000000000000000360c6ebe0000000000000000000000000000000000000000187d7f63de4580450000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000076be3b62873462d2142405439777e971754e8e77000000000000000000000000000000000000000000000000000000000000286400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059874438570000000000000000000000000000000000000000000000000000005987443857000000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028ed6103d000000000000000000000000000000000000000000000000000000028ed6103d0000000000000000000000000000000a26b00c1f0df003000390027140000faa7190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a3b5840f40000000000000000000000000000000000000000000000000000000a3b5840f4000000000000000000000000000157e23d3e68ac6f99334b8b0fe71f0eb844911dd0000000000000000000000000000000000000000000000000000000000000040100fc5b608d71976e87680aa0b785ae11ac8b9004316b9721222a5d6bea2c7a346d74d85776450c82d2ee3e4fa24eb8d612f5975a577789ad2b58dfc6a6e49760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000360c6ebe", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001", - "error": "", - "calls": [ + callTrace: { + from: SENDER_ADDRESS_MOCK, + to: '0x00000000000000adc04c56bf30ac9d3c0aaf14dc', + type: 'CALL', + gas: '0x1dcd6500', + gasUsed: '0x25f36', + value: '0x19945ca262000', + input: + '0xe7acab24000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000006200000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000580000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000065e517b200000000000000000000000000000000000000000000000000000000660de8220000000000000000000000000000000000000000000000000000000000000000360c6ebe0000000000000000000000000000000000000000187d7f63de4580450000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000076be3b62873462d2142405439777e971754e8e77000000000000000000000000000000000000000000000000000000000000286400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059874438570000000000000000000000000000000000000000000000000000005987443857000000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028ed6103d000000000000000000000000000000000000000000000000000000028ed6103d0000000000000000000000000000000a26b00c1f0df003000390027140000faa7190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a3b5840f40000000000000000000000000000000000000000000000000000000a3b5840f4000000000000000000000000000157e23d3e68ac6f99334b8b0fe71f0eb844911dd0000000000000000000000000000000000000000000000000000000000000040100fc5b608d71976e87680aa0b785ae11ac8b9004316b9721222a5d6bea2c7a346d74d85776450c82d2ee3e4fa24eb8d612f5975a577789ad2b58dfc6a6e49760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000360c6ebe', + output: + '0x0000000000000000000000000000000000000000000000000000000000000001', + error: '', + calls: [ { - "from": "0x00000000000000adc04c56bf30ac9d3c0aaf14dc", - "to": "0x0000000000000000000000000000000000000001", - "type": "STATICCALL", - "gas": "0x1d557faf", - "gasUsed": "0xbb8", - "value": null, - "input": "0x0ed016b9310bbb571c96e8b4b9fa9758005b6b990c2d7a77993a345d522a9d51000000000000000000000000000000000000000000000000000000000000001b100fc5b608d71976e87680aa0b785ae11ac8b9004316b9721222a5d6bea2c7a346d74d85776450c82d2ee3e4fa24eb8d612f5975a577789ad2b58dfc6a6e4976", - "output": "0x000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468", - "error": "", - "calls": null + from: '0x00000000000000adc04c56bf30ac9d3c0aaf14dc', + to: '0x0000000000000000000000000000000000000001', + type: 'STATICCALL', + gas: '0x1d557faf', + gasUsed: '0xbb8', + value: null, + input: + '0x0ed016b9310bbb571c96e8b4b9fa9758005b6b990c2d7a77993a345d522a9d51000000000000000000000000000000000000000000000000000000000000001b100fc5b608d71976e87680aa0b785ae11ac8b9004316b9721222a5d6bea2c7a346d74d85776450c82d2ee3e4fa24eb8d612f5975a577789ad2b58dfc6a6e4976', + output: + '0x000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468', + error: '', + calls: null, }, { - "from": "0x00000000000000adc04c56bf30ac9d3c0aaf14dc", - "to": "0xa0d884d99316d14d7727a6a9223a8266a4595468", - "type": "CALL", - "gas": "0x1d54ee52", - "gasUsed": "0x0", - "value": "0x1661d10e15c00", - "input": "0x", - "output": "0x", - "error": "", - "calls": null + from: '0x00000000000000adc04c56bf30ac9d3c0aaf14dc', + to: '0xa0d884d99316d14d7727a6a9223a8266a4595468', + type: 'CALL', + gas: '0x1d54ee52', + gasUsed: '0x0', + value: '0x1661d10e15c00', + input: '0x', + output: '0x', + error: '', + calls: null, }, { - "from": "0x00000000000000adc04c56bf30ac9d3c0aaf14dc", - "to": "0x0000a26b00c1f0df003000390027140000faa719", - "type": "CALL", - "gas": "0x1d54c690", - "gasUsed": "0x55", - "value": "0xa3b5840f400", - "input": "0x", - "output": "0x", - "error": "", - "calls": null + from: '0x00000000000000adc04c56bf30ac9d3c0aaf14dc', + to: '0x0000a26b00c1f0df003000390027140000faa719', + type: 'CALL', + gas: '0x1d54c690', + gasUsed: '0x55', + value: '0xa3b5840f400', + input: '0x', + output: '0x', + error: '', + calls: null, }, { - "from": "0x00000000000000adc04c56bf30ac9d3c0aaf14dc", - "to": "0x157e23d3e68ac6f99334b8b0fe71f0eb844911dd", - "type": "CALL", - "gas": "0x1d549e7b", - "gasUsed": "0x0", - "value": "0x28ed6103d000", - "input": "0x", - "output": "0x", - "error": "", - "calls": null + from: '0x00000000000000adc04c56bf30ac9d3c0aaf14dc', + to: '0x157e23d3e68ac6f99334b8b0fe71f0eb844911dd', + type: 'CALL', + gas: '0x1d549e7b', + gasUsed: '0x0', + value: '0x28ed6103d000', + input: '0x', + output: '0x', + error: '', + calls: null, }, { - "from": "0x00000000000000adc04c56bf30ac9d3c0aaf14dc", - "to": "0x1e0049783f008a0085193e00003d00cd54003c71", - "type": "CALL", - "gas": "0x1d549301", - "gasUsed": "0x9ea5", - "value": "0x0", - "input": `0x4ce34aa200000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000076be3b62873462d2142405439777e971754e8e77000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}00000000000000000000000000000000000000000000000000000000000028640000000000000000000000000000000000000000000000000000000000000001`, - "output": "0x4ce34aa200000000000000000000000000000000000000000000000000000000", - "error": "", - "calls": [ + from: '0x00000000000000adc04c56bf30ac9d3c0aaf14dc', + to: '0x1e0049783f008a0085193e00003d00cd54003c71', + type: 'CALL', + gas: '0x1d549301', + gasUsed: '0x9ea5', + value: '0x0', + input: `0x4ce34aa200000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000076be3b62873462d2142405439777e971754e8e77000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}00000000000000000000000000000000000000000000000000000000000028640000000000000000000000000000000000000000000000000000000000000001`, + output: + '0x4ce34aa200000000000000000000000000000000000000000000000000000000', + error: '', + calls: [ { - "from": "0x1e0049783f008a0085193e00003d00cd54003c71", - "to": "0x76be3b62873462d2142405439777e971754e8e77", - "type": "CALL", - "gas": "0x1cdf28f7", - "gasUsed": "0x8602", - "value": "0x0", - "input": `0xf242432a000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}0000000000000000000000000000000000000000000000000000000000002864000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000`, - "output": "0x", - "error": "", - "calls": null, - "logs": [ + from: '0x1e0049783f008a0085193e00003d00cd54003c71', + to: '0x76be3b62873462d2142405439777e971754e8e77', + type: 'CALL', + gas: '0x1cdf28f7', + gasUsed: '0x8602', + value: '0x0', + input: `0xf242432a000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}0000000000000000000000000000000000000000000000000000000000002864000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000`, + output: '0x', + error: '', + calls: null, + logs: [ { - "address": "0x76be3b62873462d2142405439777e971754e8e77", - "topics": [ - "0xc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62", - "0x0000000000000000000000001e0049783f008a0085193e00003d00cd54003c71", - "0x000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468", - `0x000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}` + address: '0x76be3b62873462d2142405439777e971754e8e77', + topics: [ + '0xc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62', + '0x0000000000000000000000001e0049783f008a0085193e00003d00cd54003c71', + '0x000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468', + `0x000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}`, ], - "data": "0x00000000000000000000000000000000000000000000000000000000000028640000000000000000000000000000000000000000000000000000000000000001" - } - ] - } - ] - } + data: '0x00000000000000000000000000000000000000000000000000000000000028640000000000000000000000000000000000000000000000000000000000000001', + }, + ], + }, + ], + }, ], - "logs": [ + logs: [ { - "address": "0x00000000000000adc04c56bf30ac9d3c0aaf14dc", - "topics": [ - "0x9d9af8e38d66c62e2c12f0225249fd9d721c54b83f48d9352c97c6cacdcb6f31", - "0x000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468", - "0x000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c00" + address: '0x00000000000000adc04c56bf30ac9d3c0aaf14dc', + topics: [ + '0x9d9af8e38d66c62e2c12f0225249fd9d721c54b83f48d9352c97c6cacdcb6f31', + '0x000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468', + '0x000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c00', ], - "data": `0x6ea6470ec24d1cbb4feec79a3bd903fa824925509bf6e1d658be4da525b7d8c9000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000076be3b62873462d2142405439777e971754e8e770000000000000000000000000000000000000000000000000000000000002864000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001661d10e15c00000000000000000000000000a0d884d99316d14d7727a6a9223a8266a459546800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a3b5840f4000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028ed6103d000000000000000000000000000157e23d3e68ac6f99334b8b0fe71f0eb844911dd` - } - ] + data: `0x6ea6470ec24d1cbb4feec79a3bd903fa824925509bf6e1d658be4da525b7d8c9000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000076be3b62873462d2142405439777e971754e8e770000000000000000000000000000000000000000000000000000000000002864000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001661d10e15c00000000000000000000000000a0d884d99316d14d7727a6a9223a8266a459546800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a3b5840f4000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028ed6103d000000000000000000000000000157e23d3e68ac6f99334b8b0fe71f0eb844911dd`, + }, + ], }, - "feeEstimate": 6631084132695242, - "baseFeePerGas": 42658441727 - } + feeEstimate: 6631084132695242, + baseFeePerGas: 42658441727, + }, ], - "blockNumber": "0x12967f2", - "id": "e51ab092-77f2-40f5-9161-c883694ab092" + blockNumber: '0x12967f2', + id: 'e51ab092-77f2-40f5-9161-c883694ab092', }, - "id": "0" + id: '0', }, }; export const BUY_ERC1155_REQUEST_2_MOCK = { request: { - "id": "1", - "jsonrpc": "2.0", - "method": "infura_simulateTransactions", - "params": [ + id: '1', + jsonrpc: '2.0', + method: 'infura_simulateTransactions', + params: [ { - "transactions": [ + transactions: [ { - "from": SENDER_ADDRESS_MOCK, - "to": "0x76be3b62873462d2142405439777e971754e8e77", - "data": `0x00fdd58e000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}0000000000000000000000000000000000000000000000000000000000002864` + from: SENDER_ADDRESS_MOCK, + to: '0x76be3b62873462d2142405439777e971754e8e77', + data: `0x00fdd58e000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}0000000000000000000000000000000000000000000000000000000000002864`, }, { - "chainId": "0x1", - "from": SENDER_ADDRESS_MOCK, - "to": "0x00000000000000adc04c56bf30ac9d3c0aaf14dc", - "value": "0x19945ca262000", - "data": "0xe7acab24000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000006200000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000580000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000065e517b200000000000000000000000000000000000000000000000000000000660de8220000000000000000000000000000000000000000000000000000000000000000360c6ebe0000000000000000000000000000000000000000187d7f63de4580450000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000076be3b62873462d2142405439777e971754e8e77000000000000000000000000000000000000000000000000000000000000286400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059874438570000000000000000000000000000000000000000000000000000005987443857000000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028ed6103d000000000000000000000000000000000000000000000000000000028ed6103d0000000000000000000000000000000a26b00c1f0df003000390027140000faa7190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a3b5840f40000000000000000000000000000000000000000000000000000000a3b5840f4000000000000000000000000000157e23d3e68ac6f99334b8b0fe71f0eb844911dd0000000000000000000000000000000000000000000000000000000000000040100fc5b608d71976e87680aa0b785ae11ac8b9004316b9721222a5d6bea2c7a346d74d85776450c82d2ee3e4fa24eb8d612f5975a577789ad2b58dfc6a6e49760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000360c6ebe" + chainId: '0x1', + from: SENDER_ADDRESS_MOCK, + to: '0x00000000000000adc04c56bf30ac9d3c0aaf14dc', + value: '0x19945ca262000', + data: '0xe7acab24000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000006200000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000580000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000065e517b200000000000000000000000000000000000000000000000000000000660de8220000000000000000000000000000000000000000000000000000000000000000360c6ebe0000000000000000000000000000000000000000187d7f63de4580450000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000076be3b62873462d2142405439777e971754e8e77000000000000000000000000000000000000000000000000000000000000286400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059874438570000000000000000000000000000000000000000000000000000005987443857000000000000000000000000000a0d884d99316d14d7727a6a9223a8266a4595468000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028ed6103d000000000000000000000000000000000000000000000000000000028ed6103d0000000000000000000000000000000a26b00c1f0df003000390027140000faa7190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a3b5840f40000000000000000000000000000000000000000000000000000000a3b5840f4000000000000000000000000000157e23d3e68ac6f99334b8b0fe71f0eb844911dd0000000000000000000000000000000000000000000000000000000000000040100fc5b608d71976e87680aa0b785ae11ac8b9004316b9721222a5d6bea2c7a346d74d85776450c82d2ee3e4fa24eb8d612f5975a577789ad2b58dfc6a6e49760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000360c6ebe', }, { - "from": SENDER_ADDRESS_MOCK, - "to": "0x76be3b62873462d2142405439777e971754e8e77", - "data": `0x00fdd58e000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}0000000000000000000000000000000000000000000000000000000000002864` - } - ] - } - ] + from: SENDER_ADDRESS_MOCK, + to: '0x76be3b62873462d2142405439777e971754e8e77', + data: `0x00fdd58e000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}0000000000000000000000000000000000000000000000000000000000002864`, + }, + ], + }, + ], }, response: { - "jsonrpc": "2.0", - "result": { - "transactions": [ + jsonrpc: '2.0', + result: { + transactions: [ { - "return": "0x0000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "gasUsed": "0x6014", - "gasLimit": "0x6167", - "fees": [ + return: + '0x0000000000000000000000000000000000000000000000000000000000000000', + status: '0x1', + gasUsed: '0x6014', + gasLimit: '0x6167', + fees: [ { - "maxFeePerGas": "0xfebde1167", - "maxPriorityFeePerGas": "0x30c3be3", - "balanceNeeded": "0x60ec70af168d8", - "currentBalance": "0x32795c83616e692", - "error": "" - } + maxFeePerGas: '0xfebde1167', + maxPriorityFeePerGas: '0x30c3be3', + balanceNeeded: '0x60ec70af168d8', + currentBalance: '0x32795c83616e692', + error: '', + }, ], - "stateDiff": { - "post": { + stateDiff: { + post: { [SENDER_ADDRESS_MOCK]: { - "nonce": "0x3bc" - } + nonce: '0x3bc', + }, }, - "pre": { + pre: { [SENDER_ADDRESS_MOCK]: { - "balance": "0x32795c83616e692", - "nonce": "0x3bb" - } - } + balance: '0x32795c83616e692', + nonce: '0x3bb', + }, + }, }, - "feeEstimate": 1049251628741888, - "baseFeePerGas": 42658441727 + feeEstimate: 1049251628741888, + baseFeePerGas: 42658441727, }, { - "return": "0x0000000000000000000000000000000000000000000000000000000000000001", - "status": "0x1", - "gasUsed": "0x25f36", - "gasLimit": "0x2759d", - "fees": [ + return: + '0x0000000000000000000000000000000000000000000000000000000000000001', + status: '0x1', + gasUsed: '0x25f36', + gasLimit: '0x2759d', + fees: [ { - "maxFeePerGas": "0xfebde1167", - "maxPriorityFeePerGas": "0x30c3be3", - "balanceNeeded": "0x28c192121b54c8", - "currentBalance": "0x32187012b257dba", - "error": "" - } + maxFeePerGas: '0xfebde1167', + maxPriorityFeePerGas: '0x30c3be3', + balanceNeeded: '0x28c192121b54c8', + currentBalance: '0x32187012b257dba', + error: '', + }, ], - "stateDiff": { - "post": { - "0x00000000000000adc04c56bf30ac9d3c0aaf14dc": { - "storage": { - "0x4c72287b4ec27ed52187d8d12dd2efcc80b62258ecd302f3a49cc31b5e309c12": "0x0000000000000000000000000000040000000000000000000000000000010001" - } + stateDiff: { + post: { + '0x00000000000000adc04c56bf30ac9d3c0aaf14dc': { + storage: { + '0x4c72287b4ec27ed52187d8d12dd2efcc80b62258ecd302f3a49cc31b5e309c12': + '0x0000000000000000000000000000040000000000000000000000000000010001', + }, }, - "0x0000a26b00c1f0df003000390027140000faa719": { - "balance": "0x366ca9f378bea7f25" + '0x0000a26b00c1f0df003000390027140000faa719': { + balance: '0x366ca9f378bea7f25', }, - "0x157e23d3e68ac6f99334b8b0fe71f0eb844911dd": { - "balance": "0x2866997b0e4edc141" + '0x157e23d3e68ac6f99334b8b0fe71f0eb844911dd': { + balance: '0x2866997b0e4edc141', }, [SENDER_ADDRESS_MOCK]: { - "balance": "0x325fc826bf0c692", - "nonce": "0x3bd" - }, - "0x76be3b62873462d2142405439777e971754e8e77": { - "storage": { - "0x3796904d67106d2573261f46f55a01017a279e51efbe4fc47d78ed4f984f2c79": "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x55052ce5c7ff3ae88fff66c1ed7bba5d2e8349a1787d18f50854e16e886b2445": "0x0000000000000000000000000000000000000000000000000000000000000003" - } - }, - "0xa0d884d99316d14d7727a6a9223a8266a4595468": { - "balance": "0xd1563f4a6c5a8" - } + balance: '0x325fc826bf0c692', + nonce: '0x3bd', + }, + '0x76be3b62873462d2142405439777e971754e8e77': { + storage: { + '0x3796904d67106d2573261f46f55a01017a279e51efbe4fc47d78ed4f984f2c79': + '0x0000000000000000000000000000000000000000000000000000000000000001', + '0x55052ce5c7ff3ae88fff66c1ed7bba5d2e8349a1787d18f50854e16e886b2445': + '0x0000000000000000000000000000000000000000000000000000000000000003', + }, + }, + '0xa0d884d99316d14d7727a6a9223a8266a4595468': { + balance: '0xd1563f4a6c5a8', + }, }, - "pre": { - "0x00000000000000adc04c56bf30ac9d3c0aaf14dc": { - "balance": "0x0", - "nonce": "0x1" + pre: { + '0x00000000000000adc04c56bf30ac9d3c0aaf14dc': { + balance: '0x0', + nonce: '0x1', }, - "0x0000a26b00c1f0df003000390027140000faa719": { - "balance": "0x366ca94fc33a98b25", - "nonce": "0x1" + '0x0000a26b00c1f0df003000390027140000faa719': { + balance: '0x366ca94fc33a98b25', + nonce: '0x1', }, - "0x157e23d3e68ac6f99334b8b0fe71f0eb844911dd": { - "balance": "0x286696ec383e9f141", - "nonce": "0x18" + '0x157e23d3e68ac6f99334b8b0fe71f0eb844911dd': { + balance: '0x286696ec383e9f141', + nonce: '0x18', }, [SENDER_ADDRESS_MOCK]: { - "balance": "0x32795c83616e692", - "nonce": "0x3bc" - }, - "0x76be3b62873462d2142405439777e971754e8e77": { - "balance": "0x0", - "nonce": "0x1", - "storage": { - "0x55052ce5c7ff3ae88fff66c1ed7bba5d2e8349a1787d18f50854e16e886b2445": "0x0000000000000000000000000000000000000000000000000000000000000004" - } - }, - "0xa0d884d99316d14d7727a6a9223a8266a4595468": { - "balance": "0xbaf46e3c569a8", - "nonce": "0x12fc" - } - } + balance: '0x32795c83616e692', + nonce: '0x3bc', + }, + '0x76be3b62873462d2142405439777e971754e8e77': { + balance: '0x0', + nonce: '0x1', + storage: { + '0x55052ce5c7ff3ae88fff66c1ed7bba5d2e8349a1787d18f50854e16e886b2445': + '0x0000000000000000000000000000000000000000000000000000000000000004', + }, + }, + '0xa0d884d99316d14d7727a6a9223a8266a4595468': { + balance: '0xbaf46e3c569a8', + nonce: '0x12fc', + }, + }, }, - "feeEstimate": 6631239578850688, - "baseFeePerGas": 42658441727 + feeEstimate: 6631239578850688, + baseFeePerGas: 42658441727, }, { - "return": "0x0000000000000000000000000000000000000000000000000000000000000001", - "status": "0x1", - "gasUsed": "0x6014", - "gasLimit": "0x6167", - "fees": [ + return: + '0x0000000000000000000000000000000000000000000000000000000000000001', + status: '0x1', + gasUsed: '0x6014', + gasLimit: '0x6167', + fees: [ { - "maxFeePerGas": "0xfebde1167", - "maxPriorityFeePerGas": "0x30c3be3", - "balanceNeeded": "0x60ec70af168d8", - "currentBalance": "0x2f8c56f190a28f2", - "error": "" - } + maxFeePerGas: '0xfebde1167', + maxPriorityFeePerGas: '0x30c3be3', + balanceNeeded: '0x60ec70af168d8', + currentBalance: '0x2f8c56f190a28f2', + error: '', + }, ], - "stateDiff": { - "post": { + stateDiff: { + post: { [SENDER_ADDRESS_MOCK]: { - "nonce": "0x3be" - } + nonce: '0x3be', + }, }, - "pre": { + pre: { [SENDER_ADDRESS_MOCK]: { - "balance": "0x325fc826bf0c692", - "nonce": "0x3bd" - } - } + balance: '0x325fc826bf0c692', + nonce: '0x3bd', + }, + }, }, - "feeEstimate": 1049251628741888, - "baseFeePerGas": 42658441727 - } + feeEstimate: 1049251628741888, + baseFeePerGas: 42658441727, + }, ], - "blockNumber": "0x12967f2", - "id": "bcf1a9f6-3f97-456c-a2d9-2ec7d5893bcb" + blockNumber: '0x12967f2', + id: 'bcf1a9f6-3f97-456c-a2d9-2ec7d5893bcb', }, - "id": "1" + id: '1', }, }; diff --git a/test/e2e/tests/simulation-details/mock-request-buy-erc20.ts b/test/e2e/tests/simulation-details/mock-request-buy-erc20.ts index 769401ccc928..d8e6870618fe 100644 --- a/test/e2e/tests/simulation-details/mock-request-buy-erc20.ts +++ b/test/e2e/tests/simulation-details/mock-request-buy-erc20.ts @@ -1,579 +1,660 @@ -import { MockRequestResponse, SENDER_ADDRESS_MOCK, SENDER_ADDRESS_NO_0x_MOCK } from "./types"; +import { + MockRequestResponse, + SENDER_ADDRESS_MOCK, + SENDER_ADDRESS_NO_0X_MOCK, +} from './types'; export const BUY_ERC20_TRANSACTION = { - "data": `0x5ae401dc0000000000000000000000000000000000000000000000000000000065fb43ab0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000124b858183f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}00000000000000000000000000000000000000000000000000071afd498d00000000000000000000000000000000000000000000000000005d4bc0025786653d0000000000000000000000000000000000000000000000000000000000000042c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f4a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000646b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`, - "from": SENDER_ADDRESS_MOCK, - "maxFeePerGas": "0x0", - "maxPriorityFeePerGas": "0x0", - "to": "0x13f4ea83d0bd40e75c8222255bc855a974568dd4", - "value": "0x71afd498d0000" + data: `0x5ae401dc0000000000000000000000000000000000000000000000000000000065fb43ab0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000124b858183f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}00000000000000000000000000000000000000000000000000071afd498d00000000000000000000000000000000000000000000000000005d4bc0025786653d0000000000000000000000000000000000000000000000000000000000000042c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f4a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000646b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`, + from: SENDER_ADDRESS_MOCK, + maxFeePerGas: '0x0', + maxPriorityFeePerGas: '0x0', + to: '0x13f4ea83d0bd40e75c8222255bc855a974568dd4', + value: '0x71afd498d0000', }; export const BUY_ERC20_REQUEST_1_MOCK: MockRequestResponse = { request: { - "id": "0", - "jsonrpc": "2.0", - "method": "infura_simulateTransactions", - "params": [ + id: '0', + jsonrpc: '2.0', + method: 'infura_simulateTransactions', + params: [ { - "transactions": [BUY_ERC20_TRANSACTION], - "withCallTrace": true, - "withLogs": true - } - ] + transactions: [BUY_ERC20_TRANSACTION], + withCallTrace: true, + withLogs: true, + }, + ], }, response: { - "jsonrpc": "2.0", - "result": { - "transactions": [ + jsonrpc: '2.0', + result: { + transactions: [ { - "return": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000005dc32b358db8fcc9", - "status": "0x1", - "gasUsed": "0x4628e", - "gasLimit": "0x53cc5", - "fees": [ + return: + '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000005dc32b358db8fcc9', + status: '0x1', + gasUsed: '0x4628e', + gasLimit: '0x53cc5', + fees: [ { - "maxFeePerGas": "0x0", - "maxPriorityFeePerGas": "0x0", - "balanceNeeded": "0x71afd498d0000", - "currentBalance": "0x77f9fd8d99e7e0", - "error": "" - } + maxFeePerGas: '0x0', + maxPriorityFeePerGas: '0x0', + balanceNeeded: '0x71afd498d0000', + currentBalance: '0x77f9fd8d99e7e0', + error: '', + }, ], - "stateDiff": { - "post": { - "0x1ac1a8feaaea1900c4166deeed0c11cc10669d36": { - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000b000b000302f9f6000000000000432ff2e932894fe0874ac6a384b0", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x00000000000000000000000000000441ce10709c0a0992095e8e5cd95ea470de", - "0x0000000000000000000000000000000000000000000000000000000000000004": "0x000000000000000013a0b298f9b81d1e0000000000000000000000012aa0e421" - } - }, - "0x22832de1178e7f4a8d868411422c720220ddf3d2": { - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000007708590f241159371f6dd86140347968995f", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x00000000000000000000000165fb3f0700000000000000037a742348f5c5c152" - } + stateDiff: { + post: { + '0x1ac1a8feaaea1900c4166deeed0c11cc10669d36': { + storage: { + '0x0000000000000000000000000000000000000000000000000000000000000000': + '0x000000000b000b000302f9f6000000000000432ff2e932894fe0874ac6a384b0', + '0x0000000000000000000000000000000000000000000000000000000000000003': + '0x00000000000000000000000000000441ce10709c0a0992095e8e5cd95ea470de', + '0x0000000000000000000000000000000000000000000000000000000000000004': + '0x000000000000000013a0b298f9b81d1e0000000000000000000000012aa0e421', + }, + }, + '0x22832de1178e7f4a8d868411422c720220ddf3d2': { + storage: { + '0x0000000000000000000000000000000000000000000000000000000000000001': + '0x00000000000000000000000000007708590f241159371f6dd86140347968995f', + '0x0000000000000000000000000000000000000000000000000000000000000003': + '0x00000000000000000000000165fb3f0700000000000000037a742348f5c5c152', + }, }, [SENDER_ADDRESS_MOCK]: { - "balance": "0x70df00440ce7e0", - "nonce": "0x4" - }, - "0x6b175474e89094c44da98b954eedeac495271d0f": { - "storage": { - "0x930de7bb643d1647fc9c859fcc7a7c7bdd0a4a0c3a4bbd02f09ca0cc743567a9": "0x00000000000000000000000000000000000000000000026a5b2c87ebb8bb8d1c", - "0xd5dc93f3552cd59356296ab764be72c9bd93d66c2b8576cd18a4677f92be097d": "0x0000000000000000000000000000000000000000000000005dc32b358db8fcc9" - } - }, - "0x86e9bd5e42a9afde8d9c2594e84e49cc7718f381": { - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000000ef30a346933b4bd99d3bccde01f6d16e1452c", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x00000000000000000000000165fb3f070000000000000000015eea78185df6b5" - } - }, - "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { - "storage": { - "0x32b8c3e0163a3eceb0dd8f4a69ff6a8f786c1f0b2824e29def2a833031a4d374": "0x00000000000000000000000000000000000000000000000000000077a52fa7b8", - "0x3dc5bf0351aa60e0f5e0c2094c7bce3615793f84804cfb4ae4169d81e5d802ee": "0x000000000000000000000000000000000000000000000000000000203d220011" - } - }, - "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { - "balance": "0x27c965cfc53bf0f2c70b6", - "storage": { - "0x83f8975b25917b7df8ba465bc82d6b4472b7883d2ee49412f33c76db8bf49be0": "0x00000000000000000000000000000000000000000000000bd3875ff74244a952" - } - }, - "0xd9e497bd8f491fe163b42a62c296fb54caea74b7": { - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000100010000fbc89c0000000000000000000010c700afe76cb29923e8", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x0000000000000000000000000000000000000000f1e2d8a8f477b67ef05de74c", - "0x0000000000000000000000000000000000000000000000000000000000000004": "0x000000000000000000000000013ec29600000000000000011e28c9f4ab7ce8e4" - } - } + balance: '0x70df00440ce7e0', + nonce: '0x4', + }, + '0x6b175474e89094c44da98b954eedeac495271d0f': { + storage: { + '0x930de7bb643d1647fc9c859fcc7a7c7bdd0a4a0c3a4bbd02f09ca0cc743567a9': + '0x00000000000000000000000000000000000000000000026a5b2c87ebb8bb8d1c', + '0xd5dc93f3552cd59356296ab764be72c9bd93d66c2b8576cd18a4677f92be097d': + '0x0000000000000000000000000000000000000000000000005dc32b358db8fcc9', + }, + }, + '0x86e9bd5e42a9afde8d9c2594e84e49cc7718f381': { + storage: { + '0x0000000000000000000000000000000000000000000000000000000000000001': + '0x000000000000000000000000000ef30a346933b4bd99d3bccde01f6d16e1452c', + '0x0000000000000000000000000000000000000000000000000000000000000003': + '0x00000000000000000000000165fb3f070000000000000000015eea78185df6b5', + }, + }, + '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48': { + storage: { + '0x32b8c3e0163a3eceb0dd8f4a69ff6a8f786c1f0b2824e29def2a833031a4d374': + '0x00000000000000000000000000000000000000000000000000000077a52fa7b8', + '0x3dc5bf0351aa60e0f5e0c2094c7bce3615793f84804cfb4ae4169d81e5d802ee': + '0x000000000000000000000000000000000000000000000000000000203d220011', + }, + }, + '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2': { + balance: '0x27c965cfc53bf0f2c70b6', + storage: { + '0x83f8975b25917b7df8ba465bc82d6b4472b7883d2ee49412f33c76db8bf49be0': + '0x00000000000000000000000000000000000000000000000bd3875ff74244a952', + }, + }, + '0xd9e497bd8f491fe163b42a62c296fb54caea74b7': { + storage: { + '0x0000000000000000000000000000000000000000000000000000000000000000': + '0x000000000100010000fbc89c0000000000000000000010c700afe76cb29923e8', + '0x0000000000000000000000000000000000000000000000000000000000000003': + '0x0000000000000000000000000000000000000000f1e2d8a8f477b67ef05de74c', + '0x0000000000000000000000000000000000000000000000000000000000000004': + '0x000000000000000000000000013ec29600000000000000011e28c9f4ab7ce8e4', + }, + }, }, - "pre": { - "0x1ac1a8feaaea1900c4166deeed0c11cc10669d36": { - "balance": "0x0", - "nonce": "0x1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000b000b000302f9f6000000000000432fedbb64e891ccc2a450f04080", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x00000000000000000000000000000441ce10008cb545e85f10ea6254adf2328d", - "0x0000000000000000000000000000000000000000000000000000000000000004": "0x000000000000000013a0b249d023d51e0000000000000000000000012aa0e421" - } - }, - "0x22832de1178e7f4a8d868411422c720220ddf3d2": { - "balance": "0x0", - "nonce": "0x1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000000077084f83018a34e0b30b6c5cbbecc5beadbe", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x00000000000000000000000165fa28c700000000000000037a742348f5c5c152" - } + pre: { + '0x1ac1a8feaaea1900c4166deeed0c11cc10669d36': { + balance: '0x0', + nonce: '0x1', + storage: { + '0x0000000000000000000000000000000000000000000000000000000000000000': + '0x000000000b000b000302f9f6000000000000432fedbb64e891ccc2a450f04080', + '0x0000000000000000000000000000000000000000000000000000000000000003': + '0x00000000000000000000000000000441ce10008cb545e85f10ea6254adf2328d', + '0x0000000000000000000000000000000000000000000000000000000000000004': + '0x000000000000000013a0b249d023d51e0000000000000000000000012aa0e421', + }, + }, + '0x22832de1178e7f4a8d868411422c720220ddf3d2': { + balance: '0x0', + nonce: '0x1', + storage: { + '0x0000000000000000000000000000000000000000000000000000000000000001': + '0x000000000000000000000000000077084f83018a34e0b30b6c5cbbecc5beadbe', + '0x0000000000000000000000000000000000000000000000000000000000000003': + '0x00000000000000000000000165fa28c700000000000000037a742348f5c5c152', + }, }, [SENDER_ADDRESS_MOCK]: { - "balance": "0x77f9fd8d99e7e0", - "nonce": "0x3" - }, - "0x6b175474e89094c44da98b954eedeac495271d0f": { - "balance": "0x0", - "nonce": "0x1", - "storage": { - "0x930de7bb643d1647fc9c859fcc7a7c7bdd0a4a0c3a4bbd02f09ca0cc743567a9": "0x00000000000000000000000000000000000000000000026ab8efb321467489e5" - } - }, - "0x86e9bd5e42a9afde8d9c2594e84e49cc7718f381": { - "balance": "0x0", - "nonce": "0x1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000000ef2efd2b96a4061ac9c50b8d33ded38fd6e81", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x00000000000000000000000165fb3d870000000000000000015eea78185df6b5" - } - }, - "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { - "balance": "0x0", - "nonce": "0x1", - "storage": { - "0x32b8c3e0163a3eceb0dd8f4a69ff6a8f786c1f0b2824e29def2a833031a4d374": "0x00000000000000000000000000000000000000000000000000000077a596c28e", - "0x3dc5bf0351aa60e0f5e0c2094c7bce3615793f84804cfb4ae4169d81e5d802ee": "0x000000000000000000000000000000000000000000000000000000203cbae53b" - } - }, - "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { - "balance": "0x27c965cf538c1c59f70b6", - "nonce": "0x1", - "storage": { - "0x83f8975b25917b7df8ba465bc82d6b4472b7883d2ee49412f33c76db8bf49be0": "0x00000000000000000000000000000000000000000000000bd38044f9f8b7a952" - } - }, - "0xd9e497bd8f491fe163b42a62c296fb54caea74b7": { - "balance": "0x0", - "nonce": "0x1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000100010000fbc89c0000000000000000000010c7009243db83250922", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x0000000000000000000000000000000000000000f1e2d826b87f89c78bd2b02f", - "0x0000000000000000000000000000000000000000000000000000000000000004": "0x000000000000000000000000013ec1b700000000000000011e28c9f4ab7ce8e4" - } - } - } + balance: '0x77f9fd8d99e7e0', + nonce: '0x3', + }, + '0x6b175474e89094c44da98b954eedeac495271d0f': { + balance: '0x0', + nonce: '0x1', + storage: { + '0x930de7bb643d1647fc9c859fcc7a7c7bdd0a4a0c3a4bbd02f09ca0cc743567a9': + '0x00000000000000000000000000000000000000000000026ab8efb321467489e5', + }, + }, + '0x86e9bd5e42a9afde8d9c2594e84e49cc7718f381': { + balance: '0x0', + nonce: '0x1', + storage: { + '0x0000000000000000000000000000000000000000000000000000000000000001': + '0x000000000000000000000000000ef2efd2b96a4061ac9c50b8d33ded38fd6e81', + '0x0000000000000000000000000000000000000000000000000000000000000003': + '0x00000000000000000000000165fb3d870000000000000000015eea78185df6b5', + }, + }, + '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48': { + balance: '0x0', + nonce: '0x1', + storage: { + '0x32b8c3e0163a3eceb0dd8f4a69ff6a8f786c1f0b2824e29def2a833031a4d374': + '0x00000000000000000000000000000000000000000000000000000077a596c28e', + '0x3dc5bf0351aa60e0f5e0c2094c7bce3615793f84804cfb4ae4169d81e5d802ee': + '0x000000000000000000000000000000000000000000000000000000203cbae53b', + }, + }, + '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2': { + balance: '0x27c965cf538c1c59f70b6', + nonce: '0x1', + storage: { + '0x83f8975b25917b7df8ba465bc82d6b4472b7883d2ee49412f33c76db8bf49be0': + '0x00000000000000000000000000000000000000000000000bd38044f9f8b7a952', + }, + }, + '0xd9e497bd8f491fe163b42a62c296fb54caea74b7': { + balance: '0x0', + nonce: '0x1', + storage: { + '0x0000000000000000000000000000000000000000000000000000000000000000': + '0x000000000100010000fbc89c0000000000000000000010c7009243db83250922', + '0x0000000000000000000000000000000000000000000000000000000000000003': + '0x0000000000000000000000000000000000000000f1e2d826b87f89c78bd2b02f', + '0x0000000000000000000000000000000000000000000000000000000000000004': + '0x000000000000000000000000013ec1b700000000000000011e28c9f4ab7ce8e4', + }, + }, + }, }, - "callTrace": { - "from": SENDER_ADDRESS_MOCK, - "to": "0x13f4ea83d0bd40e75c8222255bc855a974568dd4", - "type": "CALL", - "gas": "0x1dcd6500", - "gasUsed": "0x4628e", - "value": "0x71afd498d0000", - "input": `0x5ae401dc0000000000000000000000000000000000000000000000000000000065fb43ab0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000124b858183f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}00000000000000000000000000000000000000000000000000071afd498d00000000000000000000000000000000000000000000000000005d4bc0025786653d0000000000000000000000000000000000000000000000000000000000000042c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f4a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000646b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`, - "output": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000005dc32b358db8fcc9", - "error": "", - "calls": [ + callTrace: { + from: SENDER_ADDRESS_MOCK, + to: '0x13f4ea83d0bd40e75c8222255bc855a974568dd4', + type: 'CALL', + gas: '0x1dcd6500', + gasUsed: '0x4628e', + value: '0x71afd498d0000', + input: `0x5ae401dc0000000000000000000000000000000000000000000000000000000065fb43ab0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000124b858183f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}00000000000000000000000000000000000000000000000000071afd498d00000000000000000000000000000000000000000000000000005d4bc0025786653d0000000000000000000000000000000000000000000000000000000000000042c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f4a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000646b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`, + output: + '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000005dc32b358db8fcc9', + error: '', + calls: [ { - "from": "0x13f4ea83d0bd40e75c8222255bc855a974568dd4", - "to": "0x13f4ea83d0bd40e75c8222255bc855a974568dd4", - "type": "DELEGATECALL", - "gas": "0x1d55cb99", - "gasUsed": "0x4b605", - "value": "0x71afd498d0000", - "input": `0xb858183f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}00000000000000000000000000000000000000000000000000071afd498d00000000000000000000000000000000000000000000000000005d4bc0025786653d0000000000000000000000000000000000000000000000000000000000000042c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f4a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000646b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000000000000000000`, - "output": "0x0000000000000000000000000000000000000000000000005dc32b358db8fcc9", - "error": "", - "calls": [ + from: '0x13f4ea83d0bd40e75c8222255bc855a974568dd4', + to: '0x13f4ea83d0bd40e75c8222255bc855a974568dd4', + type: 'DELEGATECALL', + gas: '0x1d55cb99', + gasUsed: '0x4b605', + value: '0x71afd498d0000', + input: `0xb858183f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}00000000000000000000000000000000000000000000000000071afd498d00000000000000000000000000000000000000000000000000005d4bc0025786653d0000000000000000000000000000000000000000000000000000000000000042c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f4a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000646b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000000000000000000`, + output: + '0x0000000000000000000000000000000000000000000000005dc32b358db8fcc9', + error: '', + calls: [ { - "from": "0x13f4ea83d0bd40e75c8222255bc855a974568dd4", - "to": "0xdaecee3c08e953bd5f89a5cc90ac560413d709e3", - "type": "DELEGATECALL", - "gas": "0x1ce04a20", - "gasUsed": "0x6ec", - "value": "0x71afd498d0000", - "input": "0x4e6c8ed800000000000000000000000041ff9aa7e16b8b1a8a8dc4f0efacd93d02d071c9000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000001f4", - "output": "0x0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36", - "error": "", - "calls": null + from: '0x13f4ea83d0bd40e75c8222255bc855a974568dd4', + to: '0xdaecee3c08e953bd5f89a5cc90ac560413d709e3', + type: 'DELEGATECALL', + gas: '0x1ce04a20', + gasUsed: '0x6ec', + value: '0x71afd498d0000', + input: + '0x4e6c8ed800000000000000000000000041ff9aa7e16b8b1a8a8dc4f0efacd93d02d071c9000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000001f4', + output: + '0x0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36', + error: '', + calls: null, }, { - "from": "0x13f4ea83d0bd40e75c8222255bc855a974568dd4", - "to": "0x1ac1a8feaaea1900c4166deeed0c11cc10669d36", - "type": "CALL", - "gas": "0x1ce031ca", - "gasUsed": "0x284c3", - "value": "0x0", - "input": `0x128acb0800000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071afd498d0000000000000000000000000000fffd8963efd1fc6a506488495d951d5263988d2500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f4a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000`, - "output": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff98e52a00000000000000000000000000000000000000000000000000071afd498d0000", - "error": "", - "calls": [ + from: '0x13f4ea83d0bd40e75c8222255bc855a974568dd4', + to: '0x1ac1a8feaaea1900c4166deeed0c11cc10669d36', + type: 'CALL', + gas: '0x1ce031ca', + gasUsed: '0x284c3', + value: '0x0', + input: `0x128acb0800000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071afd498d0000000000000000000000000000fffd8963efd1fc6a506488495d951d5263988d2500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f4a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000`, + output: + '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff98e52a00000000000000000000000000000000000000000000000000071afd498d0000', + error: '', + calls: [ { - "from": "0x1ac1a8feaaea1900c4166deeed0c11cc10669d36", - "to": "0x86e9bd5e42a9afde8d9c2594e84e49cc7718f381", - "type": "CALL", - "gas": "0x1c6c7478", - "gasUsed": "0x6469", - "value": "0x0", - "input": "0x214a6fe20000000000000000000000000000000000000000000000000000000065fb3f07", - "output": "0x", - "error": "", - "calls": [ + from: '0x1ac1a8feaaea1900c4166deeed0c11cc10669d36', + to: '0x86e9bd5e42a9afde8d9c2594e84e49cc7718f381', + type: 'CALL', + gas: '0x1c6c7478', + gasUsed: '0x6469', + value: '0x0', + input: + '0x214a6fe20000000000000000000000000000000000000000000000000000000065fb3f07', + output: '0x', + error: '', + calls: [ { - "from": "0x86e9bd5e42a9afde8d9c2594e84e49cc7718f381", - "to": "0x556b9306565093c855aea9ae92a594704c2cd59e", - "type": "STATICCALL", - "gas": "0x1bfaade4", - "gasUsed": "0x2cb0", - "value": null, - "input": "0xa15ea89f0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36", - "output": "0x000000000000000000000000000000000000000015ed3b13ee249a07ec6465fb0000000000000000000000000000000000000000000000000000000065fc2307", - "error": "", - "calls": null - } - ] + from: '0x86e9bd5e42a9afde8d9c2594e84e49cc7718f381', + to: '0x556b9306565093c855aea9ae92a594704c2cd59e', + type: 'STATICCALL', + gas: '0x1bfaade4', + gasUsed: '0x2cb0', + value: null, + input: + '0xa15ea89f0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36', + output: + '0x000000000000000000000000000000000000000015ed3b13ee249a07ec6465fb0000000000000000000000000000000000000000000000000000000065fc2307', + error: '', + calls: null, + }, + ], }, { - "from": "0x1ac1a8feaaea1900c4166deeed0c11cc10669d36", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "type": "CALL", - "gas": "0x1c6ba4b3", - "gasUsed": "0x9ecc", - "value": "0x0", - "input": "0xa9059cbb00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd40000000000000000000000000000000000000000000000000000000000671ad6", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001", - "error": "", - "calls": [ + from: '0x1ac1a8feaaea1900c4166deeed0c11cc10669d36', + to: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', + type: 'CALL', + gas: '0x1c6ba4b3', + gasUsed: '0x9ecc', + value: '0x0', + input: + '0xa9059cbb00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd40000000000000000000000000000000000000000000000000000000000671ad6', + output: + '0x0000000000000000000000000000000000000000000000000000000000000001', + error: '', + calls: [ { - "from": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "to": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd", - "type": "DELEGATECALL", - "gas": "0x1bf9da45", - "gasUsed": "0x8253", - "value": "0x0", - "input": "0xa9059cbb00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd40000000000000000000000000000000000000000000000000000000000671ad6", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001", - "error": "", - "calls": null, - "logs": [ + from: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', + to: '0x43506849d7c04f9138d1a2050bbf3a0c054402dd', + type: 'DELEGATECALL', + gas: '0x1bf9da45', + gasUsed: '0x8253', + value: '0x0', + input: + '0xa9059cbb00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd40000000000000000000000000000000000000000000000000000000000671ad6', + output: + '0x0000000000000000000000000000000000000000000000000000000000000001', + error: '', + calls: null, + logs: [ { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36", - "0x00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4" + address: + '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', + topics: [ + '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef', + '0x0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36', + '0x00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4', ], - "data": "0x0000000000000000000000000000000000000000000000000000000000671ad6" - } - ] - } - ] + data: '0x0000000000000000000000000000000000000000000000000000000000671ad6', + }, + ], + }, + ], }, { - "from": "0x1ac1a8feaaea1900c4166deeed0c11cc10669d36", - "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "type": "STATICCALL", - "gas": "0x1c6afb5f", - "gasUsed": "0x9e6", - "value": null, - "input": "0x70a082310000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36", - "output": "0x00000000000000000000000000000000000000000000000bd38044f9f8b7a952", - "error": "", - "calls": null + from: '0x1ac1a8feaaea1900c4166deeed0c11cc10669d36', + to: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', + type: 'STATICCALL', + gas: '0x1c6afb5f', + gasUsed: '0x9e6', + value: null, + input: + '0x70a082310000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36', + output: + '0x00000000000000000000000000000000000000000000000bd38044f9f8b7a952', + error: '', + calls: null, }, { - "from": "0x1ac1a8feaaea1900c4166deeed0c11cc10669d36", - "to": "0x13f4ea83d0bd40e75c8222255bc855a974568dd4", - "type": "CALL", - "gas": "0x1c6aee8b", - "gasUsed": "0xa5b3", - "value": "0x0", - "input": `0x23a69e75ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff98e52a00000000000000000000000000000000000000000000000000071afd498d0000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f4a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000`, - "output": "0x", - "error": "", - "calls": [ + from: '0x1ac1a8feaaea1900c4166deeed0c11cc10669d36', + to: '0x13f4ea83d0bd40e75c8222255bc855a974568dd4', + type: 'CALL', + gas: '0x1c6aee8b', + gasUsed: '0xa5b3', + value: '0x0', + input: `0x23a69e75ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff98e52a00000000000000000000000000000000000000000000000000071afd498d0000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f4a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000`, + output: '0x', + error: '', + calls: [ { - "from": "0x13f4ea83d0bd40e75c8222255bc855a974568dd4", - "to": "0xdaecee3c08e953bd5f89a5cc90ac560413d709e3", - "type": "DELEGATECALL", - "gas": "0x1bf939da", - "gasUsed": "0x7c8", - "value": "0x0", - "input": "0x8bdb192500000000000000000000000041ff9aa7e16b8b1a8a8dc4f0efacd93d02d071c9000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000001f4", - "output": "0x0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36", - "error": "", - "calls": null + from: '0x13f4ea83d0bd40e75c8222255bc855a974568dd4', + to: '0xdaecee3c08e953bd5f89a5cc90ac560413d709e3', + type: 'DELEGATECALL', + gas: '0x1bf939da', + gasUsed: '0x7c8', + value: '0x0', + input: + '0x8bdb192500000000000000000000000041ff9aa7e16b8b1a8a8dc4f0efacd93d02d071c9000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000001f4', + output: + '0x0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36', + error: '', + calls: null, }, { - "from": "0x13f4ea83d0bd40e75c8222255bc855a974568dd4", - "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "type": "CALL", - "gas": "0x1bf9157a", - "gasUsed": "0x5da6", - "value": "0x71afd498d0000", - "input": "0xd0e30db0", - "output": "0x", - "error": "", - "calls": null, - "logs": [ + from: '0x13f4ea83d0bd40e75c8222255bc855a974568dd4', + to: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', + type: 'CALL', + gas: '0x1bf9157a', + gasUsed: '0x5da6', + value: '0x71afd498d0000', + input: '0xd0e30db0', + output: '0x', + error: '', + calls: null, + logs: [ { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c", - "0x00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4" + address: + '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', + topics: [ + '0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c', + '0x00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4', ], - "data": "0x00000000000000000000000000000000000000000000000000071afd498d0000" - } - ] + data: '0x00000000000000000000000000000000000000000000000000071afd498d0000', + }, + ], }, { - "from": "0x13f4ea83d0bd40e75c8222255bc855a974568dd4", - "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "type": "CALL", - "gas": "0x1bf8b790", - "gasUsed": "0x17ae", - "value": "0x0", - "input": "0xa9059cbb0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d3600000000000000000000000000000000000000000000000000071afd498d0000", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001", - "error": "", - "calls": null, - "logs": [ + from: '0x13f4ea83d0bd40e75c8222255bc855a974568dd4', + to: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', + type: 'CALL', + gas: '0x1bf8b790', + gasUsed: '0x17ae', + value: '0x0', + input: + '0xa9059cbb0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d3600000000000000000000000000000000000000000000000000071afd498d0000', + output: + '0x0000000000000000000000000000000000000000000000000000000000000001', + error: '', + calls: null, + logs: [ { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4", - "0x0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36" + address: + '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', + topics: [ + '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef', + '0x00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4', + '0x0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36', ], - "data": "0x00000000000000000000000000000000000000000000000000071afd498d0000" - } - ] - } - ] + data: '0x00000000000000000000000000000000000000000000000000071afd498d0000', + }, + ], + }, + ], }, { - "from": "0x1ac1a8feaaea1900c4166deeed0c11cc10669d36", - "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "type": "STATICCALL", - "gas": "0x1c6a48f7", - "gasUsed": "0x216", - "value": null, - "input": "0x70a082310000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36", - "output": "0x00000000000000000000000000000000000000000000000bd3875ff74244a952", - "error": "", - "calls": null - } + from: '0x1ac1a8feaaea1900c4166deeed0c11cc10669d36', + to: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', + type: 'STATICCALL', + gas: '0x1c6a48f7', + gasUsed: '0x216', + value: null, + input: + '0x70a082310000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36', + output: + '0x00000000000000000000000000000000000000000000000bd3875ff74244a952', + error: '', + calls: null, + }, ], - "logs": [ + logs: [ { - "address": "0x1ac1a8feaaea1900c4166deeed0c11cc10669d36", - "topics": [ - "0x19b47279256b2a23a1665c810c8d55a1758940ee09377d4f8d26497a3577dc83", - "0x00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4", - "0x00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4" + address: '0x1ac1a8feaaea1900c4166deeed0c11cc10669d36', + topics: [ + '0x19b47279256b2a23a1665c810c8d55a1758940ee09377d4f8d26497a3577dc83', + '0x00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4', + '0x00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4', ], - "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff98e52a00000000000000000000000000000000000000000000000000071afd498d0000000000000000000000000000000000000000432ff2e932894fe0874ac6a384b0000000000000000000000000000000000000000000000000015f0dcf64944869000000000000000000000000000000000000000000000000000000000002f9f600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004f29944800" - } - ] + data: '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff98e52a00000000000000000000000000000000000000000000000000071afd498d0000000000000000000000000000000000000000432ff2e932894fe0874ac6a384b0000000000000000000000000000000000000000000000000015f0dcf64944869000000000000000000000000000000000000000000000000000000000002f9f600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004f29944800', + }, + ], }, { - "from": "0x13f4ea83d0bd40e75c8222255bc855a974568dd4", - "to": "0xdaecee3c08e953bd5f89a5cc90ac560413d709e3", - "type": "DELEGATECALL", - "gas": "0x1cddaccb", - "gasUsed": "0x6ec", - "value": "0x71afd498d0000", - "input": "0x4e6c8ed800000000000000000000000041ff9aa7e16b8b1a8a8dc4f0efacd93d02d071c9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000000000000000000000000000000000000000000064", - "output": "0x000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7", - "error": "", - "calls": null + from: '0x13f4ea83d0bd40e75c8222255bc855a974568dd4', + to: '0xdaecee3c08e953bd5f89a5cc90ac560413d709e3', + type: 'DELEGATECALL', + gas: '0x1cddaccb', + gasUsed: '0x6ec', + value: '0x71afd498d0000', + input: + '0x4e6c8ed800000000000000000000000041ff9aa7e16b8b1a8a8dc4f0efacd93d02d071c9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000000000000000000000000000000000000000000064', + output: + '0x000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7', + error: '', + calls: null, }, { - "from": "0x13f4ea83d0bd40e75c8222255bc855a974568dd4", - "to": "0xd9e497bd8f491fe163b42a62c296fb54caea74b7", - "type": "CALL", - "gas": "0x1cdd9474", - "gasUsed": "0x1c824", - "value": "0x0", - "input": `0x128acb08000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000671ad6000000000000000000000000fffd8963efd1fc6a506488495d951d5263988d2500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4000000000000000000000000000000000000000000000000000000000000002ba0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000646b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000`, - "output": "0xffffffffffffffffffffffffffffffffffffffffffffffffa23cd4ca724703370000000000000000000000000000000000000000000000000000000000671ad6", - "error": "", - "calls": [ + from: '0x13f4ea83d0bd40e75c8222255bc855a974568dd4', + to: '0xd9e497bd8f491fe163b42a62c296fb54caea74b7', + type: 'CALL', + gas: '0x1cdd9474', + gasUsed: '0x1c824', + value: '0x0', + input: `0x128acb08000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000671ad6000000000000000000000000fffd8963efd1fc6a506488495d951d5263988d2500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4000000000000000000000000000000000000000000000000000000000000002ba0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000646b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000`, + output: + '0xffffffffffffffffffffffffffffffffffffffffffffffffa23cd4ca724703370000000000000000000000000000000000000000000000000000000000671ad6', + error: '', + calls: [ { - "from": "0xd9e497bd8f491fe163b42a62c296fb54caea74b7", - "to": "0x22832de1178e7f4a8d868411422c720220ddf3d2", - "type": "CALL", - "gas": "0x1c69e198", - "gasUsed": "0x4335", - "value": "0x0", - "input": "0x214a6fe20000000000000000000000000000000000000000000000000000000065fb3f07", - "output": "0x", - "error": "", - "calls": [ + from: '0xd9e497bd8f491fe163b42a62c296fb54caea74b7', + to: '0x22832de1178e7f4a8d868411422c720220ddf3d2', + type: 'CALL', + gas: '0x1c69e198', + gasUsed: '0x4335', + value: '0x0', + input: + '0x214a6fe20000000000000000000000000000000000000000000000000000000065fb3f07', + output: '0x', + error: '', + calls: [ { - "from": "0x22832de1178e7f4a8d868411422c720220ddf3d2", - "to": "0x556b9306565093c855aea9ae92a594704c2cd59e", - "type": "STATICCALL", - "gas": "0x1bf82eec", - "gasUsed": "0x1540", - "value": null, - "input": "0xa15ea89f000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7", - "output": "0x0000000000000000000000000000000000000000001bc9cc2365913cdef3d2e10000000000000000000000000000000000000000000000000000000065fc2307", - "error": "", - "calls": null - } - ] + from: '0x22832de1178e7f4a8d868411422c720220ddf3d2', + to: '0x556b9306565093c855aea9ae92a594704c2cd59e', + type: 'STATICCALL', + gas: '0x1bf82eec', + gasUsed: '0x1540', + value: null, + input: + '0xa15ea89f000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7', + output: + '0x0000000000000000000000000000000000000000001bc9cc2365913cdef3d2e10000000000000000000000000000000000000000000000000000000065fc2307', + error: '', + calls: null, + }, + ], }, { - "from": "0xd9e497bd8f491fe163b42a62c296fb54caea74b7", - "to": "0x6b175474e89094c44da98b954eedeac495271d0f", - "type": "CALL", - "gas": "0x1c69330d", - "gasUsed": "0x75de", - "value": "0x0", - "input": `0xa9059cbb000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}0000000000000000000000000000000000000000000000005dc32b358db8fcc9`, - "output": "0x0000000000000000000000000000000000000000000000000000000000000001", - "error": "", - "calls": null, - "logs": [ + from: '0xd9e497bd8f491fe163b42a62c296fb54caea74b7', + to: '0x6b175474e89094c44da98b954eedeac495271d0f', + type: 'CALL', + gas: '0x1c69330d', + gasUsed: '0x75de', + value: '0x0', + input: `0xa9059cbb000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}0000000000000000000000000000000000000000000000005dc32b358db8fcc9`, + output: + '0x0000000000000000000000000000000000000000000000000000000000000001', + error: '', + calls: null, + logs: [ { - "address": "0x6b175474e89094c44da98b954eedeac495271d0f", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7", - `0x000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}` + address: + '0x6b175474e89094c44da98b954eedeac495271d0f', + topics: [ + '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef', + '0x000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7', + `0x000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}`, ], - "data": "0x0000000000000000000000000000000000000000000000005dc32b358db8fcc9" - } - ] + data: '0x0000000000000000000000000000000000000000000000005dc32b358db8fcc9', + }, + ], }, { - "from": "0xd9e497bd8f491fe163b42a62c296fb54caea74b7", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "type": "STATICCALL", - "gas": "0x1c68bba0", - "gasUsed": "0xd0b", - "value": null, - "input": "0x70a08231000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7", - "output": "0x000000000000000000000000000000000000000000000000000000203cbae53b", - "error": "", - "calls": [ + from: '0xd9e497bd8f491fe163b42a62c296fb54caea74b7', + to: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', + type: 'STATICCALL', + gas: '0x1c68bba0', + gasUsed: '0xd0b', + value: null, + input: + '0x70a08231000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7', + output: + '0x000000000000000000000000000000000000000000000000000000203cbae53b', + error: '', + calls: [ { - "from": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "to": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd", - "type": "DELEGATECALL", - "gas": "0x1bf715d8", - "gasUsed": "0x9f9", - "value": "0x0", - "input": "0x70a08231000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7", - "output": "0x000000000000000000000000000000000000000000000000000000203cbae53b", - "error": "", - "calls": null - } - ] + from: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', + to: '0x43506849d7c04f9138d1a2050bbf3a0c054402dd', + type: 'DELEGATECALL', + gas: '0x1bf715d8', + gasUsed: '0x9f9', + value: '0x0', + input: + '0x70a08231000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7', + output: + '0x000000000000000000000000000000000000000000000000000000203cbae53b', + error: '', + calls: null, + }, + ], }, { - "from": "0xd9e497bd8f491fe163b42a62c296fb54caea74b7", - "to": "0x13f4ea83d0bd40e75c8222255bc855a974568dd4", - "type": "CALL", - "gas": "0x1c68abb4", - "gasUsed": "0x373e", - "value": "0x0", - "input": "0x23a69e75ffffffffffffffffffffffffffffffffffffffffffffffffa23cd4ca724703370000000000000000000000000000000000000000000000000000000000671ad6000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4000000000000000000000000000000000000000000000000000000000000002ba0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000646b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000", - "output": "0x", - "error": "", - "calls": [ + from: '0xd9e497bd8f491fe163b42a62c296fb54caea74b7', + to: '0x13f4ea83d0bd40e75c8222255bc855a974568dd4', + type: 'CALL', + gas: '0x1c68abb4', + gasUsed: '0x373e', + value: '0x0', + input: + '0x23a69e75ffffffffffffffffffffffffffffffffffffffffffffffffa23cd4ca724703370000000000000000000000000000000000000000000000000000000000671ad6000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4000000000000000000000000000000000000000000000000000000000000002ba0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000646b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000', + output: '0x', + error: '', + calls: [ { - "from": "0x13f4ea83d0bd40e75c8222255bc855a974568dd4", - "to": "0xdaecee3c08e953bd5f89a5cc90ac560413d709e3", - "type": "DELEGATECALL", - "gas": "0x1bf7000e", - "gasUsed": "0x7c8", - "value": "0x0", - "input": "0x8bdb192500000000000000000000000041ff9aa7e16b8b1a8a8dc4f0efacd93d02d071c9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000000000000000000000000000000000000000000064", - "output": "0x000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7", - "error": "", - "calls": null + from: '0x13f4ea83d0bd40e75c8222255bc855a974568dd4', + to: '0xdaecee3c08e953bd5f89a5cc90ac560413d709e3', + type: 'DELEGATECALL', + gas: '0x1bf7000e', + gasUsed: '0x7c8', + value: '0x0', + input: + '0x8bdb192500000000000000000000000041ff9aa7e16b8b1a8a8dc4f0efacd93d02d071c9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000000000000000000000000000000000000000000064', + output: + '0x000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7', + error: '', + calls: null, }, { - "from": "0x13f4ea83d0bd40e75c8222255bc855a974568dd4", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "type": "CALL", - "gas": "0x1bf6f3a5", - "gasUsed": "0x203c", - "value": "0x0", - "input": "0xa9059cbb000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b70000000000000000000000000000000000000000000000000000000000671ad6", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001", - "error": "", - "calls": [ + from: '0x13f4ea83d0bd40e75c8222255bc855a974568dd4', + to: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', + type: 'CALL', + gas: '0x1bf6f3a5', + gasUsed: '0x203c', + value: '0x0', + input: + '0xa9059cbb000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b70000000000000000000000000000000000000000000000000000000000671ad6', + output: + '0x0000000000000000000000000000000000000000000000000000000000000001', + error: '', + calls: [ { - "from": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "to": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd", - "type": "DELEGATECALL", - "gas": "0x1b8714fa", - "gasUsed": "0x1d27", - "value": "0x0", - "input": "0xa9059cbb000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b70000000000000000000000000000000000000000000000000000000000671ad6", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001", - "error": "", - "calls": null, - "logs": [ + from: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', + to: '0x43506849d7c04f9138d1a2050bbf3a0c054402dd', + type: 'DELEGATECALL', + gas: '0x1b8714fa', + gasUsed: '0x1d27', + value: '0x0', + input: + '0xa9059cbb000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b70000000000000000000000000000000000000000000000000000000000671ad6', + output: + '0x0000000000000000000000000000000000000000000000000000000000000001', + error: '', + calls: null, + logs: [ { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4", - "0x000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7" + address: + '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', + topics: [ + '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef', + '0x00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4', + '0x000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7', ], - "data": "0x0000000000000000000000000000000000000000000000000000000000671ad6" - } - ] - } - ] - } - ] + data: '0x0000000000000000000000000000000000000000000000000000000000671ad6', + }, + ], + }, + ], + }, + ], }, { - "from": "0xd9e497bd8f491fe163b42a62c296fb54caea74b7", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "type": "STATICCALL", - "gas": "0x1c6872db", - "gasUsed": "0x53b", - "value": null, - "input": "0x70a08231000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7", - "output": "0x000000000000000000000000000000000000000000000000000000203d220011", - "error": "", - "calls": [ + from: '0xd9e497bd8f491fe163b42a62c296fb54caea74b7', + to: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', + type: 'STATICCALL', + gas: '0x1c6872db', + gasUsed: '0x53b', + value: null, + input: + '0x70a08231000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7', + output: + '0x000000000000000000000000000000000000000000000000000000203d220011', + error: '', + calls: [ { - "from": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "to": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd", - "type": "DELEGATECALL", - "gas": "0x1bf6ce36", - "gasUsed": "0x229", - "value": "0x0", - "input": "0x70a08231000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7", - "output": "0x000000000000000000000000000000000000000000000000000000203d220011", - "error": "", - "calls": null - } - ] - } + from: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', + to: '0x43506849d7c04f9138d1a2050bbf3a0c054402dd', + type: 'DELEGATECALL', + gas: '0x1bf6ce36', + gasUsed: '0x229', + value: '0x0', + input: + '0x70a08231000000000000000000000000d9e497bd8f491fe163b42a62c296fb54caea74b7', + output: + '0x000000000000000000000000000000000000000000000000000000203d220011', + error: '', + calls: null, + }, + ], + }, ], - "logs": [ + logs: [ { - "address": "0xd9e497bd8f491fe163b42a62c296fb54caea74b7", - "topics": [ - "0x19b47279256b2a23a1665c810c8d55a1758940ee09377d4f8d26497a3577dc83", - "0x00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4", - `0x000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}` + address: '0xd9e497bd8f491fe163b42a62c296fb54caea74b7', + topics: [ + '0x19b47279256b2a23a1665c810c8d55a1758940ee09377d4f8d26497a3577dc83', + '0x00000000000000000000000013f4ea83d0bd40e75c8222255bc855a974568dd4', + `0x000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}`, ], - "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffa23cd4ca724703370000000000000000000000000000000000000000000000000000000000671ad60000000000000000000000000000000000000000000010c700afe76cb29923e80000000000000000000000000000000000000000000000037a74fbab94f3e0d1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc89c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000df" - } - ] - } - ] - } - ] + data: '0xffffffffffffffffffffffffffffffffffffffffffffffffa23cd4ca724703370000000000000000000000000000000000000000000000000000000000671ad60000000000000000000000000000000000000000000010c700afe76cb29923e80000000000000000000000000000000000000000000000037a74fbab94f3e0d1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc89c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000df', + }, + ], + }, + ], + }, + ], }, - "feeEstimate": 11633709217510676, - "baseFeePerGas": 40482817574 - } + feeEstimate: 11633709217510676, + baseFeePerGas: 40482817574, + }, ], - "blockNumber": "0x1293669", - "id": "9e8034c8-b9b2-4aff-ba5b-13ddc0c2a7e6" + blockNumber: '0x1293669', + id: '9e8034c8-b9b2-4aff-ba5b-13ddc0c2a7e6', }, - "id": "0" + id: '0', }, }; @@ -582,232 +663,264 @@ export const BUY_ERC20_REQUEST_1_MOCK: MockRequestResponse = { // for the user's wallet. This is what the second request accomplishes. export const BUY_ERC20_REQUEST_2_MOCK: MockRequestResponse = { request: { - "id": "1", - "jsonrpc": "2.0", - "method": "infura_simulateTransactions", - "params": [ + id: '1', + jsonrpc: '2.0', + method: 'infura_simulateTransactions', + params: [ { - "transactions": [ + transactions: [ { - "from": SENDER_ADDRESS_MOCK, - "to": "0x6b175474e89094c44da98b954eedeac495271d0f", - "data": `0x70a08231000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}` + from: SENDER_ADDRESS_MOCK, + to: '0x6b175474e89094c44da98b954eedeac495271d0f', + data: `0x70a08231000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}`, }, { - "chainId": "0x1", - "from": SENDER_ADDRESS_MOCK, - "to": "0x13f4ea83d0bd40e75c8222255bc855a974568dd4", - "value": "0x71afd498d0000", - "data": `0x5ae401dc0000000000000000000000000000000000000000000000000000000065fb43ab0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000124b858183f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}00000000000000000000000000000000000000000000000000071afd498d00000000000000000000000000000000000000000000000000005d4bc0025786653d0000000000000000000000000000000000000000000000000000000000000042c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f4a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000646b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000` + chainId: '0x1', + from: SENDER_ADDRESS_MOCK, + to: '0x13f4ea83d0bd40e75c8222255bc855a974568dd4', + value: '0x71afd498d0000', + data: `0x5ae401dc0000000000000000000000000000000000000000000000000000000065fb43ab0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000124b858183f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}00000000000000000000000000000000000000000000000000071afd498d00000000000000000000000000000000000000000000000000005d4bc0025786653d0000000000000000000000000000000000000000000000000000000000000042c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f4a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000646b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`, }, { - "from": SENDER_ADDRESS_MOCK, - "to": "0x6b175474e89094c44da98b954eedeac495271d0f", - "data": `0x70a08231000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}` - } - ] - } - ] + from: SENDER_ADDRESS_MOCK, + to: '0x6b175474e89094c44da98b954eedeac495271d0f', + data: `0x70a08231000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}`, + }, + ], + }, + ], }, response: { - "jsonrpc": "2.0", - "result": { - "transactions": [ + jsonrpc: '2.0', + result: { + transactions: [ { - "return": "0x0000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "gasUsed": "0x5de2", - "gasLimit": "0x5f34", - "fees": [ + return: + '0x0000000000000000000000000000000000000000000000000000000000000000', + status: '0x1', + gasUsed: '0x5de2', + gasLimit: '0x5f34', + fees: [ { - "maxFeePerGas": "0xf19b9f48d", - "maxPriorityFeePerGas": "0x9febc9", - "balanceNeeded": "0x59d9d3b865ed8", - "currentBalance": "0x77f9fd8d99e7e0", - "error": "" - } + maxFeePerGas: '0xf19b9f48d', + maxPriorityFeePerGas: '0x9febc9', + balanceNeeded: '0x59d9d3b865ed8', + currentBalance: '0x77f9fd8d99e7e0', + error: '', + }, ], - "stateDiff": { - "post": { + stateDiff: { + post: { [SENDER_ADDRESS_MOCK]: { - "nonce": "0x4" - } + nonce: '0x4', + }, }, - "pre": { + pre: { [SENDER_ADDRESS_MOCK]: { - "balance": "0x77f9fd8d99e7e0", - "nonce": "0x3" - } - } + balance: '0x77f9fd8d99e7e0', + nonce: '0x3', + }, + }, }, - "feeEstimate": 972988071597550, - "baseFeePerGas": 40482817574 + feeEstimate: 972988071597550, + baseFeePerGas: 40482817574, }, { - "return": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000005dc32b358db8fcc9", - "status": "0x1", - "gasUsed": "0x4628e", - "gasLimit": "0x53cc5", - "fees": [ + return: + '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000005dc32b358db8fcc9', + status: '0x1', + gasUsed: '0x4628e', + gasLimit: '0x53cc5', + fees: [ { - "maxFeePerGas": "0xf19b9f48d", - "maxPriorityFeePerGas": "0x9febc9", - "balanceNeeded": "0x56314571bd7946", - "currentBalance": "0x725c6052138908", - "error": "" - } + maxFeePerGas: '0xf19b9f48d', + maxPriorityFeePerGas: '0x9febc9', + balanceNeeded: '0x56314571bd7946', + currentBalance: '0x725c6052138908', + error: '', + }, ], - "stateDiff": { - "post": { - "0x1ac1a8feaaea1900c4166deeed0c11cc10669d36": { - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000b000b000302f9f6000000000000432ff2e932894fe0874ac6a384b0", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x00000000000000000000000000000441ce10709c0a0992095e8e5cd95ea470de", - "0x0000000000000000000000000000000000000000000000000000000000000004": "0x000000000000000013a0b298f9b81d1e0000000000000000000000012aa0e421" - } - }, - "0x22832de1178e7f4a8d868411422c720220ddf3d2": { - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000007708590f241159371f6dd86140347968995f", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x00000000000000000000000165fb3f0700000000000000037a742348f5c5c152" - } + stateDiff: { + post: { + '0x1ac1a8feaaea1900c4166deeed0c11cc10669d36': { + storage: { + '0x0000000000000000000000000000000000000000000000000000000000000000': + '0x000000000b000b000302f9f6000000000000432ff2e932894fe0874ac6a384b0', + '0x0000000000000000000000000000000000000000000000000000000000000003': + '0x00000000000000000000000000000441ce10709c0a0992095e8e5cd95ea470de', + '0x0000000000000000000000000000000000000000000000000000000000000004': + '0x000000000000000013a0b298f9b81d1e0000000000000000000000012aa0e421', + }, + }, + '0x22832de1178e7f4a8d868411422c720220ddf3d2': { + storage: { + '0x0000000000000000000000000000000000000000000000000000000000000001': + '0x00000000000000000000000000007708590f241159371f6dd86140347968995f', + '0x0000000000000000000000000000000000000000000000000000000000000003': + '0x00000000000000000000000165fb3f0700000000000000037a742348f5c5c152', + }, }, [SENDER_ADDRESS_MOCK]: { - "balance": "0x70df00440ce7e0", - "nonce": "0x5" - }, - "0x6b175474e89094c44da98b954eedeac495271d0f": { - "storage": { - "0x930de7bb643d1647fc9c859fcc7a7c7bdd0a4a0c3a4bbd02f09ca0cc743567a9": "0x00000000000000000000000000000000000000000000026a5b2c87ebb8bb8d1c", - "0xd5dc93f3552cd59356296ab764be72c9bd93d66c2b8576cd18a4677f92be097d": "0x0000000000000000000000000000000000000000000000005dc32b358db8fcc9" - } - }, - "0x86e9bd5e42a9afde8d9c2594e84e49cc7718f381": { - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000000ef30a346933b4bd99d3bccde01f6d16e1452c", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x00000000000000000000000165fb3f070000000000000000015eea78185df6b5" - } - }, - "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { - "storage": { - "0x32b8c3e0163a3eceb0dd8f4a69ff6a8f786c1f0b2824e29def2a833031a4d374": "0x00000000000000000000000000000000000000000000000000000077a52fa7b8", - "0x3dc5bf0351aa60e0f5e0c2094c7bce3615793f84804cfb4ae4169d81e5d802ee": "0x000000000000000000000000000000000000000000000000000000203d220011" - } - }, - "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { - "balance": "0x27c965cfc53bf0f2c70b6", - "storage": { - "0x83f8975b25917b7df8ba465bc82d6b4472b7883d2ee49412f33c76db8bf49be0": "0x00000000000000000000000000000000000000000000000bd3875ff74244a952" - } - }, - "0xd9e497bd8f491fe163b42a62c296fb54caea74b7": { - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000100010000fbc89c0000000000000000000010c700afe76cb29923e8", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x0000000000000000000000000000000000000000f1e2d8a8f477b67ef05de74c", - "0x0000000000000000000000000000000000000000000000000000000000000004": "0x000000000000000000000000013ec29600000000000000011e28c9f4ab7ce8e4" - } - } + balance: '0x70df00440ce7e0', + nonce: '0x5', + }, + '0x6b175474e89094c44da98b954eedeac495271d0f': { + storage: { + '0x930de7bb643d1647fc9c859fcc7a7c7bdd0a4a0c3a4bbd02f09ca0cc743567a9': + '0x00000000000000000000000000000000000000000000026a5b2c87ebb8bb8d1c', + '0xd5dc93f3552cd59356296ab764be72c9bd93d66c2b8576cd18a4677f92be097d': + '0x0000000000000000000000000000000000000000000000005dc32b358db8fcc9', + }, + }, + '0x86e9bd5e42a9afde8d9c2594e84e49cc7718f381': { + storage: { + '0x0000000000000000000000000000000000000000000000000000000000000001': + '0x000000000000000000000000000ef30a346933b4bd99d3bccde01f6d16e1452c', + '0x0000000000000000000000000000000000000000000000000000000000000003': + '0x00000000000000000000000165fb3f070000000000000000015eea78185df6b5', + }, + }, + '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48': { + storage: { + '0x32b8c3e0163a3eceb0dd8f4a69ff6a8f786c1f0b2824e29def2a833031a4d374': + '0x00000000000000000000000000000000000000000000000000000077a52fa7b8', + '0x3dc5bf0351aa60e0f5e0c2094c7bce3615793f84804cfb4ae4169d81e5d802ee': + '0x000000000000000000000000000000000000000000000000000000203d220011', + }, + }, + '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2': { + balance: '0x27c965cfc53bf0f2c70b6', + storage: { + '0x83f8975b25917b7df8ba465bc82d6b4472b7883d2ee49412f33c76db8bf49be0': + '0x00000000000000000000000000000000000000000000000bd3875ff74244a952', + }, + }, + '0xd9e497bd8f491fe163b42a62c296fb54caea74b7': { + storage: { + '0x0000000000000000000000000000000000000000000000000000000000000000': + '0x000000000100010000fbc89c0000000000000000000010c700afe76cb29923e8', + '0x0000000000000000000000000000000000000000000000000000000000000003': + '0x0000000000000000000000000000000000000000f1e2d8a8f477b67ef05de74c', + '0x0000000000000000000000000000000000000000000000000000000000000004': + '0x000000000000000000000000013ec29600000000000000011e28c9f4ab7ce8e4', + }, + }, }, - "pre": { - "0x1ac1a8feaaea1900c4166deeed0c11cc10669d36": { - "balance": "0x0", - "nonce": "0x1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000b000b000302f9f6000000000000432fedbb64e891ccc2a450f04080", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x00000000000000000000000000000441ce10008cb545e85f10ea6254adf2328d", - "0x0000000000000000000000000000000000000000000000000000000000000004": "0x000000000000000013a0b249d023d51e0000000000000000000000012aa0e421" - } - }, - "0x22832de1178e7f4a8d868411422c720220ddf3d2": { - "balance": "0x0", - "nonce": "0x1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000000077084f83018a34e0b30b6c5cbbecc5beadbe", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x00000000000000000000000165fa28c700000000000000037a742348f5c5c152" - } + pre: { + '0x1ac1a8feaaea1900c4166deeed0c11cc10669d36': { + balance: '0x0', + nonce: '0x1', + storage: { + '0x0000000000000000000000000000000000000000000000000000000000000000': + '0x000000000b000b000302f9f6000000000000432fedbb64e891ccc2a450f04080', + '0x0000000000000000000000000000000000000000000000000000000000000003': + '0x00000000000000000000000000000441ce10008cb545e85f10ea6254adf2328d', + '0x0000000000000000000000000000000000000000000000000000000000000004': + '0x000000000000000013a0b249d023d51e0000000000000000000000012aa0e421', + }, + }, + '0x22832de1178e7f4a8d868411422c720220ddf3d2': { + balance: '0x0', + nonce: '0x1', + storage: { + '0x0000000000000000000000000000000000000000000000000000000000000001': + '0x000000000000000000000000000077084f83018a34e0b30b6c5cbbecc5beadbe', + '0x0000000000000000000000000000000000000000000000000000000000000003': + '0x00000000000000000000000165fa28c700000000000000037a742348f5c5c152', + }, }, [SENDER_ADDRESS_MOCK]: { - "balance": "0x77f9fd8d99e7e0", - "nonce": "0x4" - }, - "0x6b175474e89094c44da98b954eedeac495271d0f": { - "balance": "0x0", - "nonce": "0x1", - "storage": { - "0x930de7bb643d1647fc9c859fcc7a7c7bdd0a4a0c3a4bbd02f09ca0cc743567a9": "0x00000000000000000000000000000000000000000000026ab8efb321467489e5" - } - }, - "0x86e9bd5e42a9afde8d9c2594e84e49cc7718f381": { - "balance": "0x0", - "nonce": "0x1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000000ef2efd2b96a4061ac9c50b8d33ded38fd6e81", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x00000000000000000000000165fb3d870000000000000000015eea78185df6b5" - } - }, - "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { - "balance": "0x0", - "nonce": "0x1", - "storage": { - "0x32b8c3e0163a3eceb0dd8f4a69ff6a8f786c1f0b2824e29def2a833031a4d374": "0x00000000000000000000000000000000000000000000000000000077a596c28e", - "0x3dc5bf0351aa60e0f5e0c2094c7bce3615793f84804cfb4ae4169d81e5d802ee": "0x000000000000000000000000000000000000000000000000000000203cbae53b" - } - }, - "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { - "balance": "0x27c965cf538c1c59f70b6", - "nonce": "0x1", - "storage": { - "0x83f8975b25917b7df8ba465bc82d6b4472b7883d2ee49412f33c76db8bf49be0": "0x00000000000000000000000000000000000000000000000bd38044f9f8b7a952" - } - }, - "0xd9e497bd8f491fe163b42a62c296fb54caea74b7": { - "balance": "0x0", - "nonce": "0x1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000100010000fbc89c0000000000000000000010c7009243db83250922", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x0000000000000000000000000000000000000000f1e2d826b87f89c78bd2b02f", - "0x0000000000000000000000000000000000000000000000000000000000000004": "0x000000000000000000000000013ec1b700000000000000011e28c9f4ab7ce8e4" - } - } - } + balance: '0x77f9fd8d99e7e0', + nonce: '0x4', + }, + '0x6b175474e89094c44da98b954eedeac495271d0f': { + balance: '0x0', + nonce: '0x1', + storage: { + '0x930de7bb643d1647fc9c859fcc7a7c7bdd0a4a0c3a4bbd02f09ca0cc743567a9': + '0x00000000000000000000000000000000000000000000026ab8efb321467489e5', + }, + }, + '0x86e9bd5e42a9afde8d9c2594e84e49cc7718f381': { + balance: '0x0', + nonce: '0x1', + storage: { + '0x0000000000000000000000000000000000000000000000000000000000000001': + '0x000000000000000000000000000ef2efd2b96a4061ac9c50b8d33ded38fd6e81', + '0x0000000000000000000000000000000000000000000000000000000000000003': + '0x00000000000000000000000165fb3d870000000000000000015eea78185df6b5', + }, + }, + '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48': { + balance: '0x0', + nonce: '0x1', + storage: { + '0x32b8c3e0163a3eceb0dd8f4a69ff6a8f786c1f0b2824e29def2a833031a4d374': + '0x00000000000000000000000000000000000000000000000000000077a596c28e', + '0x3dc5bf0351aa60e0f5e0c2094c7bce3615793f84804cfb4ae4169d81e5d802ee': + '0x000000000000000000000000000000000000000000000000000000203cbae53b', + }, + }, + '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2': { + balance: '0x27c965cf538c1c59f70b6', + nonce: '0x1', + storage: { + '0x83f8975b25917b7df8ba465bc82d6b4472b7883d2ee49412f33c76db8bf49be0': + '0x00000000000000000000000000000000000000000000000bd38044f9f8b7a952', + }, + }, + '0xd9e497bd8f491fe163b42a62c296fb54caea74b7': { + balance: '0x0', + nonce: '0x1', + storage: { + '0x0000000000000000000000000000000000000000000000000000000000000000': + '0x000000000100010000fbc89c0000000000000000000010c7009243db83250922', + '0x0000000000000000000000000000000000000000000000000000000000000003': + '0x0000000000000000000000000000000000000000f1e2d826b87f89c78bd2b02f', + '0x0000000000000000000000000000000000000000000000000000000000000004': + '0x000000000000000000000000013ec1b700000000000000011e28c9f4ab7ce8e4', + }, + }, + }, }, - "feeEstimate": 11633996591798050, - "baseFeePerGas": 40482817574 + feeEstimate: 11633996591798050, + baseFeePerGas: 40482817574, }, { - "return": "0x0000000000000000000000000000000000000000000000005dc32b358db8fcc9", - "status": "0x1", - "gasUsed": "0x5de2", - "gasLimit": "0x5f34", - "fees": [ + return: + '0x0000000000000000000000000000000000000000000000005dc32b358db8fcc9', + status: '0x1', + gasUsed: '0x5de2', + gasLimit: '0x5f34', + fees: [ { - "maxFeePerGas": "0xf19b9f48d", - "maxPriorityFeePerGas": "0x9febc9", - "balanceNeeded": "0x59d9d3b865ed8", - "currentBalance": "0x1c2b1ae0560fc2", - "error": "" - } + maxFeePerGas: '0xf19b9f48d', + maxPriorityFeePerGas: '0x9febc9', + balanceNeeded: '0x59d9d3b865ed8', + currentBalance: '0x1c2b1ae0560fc2', + error: '', + }, ], - "stateDiff": { - "post": { + stateDiff: { + post: { [SENDER_ADDRESS_MOCK]: { - "nonce": "0x6" - } + nonce: '0x6', + }, }, - "pre": { + pre: { [SENDER_ADDRESS_MOCK]: { - "balance": "0x70df00440ce7e0", - "nonce": "0x5" - } - } + balance: '0x70df00440ce7e0', + nonce: '0x5', + }, + }, }, - "feeEstimate": 972988071597550, - "baseFeePerGas": 40482817574 - } + feeEstimate: 972988071597550, + baseFeePerGas: 40482817574, + }, ], - "blockNumber": "0x1293669", - "id": "faaab4c5-edf5-4077-ac75-8d26278ca2c5" + blockNumber: '0x1293669', + id: 'faaab4c5-edf5-4077-ac75-8d26278ca2c5', }, - "id": "1" + id: '1', }, }; diff --git a/test/e2e/tests/simulation-details/mock-request-buy-erc721.ts b/test/e2e/tests/simulation-details/mock-request-buy-erc721.ts index 42f4e8dbfade..fd71e42559aa 100644 --- a/test/e2e/tests/simulation-details/mock-request-buy-erc721.ts +++ b/test/e2e/tests/simulation-details/mock-request-buy-erc721.ts @@ -1,393 +1,426 @@ -import { MockRequestResponse, SENDER_ADDRESS_MOCK, SENDER_ADDRESS_NO_0x_MOCK } from "./types"; +import { + MockRequestResponse, + SENDER_ADDRESS_MOCK, + SENDER_ADDRESS_NO_0X_MOCK, +} from './types'; export const BUY_ERC721_TRANSACTION_MOCK = { - "data": "0xfbee349d00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001ccc7b6351d59f42bbb85f1fcc89cd4ac31c69cfa0681c900c46ddb7ad3f3c690f1006752ecedda5ee83902884f78ae85a3a1996bc56dc30f6aba0004ddc87699f00000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006669f99b0000000000000000000000000000000024081bbd5ce9458a998286f53a873a41000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000002e01f4d5d760000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000ef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e00000000000000000000000000000000000000000000000000000000000002cf000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e9ba8fa0222fc76e8bcaa13e4258f749bb92af320000000000000000000000000000000000000000000000000003baf82d03a0000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "from": SENDER_ADDRESS_MOCK, - "maxFeePerGas": "0x0", - "maxPriorityFeePerGas": "0x0", - "to": "0xdef1c0ded9bec7f1a1670819833240f027b25eff", - "value": "0x31bced02db0000" + data: '0xfbee349d00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001ccc7b6351d59f42bbb85f1fcc89cd4ac31c69cfa0681c900c46ddb7ad3f3c690f1006752ecedda5ee83902884f78ae85a3a1996bc56dc30f6aba0004ddc87699f00000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006669f99b0000000000000000000000000000000024081bbd5ce9458a998286f53a873a41000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000002e01f4d5d760000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000ef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e00000000000000000000000000000000000000000000000000000000000002cf000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e9ba8fa0222fc76e8bcaa13e4258f749bb92af320000000000000000000000000000000000000000000000000003baf82d03a0000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', + from: SENDER_ADDRESS_MOCK, + maxFeePerGas: '0x0', + maxPriorityFeePerGas: '0x0', + to: '0xdef1c0ded9bec7f1a1670819833240f027b25eff', + value: '0x31bced02db0000', }; export const BUY_ERC721_REQUEST_1_MOCK: MockRequestResponse = { request: { - "id": "0", - "jsonrpc": "2.0", - "method": "infura_simulateTransactions", - "params": [ + id: '0', + jsonrpc: '2.0', + method: 'infura_simulateTransactions', + params: [ { - "transactions": [BUY_ERC721_TRANSACTION_MOCK], - "withCallTrace": true, - "withLogs": true - } - ] + transactions: [BUY_ERC721_TRANSACTION_MOCK], + withCallTrace: true, + withLogs: true, + }, + ], }, response: { - "jsonrpc": "2.0", - "result": { - "transactions": [ + jsonrpc: '2.0', + result: { + transactions: [ { - "return": "0x", - "status": "0x1", - "gasUsed": "0x2a000", - "gasLimit": "0x2d2a6", - "fees": [ + return: '0x', + status: '0x1', + gasUsed: '0x2a000', + gasLimit: '0x2d2a6', + fees: [ { - "maxFeePerGas": "0x0", - "maxPriorityFeePerGas": "0x0", - "balanceNeeded": "0x31bced02db0000", - "currentBalance": "0x3374df8f3ee8d4c", - "error": "" - } + maxFeePerGas: '0x0', + maxPriorityFeePerGas: '0x0', + balanceNeeded: '0x31bced02db0000', + currentBalance: '0x3374df8f3ee8d4c', + error: '', + }, ], - "stateDiff": { - "post": { + stateDiff: { + post: { [SENDER_ADDRESS_MOCK]: { - "balance": "0x305910bf1138d4c", - "nonce": "0x3bd" + balance: '0x305910bf1138d4c', + nonce: '0x3bd', + }, + '0xdef1c0ded9bec7f1a1670819833240f027b25eff': { + storage: { + '0xeccd0aa0b0cae8a0393c4fcec180bedb48844984d6ea85756283f2a84cf37e42': + '0x0000000000000000000000000000000000000000000000020000000000000000', + }, }, - "0xdef1c0ded9bec7f1a1670819833240f027b25eff": { - "storage": { - "0xeccd0aa0b0cae8a0393c4fcec180bedb48844984d6ea85756283f2a84cf37e42": "0x0000000000000000000000000000000000000000000000020000000000000000" - } + '0xe9ba8fa0222fc76e8bcaa13e4258f749bb92af32': { + balance: '0x171e213c2748203', }, - "0xe9ba8fa0222fc76e8bcaa13e4258f749bb92af32": { - "balance": "0x171e213c2748203" + '0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e': { + storage: { + '0x3440dd3ee3ca5de61d4ee92cfe26c447934bd6b8480a62ce27fbb9ed18f73cd4': + '0x0000000000000000000000000000000000000000000000000000000000001077', + '0x65534a61afb536dbc0061b7dbeb0f72092486077fcdfc4d28d70b226ed847a88': + '0x0000000000000000000000000000000000000000000000000000000000000003', + '0x7147429d9c36092cffc563112aac67146541c751f01a33e802076e13916cced1': `0x000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}`, + '0xa3dd05d36cfa40690563b0b3f6b1b0603d431d1c3573682cff963d848b558c67': + '0x0000000000000000000000000000000000000000000000000000000000000002', + '0xe7bc4be1d73122b60587e3436277f212112d1ea05407d1ba62e996ce0e1ec828': + '0x0000000000000000000000000000000000000000000000000000000000000001', + '0xea81aa3597df52a22f198dc4d5802c492ddd6c108c03ad22e53ba5bbb9666352': + '0x00000000000000000000000000000000000000000000000000000000000002cf', + }, }, - "0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e": { - "storage": { - "0x3440dd3ee3ca5de61d4ee92cfe26c447934bd6b8480a62ce27fbb9ed18f73cd4": "0x0000000000000000000000000000000000000000000000000000000000001077", - "0x65534a61afb536dbc0061b7dbeb0f72092486077fcdfc4d28d70b226ed847a88": "0x0000000000000000000000000000000000000000000000000000000000000003", - "0x7147429d9c36092cffc563112aac67146541c751f01a33e802076e13916cced1": `0x000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}`, - "0xa3dd05d36cfa40690563b0b3f6b1b0603d431d1c3573682cff963d848b558c67": "0x0000000000000000000000000000000000000000000000000000000000000002", - "0xe7bc4be1d73122b60587e3436277f212112d1ea05407d1ba62e996ce0e1ec828": "0x0000000000000000000000000000000000000000000000000000000000000001", - "0xea81aa3597df52a22f198dc4d5802c492ddd6c108c03ad22e53ba5bbb9666352": "0x00000000000000000000000000000000000000000000000000000000000002cf" - } + '0xff900d7067a24874264ced8198cc87ebd7c1c53d': { + balance: '0x4c8ba807b58e46', }, - "0xff900d7067a24874264ced8198cc87ebd7c1c53d": { - "balance": "0x4c8ba807b58e46" - } }, - "pre": { + pre: { [SENDER_ADDRESS_MOCK]: { - "balance": "0x3374df8f3ee8d4c", - "nonce": "0x3bc" + balance: '0x3374df8f3ee8d4c', + nonce: '0x3bc', }, - "0xdef1c0ded9bec7f1a1670819833240f027b25eff": { - "balance": "0x130e736d76ea3d", - "nonce": "0x4" + '0xdef1c0ded9bec7f1a1670819833240f027b25eff': { + balance: '0x130e736d76ea3d', + nonce: '0x4', }, - "0xe9ba8fa0222fc76e8bcaa13e4258f749bb92af32": { - "balance": "0x16e271b9570e203", - "nonce": "0x41" + '0xe9ba8fa0222fc76e8bcaa13e4258f749bb92af32': { + balance: '0x16e271b9570e203', + nonce: '0x41', }, - "0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e": { - "balance": "0x0", - "nonce": "0x1", - "storage": { - "0x3440dd3ee3ca5de61d4ee92cfe26c447934bd6b8480a62ce27fbb9ed18f73cd4": "0x00000000000000000000000000000000000000000000000000000000000002cf", - "0x6210cdd80d7ed64c147610e636f3f5346cfa1e04fd82b95c61224b5d32099a6f": "0x0000000000000000000000000000000000000000000000000000000000001077", - "0x65534a61afb536dbc0061b7dbeb0f72092486077fcdfc4d28d70b226ed847a88": "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x7147429d9c36092cffc563112aac67146541c751f01a33e802076e13916cced1": "0x000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d", - "0x9cbc963b226fe1134324ceb97d43b5ed9e3a4de61c920f075df835dd1d138cef": "0x0000000000000000000000000000000000000000000000000000000000000002", - "0xa3dd05d36cfa40690563b0b3f6b1b0603d431d1c3573682cff963d848b558c67": "0x0000000000000000000000000000000000000000000000000000000000000003" - } + '0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e': { + balance: '0x0', + nonce: '0x1', + storage: { + '0x3440dd3ee3ca5de61d4ee92cfe26c447934bd6b8480a62ce27fbb9ed18f73cd4': + '0x00000000000000000000000000000000000000000000000000000000000002cf', + '0x6210cdd80d7ed64c147610e636f3f5346cfa1e04fd82b95c61224b5d32099a6f': + '0x0000000000000000000000000000000000000000000000000000000000001077', + '0x65534a61afb536dbc0061b7dbeb0f72092486077fcdfc4d28d70b226ed847a88': + '0x0000000000000000000000000000000000000000000000000000000000000004', + '0x7147429d9c36092cffc563112aac67146541c751f01a33e802076e13916cced1': + '0x000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d', + '0x9cbc963b226fe1134324ceb97d43b5ed9e3a4de61c920f075df835dd1d138cef': + '0x0000000000000000000000000000000000000000000000000000000000000002', + '0xa3dd05d36cfa40690563b0b3f6b1b0603d431d1c3573682cff963d848b558c67': + '0x0000000000000000000000000000000000000000000000000000000000000003', + }, }, - "0xff900d7067a24874264ced8198cc87ebd7c1c53d": { - "balance": "0x1e89b331de2e46", - "nonce": "0x1c" - } - } + '0xff900d7067a24874264ced8198cc87ebd7c1c53d': { + balance: '0x1e89b331de2e46', + nonce: '0x1c', + }, + }, }, - "callTrace": { - "from": SENDER_ADDRESS_MOCK, - "to": "0xdef1c0ded9bec7f1a1670819833240f027b25eff", - "type": "CALL", - "gas": "0x1dcd6500", - "gasUsed": "0x2a000", - "value": "0x31bced02db0000", - "input": "0xfbee349d00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001ccc7b6351d59f42bbb85f1fcc89cd4ac31c69cfa0681c900c46ddb7ad3f3c690f1006752ecedda5ee83902884f78ae85a3a1996bc56dc30f6aba0004ddc87699f00000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006669f99b0000000000000000000000000000000024081bbd5ce9458a998286f53a873a41000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000002e01f4d5d760000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000ef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e00000000000000000000000000000000000000000000000000000000000002cf000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e9ba8fa0222fc76e8bcaa13e4258f749bb92af320000000000000000000000000000000000000000000000000003baf82d03a0000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "output": "0x", - "error": "", - "calls": [ + callTrace: { + from: SENDER_ADDRESS_MOCK, + to: '0xdef1c0ded9bec7f1a1670819833240f027b25eff', + type: 'CALL', + gas: '0x1dcd6500', + gasUsed: '0x2a000', + value: '0x31bced02db0000', + input: + '0xfbee349d00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001ccc7b6351d59f42bbb85f1fcc89cd4ac31c69cfa0681c900c46ddb7ad3f3c690f1006752ecedda5ee83902884f78ae85a3a1996bc56dc30f6aba0004ddc87699f00000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006669f99b0000000000000000000000000000000024081bbd5ce9458a998286f53a873a41000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000002e01f4d5d760000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000ef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e00000000000000000000000000000000000000000000000000000000000002cf000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e9ba8fa0222fc76e8bcaa13e4258f749bb92af320000000000000000000000000000000000000000000000000003baf82d03a0000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', + output: '0x', + error: '', + calls: [ { - "from": "0xdef1c0ded9bec7f1a1670819833240f027b25eff", - "to": "0x4af649ffde640ceb34b1afaba3e0bb8e9698cb01", - "type": "DELEGATECALL", - "gas": "0x1d55b33e", - "gasUsed": "0x246ef", - "value": "0x31bced02db0000", - "input": "0xfbee349d00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001ccc7b6351d59f42bbb85f1fcc89cd4ac31c69cfa0681c900c46ddb7ad3f3c690f1006752ecedda5ee83902884f78ae85a3a1996bc56dc30f6aba0004ddc87699f00000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006669f99b0000000000000000000000000000000024081bbd5ce9458a998286f53a873a41000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000002e01f4d5d760000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000ef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e00000000000000000000000000000000000000000000000000000000000002cf000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e9ba8fa0222fc76e8bcaa13e4258f749bb92af320000000000000000000000000000000000000000000000000003baf82d03a0000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "output": "0x", - "error": "", - "calls": [ + from: '0xdef1c0ded9bec7f1a1670819833240f027b25eff', + to: '0x4af649ffde640ceb34b1afaba3e0bb8e9698cb01', + type: 'DELEGATECALL', + gas: '0x1d55b33e', + gasUsed: '0x246ef', + value: '0x31bced02db0000', + input: + '0xfbee349d00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001ccc7b6351d59f42bbb85f1fcc89cd4ac31c69cfa0681c900c46ddb7ad3f3c690f1006752ecedda5ee83902884f78ae85a3a1996bc56dc30f6aba0004ddc87699f00000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006669f99b0000000000000000000000000000000024081bbd5ce9458a998286f53a873a41000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000002e01f4d5d760000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000ef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e00000000000000000000000000000000000000000000000000000000000002cf000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e9ba8fa0222fc76e8bcaa13e4258f749bb92af320000000000000000000000000000000000000000000000000003baf82d03a0000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', + output: '0x', + error: '', + calls: [ { - "from": "0xdef1c0ded9bec7f1a1670819833240f027b25eff", - "to": "0x0000000000000000000000000000000000000001", - "type": "STATICCALL", - "gas": "0x1ce0362d", - "gasUsed": "0xbb8", - "value": null, - "input": "0xcecc68f79868cc3c883e5eb9975d469f1f43b9b991a7a7559e7230b7e5e834f0000000000000000000000000000000000000000000000000000000000000001ccc7b6351d59f42bbb85f1fcc89cd4ac31c69cfa0681c900c46ddb7ad3f3c690f1006752ecedda5ee83902884f78ae85a3a1996bc56dc30f6aba0004ddc87699f", - "output": "0x000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d", - "error": "", - "calls": null + from: '0xdef1c0ded9bec7f1a1670819833240f027b25eff', + to: '0x0000000000000000000000000000000000000001', + type: 'STATICCALL', + gas: '0x1ce0362d', + gasUsed: '0xbb8', + value: null, + input: + '0xcecc68f79868cc3c883e5eb9975d469f1f43b9b991a7a7559e7230b7e5e834f0000000000000000000000000000000000000000000000000000000000000001ccc7b6351d59f42bbb85f1fcc89cd4ac31c69cfa0681c900c46ddb7ad3f3c690f1006752ecedda5ee83902884f78ae85a3a1996bc56dc30f6aba0004ddc87699f', + output: + '0x000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d', + error: '', + calls: null, }, { - "from": "0xdef1c0ded9bec7f1a1670819833240f027b25eff", - "to": "0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e", - "type": "CALL", - "gas": "0x1cdfcf6a", - "gasUsed": "0x15add", - "value": "0x0", - "input": `0x23b872dd000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}00000000000000000000000000000000000000000000000000000000000002cf`, - "output": "0x", - "error": "", - "calls": null, - "logs": [ + from: '0xdef1c0ded9bec7f1a1670819833240f027b25eff', + to: '0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e', + type: 'CALL', + gas: '0x1cdfcf6a', + gasUsed: '0x15add', + value: '0x0', + input: `0x23b872dd000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}00000000000000000000000000000000000000000000000000000000000002cf`, + output: '0x', + error: '', + calls: null, + logs: [ { - "address": "0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000000000000000000000000000000000002cf" + address: '0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e', + topics: [ + '0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925', + '0x000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d', + '0x0000000000000000000000000000000000000000000000000000000000000000', + '0x00000000000000000000000000000000000000000000000000000000000002cf', ], - "data": "0x" + data: '0x', }, { - "address": "0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d", - `0x000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}`, - "0x00000000000000000000000000000000000000000000000000000000000002cf" + address: '0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e', + topics: [ + '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef', + '0x000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d', + `0x000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}`, + '0x00000000000000000000000000000000000000000000000000000000000002cf', ], - "data": "0x" - } - ] + data: '0x', + }, + ], }, { - "from": "0xdef1c0ded9bec7f1a1670819833240f027b25eff", - "to": "0xff900d7067a24874264ced8198cc87ebd7c1c53d", - "type": "CALL", - "gas": "0x1cde5550", - "gasUsed": "0x0", - "value": "0x2e01f4d5d76000", - "input": "0x", - "output": "0x", - "error": "", - "calls": null + from: '0xdef1c0ded9bec7f1a1670819833240f027b25eff', + to: '0xff900d7067a24874264ced8198cc87ebd7c1c53d', + type: 'CALL', + gas: '0x1cde5550', + gasUsed: '0x0', + value: '0x2e01f4d5d76000', + input: '0x', + output: '0x', + error: '', + calls: null, }, { - "from": "0xdef1c0ded9bec7f1a1670819833240f027b25eff", - "to": "0xe9ba8fa0222fc76e8bcaa13e4258f749bb92af32", - "type": "CALL", - "gas": "0x1cde2e8a", - "gasUsed": "0x0", - "value": "0x3baf82d03a000", - "input": "0x", - "output": "0x", - "error": "", - "calls": null - } + from: '0xdef1c0ded9bec7f1a1670819833240f027b25eff', + to: '0xe9ba8fa0222fc76e8bcaa13e4258f749bb92af32', + type: 'CALL', + gas: '0x1cde2e8a', + gasUsed: '0x0', + value: '0x3baf82d03a000', + input: '0x', + output: '0x', + error: '', + calls: null, + }, ], - "logs": [ + logs: [ { - "address": "0xdef1c0ded9bec7f1a1670819833240f027b25eff", - "topics": [ - "0x50273fa02273cceea9cf085b42de5c8af60624140168bd71357db833535877af" + address: '0xdef1c0ded9bec7f1a1670819833240f027b25eff', + topics: [ + '0x50273fa02273cceea9cf085b42de5c8af60624140168bd71357db833535877af', ], - "data": `0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}0000000000000000000000000000000024081bbd5ce9458a998286f53a873a41000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000002e01f4d5d76000000000000000000000000000ef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e00000000000000000000000000000000000000000000000000000000000002cf0000000000000000000000000000000000000000000000000000000000000000` - } - ] - } - ] + data: `0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}0000000000000000000000000000000024081bbd5ce9458a998286f53a873a41000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000002e01f4d5d76000000000000000000000000000ef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e00000000000000000000000000000000000000000000000000000000000002cf0000000000000000000000000000000000000000000000000000000000000000`, + }, + ], + }, + ], }, - "feeEstimate": 7243125887434752, - "baseFeePerGas": 42103363836 - } + feeEstimate: 7243125887434752, + baseFeePerGas: 42103363836, + }, ], - "blockNumber": "0x129689d", - "id": "3ea521e3-e0c5-44af-81af-321221bebc95" + blockNumber: '0x129689d', + id: '3ea521e3-e0c5-44af-81af-321221bebc95', }, - "id": "0" + id: '0', }, }; export const BUY_ERC721_REQUEST_2_MOCK: MockRequestResponse = { request: { - "id": "1", - "jsonrpc": "2.0", - "method": "infura_simulateTransactions", - "params": [ + id: '1', + jsonrpc: '2.0', + method: 'infura_simulateTransactions', + params: [ { - "transactions": [ + transactions: [ { - "from": SENDER_ADDRESS_MOCK, - "to": "0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e", - "data": `0x6352211e00000000000000000000000000000000000000000000000000000000000002cf` + from: SENDER_ADDRESS_MOCK, + to: '0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e', + data: `0x6352211e00000000000000000000000000000000000000000000000000000000000002cf`, }, { - "chainId": "0x1", - "from": SENDER_ADDRESS_MOCK, - "to": "0xdef1c0ded9bec7f1a1670819833240f027b25eff", - "value": "0x31bced02db0000", - "data": "0xfbee349d00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001ccc7b6351d59f42bbb85f1fcc89cd4ac31c69cfa0681c900c46ddb7ad3f3c690f1006752ecedda5ee83902884f78ae85a3a1996bc56dc30f6aba0004ddc87699f00000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006669f99b0000000000000000000000000000000024081bbd5ce9458a998286f53a873a41000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000002e01f4d5d760000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000ef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e00000000000000000000000000000000000000000000000000000000000002cf000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e9ba8fa0222fc76e8bcaa13e4258f749bb92af320000000000000000000000000000000000000000000000000003baf82d03a0000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + chainId: '0x1', + from: SENDER_ADDRESS_MOCK, + to: '0xdef1c0ded9bec7f1a1670819833240f027b25eff', + value: '0x31bced02db0000', + data: '0xfbee349d00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001ccc7b6351d59f42bbb85f1fcc89cd4ac31c69cfa0681c900c46ddb7ad3f3c690f1006752ecedda5ee83902884f78ae85a3a1996bc56dc30f6aba0004ddc87699f00000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006669f99b0000000000000000000000000000000024081bbd5ce9458a998286f53a873a41000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000002e01f4d5d760000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000ef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e00000000000000000000000000000000000000000000000000000000000002cf000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e9ba8fa0222fc76e8bcaa13e4258f749bb92af320000000000000000000000000000000000000000000000000003baf82d03a0000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', }, { - "from": SENDER_ADDRESS_MOCK, - "to": "0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e", - "data": `0x6352211e00000000000000000000000000000000000000000000000000000000000002cf` - } - ] - } - ] + from: SENDER_ADDRESS_MOCK, + to: '0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e', + data: `0x6352211e00000000000000000000000000000000000000000000000000000000000002cf`, + }, + ], + }, + ], }, response: { - "jsonrpc": "2.0", - "result": { - "transactions": [ + jsonrpc: '2.0', + result: { + transactions: [ { - "return": "0x0000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "gasUsed": "0x5f66", - "gasLimit": "0x60b9", - "fees": [ + return: + '0x0000000000000000000000000000000000000000000000000000000000000000', + status: '0x1', + gasUsed: '0x5f66', + gasLimit: '0x60b9', + fees: [ { - "maxFeePerGas": "0xfb65bc42d", - "maxPriorityFeePerGas": "0x288f0c5", - "balanceNeeded": "0x5efbd31e2053e", - "currentBalance": "0x3374df8f3ee8d4c", - "error": "" - } + maxFeePerGas: '0xfb65bc42d', + maxPriorityFeePerGas: '0x288f0c5', + balanceNeeded: '0x5efbd31e2053e', + currentBalance: '0x3374df8f3ee8d4c', + error: '', + }, ], - "stateDiff": { - "post": { + stateDiff: { + post: { [SENDER_ADDRESS_MOCK]: { - "nonce": "0x3bd" - } + nonce: '0x3bd', + }, }, - "pre": { + pre: { [SENDER_ADDRESS_MOCK]: { - "balance": "0x3374df8f3ee8d4c", - "nonce": "0x3bc" - } - } + balance: '0x3374df8f3ee8d4c', + nonce: '0x3bc', + }, + }, }, - "feeEstimate": 1028248351627214, - "baseFeePerGas": 42103363836 + feeEstimate: 1028248351627214, + baseFeePerGas: 42103363836, }, { - "return": "0x", - "status": "0x1", - "gasUsed": "0x2a000", - "gasLimit": "0x2d2a6", - "fees": [ + return: '0x', + status: '0x1', + gasUsed: '0x2a000', + gasLimit: '0x2d2a6', + fees: [ { - "maxFeePerGas": "0xfb65bc42d", - "maxPriorityFeePerGas": "0x288f0c5", - "balanceNeeded": "0x5e176c11a5f1d4", - "currentBalance": "0x3315e3bc20c880e", - "error": "" - } + maxFeePerGas: '0xfb65bc42d', + maxPriorityFeePerGas: '0x288f0c5', + balanceNeeded: '0x5e176c11a5f1d4', + currentBalance: '0x3315e3bc20c880e', + error: '', + }, ], - "stateDiff": { - "post": { + stateDiff: { + post: { [SENDER_ADDRESS_MOCK]: { - "balance": "0x305910bf1138d4c", - "nonce": "0x3be" + balance: '0x305910bf1138d4c', + nonce: '0x3be', }, - "0xdef1c0ded9bec7f1a1670819833240f027b25eff": { - "storage": { - "0xeccd0aa0b0cae8a0393c4fcec180bedb48844984d6ea85756283f2a84cf37e42": "0x0000000000000000000000000000000000000000000000020000000000000000" - } + '0xdef1c0ded9bec7f1a1670819833240f027b25eff': { + storage: { + '0xeccd0aa0b0cae8a0393c4fcec180bedb48844984d6ea85756283f2a84cf37e42': + '0x0000000000000000000000000000000000000000000000020000000000000000', + }, }, - "0xe9ba8fa0222fc76e8bcaa13e4258f749bb92af32": { - "balance": "0x171e213c2748203" + '0xe9ba8fa0222fc76e8bcaa13e4258f749bb92af32': { + balance: '0x171e213c2748203', }, - "0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e": { - "storage": { - "0x3440dd3ee3ca5de61d4ee92cfe26c447934bd6b8480a62ce27fbb9ed18f73cd4": "0x0000000000000000000000000000000000000000000000000000000000001077", - "0x65534a61afb536dbc0061b7dbeb0f72092486077fcdfc4d28d70b226ed847a88": "0x0000000000000000000000000000000000000000000000000000000000000003", - "0x7147429d9c36092cffc563112aac67146541c751f01a33e802076e13916cced1": `0x000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}`, - "0xa3dd05d36cfa40690563b0b3f6b1b0603d431d1c3573682cff963d848b558c67": "0x0000000000000000000000000000000000000000000000000000000000000002", - "0xe7bc4be1d73122b60587e3436277f212112d1ea05407d1ba62e996ce0e1ec828": "0x0000000000000000000000000000000000000000000000000000000000000001", - "0xea81aa3597df52a22f198dc4d5802c492ddd6c108c03ad22e53ba5bbb9666352": "0x00000000000000000000000000000000000000000000000000000000000002cf" - } + '0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e': { + storage: { + '0x3440dd3ee3ca5de61d4ee92cfe26c447934bd6b8480a62ce27fbb9ed18f73cd4': + '0x0000000000000000000000000000000000000000000000000000000000001077', + '0x65534a61afb536dbc0061b7dbeb0f72092486077fcdfc4d28d70b226ed847a88': + '0x0000000000000000000000000000000000000000000000000000000000000003', + '0x7147429d9c36092cffc563112aac67146541c751f01a33e802076e13916cced1': `0x000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}`, + '0xa3dd05d36cfa40690563b0b3f6b1b0603d431d1c3573682cff963d848b558c67': + '0x0000000000000000000000000000000000000000000000000000000000000002', + '0xe7bc4be1d73122b60587e3436277f212112d1ea05407d1ba62e996ce0e1ec828': + '0x0000000000000000000000000000000000000000000000000000000000000001', + '0xea81aa3597df52a22f198dc4d5802c492ddd6c108c03ad22e53ba5bbb9666352': + '0x00000000000000000000000000000000000000000000000000000000000002cf', + }, + }, + '0xff900d7067a24874264ced8198cc87ebd7c1c53d': { + balance: '0x4c8ba807b58e46', }, - "0xff900d7067a24874264ced8198cc87ebd7c1c53d": { - "balance": "0x4c8ba807b58e46" - } }, - "pre": { + pre: { [SENDER_ADDRESS_MOCK]: { - "balance": "0x3374df8f3ee8d4c", - "nonce": "0x3bd" + balance: '0x3374df8f3ee8d4c', + nonce: '0x3bd', + }, + '0xdef1c0ded9bec7f1a1670819833240f027b25eff': { + balance: '0x130e736d76ea3d', + nonce: '0x4', }, - "0xdef1c0ded9bec7f1a1670819833240f027b25eff": { - "balance": "0x130e736d76ea3d", - "nonce": "0x4" + '0xe9ba8fa0222fc76e8bcaa13e4258f749bb92af32': { + balance: '0x16e271b9570e203', + nonce: '0x41', }, - "0xe9ba8fa0222fc76e8bcaa13e4258f749bb92af32": { - "balance": "0x16e271b9570e203", - "nonce": "0x41" + '0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e': { + balance: '0x0', + nonce: '0x1', + storage: { + '0x3440dd3ee3ca5de61d4ee92cfe26c447934bd6b8480a62ce27fbb9ed18f73cd4': + '0x00000000000000000000000000000000000000000000000000000000000002cf', + '0x6210cdd80d7ed64c147610e636f3f5346cfa1e04fd82b95c61224b5d32099a6f': + '0x0000000000000000000000000000000000000000000000000000000000001077', + '0x65534a61afb536dbc0061b7dbeb0f72092486077fcdfc4d28d70b226ed847a88': + '0x0000000000000000000000000000000000000000000000000000000000000004', + '0x7147429d9c36092cffc563112aac67146541c751f01a33e802076e13916cced1': + '0x000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d', + '0x9cbc963b226fe1134324ceb97d43b5ed9e3a4de61c920f075df835dd1d138cef': + '0x0000000000000000000000000000000000000000000000000000000000000002', + '0xa3dd05d36cfa40690563b0b3f6b1b0603d431d1c3573682cff963d848b558c67': + '0x0000000000000000000000000000000000000000000000000000000000000003', + }, }, - "0xef9c21e3ba31a74910fc7e7cb3fc814ad842ad6e": { - "balance": "0x0", - "nonce": "0x1", - "storage": { - "0x3440dd3ee3ca5de61d4ee92cfe26c447934bd6b8480a62ce27fbb9ed18f73cd4": "0x00000000000000000000000000000000000000000000000000000000000002cf", - "0x6210cdd80d7ed64c147610e636f3f5346cfa1e04fd82b95c61224b5d32099a6f": "0x0000000000000000000000000000000000000000000000000000000000001077", - "0x65534a61afb536dbc0061b7dbeb0f72092486077fcdfc4d28d70b226ed847a88": "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x7147429d9c36092cffc563112aac67146541c751f01a33e802076e13916cced1": "0x000000000000000000000000ff900d7067a24874264ced8198cc87ebd7c1c53d", - "0x9cbc963b226fe1134324ceb97d43b5ed9e3a4de61c920f075df835dd1d138cef": "0x0000000000000000000000000000000000000000000000000000000000000002", - "0xa3dd05d36cfa40690563b0b3f6b1b0603d431d1c3573682cff963d848b558c67": "0x0000000000000000000000000000000000000000000000000000000000000003" - } + '0xff900d7067a24874264ced8198cc87ebd7c1c53d': { + balance: '0x1e89b331de2e46', + nonce: '0x1c', }, - "0xff900d7067a24874264ced8198cc87ebd7c1c53d": { - "balance": "0x1e89b331de2e46", - "nonce": "0x1c" - } - } + }, }, - "feeEstimate": 7243125887606784, - "baseFeePerGas": 42103363836 + feeEstimate: 7243125887606784, + baseFeePerGas: 42103363836, }, { - "return": `0x00000000000000000000000000000000${SENDER_ADDRESS_NO_0x_MOCK}`, - "status": "0x1", - "gasUsed": "0x5f66", - "gasLimit": "0x60b9", - "fees": [ + return: `0x00000000000000000000000000000000${SENDER_ADDRESS_NO_0X_MOCK}`, + status: '0x1', + gasUsed: '0x5f66', + gasLimit: '0x60b9', + fees: [ { - "maxFeePerGas": "0xfb65bc42d", - "maxPriorityFeePerGas": "0x288f0c5", - "balanceNeeded": "0x5efbd31e2053e", - "currentBalance": "0x2d346cfb066963a", - "error": "" - } + maxFeePerGas: '0xfb65bc42d', + maxPriorityFeePerGas: '0x288f0c5', + balanceNeeded: '0x5efbd31e2053e', + currentBalance: '0x2d346cfb066963a', + error: '', + }, ], - "stateDiff": { - "post": { + stateDiff: { + post: { [SENDER_ADDRESS_MOCK]: { - "nonce": "0x3bf" - } + nonce: '0x3bf', + }, }, - "pre": { + pre: { [SENDER_ADDRESS_MOCK]: { - "balance": "0x305910bf1138d4c", - "nonce": "0x3be" - } - } + balance: '0x305910bf1138d4c', + nonce: '0x3be', + }, + }, }, - "feeEstimate": 1028248351627214, - "baseFeePerGas": 42103363836 - } + feeEstimate: 1028248351627214, + baseFeePerGas: 42103363836, + }, ], - "blockNumber": "0x129689d", - "id": "486d2d6f-76ff-4d59-a5db-4217cbeb5463" + blockNumber: '0x129689d', + id: '486d2d6f-76ff-4d59-a5db-4217cbeb5463', }, - "id": "1" + id: '1', }, -}; \ No newline at end of file +}; diff --git a/test/e2e/tests/simulation-details/mock-request-error-insuffient-gas.ts b/test/e2e/tests/simulation-details/mock-request-error-insuffient-gas.ts index 5396740c7c8c..806e4cd8d5f1 100644 --- a/test/e2e/tests/simulation-details/mock-request-error-insuffient-gas.ts +++ b/test/e2e/tests/simulation-details/mock-request-error-insuffient-gas.ts @@ -1,32 +1,37 @@ -import { RECIPIENT_ADDRESS_MOCK, MockRequestResponse, SENDER_ADDRESS_MOCK, SENDER_ADDRESS_NO_0x_MOCK } from "./types"; +import { + RECIPIENT_ADDRESS_MOCK, + MockRequestResponse, + SENDER_ADDRESS_MOCK, +} from './types'; export const INSUFFICIENT_GAS_TRANSACTION_MOCK = { - "from": SENDER_ADDRESS_MOCK, - "maxFeePerGas": "0x0", - "maxPriorityFeePerGas": "0x0", - "to": RECIPIENT_ADDRESS_MOCK, - "value": "0x6BC75E2D63100000" + from: SENDER_ADDRESS_MOCK, + maxFeePerGas: '0x0', + maxPriorityFeePerGas: '0x0', + to: RECIPIENT_ADDRESS_MOCK, + value: '0x6BC75E2D63100000', }; export const INSUFFICIENT_GAS_REQUEST_MOCK: MockRequestResponse = { request: { - "id": "0", - "jsonrpc": "2.0", - "method": "infura_simulateTransactions", - "params": [ + id: '0', + jsonrpc: '2.0', + method: 'infura_simulateTransactions', + params: [ { - "transactions": [INSUFFICIENT_GAS_TRANSACTION_MOCK], - "withCallTrace": true, - "withLogs": true - } - ] + transactions: [INSUFFICIENT_GAS_TRANSACTION_MOCK], + withCallTrace: true, + withLogs: true, + }, + ], }, response: { - "jsonrpc": "2.0", - "error": { - "code": -32000, - "message": "debug_traceCall failed: w3: 3 calls failed:\ncall[0]: tracing failed: insufficient funds for gas * price + value: address 0x5cfe73b6021e818b776b421b1c4db2474086a7e1 have 0 want 100000000000000000000\ncall[1]: tracing failed: insufficient funds for gas * price + value: address 0x5cfe73b6021e818b776b421b1c4db2474086a7e1 have 0 want 100000000000000000000\ncall[2]: failed with 500000000 gas: insufficient funds for gas * price + value: address 0x5cfe73b6021e818b776b421b1c4db2474086a7e1 have 0 want 100000000000000000000" + jsonrpc: '2.0', + error: { + code: -32000, + message: + 'debug_traceCall failed: w3: 3 calls failed:\ncall[0]: tracing failed: insufficient funds for gas * price + value: address 0x5cfe73b6021e818b776b421b1c4db2474086a7e1 have 0 want 100000000000000000000\ncall[1]: tracing failed: insufficient funds for gas * price + value: address 0x5cfe73b6021e818b776b421b1c4db2474086a7e1 have 0 want 100000000000000000000\ncall[2]: failed with 500000000 gas: insufficient funds for gas * price + value: address 0x5cfe73b6021e818b776b421b1c4db2474086a7e1 have 0 want 100000000000000000000', }, - "id": "1" + id: '1', }, }; diff --git a/test/e2e/tests/simulation-details/mock-request-error-malformed-transaction.ts b/test/e2e/tests/simulation-details/mock-request-error-malformed-transaction.ts index 286375c7161b..04e98b2de589 100644 --- a/test/e2e/tests/simulation-details/mock-request-error-malformed-transaction.ts +++ b/test/e2e/tests/simulation-details/mock-request-error-malformed-transaction.ts @@ -1,33 +1,34 @@ -import { MockRequestResponse, SENDER_ADDRESS_MOCK } from "./types"; +import { MockRequestResponse, SENDER_ADDRESS_MOCK } from './types'; export const MALFORMED_TRANSACTION_MOCK = { - "data": "0x0323498273498729872340897234087q", - "from": SENDER_ADDRESS_MOCK, - "maxFeePerGas": "0x0", - "maxPriorityFeePerGas": "0x0", - "to": "0xe18035bf8712672935fdb4e5e431b1a0183d2dfc", - "value": "0x0" + data: '0x0323498273498729872340897234087q', + from: SENDER_ADDRESS_MOCK, + maxFeePerGas: '0x0', + maxPriorityFeePerGas: '0x0', + to: '0xe18035bf8712672935fdb4e5e431b1a0183d2dfc', + value: '0x0', }; export const MALFORMED_TRANSACTION_REQUEST_MOCK: MockRequestResponse = { request: { - "id": "21", - "jsonrpc": "2.0", - "method": "infura_simulateTransactions", - "params": [ + id: '21', + jsonrpc: '2.0', + method: 'infura_simulateTransactions', + params: [ { - "transactions": [MALFORMED_TRANSACTION_MOCK], - "withCallTrace": true, - "withLogs": true - } - ] + transactions: [MALFORMED_TRANSACTION_MOCK], + withCallTrace: true, + withLogs: true, + }, + ], }, response: { - "jsonrpc": "2.0", - "error": { - "code": -32000, - "message": "failed to decode param in array[0] json: cannot unmarshal invalid hex string into Go struct field Transaction.transactions.data of type hexutil.Bytes" + jsonrpc: '2.0', + error: { + code: -32000, + message: + 'failed to decode param in array[0] json: cannot unmarshal invalid hex string into Go struct field Transaction.transactions.data of type hexutil.Bytes', }, - "id": "21" + id: '21', }, }; diff --git a/test/e2e/tests/simulation-details/mock-request-no-changes.ts b/test/e2e/tests/simulation-details/mock-request-no-changes.ts index d93c99c06573..59b7fc9b8b3d 100644 --- a/test/e2e/tests/simulation-details/mock-request-no-changes.ts +++ b/test/e2e/tests/simulation-details/mock-request-no-changes.ts @@ -1,76 +1,76 @@ -import { MockRequestResponse, SENDER_ADDRESS_MOCK } from "./types"; +import { MockRequestResponse, SENDER_ADDRESS_MOCK } from './types'; export const NO_CHANGES_TRANSACTION_MOCK = { - "from": SENDER_ADDRESS_MOCK, - "maxFeePerGas": "0x0", - "maxPriorityFeePerGas": "0x0", - "to": SENDER_ADDRESS_MOCK, - "value": "0x38d7ea4c68000" + from: SENDER_ADDRESS_MOCK, + maxFeePerGas: '0x0', + maxPriorityFeePerGas: '0x0', + to: SENDER_ADDRESS_MOCK, + value: '0x38d7ea4c68000', }; export const NO_CHANGES_REQUEST_MOCK: MockRequestResponse = { request: { - "id": "0", - "jsonrpc": "2.0", - "method": "infura_simulateTransactions", - "params": [ + id: '0', + jsonrpc: '2.0', + method: 'infura_simulateTransactions', + params: [ { - "transactions": [NO_CHANGES_TRANSACTION_MOCK], - "withCallTrace": true, - "withLogs": true - } - ] + transactions: [NO_CHANGES_TRANSACTION_MOCK], + withCallTrace: true, + withLogs: true, + }, + ], }, response: { - "jsonrpc": "2.0", - "result": { - "transactions": [ + jsonrpc: '2.0', + result: { + transactions: [ { - "return": "0x", - "status": "0x1", - "gasUsed": "0x5208", - "gasLimit": "0x5208", - "fees": [ + return: '0x', + status: '0x1', + gasUsed: '0x5208', + gasLimit: '0x5208', + fees: [ { - "maxFeePerGas": "0x0", - "maxPriorityFeePerGas": "0x0", - "balanceNeeded": "0x38d7ea4c68000", - "currentBalance": "0x3185e67a46d9066", - "error": "" - } + maxFeePerGas: '0x0', + maxPriorityFeePerGas: '0x0', + balanceNeeded: '0x38d7ea4c68000', + currentBalance: '0x3185e67a46d9066', + error: '', + }, ], - "stateDiff": { - "post": { + stateDiff: { + post: { [SENDER_ADDRESS_MOCK]: { - "nonce": "0x3c0" - } + nonce: '0x3c0', + }, }, - "pre": { + pre: { [SENDER_ADDRESS_MOCK]: { - "balance": "0x3185e67a46d9066", - "nonce": "0x3bf" - } - } + balance: '0x3185e67a46d9066', + nonce: '0x3bf', + }, + }, }, - "callTrace": { - "from": SENDER_ADDRESS_MOCK, - "to": SENDER_ADDRESS_MOCK, - "type": "CALL", - "gas": "0x1dcd6500", - "gasUsed": "0x5208", - "value": "0x38d7ea4c68000", - "input": "0x", - "output": "0x", - "error": "", - "calls": null + callTrace: { + from: SENDER_ADDRESS_MOCK, + to: SENDER_ADDRESS_MOCK, + type: 'CALL', + gas: '0x1dcd6500', + gasUsed: '0x5208', + value: '0x38d7ea4c68000', + input: '0x', + output: '0x', + error: '', + calls: null, }, - "feeEstimate": 766968100542000, - "baseFeePerGas": 36522290502 - } + feeEstimate: 766968100542000, + baseFeePerGas: 36522290502, + }, ], - "blockNumber": "0x1296901", - "id": "964ce072-84c7-4f1e-a972-ff00ce84a6c8" + blockNumber: '0x1296901', + id: '964ce072-84c7-4f1e-a972-ff00ce84a6c8', }, - "id": "0" + id: '0', }, }; diff --git a/test/e2e/tests/simulation-details/mock-request-send-eth.ts b/test/e2e/tests/simulation-details/mock-request-send-eth.ts index 40d92310498f..0c4ea8ae3d01 100644 --- a/test/e2e/tests/simulation-details/mock-request-send-eth.ts +++ b/test/e2e/tests/simulation-details/mock-request-send-eth.ts @@ -1,84 +1,88 @@ -import { RECIPIENT_ADDRESS_MOCK, MockRequestResponse, SENDER_ADDRESS_MOCK } from "./types"; +import { + RECIPIENT_ADDRESS_MOCK, + MockRequestResponse, + SENDER_ADDRESS_MOCK, +} from './types'; export const SEND_ETH_TRANSACTION_MOCK = { - "data": "0x", - "from": SENDER_ADDRESS_MOCK, - "maxFeePerGas": "0x0", - "maxPriorityFeePerGas": "0x0", - "to": RECIPIENT_ADDRESS_MOCK, - "value": "0x38d7ea4c68000" + data: '0x', + from: SENDER_ADDRESS_MOCK, + maxFeePerGas: '0x0', + maxPriorityFeePerGas: '0x0', + to: RECIPIENT_ADDRESS_MOCK, + value: '0x38d7ea4c68000', }; export const SEND_ETH_REQUEST_MOCK: MockRequestResponse = { request: { - "id": "0", - "jsonrpc": "2.0", - "method": "infura_simulateTransactions", - "params": [ + id: '0', + jsonrpc: '2.0', + method: 'infura_simulateTransactions', + params: [ { - "transactions": [SEND_ETH_TRANSACTION_MOCK], - "withCallTrace": true, - "withLogs": true - } - ] + transactions: [SEND_ETH_TRANSACTION_MOCK], + withCallTrace: true, + withLogs: true, + }, + ], }, response: { - "jsonrpc": "2.0", - "result": { - "transactions": [ + jsonrpc: '2.0', + result: { + transactions: [ { - "return": "0x", - "status": "0x1", - "gasUsed": "0x5208", - "gasLimit": "0x5208", - "fees": [ + return: '0x', + status: '0x1', + gasUsed: '0x5208', + gasLimit: '0x5208', + fees: [ { - "maxFeePerGas": "0x22ae4b8bcb", - "maxPriorityFeePerGas": "0x59682f04", - "balanceNeeded": "0xeaa6849ea3660", - "currentBalance": "0x2386f26fc1000000", - "error": "" - } + maxFeePerGas: '0x22ae4b8bcb', + maxPriorityFeePerGas: '0x59682f04', + balanceNeeded: '0xeaa6849ea3660', + currentBalance: '0x2386f26fc1000000', + error: '', + }, ], - "stateDiff": { - "post": { + stateDiff: { + post: { [SENDER_ADDRESS_MOCK]: { - "balance": "0x238364f11c398000", - "nonce": "0x1" + balance: '0x238364f11c398000', + nonce: '0x1', }, [RECIPIENT_ADDRESS_MOCK]: { - "balance": "0x38d7ea4c68000" - } + balance: '0x38d7ea4c68000', + }, }, - "pre": { + pre: { [SENDER_ADDRESS_MOCK]: { - "balance": "0x2386f26fc1000000" + balance: '0x2386f26fc1000000', }, [RECIPIENT_ADDRESS_MOCK]: { - "balance": "0x0", - "nonce": "0x24" - } - } + balance: '0x0', + nonce: '0x24', + }, + }, }, - "callTrace": { - "from": SENDER_ADDRESS_MOCK, - "to": RECIPIENT_ADDRESS_MOCK, - "type": "CALL", - "gas": "0x1dcd6500", - "gasUsed": "0x5208", - "value": "0x38d7ea4c68000", - "input": "0x", - "output": "0x", - "error": "", - "calls": null + callTrace: { + from: SENDER_ADDRESS_MOCK, + to: RECIPIENT_ADDRESS_MOCK, + type: 'CALL', + gas: '0x1dcd6500', + gasUsed: '0x5208', + value: '0x38d7ea4c68000', + input: '0x', + output: '0x', + error: '', + calls: null, }, - "feeEstimate": 1954138800138000, - "baseFeePerGas": 92054228577 - } + feeEstimate: 1954138800138000, + baseFeePerGas: 92054228577, + }, ], - "blockNumber": "0x53afbb", - "id": "09156630-b754-4bb8-bfc4-3390d934cec6" + blockNumber: '0x53afbb', + id: '09156630-b754-4bb8-bfc4-3390d934cec6', }, - "id": 42 - } + id: 42, + }, }; diff --git a/test/e2e/tests/simulation-details/simulation-details.spec.ts b/test/e2e/tests/simulation-details/simulation-details.spec.ts index 65e21b5d9ab2..e74ae74505a6 100644 --- a/test/e2e/tests/simulation-details/simulation-details.spec.ts +++ b/test/e2e/tests/simulation-details/simulation-details.spec.ts @@ -1,35 +1,72 @@ -import FixtureBuilder from "../../fixture-builder"; -import { unlockWallet, withFixtures, createDappTransaction, switchToNotificationWindow } from "../../helpers"; +import { Mockttp, MockttpServer } from 'mockttp'; +import { hexToNumber } from '@metamask/utils'; +import FixtureBuilder from '../../fixture-builder'; +import { + unlockWallet, + withFixtures, + createDappTransaction, + switchToNotificationWindow, +} from '../../helpers'; import { Driver } from '../../webdriver/driver'; -import { CHAIN_IDS } from "../../../../shared/constants/network"; -import { Mockttp, MockttpServer } from "mockttp"; -import { SEND_ETH_REQUEST_MOCK, SEND_ETH_TRANSACTION_MOCK } from "./mock-request-send-eth"; -import { BUY_ERC20_TRANSACTION, BUY_ERC20_REQUEST_1_MOCK, BUY_ERC20_REQUEST_2_MOCK } from "./mock-request-buy-erc20"; -import { MockRequestResponse } from "./types"; -import { INSUFFICIENT_GAS_REQUEST_MOCK, INSUFFICIENT_GAS_TRANSACTION_MOCK } from "./mock-request-error-insuffient-gas"; -import { BUY_ERC1155_REQUEST_1_MOCK, BUY_ERC1155_REQUEST_2_MOCK, BUY_ERC1155_TRANSACTION_MOCK } from "./mock-request-buy-erc1155"; -import { BUY_ERC721_REQUEST_1_MOCK, BUY_ERC721_REQUEST_2_MOCK, BUY_ERC721_TRANSACTION_MOCK } from "./mock-request-buy-erc721"; -import { NO_CHANGES_REQUEST_MOCK, NO_CHANGES_TRANSACTION_MOCK } from "./mock-request-no-changes"; -import { hexToNumber } from "@metamask/utils"; -import { MALFORMED_TRANSACTION_MOCK, MALFORMED_TRANSACTION_REQUEST_MOCK } from "./mock-request-error-malformed-transaction"; - -const TX_SENTINEL_URL = 'https://tx-sentinel-ethereum-mainnet.api.cx.metamask.io/'; +import { CHAIN_IDS } from '../../../../shared/constants/network'; +import { + SEND_ETH_REQUEST_MOCK, + SEND_ETH_TRANSACTION_MOCK, +} from './mock-request-send-eth'; +import { + BUY_ERC20_TRANSACTION, + BUY_ERC20_REQUEST_1_MOCK, + BUY_ERC20_REQUEST_2_MOCK, +} from './mock-request-buy-erc20'; +import { MockRequestResponse } from './types'; +import { + INSUFFICIENT_GAS_REQUEST_MOCK, + INSUFFICIENT_GAS_TRANSACTION_MOCK, +} from './mock-request-error-insuffient-gas'; +import { + BUY_ERC1155_REQUEST_1_MOCK, + BUY_ERC1155_REQUEST_2_MOCK, + BUY_ERC1155_TRANSACTION_MOCK, +} from './mock-request-buy-erc1155'; +import { + BUY_ERC721_REQUEST_1_MOCK, + BUY_ERC721_REQUEST_2_MOCK, + BUY_ERC721_TRANSACTION_MOCK, +} from './mock-request-buy-erc721'; +import { + NO_CHANGES_REQUEST_MOCK, + NO_CHANGES_TRANSACTION_MOCK, +} from './mock-request-no-changes'; +import { + MALFORMED_TRANSACTION_MOCK, + MALFORMED_TRANSACTION_REQUEST_MOCK, +} from './mock-request-error-malformed-transaction'; + +const TX_SENTINEL_URL = + 'https://tx-sentinel-ethereum-mainnet.api.cx.metamask.io/'; const mockNetworkRequest = async (mockServer: Mockttp) => { - await mockServer.forGet(`${TX_SENTINEL_URL}/networks`).thenJson(200,{ - "1": { name: "Mainnet", confirmations: true }, + await mockServer.forGet(`${TX_SENTINEL_URL}/networks`).thenJson(200, { + '1': { name: 'Mainnet', confirmations: true }, }); }; type TestArgs = { driver: Driver; - mockServer: MockttpServer + mockServer: MockttpServer; }; async function withFixturesForSimulationDetails( - { title, inputChainId = CHAIN_IDS.MAINNET, mockRequests }: - { title?: string; inputChainId?: string, mockRequests: (mockServer: MockttpServer) => Promise }, - test: (args: TestArgs) => Promise + { + title, + inputChainId = CHAIN_IDS.MAINNET, + mockRequests, + }: { + title?: string; + inputChainId?: string; + mockRequests: (mockServer: MockttpServer) => Promise; + }, + test: (args: TestArgs) => Promise, ) { const testSpecificMock = async (mockServer: MockttpServer) => { await mockNetworkRequest(mockServer); @@ -51,7 +88,7 @@ async function withFixturesForSimulationDetails( async ({ driver, mockServer }: TestArgs) => { await unlockWallet(driver); await test({ driver, mockServer }); - } + }, ); } @@ -83,133 +120,169 @@ async function expectBalanceChange( export async function mockRequest( server: Mockttp, - {request, response}: MockRequestResponse, - ) { - await server.forPost(TX_SENTINEL_URL) - .withJsonBody(request) - .thenJson(200, response); - } - + { request, response }: MockRequestResponse, +) { + await server + .forPost(TX_SENTINEL_URL) + .withJsonBody(request) + .thenJson(200, response); +} describe('Simulation Details', () => { it('renders send eth transaction', async function (this: Mocha.Context) { const mockRequests = async (mockServer: MockttpServer) => { await mockRequest(mockServer, SEND_ETH_REQUEST_MOCK); - } - await withFixturesForSimulationDetails({ title: this.test?.fullTitle(), mockRequests }, async ({ driver }) => { - await createDappTransaction(driver, SEND_ETH_TRANSACTION_MOCK); + }; + await withFixturesForSimulationDetails( + { title: this.test?.fullTitle(), mockRequests }, + async ({ driver }) => { + await createDappTransaction(driver, SEND_ETH_TRANSACTION_MOCK); - await switchToNotificationWindow(driver); - await expectBalanceChange(driver, true, 0, '- 0.001', 'ETH'); - }); + await switchToNotificationWindow(driver); + await expectBalanceChange(driver, true, 0, '- 0.001', 'ETH'); + }, + ); }); it('renders buy ERC20 transaction', async function (this: Mocha.Context) { const mockRequests = async (mockServer: MockttpServer) => { await mockRequest(mockServer, BUY_ERC20_REQUEST_1_MOCK); await mockRequest(mockServer, BUY_ERC20_REQUEST_2_MOCK); - } - await withFixturesForSimulationDetails({ title: this.test?.fullTitle(), mockRequests }, async ({ driver, mockServer }: TestArgs) => { - await createDappTransaction(driver, BUY_ERC20_TRANSACTION); - - await switchToNotificationWindow(driver); - await expectBalanceChange(driver, true, 0, '- 0.002', 'ETH'); - await expectBalanceChange(driver, false, 0, '+ 6.756', 'DAI'); - }); + }; + await withFixturesForSimulationDetails( + { title: this.test?.fullTitle(), mockRequests }, + async ({ driver }: TestArgs) => { + await createDappTransaction(driver, BUY_ERC20_TRANSACTION); + + await switchToNotificationWindow(driver); + await expectBalanceChange(driver, true, 0, '- 0.002', 'ETH'); + await expectBalanceChange(driver, false, 0, '+ 6.756', 'DAI'); + }, + ); }); it('renders buy ERC721 transaction', async function (this: Mocha.Context) { const mockRequests = async (mockServer: MockttpServer) => { await mockRequest(mockServer, BUY_ERC721_REQUEST_1_MOCK); await mockRequest(mockServer, BUY_ERC721_REQUEST_2_MOCK); - } - await withFixturesForSimulationDetails({ title: this.test?.fullTitle(), mockRequests }, async ({ driver, mockServer }: TestArgs) => { - await createDappTransaction(driver, BUY_ERC721_TRANSACTION_MOCK); - - await switchToNotificationWindow(driver); - await expectBalanceChange(driver, true, 0, '- 0.014', 'ETH'); - await expectBalanceChange(driver, false, 0, '+ #719', '0xEF9c2...2AD6e'); - }); + }; + await withFixturesForSimulationDetails( + { title: this.test?.fullTitle(), mockRequests }, + async ({ driver }: TestArgs) => { + await createDappTransaction(driver, BUY_ERC721_TRANSACTION_MOCK); + + await switchToNotificationWindow(driver); + await expectBalanceChange(driver, true, 0, '- 0.014', 'ETH'); + await expectBalanceChange( + driver, + false, + 0, + '+ #719', + '0xEF9c2...2AD6e', + ); + }, + ); }); it('renders buy ERC1155 transaction', async function (this: Mocha.Context) { const mockRequests = async (mockServer: MockttpServer) => { await mockRequest(mockServer, BUY_ERC1155_REQUEST_1_MOCK); await mockRequest(mockServer, BUY_ERC1155_REQUEST_2_MOCK); - } - await withFixturesForSimulationDetails({ title: this.test?.fullTitle(), mockRequests }, async ({ driver, mockServer }: TestArgs) => { - await createDappTransaction(driver, BUY_ERC1155_TRANSACTION_MOCK); - - await switchToNotificationWindow(driver); - await expectBalanceChange(driver, true, 0, '- 0.00045', 'ETH'); - await expectBalanceChange(driver, false, 0, '+ 1 #10340', '0x76BE3...E8E77'); - }); + }; + await withFixturesForSimulationDetails( + { title: this.test?.fullTitle(), mockRequests }, + async ({ driver }: TestArgs) => { + await createDappTransaction(driver, BUY_ERC1155_TRANSACTION_MOCK); + + await switchToNotificationWindow(driver); + await expectBalanceChange(driver, true, 0, '- 0.00045', 'ETH'); + await expectBalanceChange( + driver, + false, + 0, + '+ 1 #10340', + '0x76BE3...E8E77', + ); + }, + ); }); it('renders no changes transaction', async function (this: Mocha.Context) { const mockRequests = async (mockServer: MockttpServer) => { await mockRequest(mockServer, NO_CHANGES_REQUEST_MOCK); - } - await withFixturesForSimulationDetails({ title: this.test?.fullTitle(), mockRequests }, async ({ driver }) => { - await createDappTransaction(driver, NO_CHANGES_TRANSACTION_MOCK); - - await switchToNotificationWindow(driver); - await driver.findElement({ - css: '[data-testid="simulation-details-layout"]', - text: 'No changes predicted for your wallet', - }); - }); + }; + await withFixturesForSimulationDetails( + { title: this.test?.fullTitle(), mockRequests }, + async ({ driver }) => { + await createDappTransaction(driver, NO_CHANGES_TRANSACTION_MOCK); + + await switchToNotificationWindow(driver); + await driver.findElement({ + css: '[data-testid="simulation-details-layout"]', + text: 'No changes predicted for your wallet', + }); + }, + ); }); it('displays error message if transaction will fail or revert', async function (this: Mocha.Context) { const mockRequests = async (mockServer: MockttpServer) => { await mockRequest(mockServer, INSUFFICIENT_GAS_REQUEST_MOCK); - } - await withFixturesForSimulationDetails({ title: this.test?.fullTitle(), mockRequests }, async ({ driver }) => { - await createDappTransaction(driver, INSUFFICIENT_GAS_TRANSACTION_MOCK); - - await switchToNotificationWindow(driver); - await driver.findElement({ - css: '[data-testid="simulation-details-layout"]', - text: 'This transaction is likely to fail', - }); - }); + }; + await withFixturesForSimulationDetails( + { title: this.test?.fullTitle(), mockRequests }, + async ({ driver }) => { + await createDappTransaction(driver, INSUFFICIENT_GAS_TRANSACTION_MOCK); + + await switchToNotificationWindow(driver); + await driver.findElement({ + css: '[data-testid="simulation-details-layout"]', + text: 'This transaction is likely to fail', + }); + }, + ); }); it('does not display if chain is not supported', async function (this: Mocha.Context) { const mockRequests = async (mockServer: MockttpServer) => { await mockRequest(mockServer, SEND_ETH_REQUEST_MOCK); - } - await withFixturesForSimulationDetails({ - title: this.test?.fullTitle(), - inputChainId: CHAIN_IDS.LOCALHOST, // Localhost chain is not supported. - mockRequests, - }, async ({ driver }) => { - await createDappTransaction(driver, SEND_ETH_TRANSACTION_MOCK); - - await switchToNotificationWindow(driver); - await driver.assertElementNotPresent( - '[data-testid="simulation-details-layout"]', - { waitAtLeastGuard: 1000 }, - ); - }); + }; + await withFixturesForSimulationDetails( + { + title: this.test?.fullTitle(), + inputChainId: CHAIN_IDS.LOCALHOST, // Localhost chain is not supported. + mockRequests, + }, + async ({ driver }) => { + await createDappTransaction(driver, SEND_ETH_TRANSACTION_MOCK); + + await switchToNotificationWindow(driver); + await driver.assertElementNotPresent( + '[data-testid="simulation-details-layout"]', + { waitAtLeastGuard: 1000 }, + ); + }, + ); }); it('displays generic error message', async function (this: Mocha.Context) { const mockRequests = async (mockServer: MockttpServer) => { await mockRequest(mockServer, MALFORMED_TRANSACTION_REQUEST_MOCK); - } - await withFixturesForSimulationDetails({ - title: this.test?.fullTitle(), - mockRequests, - }, async ({ driver }) => { - await createDappTransaction(driver, MALFORMED_TRANSACTION_MOCK); - - await switchToNotificationWindow(driver); - await driver.findElement({ - css: '[data-testid="simulation-details-layout"]', - text: 'There was an error loading your estimation', - }); - }); + }; + await withFixturesForSimulationDetails( + { + title: this.test?.fullTitle(), + mockRequests, + }, + async ({ driver }) => { + await createDappTransaction(driver, MALFORMED_TRANSACTION_MOCK); + + await switchToNotificationWindow(driver); + await driver.findElement({ + css: '[data-testid="simulation-details-layout"]', + text: 'There was an error loading your estimation', + }); + }, + ); }); }); diff --git a/test/e2e/tests/simulation-details/types.ts b/test/e2e/tests/simulation-details/types.ts index e4bff2c9c549..8f80a65ce254 100644 --- a/test/e2e/tests/simulation-details/types.ts +++ b/test/e2e/tests/simulation-details/types.ts @@ -1,8 +1,14 @@ -export const SENDER_ADDRESS_NO_0x_MOCK = '5cfe73b6021e818b776b421b1c4db2474086a7e1'; -export const SENDER_ADDRESS_MOCK = `0x${SENDER_ADDRESS_NO_0x_MOCK}`; -export const RECIPIENT_ADDRESS_MOCK = '0xe18035bf8712672935fdb4e5e431b1a0183d2dfc'; +export const SENDER_ADDRESS_NO_0X_MOCK = + '5cfe73b6021e818b776b421b1c4db2474086a7e1'; +export const SENDER_ADDRESS_MOCK = `0x${SENDER_ADDRESS_NO_0X_MOCK}`; +export const RECIPIENT_ADDRESS_MOCK = + '0xe18035bf8712672935fdb4e5e431b1a0183d2dfc'; export type MockRequestResponse = { + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any request: any; + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any response: any; -} +}; diff --git a/test/e2e/tests/swap-send/mocks/erc20-data.ts b/test/e2e/tests/swap-send/mocks/erc20-data.ts index 9d2586122f5c..ba9e79758b97 100644 --- a/test/e2e/tests/swap-send/mocks/erc20-data.ts +++ b/test/e2e/tests/swap-send/mocks/erc20-data.ts @@ -1,4 +1,4 @@ -export const swapSendQuotesResponse_TST_ETH = [ +export const SWAP_SEND_QUOTES_RESPONSE_TST_ETH = [ { aggregator: 'ZeroX', aggregatorType: 'AGG', diff --git a/test/e2e/tests/swap-send/mocks/eth-data.ts b/test/e2e/tests/swap-send/mocks/eth-data.ts index e6063e2ba449..6cba4ef549be 100644 --- a/test/e2e/tests/swap-send/mocks/eth-data.ts +++ b/test/e2e/tests/swap-send/mocks/eth-data.ts @@ -1,4 +1,4 @@ -export const swapSendQuotesResponse_ETH_TST = [ +export const SWAP_SEND_QUOTES_RESPONSE_ETH_TST = [ { aggregator: 'ZeroX', aggregatorType: 'AGG', @@ -22,6 +22,8 @@ export const swapSendQuotesResponse_ETH_TST = [ gasMultiplier: 1, }, fee: 0.875, + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any approvalNeeded: null as any, priceSlippage: { bucket: null, @@ -58,6 +60,8 @@ export const swapSendQuotesResponse_ETH_TST = [ gasMultiplier: 1, }, fee: 0.875, + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any approvalNeeded: null as any, priceSlippage: { bucket: null, diff --git a/test/e2e/tests/swap-send/swap-send-erc20.spec.ts b/test/e2e/tests/swap-send/swap-send-erc20.spec.ts index e4045b4e069a..3e2fdc1f7b41 100644 --- a/test/e2e/tests/swap-send/swap-send-erc20.spec.ts +++ b/test/e2e/tests/swap-send/swap-send-erc20.spec.ts @@ -1,15 +1,16 @@ +import { Suite } from 'mocha'; import { withFixtures, openActionMenuAndStartSendFlow, logInWithBalanceValidation, } from '../../helpers'; -import { Suite } from 'mocha'; +import type { Ganache } from '../../seeder/ganache'; import { NATIVE_TOKEN_SYMBOL, SwapSendPage, getSwapSendFixtures, } from './swap-send-test-utils'; -import { swapSendQuotesResponse_TST_ETH } from './mocks/erc20-data'; +import { SWAP_SEND_QUOTES_RESPONSE_TST_ETH } from './mocks/erc20-data'; const RECIPIENT_ADDRESS = '0xc427D562164062a23a5cFf596A4a3208e72Acd28'; @@ -19,14 +20,16 @@ describe('Swap-Send ERC20', function () { await withFixtures( getSwapSendFixtures( this.test?.fullTitle(), - swapSendQuotesResponse_TST_ETH, + SWAP_SEND_QUOTES_RESPONSE_TST_ETH, ), async ({ driver, ganacheServer, }: { + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any driver: any; - ganacheServer: any; + ganacheServer: Ganache; }) => { const swapSendPage = new SwapSendPage(driver); await logInWithBalanceValidation(driver, ganacheServer); diff --git a/test/e2e/tests/swap-send/swap-send-eth.spec.ts b/test/e2e/tests/swap-send/swap-send-eth.spec.ts index 5a326f9c4e81..b1e40543150f 100644 --- a/test/e2e/tests/swap-send/swap-send-eth.spec.ts +++ b/test/e2e/tests/swap-send/swap-send-eth.spec.ts @@ -1,9 +1,10 @@ +import { Suite } from 'mocha'; import { withFixtures, openActionMenuAndStartSendFlow, logInWithBalanceValidation, } from '../../helpers'; -import { Suite } from 'mocha'; +import type { Ganache } from '../../seeder/ganache'; import { NATIVE_TOKEN_SYMBOL, SwapSendPage, @@ -23,8 +24,10 @@ describe('Swap-Send ETH', function () { driver, ganacheServer, }: { + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any driver: any; - ganacheServer: any; + ganacheServer: Ganache; }) => { const swapSendPage = new SwapSendPage(driver); await logInWithBalanceValidation(driver, ganacheServer); diff --git a/test/e2e/tests/swap-send/swap-send-test-utils.ts b/test/e2e/tests/swap-send/swap-send-test-utils.ts index 9818b1ffa604..cdf9b4f11904 100644 --- a/test/e2e/tests/swap-send/swap-send-test-utils.ts +++ b/test/e2e/tests/swap-send/swap-send-test-utils.ts @@ -1,16 +1,20 @@ import { strict as assert } from 'assert'; -import FixtureBuilder from '../../fixture-builder'; import { Mockttp } from 'mockttp'; +import FixtureBuilder from '../../fixture-builder'; import { SWAPS_API_V2_BASE_URL } from '../../../../shared/constants/swaps'; -import { swapSendQuotesResponse_ETH_TST } from './mocks/eth-data'; import { defaultGanacheOptions } from '../../helpers'; import { SMART_CONTRACTS } from '../../seeder/smart-contracts'; +import { SWAP_SEND_QUOTES_RESPONSE_ETH_TST } from './mocks/eth-data'; export const NATIVE_TOKEN_SYMBOL = 'ETH'; export class SwapSendPage { + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any driver: any; + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any constructor(driver: any) { this.driver = driver; } @@ -27,9 +31,11 @@ export class SwapSendPage { location: 'src' | 'dest' = 'src', ) => { const isDest = location === 'dest'; - await (( - await this.driver.findElements('[data-testid="asset-picker-button"]') - )?.[isDest ? 1 : 0]).click(); + const buttons = await this.driver.findElements( + '[data-testid="asset-picker-button"]', + ); + const indexOfButtonToClick = isDest ? 1 : 0; + await buttons[indexOfButtonToClick].click(); await this.driver.waitForSelector( '[data-testid="asset-picker-modal-search-input"]', ); @@ -82,6 +88,8 @@ export class SwapSendPage { const inputAmounts = await this.driver.findElements('.asset-picker-amount'); assert.equal(inputAmounts.length, 2); await Promise.all( + // TODO: Replace `any` with type + // eslint-disable-next-line @typescript-eslint/no-explicit-any inputAmounts.map(async (e: any, index: number) => { await this.driver.delay(delayInMs); const i = await e.nestedFindElement('input'); @@ -89,7 +97,9 @@ export class SwapSendPage { const v = await i.getProperty('value'); assert.equal(v, expectedInputValues[index]); const isDisabled = !(await i.isEnabled()); - if (index > 0) assert.ok(isDisabled); + if (index > 0) { + assert.ok(isDisabled); + } }), ); }; @@ -123,7 +133,7 @@ export class SwapSendPage { switchPrimaryCurrency = async ( initialParams: string[][], - expectedParams: string[][], + _expectedParams: string[][], ) => { await this.verifyAssetSymbolsAndAmounts(initialParams[0], initialParams[1]); @@ -221,7 +231,7 @@ export class SwapSendPage { } export const mockSwapsApi = - (quotes = swapSendQuotesResponse_ETH_TST) => + (quotes = SWAP_SEND_QUOTES_RESPONSE_ETH_TST) => async (mockServer: Mockttp) => { return await mockServer .forGet(`${SWAPS_API_V2_BASE_URL}/v2/networks/1337/quotes`) @@ -236,7 +246,7 @@ export const mockSwapsApi = export const getSwapSendFixtures = ( title?: string, - swapsQuotes = swapSendQuotesResponse_ETH_TST, + swapsQuotes = SWAP_SEND_QUOTES_RESPONSE_ETH_TST, ) => { const ETH_CONVERSION_RATE_USD = 3010; return { diff --git a/tsconfig.json b/tsconfig.json index c59ed55ce022..82f043235c6d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -29,5 +29,14 @@ ], // this should match our node version in .nvmrc "extends": "@tsconfig/node20/tsconfig.json", - "include": ["app", "development", "shared", "types", "ui", "offscreen"] + "include": [ + "app", + "development", + "offscreen", + "shared", + "test", + "types", + "ui", + "*.ts" + ] } diff --git a/ui/components/app/alert-system/utils.test.ts b/ui/components/app/alert-system/utils.test.ts index b6dbb3ebc0ea..fea2e95d80d1 100644 --- a/ui/components/app/alert-system/utils.test.ts +++ b/ui/components/app/alert-system/utils.test.ts @@ -37,6 +37,7 @@ describe('Utils', () => { { key: 'key 2', message: 'mocked message', severity: Severity.Danger }, ]; + // @ts-expect-error This is missing from the Mocha type definitions it.each([ [ `when the highest severity is ${Severity.Danger}`, @@ -53,7 +54,7 @@ describe('Utils', () => { [alertsMock[0]], Severity.Info, ], - ])('%s', (_desc, alerts, expected) => { + ])('%s', (_desc: string, alerts: Alert[], expected: Severity) => { const result = getHighestSeverity(alerts); expect(result).toBe(expected); }); @@ -61,11 +62,12 @@ describe('Utils', () => { }); describe('getBannerAlertSeverity', () => { + // @ts-expect-error This is missing from the Mocha type definitions it.each([ [Severity.Danger, 'danger'], [Severity.Warning, 'warning'], [Severity.Info, 'info'], - ])('maps %s to %s', (inputSeverity, expectedSeverity) => { + ])('maps %s to %s', (inputSeverity: Severity, expectedSeverity: string) => { expect(getBannerAlertSeverity(inputSeverity)).toBe(expectedSeverity); }); }); diff --git a/ui/components/app/name/name.test.tsx b/ui/components/app/name/name.test.tsx index c1746395fdc6..b56c62e5fc2a 100644 --- a/ui/components/app/name/name.test.tsx +++ b/ui/components/app/name/name.test.tsx @@ -70,32 +70,36 @@ describe('Name', () => { }); describe('metrics', () => { + // @ts-expect-error This is missing from the Mocha type definitions it.each([ ['saved', ADDRESS_SAVED_NAME_MOCK, true], ['not saved', ADDRESS_NO_SAVED_NAME_MOCK, false], - ])('sends displayed event with %s name', async (_, value, hasPetname) => { - const trackEventMock = jest.fn(); - - useDisplayNameMock.mockReturnValue({ - name: hasPetname ? SAVED_NAME_MOCK : null, - hasPetname, - }); - - renderWithProvider( - - - , - store, - ); - - expect(trackEventMock).toHaveBeenCalledWith({ - event: MetaMetricsEventName.PetnameDisplayed, - category: MetaMetricsEventCategory.Petnames, - properties: { - petname_category: NameType.ETHEREUM_ADDRESS, - has_petname: hasPetname, - }, - }); - }); + ])( + 'sends displayed event with %s name', + async (_: string, value: string, hasPetname: boolean) => { + const trackEventMock = jest.fn(); + + useDisplayNameMock.mockReturnValue({ + name: hasPetname ? SAVED_NAME_MOCK : null, + hasPetname, + }); + + renderWithProvider( + + + , + store, + ); + + expect(trackEventMock).toHaveBeenCalledWith({ + event: MetaMetricsEventName.PetnameDisplayed, + category: MetaMetricsEventCategory.Petnames, + properties: { + petname_category: NameType.ETHEREUM_ADDRESS, + has_petname: hasPetname, + }, + }); + }, + ); }); }); diff --git a/ui/ducks/locale/locale.test.ts b/ui/ducks/locale/locale.test.ts index 7bb4d2b8e344..17abc6547d0a 100644 --- a/ui/ducks/locale/locale.test.ts +++ b/ui/ducks/locale/locale.test.ts @@ -18,9 +18,13 @@ describe('getIntlLocale', () => { expect(() => getIntlLocale(mockState)).toThrow(); }); - it.each(locales)('handles all supported locales – "%s"', (locale) => { - const mockState = createMockStateWithLocale(locale.code); + // @ts-expect-error This is missing from the Mocha type definitions + it.each(locales)( + 'handles all supported locales – "%s"', + (locale: { code: string; name: string }) => { + const mockState = createMockStateWithLocale(locale.code); - expect(() => getIntlLocale(mockState)).not.toThrow(); - }); + expect(() => getIntlLocale(mockState)).not.toThrow(); + }, + ); }); diff --git a/ui/pages/confirmations/components/simulation-details/amount-pill.test.tsx b/ui/pages/confirmations/components/simulation-details/amount-pill.test.tsx index c35b090fda84..dce1b74372e2 100644 --- a/ui/pages/confirmations/components/simulation-details/amount-pill.test.tsx +++ b/ui/pages/confirmations/components/simulation-details/amount-pill.test.tsx @@ -104,18 +104,32 @@ describe('AmountPill', () => { ]; describe('Native', () => { + // @ts-expect-error This is missing from the Mocha type definitions it.each(nativeAndErc20Cases)( 'renders the correct sign and amount for $amount', - ({ amount, expected }) => { + ({ + amount, + expected, + }: { + amount: BigNumber; + expected: { text: string; tooltip: string }; + }) => { renderAndExpect(NATIVE_ASSET_IDENTIFIER, amount, expected); }, ); }); describe('ERC20', () => { + // @ts-expect-error This is missing from the Mocha type definitions it.each(nativeAndErc20Cases)( 'renders the correct sign and amount for $amount', - ({ amount, expected }) => { + ({ + amount, + expected, + }: { + amount: BigNumber; + expected: { text: string; tooltip: string }; + }) => { renderAndExpect(ERC20_ASSET_MOCK, amount, expected); }, ); @@ -139,9 +153,16 @@ describe('AmountPill', () => { }, ]; + // @ts-expect-error This is missing from the Mocha type definitions it.each(cases)( 'renders the token ID with just a plus or minus for $expected.text', - ({ amount, expected }) => { + ({ + amount, + expected, + }: { + amount: BigNumber; + expected: { text: string; tooltip: string }; + }) => { renderAndExpect(ERC721_ASSET_MOCK, amount, expected); }, ); @@ -172,9 +193,16 @@ describe('AmountPill', () => { }, ]; + // @ts-expect-error This is missing from the Mocha type definitions it.each(cases)( 'renders the correct sign, amount, and token ID for $expected.text', - ({ amount, expected }) => { + ({ + amount, + expected, + }: { + amount: BigNumber; + expected: { text: string; tooltip: string }; + }) => { renderAndExpect(ERC1155_ASSET_MOCK, amount, expected); }, ); diff --git a/ui/pages/confirmations/components/simulation-details/asset-pill.test.tsx b/ui/pages/confirmations/components/simulation-details/asset-pill.test.tsx index 334c79f372c9..57ec93f0883d 100644 --- a/ui/pages/confirmations/components/simulation-details/asset-pill.test.tsx +++ b/ui/pages/confirmations/components/simulation-details/asset-pill.test.tsx @@ -43,23 +43,36 @@ describe('AssetPill', () => { }, ]; - it.each(cases)('renders chain $chainId', ({ chainId, expected }) => { - const store = configureStore({ - metamask: { providerConfig: { chainId, ticker: expected.ticker } }, - }); + // @ts-expect-error This is missing from the Mocha type definitions + it.each(cases)( + 'renders chain $chainId', + ({ + chainId, + expected, + }: { + chainId: (typeof CHAIN_IDS)[keyof typeof CHAIN_IDS]; + expected: { ticker: string; imgSrc: string }; + }) => { + const store = configureStore({ + metamask: { providerConfig: { chainId, ticker: expected.ticker } }, + }); - renderWithProvider(, store); + renderWithProvider( + , + store, + ); - expect(screen.getByText(expected.ticker)).toBeInTheDocument(); + expect(screen.getByText(expected.ticker)).toBeInTheDocument(); - expect(AvatarNetwork).toHaveBeenCalledWith( - expect.objectContaining({ - name: expected.ticker, - src: expected.imgSrc, - }), - {}, - ); - }); + expect(AvatarNetwork).toHaveBeenCalledWith( + expect.objectContaining({ + name: expected.ticker, + src: expected.imgSrc, + }), + {}, + ); + }, + ); }); it('renders Name component with correct props when asset standard is not none', () => { diff --git a/ui/pages/confirmations/components/simulation-details/fiat-display.test.tsx b/ui/pages/confirmations/components/simulation-details/fiat-display.test.tsx index c34749f04411..5716e22e5747 100644 --- a/ui/pages/confirmations/components/simulation-details/fiat-display.test.tsx +++ b/ui/pages/confirmations/components/simulation-details/fiat-display.test.tsx @@ -13,27 +13,35 @@ jest.mock('../../../../hooks/useFiatFormatter'); (useFiatFormatter as jest.Mock).mockReturnValue((value: number) => `$${value}`); describe('IndividualFiatDisplay', () => { + // @ts-expect-error This is missing from the Mocha type definitions it.each([ [FIAT_UNAVAILABLE, 'Not Available'], [100, '$100'], [-100, '$100'], - ])('when fiatAmount is %s it renders %s', (fiatAmount, expected) => { - renderWithProvider( - , - store, - ); - expect(screen.getByText(expected)).toBeInTheDocument(); - }); + ])( + 'when fiatAmount is %s it renders %s', + (fiatAmount: number | null, expected: string) => { + renderWithProvider( + , + store, + ); + expect(screen.getByText(expected)).toBeInTheDocument(); + }, + ); }); describe('TotalFiatDisplay', () => { + // @ts-expect-error This is missing from the Mocha type definitions it.each([ [[FIAT_UNAVAILABLE, FIAT_UNAVAILABLE], 'Not Available'], [[], 'Not Available'], [[100, 200, FIAT_UNAVAILABLE, 300], 'Total = $600'], [[-100, -200, FIAT_UNAVAILABLE, -300], 'Total = $600'], - ])('when fiatAmounts is %s it renders %s', (fiatAmounts, expected) => { - renderWithProvider(, store); - expect(screen.getByText(expected)).toBeInTheDocument(); - }); + ])( + 'when fiatAmounts is %s it renders %s', + (fiatAmounts: (number | null)[], expected: string) => { + renderWithProvider(, store); + expect(screen.getByText(expected)).toBeInTheDocument(); + }, + ); }); diff --git a/ui/pages/confirmations/components/simulation-details/formatAmount.test.ts b/ui/pages/confirmations/components/simulation-details/formatAmount.test.ts index 8a226ddca4f7..acb0265468a1 100644 --- a/ui/pages/confirmations/components/simulation-details/formatAmount.test.ts +++ b/ui/pages/confirmations/components/simulation-details/formatAmount.test.ts @@ -12,6 +12,7 @@ describe('formatAmount', () => { expect(formatAmount(locale, new BigNumber(0.0000009))).toBe('<0.000001'); }); + // @ts-expect-error This is missing from the Mocha type definitions it.each([ [0.0000456, '0.000046'], [0.0004567, '0.000457'], @@ -20,11 +21,12 @@ describe('formatAmount', () => { [0.125456, '0.125'], ])( 'formats amount less than 1 with maximum significant digits (%s => %s)', - (amount, expected) => { + (amount: number, expected: string) => { expect(formatAmount(locale, new BigNumber(amount))).toBe(expected); }, ); + // @ts-expect-error This is missing from the Mocha type definitions it.each([ [1.0034, '1.003'], [1.034, '1.034'], @@ -37,7 +39,7 @@ describe('formatAmount', () => { ['1213098292340944.5', '1,213,098,292,340,945'], ])( 'formats amount greater than or equal to 1 with appropriate decimal precision (%s => %s)', - (amount, expected) => { + (amount: number, expected: string) => { expect(formatAmount(locale, new BigNumber(amount))).toBe(expected); }, ); diff --git a/ui/pages/confirmations/components/simulation-details/sortBalanceChanges.test.ts b/ui/pages/confirmations/components/simulation-details/sortBalanceChanges.test.ts index 92a55f514839..9496c1855f80 100644 --- a/ui/pages/confirmations/components/simulation-details/sortBalanceChanges.test.ts +++ b/ui/pages/confirmations/components/simulation-details/sortBalanceChanges.test.ts @@ -13,6 +13,7 @@ describe('sortBalanceChanges', () => { asset: { standard }, } as BalanceChange); + // @ts-expect-error This is missing from the Mocha type definitions it.each([ { criteria: 'fiat amount', @@ -65,7 +66,13 @@ describe('sortBalanceChanges', () => { }, ])( 'should sort balance changes based on $criteria', - ({ balanceChanges, expectedOrder }) => { + ({ + balanceChanges, + expectedOrder, + }: { + balanceChanges: BalanceChange[]; + expectedOrder: BalanceChange[]; + }) => { const sorted = sortBalanceChanges(balanceChanges); expect(sorted).toEqual(expectedOrder); }, diff --git a/ui/pages/confirmations/components/simulation-details/useSimulationMetrics.test.ts b/ui/pages/confirmations/components/simulation-details/useSimulationMetrics.test.ts index 789a3846ab8c..ec5857431f6b 100644 --- a/ui/pages/confirmations/components/simulation-details/useSimulationMetrics.test.ts +++ b/ui/pages/confirmations/components/simulation-details/useSimulationMetrics.test.ts @@ -167,6 +167,7 @@ describe('useSimulationMetrics', () => { jest.restoreAllMocks(); }); + // @ts-expect-error This is missing from the Mocha type definitions it.each([ ['in progress', undefined, 'simulation_in_progress'], [ @@ -179,7 +180,11 @@ describe('useSimulationMetrics', () => { ['changes', { tokenBalanceChanges: [{}] }, 'balance_change'], ])( 'with simulation response if %s', - (_, simulationData, simulationResponse) => { + ( + _: string, + simulationData: Record, + simulationResponse: string, + ) => { useDisplayNamesMock.mockReset(); useDisplayNamesMock.mockReturnValue([]); @@ -196,27 +201,32 @@ describe('useSimulationMetrics', () => { }, ); + // @ts-expect-error This is missing from the Mocha type definitions it.each([ ['receiving', false, 'simulation_receiving_assets_quantity'], ['sending', true, 'simulation_sending_assets_quantity'], - ])('with asset quantity if %s', (_, isNegative, property) => { - const balanceChange = { - ...BALANCE_CHANGE_MOCK, - amount: new BigNumber(isNegative ? -1 : 1), - }; + ])( + 'with asset quantity if %s', + (_: string, isNegative: boolean, property: string) => { + const balanceChange = { + ...BALANCE_CHANGE_MOCK, + amount: new BigNumber(isNegative ? -1 : 1), + }; - expectUpdateTransactionEventFragmentCalled( - { - balanceChanges: [balanceChange, balanceChange, balanceChange], - }, - expect.objectContaining({ - properties: expect.objectContaining({ - [property]: 3, + expectUpdateTransactionEventFragmentCalled( + { + balanceChanges: [balanceChange, balanceChange, balanceChange], + }, + expect.objectContaining({ + properties: expect.objectContaining({ + [property]: 3, + }), }), - }), - ); - }); + ); + }, + ); + // @ts-expect-error This is missing from the Mocha type definitions it.each([ [ 'receiving ERC-20', @@ -274,25 +284,35 @@ describe('useSimulationMetrics', () => { 'simulation_sending_assets_type', [AssetType.Native], ], - ])('with asset type if %s', (_, standard, isNegative, property, value) => { - expectUpdateTransactionEventFragmentCalled( - { - balanceChanges: [ - { - ...BALANCE_CHANGE_MOCK, - asset: { ...BALANCE_CHANGE_MOCK.asset, standard }, - amount: new BigNumber(isNegative ? -1 : 1), - } as BalanceChange, - ], - }, - expect.objectContaining({ - properties: expect.objectContaining({ - [property]: value, + ])( + 'with asset type if %s', + ( + _: string, + standard: TokenStandard, + isNegative: boolean, + property: string, + value: AssetType[], + ) => { + expectUpdateTransactionEventFragmentCalled( + { + balanceChanges: [ + { + ...BALANCE_CHANGE_MOCK, + asset: { ...BALANCE_CHANGE_MOCK.asset, standard }, + amount: new BigNumber(isNegative ? -1 : 1), + } as BalanceChange, + ], + }, + expect.objectContaining({ + properties: expect.objectContaining({ + [property]: value, + }), }), - }), - ); - }); + ); + }, + ); + // @ts-expect-error This is missing from the Mocha type definitions it.each([ [ 'receiving and available', @@ -324,7 +344,13 @@ describe('useSimulationMetrics', () => { ], ])( 'with asset value if %s', - (_, fiatAmount, isNegative, property, expected) => { + ( + _: string, + fiatAmount: number | null, + isNegative: boolean, + property: string, + expected: FiatType, + ) => { const balanceChange = { ...BALANCE_CHANGE_MOCK, amount: new BigNumber(isNegative ? -1 : 1), @@ -344,6 +370,7 @@ describe('useSimulationMetrics', () => { }, ); + // @ts-expect-error This is missing from the Mocha type definitions it.each([ [ 'receiving and native', @@ -411,7 +438,14 @@ describe('useSimulationMetrics', () => { ], ])( 'with asset petname if %s', - (_, isNegative, standard, displayName, property, expected) => { + ( + _: string, + isNegative: boolean, + standard: TokenStandard, + displayName: Record, + property: string, + expected: PetnameType, + ) => { useDisplayNamesMock.mockReturnValue([ displayName as UseDisplayNameResponse, ]); @@ -435,32 +469,36 @@ describe('useSimulationMetrics', () => { }, ); + // @ts-expect-error This is missing from the Mocha type definitions it.each([ ['receiving', false, 'simulation_receiving_assets_total_value'], ['sending', true, 'simulation_sending_assets_total_value'], - ])('with asset total value if %s', (_, isNegative, property) => { - const balanceChange1 = { - ...BALANCE_CHANGE_MOCK, - amount: new BigNumber(isNegative ? -1 : 1), - fiatAmount: 1.23, - }; + ])( + 'with asset total value if %s', + (_: string, isNegative: boolean, property: string) => { + const balanceChange1 = { + ...BALANCE_CHANGE_MOCK, + amount: new BigNumber(isNegative ? -1 : 1), + fiatAmount: 1.23, + }; - const balanceChange2 = { - ...balanceChange1, - fiatAmount: 1.23, - }; + const balanceChange2 = { + ...balanceChange1, + fiatAmount: 1.23, + }; - expectUpdateTransactionEventFragmentCalled( - { - balanceChanges: [balanceChange1, balanceChange2], - }, - expect.objectContaining({ - sensitiveProperties: expect.objectContaining({ - [property]: 2.46, + expectUpdateTransactionEventFragmentCalled( + { + balanceChanges: [balanceChange1, balanceChange2], + }, + expect.objectContaining({ + sensitiveProperties: expect.objectContaining({ + [property]: 2.46, + }), }), - }), - ); - }); + ); + }, + ); }); describe('creates incomplete asset event', () => { @@ -516,6 +554,7 @@ describe('useSimulationMetrics', () => { }); }); + // @ts-expect-error This is missing from the Mocha type definitions it.each([ [ 'simulation disabled', @@ -528,15 +567,22 @@ describe('useSimulationMetrics', () => { { error: { code: SimulationErrorCode.ChainNotSupported } }, ], ['metrics not enabled', false, undefined], - ])('does not update fragment if %s', (_, enableMetrics, simulationData) => { - useSimulationMetrics({ - enableMetrics, - balanceChanges: [BALANCE_CHANGE_MOCK], - simulationData: simulationData as SimulationData, - loading: false, - transactionId: TRANSACTION_ID_MOCK, - }); + ])( + 'does not update fragment if %s', + ( + _: string, + enableMetrics: boolean, + simulationData: { error: { code: SimulationErrorCode } } | undefined, + ) => { + useSimulationMetrics({ + enableMetrics, + balanceChanges: [BALANCE_CHANGE_MOCK], + simulationData: simulationData as SimulationData, + loading: false, + transactionId: TRANSACTION_ID_MOCK, + }); - expect(updateTransactionEventFragmentMock).not.toHaveBeenCalled(); - }); + expect(updateTransactionEventFragmentMock).not.toHaveBeenCalled(); + }, + ); }); diff --git a/ui/pages/confirmations/hooks/alerts/utils.test.ts b/ui/pages/confirmations/hooks/alerts/utils.test.ts index 4499d5a8361a..292adc5ed142 100644 --- a/ui/pages/confirmations/hooks/alerts/utils.test.ts +++ b/ui/pages/confirmations/hooks/alerts/utils.test.ts @@ -5,15 +5,19 @@ import { getProviderAlertSeverity, normalizeProviderAlert } from './utils'; describe('Utils', () => { describe('getProviderAlertSeverity', () => { + // @ts-expect-error This is missing from the Mocha type definitions it.each([ [BlockaidResultType.Malicious, Severity.Danger], [BlockaidResultType.Warning, Severity.Warning], ['Other', Severity.Info], - ])('maps %s to %s', (inputSeverity, expectedSeverity) => { - expect( - getProviderAlertSeverity(inputSeverity as BlockaidResultType), - ).toBe(expectedSeverity); - }); + ])( + 'maps %s to %s', + (inputSeverity: BlockaidResultType, expectedSeverity: Severity) => { + expect( + getProviderAlertSeverity(inputSeverity as BlockaidResultType), + ).toBe(expectedSeverity); + }, + ); }); describe('normalizeProviderAlert', () => { From 04c2e90094802b23b4265e2ad303978cd3e132c0 Mon Sep 17 00:00:00 2001 From: legobeat <109787230+legobeat@users.noreply.github.com> Date: Tue, 4 Jun 2024 13:16:37 +0900 Subject: [PATCH 37/43] fix: @metamask/transaction-controller@^29.1.0->^30.0.0 (#24861) --- ...rk-controller-npm-18.1.2-1bcb8d8610.patch} | 28 ++-- .../nonce-tracker-npm-3.0.0-c5e9a93f9d.patch | 37 ----- lavamoat/browserify/beta/policy.json | 47 ++---- lavamoat/browserify/desktop/policy.json | 47 ++---- lavamoat/browserify/flask/policy.json | 47 ++---- lavamoat/browserify/main/policy.json | 47 ++---- lavamoat/browserify/mmi/policy.json | 47 ++---- package.json | 15 +- yarn.lock | 152 +++++------------- 9 files changed, 121 insertions(+), 346 deletions(-) rename .yarn/patches/{@metamask-network-controller-npm-18.1.0-680908c29a.patch => @metamask-network-controller-npm-18.1.2-1bcb8d8610.patch} (69%) delete mode 100644 .yarn/patches/nonce-tracker-npm-3.0.0-c5e9a93f9d.patch diff --git a/.yarn/patches/@metamask-network-controller-npm-18.1.0-680908c29a.patch b/.yarn/patches/@metamask-network-controller-npm-18.1.2-1bcb8d8610.patch similarity index 69% rename from .yarn/patches/@metamask-network-controller-npm-18.1.0-680908c29a.patch rename to .yarn/patches/@metamask-network-controller-npm-18.1.2-1bcb8d8610.patch index 581382429ebb..f4c01d448364 100644 --- a/.yarn/patches/@metamask-network-controller-npm-18.1.0-680908c29a.patch +++ b/.yarn/patches/@metamask-network-controller-npm-18.1.2-1bcb8d8610.patch @@ -1,23 +1,23 @@ -diff --git a/dist/chunk-AJED3H6M.mjs b/dist/chunk-AJED3H6M.mjs -index c7f9903611ccf8f0bb01bea786177efc1a915f7f..26d559fe80f193288badd737cfb8f9d91eb3fa67 100644 ---- a/dist/chunk-AJED3H6M.mjs -+++ b/dist/chunk-AJED3H6M.mjs -@@ -341,7 +341,6 @@ var NetworkController = class extends BaseController { +diff --git a/dist/chunk-4ZD3DTQ7.js b/dist/chunk-4ZD3DTQ7.js +index e172d15715b3cb4f26c42e51f8c7ff7394075bfe..148c802bac1d79f784618d18fa61d9de3330cae7 100644 +--- a/dist/chunk-4ZD3DTQ7.js ++++ b/dist/chunk-4ZD3DTQ7.js +@@ -341,7 +341,6 @@ var NetworkController = class extends _basecontroller.BaseController { async initializeProvider() { - __privateMethod(this, _ensureAutoManagedNetworkClientRegistryPopulated, ensureAutoManagedNetworkClientRegistryPopulated_fn).call(this); - __privateMethod(this, _applyNetworkSelection, applyNetworkSelection_fn).call(this); + _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _ensureAutoManagedNetworkClientRegistryPopulated, ensureAutoManagedNetworkClientRegistryPopulated_fn).call(this); + _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _applyNetworkSelection, applyNetworkSelection_fn).call(this); - await this.lookupNetwork(); } /** * Refreshes the network meta with EIP-1559 support and the network status -diff --git a/dist/chunk-UEWIYOS6.js b/dist/chunk-UEWIYOS6.js -index 05e09914e085ed2fb67106bc750b8bb46882c80e..16eb520b7658625e411c9c6e35f86bd49fcce52f 100644 ---- a/dist/chunk-UEWIYOS6.js -+++ b/dist/chunk-UEWIYOS6.js -@@ -341,7 +341,6 @@ var NetworkController = class extends _basecontroller.BaseController { +diff --git a/dist/chunk-UG2NYGJD.mjs b/dist/chunk-UG2NYGJD.mjs +index c39eb49a4a1d2b4ddb78aadb4fb03446b1705528..cd7ce41f31434e66b56f584c177d4952e334e212 100644 +--- a/dist/chunk-UG2NYGJD.mjs ++++ b/dist/chunk-UG2NYGJD.mjs +@@ -341,7 +341,6 @@ var NetworkController = class extends BaseController { async initializeProvider() { - _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _ensureAutoManagedNetworkClientRegistryPopulated, ensureAutoManagedNetworkClientRegistryPopulated_fn).call(this); - _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _applyNetworkSelection, applyNetworkSelection_fn).call(this); + __privateMethod(this, _ensureAutoManagedNetworkClientRegistryPopulated, ensureAutoManagedNetworkClientRegistryPopulated_fn).call(this); + __privateMethod(this, _applyNetworkSelection, applyNetworkSelection_fn).call(this); - await this.lookupNetwork(); } /** diff --git a/.yarn/patches/nonce-tracker-npm-3.0.0-c5e9a93f9d.patch b/.yarn/patches/nonce-tracker-npm-3.0.0-c5e9a93f9d.patch deleted file mode 100644 index 6f5616994ab0..000000000000 --- a/.yarn/patches/nonce-tracker-npm-3.0.0-c5e9a93f9d.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/dist/NonceTracker.js b/dist/NonceTracker.js -index c97fdc381df0920d862492d41c670d57d5c75941..f7f86019ff0809889a63ef4d9865dafa53651a74 100644 ---- a/dist/NonceTracker.js -+++ b/dist/NonceTracker.js -@@ -14,7 +14,6 @@ class NonceTracker { - constructor(opts) { - this.provider = opts.provider; - this.blockTracker = opts.blockTracker; -- this.web3 = new Web3Provider(opts.provider); - this.getPendingTransactions = opts.getPendingTransactions; - this.getConfirmedTransactions = opts.getConfirmedTransactions; - this.lockMap = {}; -@@ -98,7 +97,7 @@ class NonceTracker { - // we need to make sure our base count - // and pending count are from the same block - const blockNumber = await this.blockTracker.getLatestBlock(); -- const baseCount = await this.web3.getTransactionCount(address, blockNumber); -+ const baseCount = await new Web3Provider(this.provider).getTransactionCount(address, blockNumber); - assert_1.default(Number.isInteger(baseCount), `nonce-tracker - baseCount is not an integer - got: (${typeof baseCount}) "${baseCount}"`); - return { - name: 'network', -diff --git a/dist/NonceTracker.js.map b/dist/NonceTracker.js.map -deleted file mode 100644 -index a34cfe0d83f0c2b176d3edf86f1d17e29cc2ef26..0000000000000000000000000000000000000000 ---- a/dist/NonceTracker.js.map -+++ /dev/null -@@ -1 +0,0 @@ --{"version":3,"file":"NonceTracker.js","sourceRoot":"","sources":["../src/NonceTracker.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/index.js.map b/dist/index.js.map -deleted file mode 100644 -index 3507fe142e8e1fccbea8950950f80ca391a4b293..0000000000000000000000000000000000000000 ---- a/dist/index.js.map -+++ /dev/null -@@ -1 +0,0 @@ --{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA"} -\ No newline at end of file diff --git a/lavamoat/browserify/beta/policy.json b/lavamoat/browserify/beta/policy.json index c88fe81c8157..d2d33794b42e 100644 --- a/lavamoat/browserify/beta/policy.json +++ b/lavamoat/browserify/beta/policy.json @@ -1034,19 +1034,6 @@ "sass-loader>klona": true } }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": { - "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": true, - "@metamask/safe-event-emitter": true - } - }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": { - "packages": { - "@metamask/providers>@metamask/rpc-errors": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true - } - }, "@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": { "packages": { "@metamask/providers>@metamask/rpc-errors": true, @@ -1684,11 +1671,11 @@ "@metamask/controller-utils": true, "@metamask/eth-json-rpc-middleware": true, "@metamask/eth-query": true, + "@metamask/eth-token-tracker>@metamask/eth-block-tracker": true, "@metamask/network-controller>@metamask/base-controller": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura": true, "@metamask/network-controller>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/swappable-obj-proxy": true, - "@metamask/network-controller>eth-block-tracker": true, "@metamask/providers>@metamask/rpc-errors": true, "@metamask/snaps-controllers>@metamask/json-rpc-engine": true, "@metamask/utils": true, @@ -1709,13 +1696,19 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": true, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, "@metamask/providers>@metamask/rpc-errors": true, "@metamask/utils": true, "node-fetch": true } }, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": { + "packages": { + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, + "@metamask/safe-event-emitter": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": { "packages": { "@metamask/providers>@metamask/rpc-errors": true, @@ -1729,19 +1722,6 @@ "@metamask/snaps-controllers>@metamask/json-rpc-engine": true } }, - "@metamask/network-controller>eth-block-tracker": { - "globals": { - "clearTimeout": true, - "console.error": true, - "setTimeout": true - }, - "packages": { - "@metamask/eth-query>json-rpc-random-id": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true, - "pify": true - } - }, "@metamask/notification-controller>nanoid": { "globals": { "crypto.getRandomValues": true @@ -2082,7 +2062,7 @@ "@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/tx": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/util": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>eth-method-registry": true, - "@metamask/transaction-controller>nonce-tracker": true, + "@metamask/transaction-controller>@metamask/nonce-tracker": true, "@metamask/utils": true, "bn.js": true, "browserify>buffer": true, @@ -2339,7 +2319,7 @@ "@metamask/network-controller": true, "@metamask/providers>@metamask/rpc-errors": true, "@metamask/transaction-controller>@metamask/base-controller": true, - "@metamask/transaction-controller>nonce-tracker": true, + "@metamask/transaction-controller>@metamask/nonce-tracker": true, "@metamask/utils": true, "bn.js": true, "browserify>buffer": true, @@ -2358,15 +2338,14 @@ "immer": true } }, - "@metamask/transaction-controller>nonce-tracker": { + "@metamask/transaction-controller>@metamask/nonce-tracker": { "packages": { "@ethersproject/providers": true, - "@metamask/network-controller>eth-block-tracker": true, - "@metamask/transaction-controller>nonce-tracker>async-mutex": true, + "@metamask/transaction-controller>@metamask/nonce-tracker>async-mutex": true, "browserify>assert": true } }, - "@metamask/transaction-controller>nonce-tracker>async-mutex": { + "@metamask/transaction-controller>@metamask/nonce-tracker>async-mutex": { "globals": { "clearTimeout": true, "setTimeout": true diff --git a/lavamoat/browserify/desktop/policy.json b/lavamoat/browserify/desktop/policy.json index 7c5d7ecd3dae..f8783008cb8f 100644 --- a/lavamoat/browserify/desktop/policy.json +++ b/lavamoat/browserify/desktop/policy.json @@ -1179,19 +1179,6 @@ "sass-loader>klona": true } }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": { - "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": true, - "@metamask/safe-event-emitter": true - } - }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": { - "packages": { - "@metamask/providers>@metamask/rpc-errors": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true - } - }, "@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": { "packages": { "@metamask/providers>@metamask/rpc-errors": true, @@ -1829,11 +1816,11 @@ "@metamask/controller-utils": true, "@metamask/eth-json-rpc-middleware": true, "@metamask/eth-query": true, + "@metamask/eth-token-tracker>@metamask/eth-block-tracker": true, "@metamask/network-controller>@metamask/base-controller": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura": true, "@metamask/network-controller>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/swappable-obj-proxy": true, - "@metamask/network-controller>eth-block-tracker": true, "@metamask/providers>@metamask/rpc-errors": true, "@metamask/snaps-controllers>@metamask/json-rpc-engine": true, "@metamask/utils": true, @@ -1854,13 +1841,19 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": true, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, "@metamask/providers>@metamask/rpc-errors": true, "@metamask/utils": true, "node-fetch": true } }, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": { + "packages": { + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, + "@metamask/safe-event-emitter": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": { "packages": { "@metamask/providers>@metamask/rpc-errors": true, @@ -1874,19 +1867,6 @@ "@metamask/snaps-controllers>@metamask/json-rpc-engine": true } }, - "@metamask/network-controller>eth-block-tracker": { - "globals": { - "clearTimeout": true, - "console.error": true, - "setTimeout": true - }, - "packages": { - "@metamask/eth-query>json-rpc-random-id": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true, - "pify": true - } - }, "@metamask/notification-controller": { "packages": { "@metamask/notification-controller>@metamask/base-controller": true, @@ -2272,7 +2252,7 @@ "@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/tx": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/util": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>eth-method-registry": true, - "@metamask/transaction-controller>nonce-tracker": true, + "@metamask/transaction-controller>@metamask/nonce-tracker": true, "@metamask/utils": true, "bn.js": true, "browserify>buffer": true, @@ -2630,7 +2610,7 @@ "@metamask/network-controller": true, "@metamask/providers>@metamask/rpc-errors": true, "@metamask/transaction-controller>@metamask/base-controller": true, - "@metamask/transaction-controller>nonce-tracker": true, + "@metamask/transaction-controller>@metamask/nonce-tracker": true, "@metamask/utils": true, "bn.js": true, "browserify>buffer": true, @@ -2649,15 +2629,14 @@ "immer": true } }, - "@metamask/transaction-controller>nonce-tracker": { + "@metamask/transaction-controller>@metamask/nonce-tracker": { "packages": { "@ethersproject/providers": true, - "@metamask/network-controller>eth-block-tracker": true, - "@metamask/transaction-controller>nonce-tracker>async-mutex": true, + "@metamask/transaction-controller>@metamask/nonce-tracker>async-mutex": true, "browserify>assert": true } }, - "@metamask/transaction-controller>nonce-tracker>async-mutex": { + "@metamask/transaction-controller>@metamask/nonce-tracker>async-mutex": { "globals": { "clearTimeout": true, "setTimeout": true diff --git a/lavamoat/browserify/flask/policy.json b/lavamoat/browserify/flask/policy.json index 95538eded218..3819cdaa0407 100644 --- a/lavamoat/browserify/flask/policy.json +++ b/lavamoat/browserify/flask/policy.json @@ -1179,19 +1179,6 @@ "sass-loader>klona": true } }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": { - "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": true, - "@metamask/safe-event-emitter": true - } - }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": { - "packages": { - "@metamask/providers>@metamask/rpc-errors": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true - } - }, "@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": { "packages": { "@metamask/providers>@metamask/rpc-errors": true, @@ -1829,11 +1816,11 @@ "@metamask/controller-utils": true, "@metamask/eth-json-rpc-middleware": true, "@metamask/eth-query": true, + "@metamask/eth-token-tracker>@metamask/eth-block-tracker": true, "@metamask/network-controller>@metamask/base-controller": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura": true, "@metamask/network-controller>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/swappable-obj-proxy": true, - "@metamask/network-controller>eth-block-tracker": true, "@metamask/providers>@metamask/rpc-errors": true, "@metamask/snaps-controllers>@metamask/json-rpc-engine": true, "@metamask/utils": true, @@ -1854,13 +1841,19 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": true, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, "@metamask/providers>@metamask/rpc-errors": true, "@metamask/utils": true, "node-fetch": true } }, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": { + "packages": { + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, + "@metamask/safe-event-emitter": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": { "packages": { "@metamask/providers>@metamask/rpc-errors": true, @@ -1874,19 +1867,6 @@ "@metamask/snaps-controllers>@metamask/json-rpc-engine": true } }, - "@metamask/network-controller>eth-block-tracker": { - "globals": { - "clearTimeout": true, - "console.error": true, - "setTimeout": true - }, - "packages": { - "@metamask/eth-query>json-rpc-random-id": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true, - "pify": true - } - }, "@metamask/notification-controller": { "packages": { "@metamask/notification-controller>@metamask/base-controller": true, @@ -2324,7 +2304,7 @@ "@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/tx": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/util": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>eth-method-registry": true, - "@metamask/transaction-controller>nonce-tracker": true, + "@metamask/transaction-controller>@metamask/nonce-tracker": true, "@metamask/utils": true, "bn.js": true, "browserify>buffer": true, @@ -2682,7 +2662,7 @@ "@metamask/network-controller": true, "@metamask/providers>@metamask/rpc-errors": true, "@metamask/transaction-controller>@metamask/base-controller": true, - "@metamask/transaction-controller>nonce-tracker": true, + "@metamask/transaction-controller>@metamask/nonce-tracker": true, "@metamask/utils": true, "bn.js": true, "browserify>buffer": true, @@ -2701,15 +2681,14 @@ "immer": true } }, - "@metamask/transaction-controller>nonce-tracker": { + "@metamask/transaction-controller>@metamask/nonce-tracker": { "packages": { "@ethersproject/providers": true, - "@metamask/network-controller>eth-block-tracker": true, - "@metamask/transaction-controller>nonce-tracker>async-mutex": true, + "@metamask/transaction-controller>@metamask/nonce-tracker>async-mutex": true, "browserify>assert": true } }, - "@metamask/transaction-controller>nonce-tracker>async-mutex": { + "@metamask/transaction-controller>@metamask/nonce-tracker>async-mutex": { "globals": { "clearTimeout": true, "setTimeout": true diff --git a/lavamoat/browserify/main/policy.json b/lavamoat/browserify/main/policy.json index 1a3958cffba7..c0d371a59a36 100644 --- a/lavamoat/browserify/main/policy.json +++ b/lavamoat/browserify/main/policy.json @@ -1034,19 +1034,6 @@ "sass-loader>klona": true } }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": { - "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": true, - "@metamask/safe-event-emitter": true - } - }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": { - "packages": { - "@metamask/providers>@metamask/rpc-errors": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true - } - }, "@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": { "packages": { "@metamask/providers>@metamask/rpc-errors": true, @@ -1684,11 +1671,11 @@ "@metamask/controller-utils": true, "@metamask/eth-json-rpc-middleware": true, "@metamask/eth-query": true, + "@metamask/eth-token-tracker>@metamask/eth-block-tracker": true, "@metamask/network-controller>@metamask/base-controller": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura": true, "@metamask/network-controller>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/swappable-obj-proxy": true, - "@metamask/network-controller>eth-block-tracker": true, "@metamask/providers>@metamask/rpc-errors": true, "@metamask/snaps-controllers>@metamask/json-rpc-engine": true, "@metamask/utils": true, @@ -1709,13 +1696,19 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": true, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, "@metamask/providers>@metamask/rpc-errors": true, "@metamask/utils": true, "node-fetch": true } }, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": { + "packages": { + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, + "@metamask/safe-event-emitter": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": { "packages": { "@metamask/providers>@metamask/rpc-errors": true, @@ -1729,19 +1722,6 @@ "@metamask/snaps-controllers>@metamask/json-rpc-engine": true } }, - "@metamask/network-controller>eth-block-tracker": { - "globals": { - "clearTimeout": true, - "console.error": true, - "setTimeout": true - }, - "packages": { - "@metamask/eth-query>json-rpc-random-id": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true, - "pify": true - } - }, "@metamask/notification-controller": { "packages": { "@metamask/notification-controller>@metamask/base-controller": true, @@ -2179,7 +2159,7 @@ "@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/tx": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/util": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>eth-method-registry": true, - "@metamask/transaction-controller>nonce-tracker": true, + "@metamask/transaction-controller>@metamask/nonce-tracker": true, "@metamask/utils": true, "bn.js": true, "browserify>buffer": true, @@ -2537,7 +2517,7 @@ "@metamask/network-controller": true, "@metamask/providers>@metamask/rpc-errors": true, "@metamask/transaction-controller>@metamask/base-controller": true, - "@metamask/transaction-controller>nonce-tracker": true, + "@metamask/transaction-controller>@metamask/nonce-tracker": true, "@metamask/utils": true, "bn.js": true, "browserify>buffer": true, @@ -2556,15 +2536,14 @@ "immer": true } }, - "@metamask/transaction-controller>nonce-tracker": { + "@metamask/transaction-controller>@metamask/nonce-tracker": { "packages": { "@ethersproject/providers": true, - "@metamask/network-controller>eth-block-tracker": true, - "@metamask/transaction-controller>nonce-tracker>async-mutex": true, + "@metamask/transaction-controller>@metamask/nonce-tracker>async-mutex": true, "browserify>assert": true } }, - "@metamask/transaction-controller>nonce-tracker>async-mutex": { + "@metamask/transaction-controller>@metamask/nonce-tracker>async-mutex": { "globals": { "clearTimeout": true, "setTimeout": true diff --git a/lavamoat/browserify/mmi/policy.json b/lavamoat/browserify/mmi/policy.json index 44e91993d391..dcbe1d079ca4 100644 --- a/lavamoat/browserify/mmi/policy.json +++ b/lavamoat/browserify/mmi/policy.json @@ -1319,19 +1319,6 @@ "sass-loader>klona": true } }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": { - "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": true, - "@metamask/safe-event-emitter": true - } - }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": { - "packages": { - "@metamask/providers>@metamask/rpc-errors": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true - } - }, "@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": { "packages": { "@metamask/providers>@metamask/rpc-errors": true, @@ -1969,11 +1956,11 @@ "@metamask/controller-utils": true, "@metamask/eth-json-rpc-middleware": true, "@metamask/eth-query": true, + "@metamask/eth-token-tracker>@metamask/eth-block-tracker": true, "@metamask/network-controller>@metamask/base-controller": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura": true, "@metamask/network-controller>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/swappable-obj-proxy": true, - "@metamask/network-controller>eth-block-tracker": true, "@metamask/providers>@metamask/rpc-errors": true, "@metamask/snaps-controllers>@metamask/json-rpc-engine": true, "@metamask/utils": true, @@ -1994,13 +1981,19 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": true, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, "@metamask/providers>@metamask/rpc-errors": true, "@metamask/utils": true, "node-fetch": true } }, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": { + "packages": { + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, + "@metamask/safe-event-emitter": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": { "packages": { "@metamask/providers>@metamask/rpc-errors": true, @@ -2014,19 +2007,6 @@ "@metamask/snaps-controllers>@metamask/json-rpc-engine": true } }, - "@metamask/network-controller>eth-block-tracker": { - "globals": { - "clearTimeout": true, - "console.error": true, - "setTimeout": true - }, - "packages": { - "@metamask/eth-query>json-rpc-random-id": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true, - "pify": true - } - }, "@metamask/notification-controller": { "packages": { "@metamask/notification-controller>@metamask/base-controller": true, @@ -2464,7 +2444,7 @@ "@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/tx": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/util": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>eth-method-registry": true, - "@metamask/transaction-controller>nonce-tracker": true, + "@metamask/transaction-controller>@metamask/nonce-tracker": true, "@metamask/utils": true, "bn.js": true, "browserify>buffer": true, @@ -2822,7 +2802,7 @@ "@metamask/network-controller": true, "@metamask/providers>@metamask/rpc-errors": true, "@metamask/transaction-controller>@metamask/base-controller": true, - "@metamask/transaction-controller>nonce-tracker": true, + "@metamask/transaction-controller>@metamask/nonce-tracker": true, "@metamask/utils": true, "bn.js": true, "browserify>buffer": true, @@ -2841,15 +2821,14 @@ "immer": true } }, - "@metamask/transaction-controller>nonce-tracker": { + "@metamask/transaction-controller>@metamask/nonce-tracker": { "packages": { "@ethersproject/providers": true, - "@metamask/network-controller>eth-block-tracker": true, - "@metamask/transaction-controller>nonce-tracker>async-mutex": true, + "@metamask/transaction-controller>@metamask/nonce-tracker>async-mutex": true, "browserify>assert": true } }, - "@metamask/transaction-controller>nonce-tracker>async-mutex": { + "@metamask/transaction-controller>@metamask/nonce-tracker>async-mutex": { "globals": { "clearTimeout": true, "setTimeout": true diff --git a/package.json b/package.json index cb33679b90d5..fe291fb7dc54 100644 --- a/package.json +++ b/package.json @@ -216,10 +216,10 @@ "request@^2.85.0": "patch:request@npm%3A2.88.2#./.yarn/patches/request-npm-2.88.2-f4a57c72c4.patch", "semver@7.3.7": "^7.5.4", "semver@7.3.8": "^7.5.4", - "nonce-tracker@npm:^3.0.0": "patch:nonce-tracker@npm%3A3.0.0#~/.yarn/patches/nonce-tracker-npm-3.0.0-c5e9a93f9d.patch", "@trezor/schema-utils@npm:1.0.2": "patch:@trezor/schema-utils@npm%3A1.0.2#~/.yarn/patches/@trezor-schema-utils-npm-1.0.2-7dd48689b2.patch", "lavamoat-core@npm:^15.1.1": "patch:lavamoat-core@npm%3A15.1.1#~/.yarn/patches/lavamoat-core-npm-15.1.1-51fbe39988.patch", "@metamask/snaps-sdk": "^4.3.0", + "@metamask/transaction-controller": "^30.0.0", "@babel/runtime@npm:^7.7.6": "patch:@babel/runtime@npm%3A7.24.0#~/.yarn/patches/@babel-runtime-npm-7.24.0-7eb1dd11a2.patch", "@babel/runtime@npm:^7.9.2": "patch:@babel/runtime@npm%3A7.24.0#~/.yarn/patches/@babel-runtime-npm-7.24.0-7eb1dd11a2.patch", "@babel/runtime@npm:^7.12.5": "patch:@babel/runtime@npm%3A7.24.0#~/.yarn/patches/@babel-runtime-npm-7.24.0-7eb1dd11a2.patch", @@ -240,12 +240,6 @@ "@babel/runtime@npm:^7.18.3": "patch:@babel/runtime@npm%3A7.24.0#~/.yarn/patches/@babel-runtime-npm-7.24.0-7eb1dd11a2.patch", "@babel/runtime@npm:^7.8.3": "patch:@babel/runtime@npm%3A7.24.0#~/.yarn/patches/@babel-runtime-npm-7.24.0-7eb1dd11a2.patch", "@babel/runtime@npm:^7.8.4": "patch:@babel/runtime@npm%3A7.24.0#~/.yarn/patches/@babel-runtime-npm-7.24.0-7eb1dd11a2.patch", - "@metamask/network-controller@npm:^17.2.0": "patch:@metamask/network-controller@npm%3A18.1.0#~/.yarn/patches/@metamask-network-controller-npm-18.1.0-680908c29a.patch", - "@metamask/network-controller@npm:^17.0.0": "patch:@metamask/network-controller@npm%3A18.1.0#~/.yarn/patches/@metamask-network-controller-npm-18.1.0-680908c29a.patch", - "@metamask/network-controller@npm:^15.0.0": "patch:@metamask/network-controller@npm%3A18.1.0#~/.yarn/patches/@metamask-network-controller-npm-18.1.0-680908c29a.patch", - "@metamask/network-controller@npm:^18.0.1": "patch:@metamask/network-controller@npm%3A18.1.0#~/.yarn/patches/@metamask-network-controller-npm-18.1.0-680908c29a.patch", - "@metamask/network-controller@npm:^17.2.1": "patch:@metamask/network-controller@npm%3A18.1.0#~/.yarn/patches/@metamask-network-controller-npm-18.1.0-680908c29a.patch", - "@metamask/network-controller@npm:^18.1.0": "patch:@metamask/network-controller@npm%3A18.1.0#~/.yarn/patches/@metamask-network-controller-npm-18.1.0-680908c29a.patch", "@metamask/keyring-controller@npm:^13.0.0": "patch:@metamask/keyring-controller@npm%3A15.0.0#~/.yarn/patches/@metamask-keyring-controller-npm-15.0.0-fa070ce311.patch", "@metamask/keyring-controller@npm:^12.2.0": "patch:@metamask/keyring-controller@npm%3A15.0.0#~/.yarn/patches/@metamask-keyring-controller-npm-15.0.0-fa070ce311.patch", "@metamask/keyring-controller@npm:^14.0.1": "patch:@metamask/keyring-controller@npm%3A15.0.0#~/.yarn/patches/@metamask-keyring-controller-npm-15.0.0-fa070ce311.patch", @@ -255,7 +249,8 @@ "ts-mixer@npm:^6.0.3": "patch:ts-mixer@npm%3A6.0.4#~/.yarn/patches/ts-mixer-npm-6.0.4-5d9747bdf5.patch", "sucrase@npm:3.34.0": "^3.35.0", "@expo/config/glob": "^10.3.10", - "@expo/config-plugins/glob": "^10.3.10" + "@expo/config-plugins/glob": "^10.3.10", + "@metamask/network-controller": "patch:@metamask/network-controller@npm%3A18.1.2#~/.yarn/patches/@metamask-network-controller-npm-18.1.2-1bcb8d8610.patch" }, "dependencies": { "@babel/runtime": "patch:@babel/runtime@npm%3A7.24.0#~/.yarn/patches/@babel-runtime-npm-7.24.0-7eb1dd11a2.patch", @@ -317,7 +312,7 @@ "@metamask/message-signing-snap": "^0.3.3", "@metamask/metamask-eth-abis": "^3.1.1", "@metamask/name-controller": "^6.0.1", - "@metamask/network-controller": "patch:@metamask/network-controller@npm%3A18.1.0#~/.yarn/patches/@metamask-network-controller-npm-18.1.0-680908c29a.patch", + "@metamask/network-controller": "patch:@metamask/network-controller@npm%3A18.1.2#~/.yarn/patches/@metamask-network-controller-npm-18.1.2-1bcb8d8610.patch", "@metamask/notification-controller": "^3.0.0", "@metamask/object-multiplex": "^2.0.0", "@metamask/obs-store": "^9.0.0", @@ -339,7 +334,7 @@ "@metamask/snaps-rpc-methods": "^9.1.0", "@metamask/snaps-sdk": "^4.3.0", "@metamask/snaps-utils": "^7.4.0", - "@metamask/transaction-controller": "^29.1.0", + "@metamask/transaction-controller": "^30.0.0", "@metamask/user-operation-controller": "^10.0.0", "@metamask/utils": "^8.2.1", "@ngraveio/bc-ur": "^1.1.12", diff --git a/yarn.lock b/yarn.lock index 2fa690649d51..593b4a1e3b1d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4782,7 +4782,7 @@ __metadata: languageName: node linkType: hard -"@metamask/controller-utils@npm:^9.0.1, @metamask/controller-utils@npm:^9.0.2, @metamask/controller-utils@npm:^9.1.0": +"@metamask/controller-utils@npm:^9.0.1, @metamask/controller-utils@npm:^9.1.0": version: 9.1.0 resolution: "@metamask/controller-utils@npm:9.1.0" dependencies: @@ -4965,7 +4965,7 @@ __metadata: languageName: node linkType: hard -"@metamask/eth-json-rpc-middleware@npm:^12.1.0, @metamask/eth-json-rpc-middleware@npm:^12.1.1": +"@metamask/eth-json-rpc-middleware@npm:^12.1.1": version: 12.1.1 resolution: "@metamask/eth-json-rpc-middleware@npm:12.1.1" dependencies: @@ -4993,7 +4993,7 @@ __metadata: languageName: node linkType: hard -"@metamask/eth-json-rpc-provider@npm:^3.0.1, @metamask/eth-json-rpc-provider@npm:^3.0.2": +"@metamask/eth-json-rpc-provider@npm:^3.0.2": version: 3.0.2 resolution: "@metamask/eth-json-rpc-provider@npm:3.0.2" dependencies: @@ -5246,7 +5246,7 @@ __metadata: languageName: node linkType: hard -"@metamask/gas-fee-controller@npm:^15.1.0, @metamask/gas-fee-controller@npm:^15.1.1, @metamask/gas-fee-controller@npm:^15.1.2": +"@metamask/gas-fee-controller@npm:^15.1.1, @metamask/gas-fee-controller@npm:^15.1.2": version: 15.1.2 resolution: "@metamask/gas-fee-controller@npm:15.1.2" dependencies: @@ -5502,36 +5502,37 @@ __metadata: languageName: node linkType: hard -"@metamask/network-controller@npm:18.1.0": - version: 18.1.0 - resolution: "@metamask/network-controller@npm:18.1.0" +"@metamask/network-controller@npm:18.1.2": + version: 18.1.2 + resolution: "@metamask/network-controller@npm:18.1.2" dependencies: - "@metamask/base-controller": "npm:^5.0.1" - "@metamask/controller-utils": "npm:^9.0.2" + "@metamask/base-controller": "npm:^5.0.2" + "@metamask/controller-utils": "npm:^9.1.0" + "@metamask/eth-block-tracker": "npm:^9.0.2" "@metamask/eth-json-rpc-infura": "npm:^9.1.0" - "@metamask/eth-json-rpc-middleware": "npm:^12.1.0" - "@metamask/eth-json-rpc-provider": "npm:^3.0.1" + "@metamask/eth-json-rpc-middleware": "npm:^12.1.1" + "@metamask/eth-json-rpc-provider": "npm:^3.0.2" "@metamask/eth-query": "npm:^4.0.0" - "@metamask/json-rpc-engine": "npm:^8.0.1" + "@metamask/json-rpc-engine": "npm:^8.0.2" "@metamask/rpc-errors": "npm:^6.2.1" "@metamask/swappable-obj-proxy": "npm:^2.2.0" "@metamask/utils": "npm:^8.3.0" async-mutex: "npm:^0.2.6" - eth-block-tracker: "npm:^8.0.0" immer: "npm:^9.0.6" uuid: "npm:^8.3.2" - checksum: 10/cc3751205de1514333a99a638fc6fa7bdaa7fac505e32531fb1a71af5e9839e994de79c59ab91b08bdc8d3fbb4bb17330a677adf75754e5f56745d6d68e56515 + checksum: 10/546829c5d24fa64aa2cae2e7b5f29edf4acb12e1367d7ae92ca30e2b1f56b79d53c4d069bc671029d06b0105eec3581204bcedcdf88896aacb38f7cc0e014cf8 languageName: node linkType: hard -"@metamask/network-controller@npm:^18.1.1": - version: 18.1.1 - resolution: "@metamask/network-controller@npm:18.1.1" +"@metamask/network-controller@patch:@metamask/network-controller@npm%3A18.1.2#~/.yarn/patches/@metamask-network-controller-npm-18.1.2-1bcb8d8610.patch": + version: 18.1.2 + resolution: "@metamask/network-controller@patch:@metamask/network-controller@npm%3A18.1.2#~/.yarn/patches/@metamask-network-controller-npm-18.1.2-1bcb8d8610.patch::version=18.1.2&hash=b6da0e" dependencies: "@metamask/base-controller": "npm:^5.0.2" "@metamask/controller-utils": "npm:^9.1.0" + "@metamask/eth-block-tracker": "npm:^9.0.2" "@metamask/eth-json-rpc-infura": "npm:^9.1.0" - "@metamask/eth-json-rpc-middleware": "npm:^12.1.0" + "@metamask/eth-json-rpc-middleware": "npm:^12.1.1" "@metamask/eth-json-rpc-provider": "npm:^3.0.2" "@metamask/eth-query": "npm:^4.0.0" "@metamask/json-rpc-engine": "npm:^8.0.2" @@ -5539,32 +5540,21 @@ __metadata: "@metamask/swappable-obj-proxy": "npm:^2.2.0" "@metamask/utils": "npm:^8.3.0" async-mutex: "npm:^0.2.6" - eth-block-tracker: "npm:^8.0.0" immer: "npm:^9.0.6" uuid: "npm:^8.3.2" - checksum: 10/1542b223851df1b316e5c5387712356dbbd84b6acd10b221d9802e5699a5d6baf6f1065da784fe0a2663b3843f82ce92270f94244e1d68f83aa3978e6c7ed76d + checksum: 10/f34e01544573763be68b5e7833b98bc136366a2e8b192ac242e5ee965d3e6ada734c93a5abb32670c75de60c929ad4e922e539918fef9991663b6a13aa697b5b languageName: node linkType: hard -"@metamask/network-controller@patch:@metamask/network-controller@npm%3A18.1.0#~/.yarn/patches/@metamask-network-controller-npm-18.1.0-680908c29a.patch": - version: 18.1.0 - resolution: "@metamask/network-controller@patch:@metamask/network-controller@npm%3A18.1.0#~/.yarn/patches/@metamask-network-controller-npm-18.1.0-680908c29a.patch::version=18.1.0&hash=da1bba" +"@metamask/nonce-tracker@npm:^5.0.0": + version: 5.0.0 + resolution: "@metamask/nonce-tracker@npm:5.0.0" dependencies: - "@metamask/base-controller": "npm:^5.0.1" - "@metamask/controller-utils": "npm:^9.0.2" - "@metamask/eth-json-rpc-infura": "npm:^9.1.0" - "@metamask/eth-json-rpc-middleware": "npm:^12.1.0" - "@metamask/eth-json-rpc-provider": "npm:^3.0.1" - "@metamask/eth-query": "npm:^4.0.0" - "@metamask/json-rpc-engine": "npm:^8.0.1" - "@metamask/rpc-errors": "npm:^6.2.1" - "@metamask/swappable-obj-proxy": "npm:^2.2.0" - "@metamask/utils": "npm:^8.3.0" - async-mutex: "npm:^0.2.6" - eth-block-tracker: "npm:^8.0.0" - immer: "npm:^9.0.6" - uuid: "npm:^8.3.2" - checksum: 10/184466aab692b52285124784e8d3c377deda590363644e3127785a645f538251ed8358f9037631d5a26f39b9400fa728bb74009b00bfd8b23a1e6c22cf54e0ad + "@ethersproject/providers": "npm:^5.7.2" + async-mutex: "npm:^0.3.1" + peerDependencies: + "@metamask/eth-block-tracker": ">=9" + checksum: 10/72bce31702c5575b6dd583dd772312994103ff25389643526284d0e4320588cb0c7b389739fbdb1828f3e6ab387deddfc8cf2b674aa65bf3054db089cafce1db languageName: node linkType: hard @@ -6100,44 +6090,9 @@ __metadata: languageName: node linkType: hard -"@metamask/transaction-controller@npm:^28.1.0": - version: 28.1.1 - resolution: "@metamask/transaction-controller@npm:28.1.1" - dependencies: - "@ethereumjs/common": "npm:^3.2.0" - "@ethereumjs/tx": "npm:^4.2.0" - "@ethereumjs/util": "npm:^8.1.0" - "@ethersproject/abi": "npm:^5.7.0" - "@ethersproject/contracts": "npm:^5.7.0" - "@ethersproject/providers": "npm:^5.7.0" - "@metamask/approval-controller": "npm:^6.0.1" - "@metamask/base-controller": "npm:^5.0.1" - "@metamask/controller-utils": "npm:^9.1.0" - "@metamask/eth-query": "npm:^4.0.0" - "@metamask/gas-fee-controller": "npm:^15.1.0" - "@metamask/metamask-eth-abis": "npm:^3.1.1" - "@metamask/network-controller": "npm:^18.1.0" - "@metamask/rpc-errors": "npm:^6.2.1" - "@metamask/utils": "npm:^8.3.0" - async-mutex: "npm:^0.2.6" - bn.js: "npm:^5.2.1" - eth-method-registry: "npm:^4.0.0" - fast-json-patch: "npm:^3.1.1" - lodash: "npm:^4.17.21" - nonce-tracker: "npm:^3.0.0" - uuid: "npm:^8.3.2" - peerDependencies: - "@babel/runtime": ^7.23.9 - "@metamask/approval-controller": ^6.0.0 - "@metamask/gas-fee-controller": ^15.0.0 - "@metamask/network-controller": ^18.0.0 - checksum: 10/01e6f0e1431e56cc0ef986cbfa99cf37e0a44aade14419c69d815be77847bb33b43049b90c6e6961bb5070ecfe1420c893db8a68c0fd6977d5ec28d9853d6554 - languageName: node - linkType: hard - -"@metamask/transaction-controller@npm:^29.0.0, @metamask/transaction-controller@npm:^29.1.0": - version: 29.1.0 - resolution: "@metamask/transaction-controller@npm:29.1.0" +"@metamask/transaction-controller@npm:^30.0.0": + version: 30.0.0 + resolution: "@metamask/transaction-controller@npm:30.0.0" dependencies: "@ethereumjs/common": "npm:^3.2.0" "@ethereumjs/tx": "npm:^4.2.0" @@ -6151,7 +6106,8 @@ __metadata: "@metamask/eth-query": "npm:^4.0.0" "@metamask/gas-fee-controller": "npm:^15.1.2" "@metamask/metamask-eth-abis": "npm:^3.1.1" - "@metamask/network-controller": "npm:^18.1.1" + "@metamask/network-controller": "npm:^18.1.2" + "@metamask/nonce-tracker": "npm:^5.0.0" "@metamask/rpc-errors": "npm:^6.2.1" "@metamask/utils": "npm:^8.3.0" async-mutex: "npm:^0.2.6" @@ -6159,14 +6115,13 @@ __metadata: eth-method-registry: "npm:^4.0.0" fast-json-patch: "npm:^3.1.1" lodash: "npm:^4.17.21" - nonce-tracker: "npm:^3.0.0" uuid: "npm:^8.3.2" peerDependencies: "@babel/runtime": ^7.23.9 "@metamask/approval-controller": ^6.0.0 "@metamask/gas-fee-controller": ^15.0.0 - "@metamask/network-controller": ^18.0.0 - checksum: 10/4b96d17d0bcc0f13ac72a94a3b4f3c3dd0f31a13aa6ae74b343ebe2d77e9aeb636b28c14ab23f08c6d8c6b66158c93f34243cf551f4c12d06b4ea8e87ae4ae64 + "@metamask/network-controller": ^18.1.2 + checksum: 10/549dd7c703993a23edc0cb711f7684c98b75bf187ecfd1f7bcc3b4fe038116a06e4385a2f6e03b1556703ce0d0e4c9ba9787250c016a746778ebdbb52e0331ea languageName: node linkType: hard @@ -17388,19 +17343,6 @@ __metadata: languageName: node linkType: hard -"eth-block-tracker@npm:^8.0.0": - version: 8.1.0 - resolution: "eth-block-tracker@npm:8.1.0" - dependencies: - "@metamask/eth-json-rpc-provider": "npm:^2.1.0" - "@metamask/safe-event-emitter": "npm:^3.0.0" - "@metamask/utils": "npm:^8.1.0" - json-rpc-random-id: "npm:^1.0.1" - pify: "npm:^5.0.0" - checksum: 10/94d81a0f5ed62bb7fd70b99a3a6172f416a574dc9fcaa96c9bdedb4d98c52b257ee505957d4a5b248ce73220b96083420acdd2dd702a0330d016018a59bd0b2e - languageName: node - linkType: hard - "eth-eip712-util-browser@npm:^0.0.3": version: 0.0.3 resolution: "eth-eip712-util-browser@npm:0.0.3" @@ -24803,7 +24745,7 @@ __metadata: "@metamask/message-signing-snap": "npm:^0.3.3" "@metamask/metamask-eth-abis": "npm:^3.1.1" "@metamask/name-controller": "npm:^6.0.1" - "@metamask/network-controller": "patch:@metamask/network-controller@npm%3A18.1.0#~/.yarn/patches/@metamask-network-controller-npm-18.1.0-680908c29a.patch" + "@metamask/network-controller": "patch:@metamask/network-controller@npm%3A18.1.2#~/.yarn/patches/@metamask-network-controller-npm-18.1.2-1bcb8d8610.patch" "@metamask/notification-controller": "npm:^3.0.0" "@metamask/object-multiplex": "npm:^2.0.0" "@metamask/obs-store": "npm:^9.0.0" @@ -24828,7 +24770,7 @@ __metadata: "@metamask/snaps-utils": "npm:^7.4.0" "@metamask/test-bundler": "npm:^1.0.0" "@metamask/test-dapp": "npm:^8.4.0" - "@metamask/transaction-controller": "npm:^29.1.0" + "@metamask/transaction-controller": "npm:^30.0.0" "@metamask/user-operation-controller": "npm:^10.0.0" "@metamask/utils": "npm:^8.2.1" "@ngraveio/bc-ur": "npm:^1.1.12" @@ -26483,26 +26425,6 @@ __metadata: languageName: node linkType: hard -"nonce-tracker@npm:3.0.0": - version: 3.0.0 - resolution: "nonce-tracker@npm:3.0.0" - dependencies: - "@ethersproject/providers": "npm:^5.7.2" - async-mutex: "npm:^0.3.1" - checksum: 10/6e295845f70c2be1285cff42833104d70c0959d88a94163d1db98f8aa6cb925f1004e5b0e4a8248c2d5b93ee6103133c5e97293d89e6d95e9a860d3b60ed54ea - languageName: node - linkType: hard - -"nonce-tracker@patch:nonce-tracker@npm%3A3.0.0#~/.yarn/patches/nonce-tracker-npm-3.0.0-c5e9a93f9d.patch": - version: 3.0.0 - resolution: "nonce-tracker@patch:nonce-tracker@npm%3A3.0.0#~/.yarn/patches/nonce-tracker-npm-3.0.0-c5e9a93f9d.patch::version=3.0.0&hash=8c505e" - dependencies: - "@ethersproject/providers": "npm:^5.7.2" - async-mutex: "npm:^0.3.1" - checksum: 10/f8556fb19d07cac7818affaf0478876ed475bc600276e6cae4e2bffc8116e5dec78b64951c0c4e360a7f4ae07f91f86d25beb6f03e81144d4679443bf19f4d1f - languageName: node - linkType: hard - "nopt@npm:^4.0.1": version: 4.0.1 resolution: "nopt@npm:4.0.1" From bd705efc86ca764d6165899fbd529937a8963300 Mon Sep 17 00:00:00 2001 From: Hassan Malik <41640681+hmalik88@users.noreply.github.com> Date: Tue, 4 Jun 2024 04:31:21 -0400 Subject: [PATCH 38/43] fix: update insights metrics fencing (#25000) Insight snap usage was previously limited to flask, fencing is now updated to allow for metrics in all cases. --- app/scripts/metamask-controller.js | 4 ++-- shared/constants/metametrics.ts | 2 -- ui/store/actions.ts | 2 -- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index a16e3c4943ed..c12fd90ba1a8 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -2421,7 +2421,7 @@ export default class MetamaskController extends EventEmitter { } ///: END:ONLY_INCLUDE_IF - ///: BEGIN:ONLY_INCLUDE_IF(build-flask) + ///: BEGIN:ONLY_INCLUDE_IF(snaps) trackInsightSnapView(snapId) { this.metaMetricsController.trackEvent({ event: MetaMetricsEventName.InsightSnapViewed, @@ -3638,7 +3638,7 @@ export default class MetamaskController extends EventEmitter { finalizeEventFragment: metaMetricsController.finalizeEventFragment.bind( metaMetricsController, ), - ///: BEGIN:ONLY_INCLUDE_IF(build-flask) + ///: BEGIN:ONLY_INCLUDE_IF(snaps) trackInsightSnapView: this.trackInsightSnapView.bind(this), ///: END:ONLY_INCLUDE_IF // approval controller diff --git a/shared/constants/metametrics.ts b/shared/constants/metametrics.ts index e3f5dd805145..f3f6f8a08396 100644 --- a/shared/constants/metametrics.ts +++ b/shared/constants/metametrics.ts @@ -691,8 +691,6 @@ export enum MetaMetricsEventName { SnapUpdateFailed = 'Snap Update Failed', SnapUpdated = 'Snap Updated', SnapExportUsed = 'Snap Export Used', - ///: END:ONLY_INCLUDE_IF - ///: BEGIN:ONLY_INCLUDE_IF(build-flask) InsightSnapViewed = 'Insight Snap Viewed', ///: END:ONLY_INCLUDE_IF ///: BEGIN:ONLY_INCLUDE_IF(keyring-snaps) diff --git a/ui/store/actions.ts b/ui/store/actions.ts index 9dbac37da682..df28d7302cf6 100644 --- a/ui/store/actions.ts +++ b/ui/store/actions.ts @@ -5186,9 +5186,7 @@ export function deleteInterface( // eslint-disable-next-line @typescript-eslint/no-explicit-any }) as any; } -///: END:ONLY_INCLUDE_IF -///: BEGIN:ONLY_INCLUDE_IF(build-flask) export function trackInsightSnapUsage(snapId: string) { return async () => { await submitRequestToBackground('trackInsightSnapView', [snapId]); From 86b61eda615818b5130e4f92c0119033d7017ebd Mon Sep 17 00:00:00 2001 From: Ariella Vu <20778143+digiwand@users.noreply.github.com> Date: Tue, 4 Jun 2024 18:09:02 +0900 Subject: [PATCH 39/43] fix: GasDetailItem Danger Icon alignment (#24999) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24999?quickstart=1) ## **Related issues** Fixes: https://github.com/MetaMask/MetaMask-planning/issues/2194 ## **Manual testing steps** 1. Go to test dapp 2. Edit code or config so network is busy 3. Click on "Create a token." 4. Observe error icon ## **Screenshots/Recordings** ### **Before** ![CleanShot 2024-06-03 at 21 12 04@2x](https://github.com/MetaMask/metamask-extension/assets/20778143/44e8fd5f-ad62-4306-908b-9ae615f91794) ![CleanShot 2024-06-03 at 21 16 47@2x](https://github.com/MetaMask/metamask-extension/assets/20778143/865c4a9e-bd3c-419d-b6a3-4dca134ddb55) ### **After** ![CleanShot 2024-06-03 at 21 50 12@2x](https://github.com/MetaMask/metamask-extension/assets/20778143/99b51650-5675-4420-9ebf-c00bc709e106) ![CleanShot 2024-06-03 at 21 59 53@2x](https://github.com/MetaMask/metamask-extension/assets/20778143/5408b8ec-4d9a-4928-8a55-d5bded65e57c) ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- .../components/gas-details-item/gas-details-item.js | 9 ++++++--- .../components/gas-details-item/index.scss | 10 ++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ui/pages/confirmations/components/gas-details-item/gas-details-item.js b/ui/pages/confirmations/components/gas-details-item/gas-details-item.js index b1d90054981b..ef02aadbfa33 100644 --- a/ui/pages/confirmations/components/gas-details-item/gas-details-item.js +++ b/ui/pages/confirmations/components/gas-details-item/gas-details-item.js @@ -104,14 +104,17 @@ const GasDetailsItem = ({ return ( <> {t('estimatedFee')} - -    + diff --git a/ui/pages/confirmations/components/gas-details-item/index.scss b/ui/pages/confirmations/components/gas-details-item/index.scss index cc436145db9e..f6f0ab94b451 100644 --- a/ui/pages/confirmations/components/gas-details-item/index.scss +++ b/ui/pages/confirmations/components/gas-details-item/index.scss @@ -10,4 +10,14 @@ flex-wrap: wrap; justify-content: end; } + + &__dangerTooltip { + position: relative; + + .mm-icon { + position: relative; + top: 2px; + margin-inline-start: 4px; + } + } } From f20362d23a13a6a2456466c4012bf49b697ef47f Mon Sep 17 00:00:00 2001 From: Jyoti Puri Date: Tue, 4 Jun 2024 14:50:07 +0530 Subject: [PATCH 40/43] feat: disable some gas warnings and errors for Mantle network (#24860) --- shared/constants/network.ts | 2 +- .../advanced-gas-fee-gas-limit.js | 19 ++++++++++++++++--- .../base-fee-input/base-fee-input.js | 16 +++++++++++++--- .../priority-fee-input/priority-fee-input.js | 10 +++++++--- ui/pages/confirmations/constants/index.ts | 3 +++ 5 files changed, 40 insertions(+), 10 deletions(-) create mode 100644 ui/pages/confirmations/constants/index.ts diff --git a/shared/constants/network.ts b/shared/constants/network.ts index 5a4410d4d70f..e13b96248adc 100644 --- a/shared/constants/network.ts +++ b/shared/constants/network.ts @@ -159,7 +159,7 @@ export const CHAIN_IDS = { NUMBERS: '0x290b', } as const; -const CHAINLIST_CHAIN_IDS_MAP = { +export const CHAINLIST_CHAIN_IDS_MAP = { ...CHAIN_IDS, SCROLL: '0x82750', TAIKO_JOLNIR_L2_MAINNET: '0x28c5f', diff --git a/ui/pages/confirmations/components/advanced-gas-fee-popover/advanced-gas-fee-gas-limit/advanced-gas-fee-gas-limit.js b/ui/pages/confirmations/components/advanced-gas-fee-popover/advanced-gas-fee-gas-limit/advanced-gas-fee-gas-limit.js index 5faecedfda4c..949aac299db2 100644 --- a/ui/pages/confirmations/components/advanced-gas-fee-popover/advanced-gas-fee-gas-limit/advanced-gas-fee-gas-limit.js +++ b/ui/pages/confirmations/components/advanced-gas-fee-popover/advanced-gas-fee-gas-limit/advanced-gas-fee-gas-limit.js @@ -10,6 +10,7 @@ import FormField from '../../../../../components/ui/form-field'; import { useAdvancedGasFeePopoverContext } from '../context'; import { Text } from '../../../../../components/component-library'; +import { IGNORE_GAS_LIMIT_CHAIN_IDS } from '../../../constants'; const validateGasLimit = (gasLimit, minimumGasLimitDec) => { return bnLessThan(gasLimit, minimumGasLimitDec) || @@ -22,8 +23,11 @@ const AdvancedGasFeeGasLimit = () => { const t = useI18nContext(); const { setGasLimit: setGasLimitInContext, setErrorValue } = useAdvancedGasFeePopoverContext(); - const { gasLimit: gasLimitInTransaction, minimumGasLimitDec } = - useGasFeeContext(); + const { + gasLimit: gasLimitInTransaction, + minimumGasLimitDec, + transaction: { chainId }, + } = useGasFeeContext(); const [isEditing, setEditing] = useState(false); const [gasLimit, setGasLimit] = useState(gasLimitInTransaction); const [gasLimitError, setGasLimitError] = useState(); @@ -34,10 +38,19 @@ const AdvancedGasFeeGasLimit = () => { useEffect(() => { setGasLimitInContext(gasLimit); + if (IGNORE_GAS_LIMIT_CHAIN_IDS.includes(chainId)) { + return; + } const error = validateGasLimit(gasLimit, minimumGasLimitDec); setGasLimitError(error); setErrorValue('gasLimit', error === 'editGasLimitOutOfBoundsV2'); - }, [gasLimit, minimumGasLimitDec, setGasLimitInContext, setErrorValue]); + }, [ + chainId, + gasLimit, + minimumGasLimitDec, + setGasLimitInContext, + setErrorValue, + ]); if (isEditing) { return ( diff --git a/ui/pages/confirmations/components/advanced-gas-fee-popover/advanced-gas-fee-inputs/base-fee-input/base-fee-input.js b/ui/pages/confirmations/components/advanced-gas-fee-popover/advanced-gas-fee-inputs/base-fee-input/base-fee-input.js index fe4232ffcb0e..90072c862e02 100644 --- a/ui/pages/confirmations/components/advanced-gas-fee-popover/advanced-gas-fee-inputs/base-fee-input/base-fee-input.js +++ b/ui/pages/confirmations/components/advanced-gas-fee-popover/advanced-gas-fee-inputs/base-fee-input/base-fee-input.js @@ -19,15 +19,22 @@ import { useAdvancedGasFeePopoverContext } from '../../context'; import AdvancedGasFeeInputSubtext from '../../advanced-gas-fee-input-subtext'; import { decGWEIToHexWEI } from '../../../../../../../shared/modules/conversion.utils'; import { Numeric } from '../../../../../../../shared/modules/Numeric'; - -const validateBaseFee = (value, gasFeeEstimates, maxPriorityFeePerGas) => { +import { IGNORE_GAS_LIMIT_CHAIN_IDS } from '../../../../constants'; + +const validateBaseFee = ( + value, + gasFeeEstimates, + maxPriorityFeePerGas, + chainId, +) => { const baseFeeValue = new Numeric(value, 10); if (new Numeric(maxPriorityFeePerGas, 10).greaterThan(baseFeeValue)) { return 'editGasMaxBaseFeeGWEIImbalance'; } if ( gasFeeEstimates?.low && - baseFeeValue.lessThan(gasFeeEstimates.low.suggestedMaxFeePerGas, 10) + baseFeeValue.lessThan(gasFeeEstimates.low.suggestedMaxFeePerGas, 10) && + IGNORE_GAS_LIMIT_CHAIN_IDS.includes(chainId) ) { return 'editGasMaxBaseFeeLow'; } @@ -51,6 +58,7 @@ const BaseFeeInput = () => { estimateUsed, maxFeePerGas: maxBaseFeeNumber, editGasMode, + transaction: { chainId }, } = useGasFeeContext(); const maxFeePerGas = new Numeric(maxBaseFeeNumber, 10).toString(); const { @@ -103,6 +111,7 @@ const BaseFeeInput = () => { baseFee, gasFeeEstimates, maxPriorityFeePerGas, + chainId, ); setBaseFeeError(error); @@ -110,6 +119,7 @@ const BaseFeeInput = () => { setMaxBaseFee(baseFee); }, [ baseFee, + chainId, gasFeeEstimates, maxPriorityFeePerGas, setBaseFeeError, diff --git a/ui/pages/confirmations/components/advanced-gas-fee-popover/advanced-gas-fee-inputs/priority-fee-input/priority-fee-input.js b/ui/pages/confirmations/components/advanced-gas-fee-popover/advanced-gas-fee-inputs/priority-fee-input/priority-fee-input.js index 257a5c9bb50d..7a4201b45201 100644 --- a/ui/pages/confirmations/components/advanced-gas-fee-popover/advanced-gas-fee-inputs/priority-fee-input/priority-fee-input.js +++ b/ui/pages/confirmations/components/advanced-gas-fee-popover/advanced-gas-fee-inputs/priority-fee-input/priority-fee-input.js @@ -19,8 +19,9 @@ import { useAdvancedGasFeePopoverContext } from '../../context'; import AdvancedGasFeeInputSubtext from '../../advanced-gas-fee-input-subtext'; import { decGWEIToHexWEI } from '../../../../../../../shared/modules/conversion.utils'; import { Numeric } from '../../../../../../../shared/modules/Numeric'; +import { IGNORE_GAS_LIMIT_CHAIN_IDS } from '../../../../constants'; -const validatePriorityFee = (value, gasFeeEstimates) => { +const validatePriorityFee = (value, gasFeeEstimates, chainId) => { const priorityFeeValue = new Numeric(value, 10); if (priorityFeeValue.lessThan(0, 10)) { return 'editGasMaxPriorityFeeBelowMinimumV2'; @@ -30,7 +31,8 @@ const validatePriorityFee = (value, gasFeeEstimates) => { priorityFeeValue.lessThan( gasFeeEstimates.low.suggestedMaxPriorityFeePerGas, 10, - ) + ) && + IGNORE_GAS_LIMIT_CHAIN_IDS.includes(chainId) ) { return 'editGasMaxPriorityFeeLowV2'; } @@ -57,6 +59,7 @@ const PriorityFeeInput = () => { estimateUsed, gasFeeEstimates, maxPriorityFeePerGas: maxPriorityFeePerGasNumber, + transaction: { chainId }, } = useGasFeeContext(); const maxPriorityFeePerGas = new Numeric( maxPriorityFeePerGasNumber, @@ -98,13 +101,14 @@ const PriorityFeeInput = () => { useEffect(() => { setMaxPriorityFeePerGas(priorityFee); - const error = validatePriorityFee(priorityFee, gasFeeEstimates); + const error = validatePriorityFee(priorityFee, gasFeeEstimates, chainId); setErrorValue( 'maxPriorityFeePerGas', error === 'editGasMaxPriorityFeeBelowMinimumV2', ); setPriorityFeeError(error); }, [ + chainId, gasFeeEstimates, priorityFee, setErrorValue, diff --git a/ui/pages/confirmations/constants/index.ts b/ui/pages/confirmations/constants/index.ts new file mode 100644 index 000000000000..fec9f8f3c0c9 --- /dev/null +++ b/ui/pages/confirmations/constants/index.ts @@ -0,0 +1,3 @@ +import { CHAINLIST_CHAIN_IDS_MAP } from '../../../../shared/constants/network'; + +export const IGNORE_GAS_LIMIT_CHAIN_IDS = [CHAINLIST_CHAIN_IDS_MAP.MANTLE]; From 73714c58a893e1a95e2ed7a73ebaf37dacebec81 Mon Sep 17 00:00:00 2001 From: Jyoti Puri Date: Tue, 4 Jun 2024 15:26:12 +0530 Subject: [PATCH 41/43] feat: simulation section for SIWE personal signature requests (#24865) --- app/_locales/en/messages.json | 3 +++ .../info/personal-sign/personal-sign.test.tsx | 12 ++++++++++++ .../info/personal-sign/personal-sign.tsx | 18 +++++++++++++++++- 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json index b2754b85e4f2..8a8201a2ce76 100644 --- a/app/_locales/en/messages.json +++ b/app/_locales/en/messages.json @@ -4755,6 +4755,9 @@ "simulationsSettingSubHeader": { "message": "Estimate balance changes" }, + "siweSignatureSimulationDetailInfo": { + "message": "This type of signature is not able to move your assets and is used for signing in." + }, "skip": { "message": "Skip" }, diff --git a/ui/pages/confirmations/components/confirm/info/personal-sign/personal-sign.test.tsx b/ui/pages/confirmations/components/confirm/info/personal-sign/personal-sign.test.tsx index f3a008a2ad50..92c3393b3bc1 100644 --- a/ui/pages/confirmations/components/confirm/info/personal-sign/personal-sign.test.tsx +++ b/ui/pages/confirmations/components/confirm/info/personal-sign/personal-sign.test.tsx @@ -73,4 +73,16 @@ describe('PersonalSignInfo', () => { const { getByText } = renderWithProvider(, mockStore); expect(getByText('Signing in with')).toBeDefined(); }); + + it('display simulation for SIWE request', () => { + const state = { + ...mockState, + confirm: { + currentConfirmation: signatureRequestSIWE, + }, + }; + const mockStore = configureMockStore([])(state); + const { getByText } = renderWithProvider(, mockStore); + expect(getByText('Estimated changes')).toBeDefined(); + }); }); diff --git a/ui/pages/confirmations/components/confirm/info/personal-sign/personal-sign.tsx b/ui/pages/confirmations/components/confirm/info/personal-sign/personal-sign.tsx index 796506a8e71c..e9decf94e752 100644 --- a/ui/pages/confirmations/components/confirm/info/personal-sign/personal-sign.tsx +++ b/ui/pages/confirmations/components/confirm/info/personal-sign/personal-sign.tsx @@ -33,9 +33,25 @@ const PersonalSignInfo: React.FC = () => { } const { from } = currentConfirmation.msgParams; + const isSiweSigReq = isSIWESignatureRequest(currentConfirmation); return ( <> + {isSiweSigReq && ( + + + + + + )} { > - {isSIWESignatureRequest(currentConfirmation) && ( + {isSiweSigReq && ( From 2d84e322030cc33d6cd43298951ce0f5f151a92b Mon Sep 17 00:00:00 2001 From: Jyoti Puri Date: Tue, 4 Jun 2024 16:24:09 +0530 Subject: [PATCH 42/43] feat: changes in info section of permit signature types (#24808) --- app/_locales/en/messages.json | 3 + test/data/confirmations/typed_sign.ts | 19 + .../info/__snapshots__/info.test.tsx.snap | 156 +++--- .../__snapshots__/typed-sign.test.tsx.snap | 468 +++++++++--------- .../info/typed-sign/typed-sign.test.tsx | 13 + .../confirm/info/typed-sign/typed-sign.tsx | 44 +- .../row/typed-sign-data/typedSignData.tsx | 10 +- .../__snapshots__/confirm.test.tsx.snap | 156 +++--- ui/pages/confirmations/constants/index.ts | 2 + ui/pages/confirmations/utils/confirm.test.ts | 30 ++ ui/pages/confirmations/utils/confirm.ts | 9 +- 11 files changed, 518 insertions(+), 392 deletions(-) diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json index 8a8201a2ce76..7c0e2c7857dc 100644 --- a/app/_locales/en/messages.json +++ b/app/_locales/en/messages.json @@ -509,6 +509,9 @@ "message": "Approved on $1 for $2", "description": "$1 is the approval date for a permission. $2 is the AvatarGroup component displaying account images." }, + "approvingTo": { + "message": "Approving to" + }, "areYouSure": { "message": "Are you sure?" }, diff --git a/test/data/confirmations/typed_sign.ts b/test/data/confirmations/typed_sign.ts index 58ce0d068dc0..e368d74234f1 100644 --- a/test/data/confirmations/typed_sign.ts +++ b/test/data/confirmations/typed_sign.ts @@ -133,3 +133,22 @@ export const unapprovedTypedSignMsgV4 = { origin: 'https://metamask.github.io', }, }; + +export const permitSignatureMsg = { + id: '0b1787a0-1c44-11ef-b70d-e7064bd7b659', + securityAlertResponse: { + reason: 'loading', + result_type: 'validation_in_progress', + securityAlertId: 'ab21395f-2190-472f-8cfa-3d224e7529d8', + }, + status: 'unapproved', + time: 1716826404122, + type: 'eth_signTypedData', + msgParams: { + data: '{"types":{"EIP712Domain":[{"name":"name","type":"string"},{"name":"version","type":"string"},{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"Permit":[{"name":"owner","type":"address"},{"name":"spender","type":"address"},{"name":"value","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint256"}]},"primaryType":"Permit","domain":{"name":"MyToken","version":"1","verifyingContract":"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC","chainId":1},"message":{"owner":"0x935e73edb9ff52e23bac7f7e043a1ecd06d05477","spender":"0x5B38Da6a701c568545dCfcB03FcB875f56beddC4","value":3000,"nonce":0,"deadline":50000000000}}', + from: '0x935e73edb9ff52e23bac7f7e043a1ecd06d05477', + version: 'V4', + signatureMethod: 'eth_signTypedData_v4', + origin: 'https://metamask.github.io', + }, +}; diff --git a/ui/pages/confirmations/components/confirm/info/__snapshots__/info.test.tsx.snap b/ui/pages/confirmations/components/confirm/info/__snapshots__/info.test.tsx.snap index d9f473782e78..086498a0f4d8 100644 --- a/ui/pages/confirmations/components/confirm/info/__snapshots__/info.test.tsx.snap +++ b/ui/pages/confirmations/components/confirm/info/__snapshots__/info.test.tsx.snap @@ -78,114 +78,122 @@ exports[`Info renders info section for personal sign request 1`] = ` exports[`Info renders info section for typed sign request 1`] = `
-

- Request from -

-
-
- + Request from +

+
+
+ +
-
-
-

- metamask.github.io -

+

+ metamask.github.io +

+
-

- Interacting with -

-
-
+

+ Interacting with +

+
+

+ 0xCcCCc...ccccC +

-

- 0xCcCCc...ccccC -

diff --git a/ui/pages/confirmations/components/confirm/info/typed-sign/__snapshots__/typed-sign.test.tsx.snap b/ui/pages/confirmations/components/confirm/info/typed-sign/__snapshots__/typed-sign.test.tsx.snap index cf3c57f86829..1d14c6815c89 100644 --- a/ui/pages/confirmations/components/confirm/info/typed-sign/__snapshots__/typed-sign.test.tsx.snap +++ b/ui/pages/confirmations/components/confirm/info/typed-sign/__snapshots__/typed-sign.test.tsx.snap @@ -5,114 +5,122 @@ exports[`TypedSignInfo does not render if required data is not present in the tr exports[`TypedSignInfo renders origin for typed sign data request 1`] = `
-

- Request from -

-
-
- + Request from +

+
+
+ +
-
-
-

- metamask.github.io -

+

+ metamask.github.io +

+
-

- Interacting with -

-
-
+

+ Interacting with +

+
+

+ 0xCcCCc...ccccC +

-

- 0xCcCCc...ccccC -

@@ -428,114 +436,122 @@ exports[`TypedSignInfo renders origin for typed sign data request 1`] = ` exports[`TypedSignInfo should render message for typed sign v3 request 1`] = `
-

- Request from -

-
-
- + Request from +

+
+
+ +
-
-
-

- metamask.github.io -

+

+ metamask.github.io +

+
-

- Interacting with -

-
-
+

+ Interacting with +

+
+

+ 0xCcCCc...ccccC +

-

- 0xCcCCc...ccccC -

@@ -851,114 +867,122 @@ exports[`TypedSignInfo should render message for typed sign v3 request 1`] = ` exports[`TypedSignInfo should render message for typed sign v4 request 1`] = `
-

- Request from -

-
-
- + Request from +

+
+
+ +
-
-
-

- metamask.github.io -

+

+ metamask.github.io +

+
-

- Interacting with -

-
-
+

+ Interacting with +

+
+

+ 0xCcCCc...ccccC +

-

- 0xCcCCc...ccccC -

diff --git a/ui/pages/confirmations/components/confirm/info/typed-sign/typed-sign.test.tsx b/ui/pages/confirmations/components/confirm/info/typed-sign/typed-sign.test.tsx index 71050362909e..1f337f5a9dc2 100644 --- a/ui/pages/confirmations/components/confirm/info/typed-sign/typed-sign.test.tsx +++ b/ui/pages/confirmations/components/confirm/info/typed-sign/typed-sign.test.tsx @@ -4,6 +4,7 @@ import configureMockStore from 'redux-mock-store'; import mockState from '../../../../../../../test/data/mock-state.json'; import { renderWithProvider } from '../../../../../../../test/lib/render-helpers'; import { + permitSignatureMsg, unapprovedTypedSignMsgV3, unapprovedTypedSignMsgV4, } from '../../../../../../../test/data/confirmations/typed_sign'; @@ -62,4 +63,16 @@ describe('TypedSignInfo', () => { const { container } = renderWithProvider(, mockStore); expect(container).toMatchSnapshot(); }); + + it('displays "Approving to" for permit signature type', () => { + const state = { + ...mockState, + confirm: { + currentConfirmation: permitSignatureMsg, + }, + }; + const mockStore = configureMockStore([])(state); + const { getByText } = renderWithProvider(, mockStore); + expect(getByText('Approving to')).toBeDefined(); + }); }); diff --git a/ui/pages/confirmations/components/confirm/info/typed-sign/typed-sign.tsx b/ui/pages/confirmations/components/confirm/info/typed-sign/typed-sign.tsx index b36ddf132f13..adf66ae16f9d 100644 --- a/ui/pages/confirmations/components/confirm/info/typed-sign/typed-sign.tsx +++ b/ui/pages/confirmations/components/confirm/info/typed-sign/typed-sign.tsx @@ -5,6 +5,7 @@ import { isValidAddress } from 'ethereumjs-util'; import { ConfirmInfoRow, ConfirmInfoRowAddress, + ConfirmInfoRowDivider, ConfirmInfoRowUrl, } from '../../../../../../components/app/confirm/info/row'; import { useI18nContext } from '../../../../../../hooks/useI18nContext'; @@ -14,8 +15,10 @@ import { BackgroundColor, BorderRadius, } from '../../../../../../helpers/constants/design-system'; -import { ConfirmInfoRowTypedSignData } from '../../row/typed-sign-data/typedSignData'; +import { EIP712_PRIMARY_TYPE_PERMIT } from '../../../../constants'; import { SignatureRequestType } from '../../../../types/confirm'; +import { parseTypedDataMessage } from '../../../../utils'; +import { ConfirmInfoRowTypedSignData } from '../../row/typed-sign-data/typedSignData'; const TypedSignInfo: React.FC = () => { const t = useI18nContext(); @@ -27,25 +30,44 @@ const TypedSignInfo: React.FC = () => { return null; } - const { domain = {} } = JSON.parse( - currentConfirmation.msgParams.data as string, - ); + const { + domain, + domain: { verifyingContract }, + primaryType, + } = parseTypedDataMessage(currentConfirmation.msgParams.data as string); return ( <> - - - - {isValidAddress(domain.verifyingContract) && ( - - + {primaryType === EIP712_PRIMARY_TYPE_PERMIT && ( + <> + + + + + + + + )} + + + + + {isValidAddress(domain.verifyingContract) && ( + + + + + )} { - const { message, primaryType, types } = JSON.parse(dataToParse); - const sanitizedMessage = sanitizeMessage(message, primaryType, types); - return { sanitizedMessage, primaryType }; -}; +import { parseSanitizeTypedDataMessage } from '../../../../utils'; export const ConfirmInfoRowTypedSignData = ({ data }: { data: string }) => { const t = useI18nContext(); @@ -24,7 +18,7 @@ export const ConfirmInfoRowTypedSignData = ({ data }: { data: string }) => { return null; } - const { sanitizedMessage, primaryType } = parseMessage(data); + const { sanitizedMessage, primaryType } = parseSanitizeTypedDataMessage(data); return ( diff --git a/ui/pages/confirmations/confirm/__snapshots__/confirm.test.tsx.snap b/ui/pages/confirmations/confirm/__snapshots__/confirm.test.tsx.snap index 7f1903743f60..c28f6bec6360 100644 --- a/ui/pages/confirmations/confirm/__snapshots__/confirm.test.tsx.snap +++ b/ui/pages/confirmations/confirm/__snapshots__/confirm.test.tsx.snap @@ -378,114 +378,122 @@ exports[`Confirm should match snapshot for typed sign signature 1`] = ` Only confirm this message if you approve the content and trust the requesting site.

-

- Request from -

-
-
- + Request from +

+
+
+ +
-
-
-

- metamask.github.io -

+

+ metamask.github.io +

+
-

- Interacting with -

-
-
+

+ Interacting with +

+
+

+ 0xCcCCc...ccccC +

-

- 0xCcCCc...ccccC -

diff --git a/ui/pages/confirmations/constants/index.ts b/ui/pages/confirmations/constants/index.ts index fec9f8f3c0c9..88af9e200997 100644 --- a/ui/pages/confirmations/constants/index.ts +++ b/ui/pages/confirmations/constants/index.ts @@ -1,3 +1,5 @@ import { CHAINLIST_CHAIN_IDS_MAP } from '../../../../shared/constants/network'; +export const EIP712_PRIMARY_TYPE_PERMIT = 'Permit'; + export const IGNORE_GAS_LIMIT_CHAIN_IDS = [CHAINLIST_CHAIN_IDS_MAP.MANTLE]; diff --git a/ui/pages/confirmations/utils/confirm.test.ts b/ui/pages/confirmations/utils/confirm.test.ts index 5b9ba56b9e83..e358a6076408 100644 --- a/ui/pages/confirmations/utils/confirm.test.ts +++ b/ui/pages/confirmations/utils/confirm.test.ts @@ -5,8 +5,13 @@ import { TransactionType } from '@metamask/transaction-controller'; import { isSignatureApprovalRequest, isSignatureTransactionType, + parseSanitizeTypedDataMessage, + parseTypedDataMessage, } from './confirm'; +const typedDataMsg = + '{"domain":{"chainId":97,"name":"Ether Mail","verifyingContract":"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC","version":"1"},"message":{"contents":"Hello, Bob!","from":{"name":"Cow","wallets":["0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826","0xDeaDbeefdEAdbeefdEadbEEFdeadbeEFdEaDbeeF","0x06195827297c7A80a443b6894d3BDB8824b43896"]},"to":[{"name":"Bob","wallets":["0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB","0xB0BdaBea57B0BDABeA57b0bdABEA57b0BDabEa57","0xB0B0b0b0b0b0B000000000000000000000000000"]}]},"primaryType":"Mail","types":{"EIP712Domain":[{"name":"name","type":"string"},{"name":"version","type":"string"},{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"Mail":[{"name":"from","type":"Person"},{"name":"to","type":"Person[]"},{"name":"contents","type":"string"}],"Person":[{"name":"name","type":"string"},{"name":"wallets","type":"address[]"}]}}'; + describe('confirm util', () => { describe('isSignatureApprovalRequest', () => { it('returns true for signature approval requests', () => { @@ -27,6 +32,31 @@ describe('confirm util', () => { }); }); + describe('parseTypedDataMessage', () => { + it('parses data passed correctly', () => { + const result = parseTypedDataMessage('{"test": "dummy"}'); + expect(result.test).toBe('dummy'); + }); + it('throw error for invalid typedDataMessage', () => { + expect(() => { + parseSanitizeTypedDataMessage(''); + }).toThrow(); + }); + }); + + describe('parseSanitizeTypedDataMessage', () => { + it('parses and sanitizes data passed correctly', () => { + const result = parseSanitizeTypedDataMessage(typedDataMsg); + expect(result.sanitizedMessage.type).toBe('Mail'); + expect(result.primaryType).toBe('Mail'); + }); + it('throw error for invalid typedDataMessage', () => { + expect(() => { + parseSanitizeTypedDataMessage('{}'); + }).toThrow(); + }); + }); + describe('isSignatureTransactionType', () => { it('returns true for signature transaction requests', () => { const result = isSignatureTransactionType({ diff --git a/ui/pages/confirmations/utils/confirm.ts b/ui/pages/confirmations/utils/confirm.ts index bb5c0f192f39..6eddab209e67 100644 --- a/ui/pages/confirmations/utils/confirm.ts +++ b/ui/pages/confirmations/utils/confirm.ts @@ -36,10 +36,13 @@ export const isSignatureTransactionType = (request?: Record) => request && SIGNATURE_TRANSACTION_TYPES.includes(request.type as TransactionType); -export const parseTypedDataMessage = (dataToParse: string) => { - const { message, domain = {}, primaryType, types } = JSON.parse(dataToParse); +export const parseTypedDataMessage = (dataToParse: string) => + JSON.parse(dataToParse); + +export const parseSanitizeTypedDataMessage = (dataToParse: string) => { + const { message, primaryType, types } = parseTypedDataMessage(dataToParse); const sanitizedMessage = sanitizeMessage(message, primaryType, types); - return { domain, sanitizedMessage, primaryType }; + return { sanitizedMessage, primaryType }; }; export const isSIWESignatureRequest = (request: SignatureRequestType) => From a85b6cf602843fac4d507bf95d650f0bc1810e42 Mon Sep 17 00:00:00 2001 From: David Drazic Date: Tue, 4 Jun 2024 14:49:44 +0200 Subject: [PATCH 43/43] feat: Add UI for Snaps pre-approved connections (#24403) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** This PR enables pre-approved connections to be displayed in the UI of the permission confirmation step when installing or updating a Snap. #### Notes - Given that pre-approved connections are defined in a specific way, different from the permission specification and need to be displayed as a part of permission list (permission confirmation process), they're integrated in the permission display process as a side effect. - Pre-approved connection is considered as a transient permission that is handled by couple of side effect functions and components in order to be displayed alongside other permissions and treated equaly. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24403?quickstart=1) ## **Related issues** Fixes: https://github.com/MetaMask/MetaMask-planning/issues/1895 ## **Manual testing steps** 1. Create a Snap with `initialConnections` specified. For example: ```json "initialConnections": { "https://snaps.metamask.io/": {}, "https://app.uniswap.org/": {}, "https://metamask.github.io/": {}, "npm:@web3-antivirus/web3-antivirus-snap": {}, "npm:@near-snap/plugin": {} } ``` 2. Try installing a Snap. 3. Verify that connections are appearing in the UI alongside permissions. 4. Try the same process for the Snap update flow. ## **Screenshots/Recordings** ### **Before** No changes to the UI implemented before. Pre-approved connections are just added to the permission list. ### **After** ![Screenshot 2024-05-20 at 11 56 34](https://github.com/MetaMask/metamask-extension/assets/13301024/001d43b5-0219-4d79-b515-6208574602a7) ![Screenshot 2024-05-20 at 11 56 51](https://github.com/MetaMask/metamask-extension/assets/13301024/db58c313-7a56-4d58-b046-56a60e3b2ee7) ![Screenshot 2024-05-23 at 17 44 46](https://github.com/MetaMask/metamask-extension/assets/13301024/c4fd2f09-bacd-4c9d-af8a-82bf65221d42) ![Screenshot 2024-05-23 at 17 45 04](https://github.com/MetaMask/metamask-extension/assets/13301024/548ae12a-0373-40d6-bd9a-32b53d347475) ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- app/_locales/en/messages.json | 8 + shared/constants/permissions.ts | 8 + test/data/mock-state.json | 7 + .../permission-cell/permission-cell-status.js | 47 ++++-- .../app/permission-cell/permission-cell.js | 5 +- .../permission-cell/permission-cell.test.js | 7 + .../app/snaps/snap-permission-cell/index.js | 1 + .../snap-permission-cell.js | 145 ++++++++++++++++++ .../snap-permission-cell.test.js | 79 ++++++++++ .../snap-permissions-list.js | 45 +++--- .../snap-permissions-list.test.js | 4 + .../update-snap-permission-list.js | 102 ++++++++---- ui/helpers/utils/permission.js | 45 ++++++ .../snaps/snap-install/snap-install.js | 1 + .../snaps/snap-update/snap-update.js | 6 + ui/selectors/selectors.js | 28 ++++ ui/selectors/selectors.test.js | 39 +++++ 17 files changed, 513 insertions(+), 64 deletions(-) create mode 100644 ui/components/app/snaps/snap-permission-cell/index.js create mode 100644 ui/components/app/snaps/snap-permission-cell/snap-permission-cell.js create mode 100644 ui/components/app/snaps/snap-permission-cell/snap-permission-cell.test.js diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json index 7c0e2c7857dc..8af32a2c3d0e 100644 --- a/app/_locales/en/messages.json +++ b/app/_locales/en/messages.json @@ -4864,6 +4864,14 @@ "snapAccountsDescription": { "message": "Accounts controlled by third-party Snaps." }, + "snapConnectTo": { + "message": "Connect to $1", + "description": "$1 is the website URL or a Snap name. Used for Snaps pre-approved connections." + }, + "snapConnectionPermissionDescription": { + "message": "Let $1 automatically connect to $2 without your approval.", + "description": "Used for Snap pre-approved connections. $1 is the Snap name, $2 is a website URL." + }, "snapConnectionWarning": { "message": "$1 wants to use $2", "description": "$2 is the snap and $1 is the dapp requesting connection to the snap." diff --git a/shared/constants/permissions.ts b/shared/constants/permissions.ts index a61329bf0b15..0b3cebc377e5 100644 --- a/shared/constants/permissions.ts +++ b/shared/constants/permissions.ts @@ -21,6 +21,14 @@ export const RestrictedMethods = Object.freeze({ ///: END:ONLY_INCLUDE_IF } as const); +///: BEGIN:ONLY_INCLUDE_IF(snaps) +// ConnectionPermission is pseudo permission used to make possible +// displaying pre-approved connections in the UI seamlessly, alongside other permissions. +export const ConnectionPermission = Object.freeze({ + connection_permission: 'connection_permission', +}); +///: END:ONLY_INCLUDE_IF + ///: BEGIN:ONLY_INCLUDE_IF(snaps) export * from './snaps/permissions'; ///: END:ONLY_INCLUDE_IF diff --git a/test/data/mock-state.json b/test/data/mock-state.json index 5bad1276c21f..d963e0374c3c 100644 --- a/test/data/mock-state.json +++ b/test/data/mock-state.json @@ -594,6 +594,13 @@ "name": "@metamask/test-snap-bip44", "version": "1.2.3", "subjectType": "snap" + }, + "https://snaps.metamask.io": { + "extensionId": null, + "iconUrl": "https://snaps.metamask.io/favicon-32x32.png?v=96e4834dade94988977ec34e50a62b84", + "name": "MetaMask Snaps Directory", + "origin": "https://snaps.metamask.io", + "subjectType": "website" } }, "snapRegistryList": { diff --git a/ui/components/app/permission-cell/permission-cell-status.js b/ui/components/app/permission-cell/permission-cell-status.js index 5073547ac005..98287df766cd 100644 --- a/ui/components/app/permission-cell/permission-cell-status.js +++ b/ui/components/app/permission-cell/permission-cell-status.js @@ -31,9 +31,15 @@ import { formatDate } from '../../../helpers/utils/util'; * @param props.revoked - Boolean value to identify if permission is being revoked. * @param props.dateApproved - Timestamp when permission is approved. * @param props.accounts - List of accounts for which permission is requested, approved or revoked. + * @param props.approved - Boolean value in case a permission has been approved, but there is no date to show. * @returns React element rendering permission status with or without account icons displayed as AvatarGroup. */ -export const PermissionCellStatus = ({ revoked, dateApproved, accounts }) => { +export const PermissionCellStatus = ({ + revoked, + approved, + dateApproved, + accounts, +}) => { const t = useI18nContext(); const renderAccountsGroup = () => ( @@ -95,21 +101,30 @@ export const PermissionCellStatus = ({ revoked, dateApproved, accounts }) => { ); - const statusApproved = - accounts && accounts.length - ? t('approvedOnForAccounts', [ - formatDate(dateApproved, 'yyyy-MM-dd'), - renderAccountsGroup(), - ]) - : t('approvedOn', [formatDate(dateApproved, 'yyyy-MM-dd')]); - const statusRevoked = - accounts && accounts.length - ? t('permissionRevokedForAccounts', [renderAccountsGroup()]) - : t('permissionRevoked'); - const statusRequestedNow = - accounts && accounts.length + const getStatusMessage = () => { + if (revoked) { + return accounts && accounts.length + ? t('permissionRevokedForAccounts', [renderAccountsGroup()]) + : t('permissionRevoked'); + } + + if (dateApproved) { + return accounts && accounts.length + ? t('approvedOnForAccounts', [ + formatDate(dateApproved, 'yyyy-MM-dd'), + renderAccountsGroup(), + ]) + : t('approvedOn', [formatDate(dateApproved, 'yyyy-MM-dd')]); + } + + if (approved) { + return t('approved'); + } + + return accounts && accounts.length ? t('permissionRequestedForAccounts', [renderAccountsGroup()]) : t('permissionRequested'); + }; return ( { color={TextColor.textAlternative} display={Display.Flex} > - {!revoked && (dateApproved ? statusApproved : statusRequestedNow)} - {revoked ? statusRevoked : ''} + {getStatusMessage()} ); }; PermissionCellStatus.propTypes = { revoked: PropTypes.bool, + approved: PropTypes.bool, dateApproved: PropTypes.number, accounts: PropTypes.array, }; diff --git a/ui/components/app/permission-cell/permission-cell.js b/ui/components/app/permission-cell/permission-cell.js index 25488af4b905..1d9e5f900333 100644 --- a/ui/components/app/permission-cell/permission-cell.js +++ b/ui/components/app/permission-cell/permission-cell.js @@ -36,6 +36,7 @@ const PermissionCell = ({ avatarIcon, dateApproved, revoked, + approved, showOptions, hideStatus, accounts, @@ -51,7 +52,7 @@ const PermissionCell = ({ infoIconColor = IconColor.warningDefault; } - if (dateApproved) { + if (dateApproved || approved) { iconColor = IconColor.iconMuted; iconBackgroundColor = Color.backgroundAlternative; } @@ -110,6 +111,7 @@ const PermissionCell = ({ {!hideStatus && ( @@ -157,6 +159,7 @@ PermissionCell.propTypes = { avatarIcon: PropTypes.any.isRequired, dateApproved: PropTypes.number, revoked: PropTypes.bool, + approved: PropTypes.bool, showOptions: PropTypes.bool, hideStatus: PropTypes.bool, accounts: PropTypes.array, diff --git a/ui/components/app/permission-cell/permission-cell.test.js b/ui/components/app/permission-cell/permission-cell.test.js index 1d7dd2ab5b9d..515275d1db46 100644 --- a/ui/components/app/permission-cell/permission-cell.test.js +++ b/ui/components/app/permission-cell/permission-cell.test.js @@ -1,6 +1,9 @@ import React from 'react'; import { screen } from '@testing-library/react'; +import configureMockStore from 'redux-mock-store'; +import thunk from 'redux-thunk'; import { renderWithProvider } from '../../../../test/jest'; +import mockState from '../../../../test/data/mock-state.json'; import PermissionCell from './permission-cell'; describe('Permission Cell', () => { @@ -15,6 +18,7 @@ describe('Permission Cell', () => { }, permissionName: 'ethereum-provider', }; + const mockStore = configureMockStore([thunk])(mockState); it('renders approved permission cell', () => { renderWithProvider( @@ -27,6 +31,7 @@ describe('Permission Cell', () => { dateApproved={mockPermissionData?.permissionValue?.date} key={`${mockPermissionData.permissionName}-${1}`} />, + mockStore, ); expect( screen.getByText('Access the Ethereum provider.'), @@ -46,6 +51,7 @@ describe('Permission Cell', () => { key={`${mockPermissionData.permissionName}-${1}`} revoked />, + mockStore, ); expect( screen.getByText('Access the Ethereum provider.'), @@ -63,6 +69,7 @@ describe('Permission Cell', () => { avatarIcon={mockPermissionData.leftIcon} key={`${mockPermissionData.permissionName}-${1}`} />, + mockStore, ); expect( screen.getByText('Access the Ethereum provider.'), diff --git a/ui/components/app/snaps/snap-permission-cell/index.js b/ui/components/app/snaps/snap-permission-cell/index.js new file mode 100644 index 000000000000..9e48aadb20b3 --- /dev/null +++ b/ui/components/app/snaps/snap-permission-cell/index.js @@ -0,0 +1 @@ +export { default } from './snap-permission-cell'; diff --git a/ui/components/app/snaps/snap-permission-cell/snap-permission-cell.js b/ui/components/app/snaps/snap-permission-cell/snap-permission-cell.js new file mode 100644 index 000000000000..72108d15af09 --- /dev/null +++ b/ui/components/app/snaps/snap-permission-cell/snap-permission-cell.js @@ -0,0 +1,145 @@ +import PropTypes from 'prop-types'; +import { SubjectType } from '@metamask/permission-controller'; +import React from 'react'; +import { useSelector } from 'react-redux'; +import { + AvatarBase, + AvatarBaseSize, + AvatarFavicon, + AvatarFaviconSize, + IconSize, + Text, +} from '../../../component-library'; +import { + AlignItems, + BackgroundColor, + Display, + FontWeight, + JustifyContent, + TextColor, + TextVariant, +} from '../../../../helpers/constants/design-system'; +import { + getAvatarFallbackLetter, + getSnapName, +} from '../../../../helpers/utils/util'; +import PermissionCell from '../../permission-cell'; +import { useI18nContext } from '../../../../hooks/useI18nContext'; +import { getSnapsMetadata } from '../../../../selectors'; + +export default function SnapPermissionCell({ + snapId, + showOptions, + permission, + connectionSubjectMetadata, + index, + revoked, + approved, +}) { + const t = useI18nContext(); + + let { label, description, leftIcon } = permission; + + const snapsMetadata = useSelector(getSnapsMetadata); + + const createConnectionIcon = (faviconUrl, permissionSubject) => { + return faviconUrl ? ( + + ) : ( + + {getAvatarFallbackLetter(permissionSubject.connectionName)} + + ); + }; + + const createSnapConnectionLabel = (snapName) => { + return t('snapConnectTo', [ + + {snapName} + , + ]); + }; + + const createSnapConnectionDescription = (snapName) => { + return t('snapConnectionPermissionDescription', [ + + {permission.subjectName} + , + + {snapName} + , + ]); + }; + + if (permission.connection) { + if (connectionSubjectMetadata?.subjectType === SubjectType.Snap) { + const snapName = getSnapName(snapsMetadata)( + connectionSubjectMetadata.origin, + ); + label = createSnapConnectionLabel(snapName); + description = createSnapConnectionDescription(snapName); + } + + leftIcon = createConnectionIcon( + connectionSubjectMetadata?.iconUrl, + permission, + ); + } + + return ( + + ); +} + +SnapPermissionCell.propTypes = { + snapId: PropTypes.string.isRequired, + showOptions: PropTypes.bool, + permission: PropTypes.object.isRequired, + connectionSubjectMetadata: PropTypes.object, + index: PropTypes.number, + revoked: PropTypes.bool, + approved: PropTypes.bool, +}; diff --git a/ui/components/app/snaps/snap-permission-cell/snap-permission-cell.test.js b/ui/components/app/snaps/snap-permission-cell/snap-permission-cell.test.js new file mode 100644 index 000000000000..1a9abbdfec06 --- /dev/null +++ b/ui/components/app/snaps/snap-permission-cell/snap-permission-cell.test.js @@ -0,0 +1,79 @@ +import { screen } from '@testing-library/react'; +import React from 'react'; +import configureMockStore from 'redux-mock-store'; +import thunk from 'redux-thunk'; +import { renderWithProvider } from '../../../../../test/jest'; +import mockState from '../../../../../test/data/mock-state.json'; +import SnapPermissionCell from './snap-permission-cell'; + +describe('Snap Permission Cell', () => { + const mockSnapId = 'mock-snap-id'; + const mockPermissionConnection = 'https://snaps.metamask.io'; + const mockIndex = 1; + + const mockPermissionData = { + permissionName: 'snap_dialog', + label: 'Display dialog windows in MetaMask.', + leftIcon: 'messages', + }; + const mockConnectionData = { + permissionName: 'connection_permission', + label: 'Connect to snaps.metamask.io', + connection: mockPermissionConnection, + }; + const mockTargetSubjectMetadata = { + extensionId: null, + iconUrl: null, + name: 'TypeScript Example Snap', + origin: 'local:http://localhost:8080', + subjectType: 'snap', + version: '0.2.2', + }; + const mockTargetSubjectsMetadata = { + [mockSnapId]: mockTargetSubjectMetadata, + [mockPermissionConnection]: { + iconUrl: null, + name: 'TypeScript Example Snap', + origin: 'https://snaps.metamask.io', + subjectType: 'website', + }, + }; + const mockStore = configureMockStore([thunk])(mockState); + + it('renders permissions cell with permission', () => { + renderWithProvider( + , + mockStore, + ); + expect( + screen.getByText('Display dialog windows in MetaMask.'), + ).toBeInTheDocument(); + expect(screen.getByText('Requested now')).toBeInTheDocument(); + }); + + it('renders permissions cell with connection', () => { + renderWithProvider( + , + mockStore, + ); + expect( + screen.getByText('Connect to snaps.metamask.io'), + ).toBeInTheDocument(); + expect(screen.getByText('Requested now')).toBeInTheDocument(); + }); +}); diff --git a/ui/components/app/snaps/snap-permissions-list/snap-permissions-list.js b/ui/components/app/snaps/snap-permissions-list/snap-permissions-list.js index 0accd6612a57..99b4a8b79995 100644 --- a/ui/components/app/snaps/snap-permissions-list/snap-permissions-list.js +++ b/ui/components/app/snaps/snap-permissions-list/snap-permissions-list.js @@ -3,42 +3,50 @@ import PropTypes from 'prop-types'; import { useSelector } from 'react-redux'; import { getWeightedPermissions } from '../../../../helpers/utils/permission'; import { useI18nContext } from '../../../../hooks/useI18nContext'; -import PermissionCell from '../../permission-cell'; import { Box } from '../../../component-library'; -import { getSnapsMetadata } from '../../../../selectors'; +import { + getMultipleTargetsSubjectMetadata, + getSnapsMetadata, +} from '../../../../selectors'; import { getSnapName } from '../../../../helpers/utils/util'; +import SnapPermissionCell from '../snap-permission-cell'; export default function SnapPermissionsList({ snapId, snapName, permissions, + connections, showOptions, }) { const t = useI18nContext(); const snapsMetadata = useSelector(getSnapsMetadata); + const permissionsToShow = { + ...permissions, + connection_permission: connections ?? {}, + }; + const targetSubjectsMetadata = useSelector((state) => + getMultipleTargetsSubjectMetadata(state, connections), + ); return ( {getWeightedPermissions({ t, - permissions, + permissions: permissionsToShow, subjectName: snapName, getSubjectName: getSnapName(snapsMetadata), - }).map((permission, index) => { - return ( - - ); - })} + }).map((permission, index) => ( + + ))} ); } @@ -47,5 +55,6 @@ SnapPermissionsList.propTypes = { snapId: PropTypes.string.isRequired, snapName: PropTypes.string.isRequired, permissions: PropTypes.object.isRequired, + connections: PropTypes.object, showOptions: PropTypes.bool, }; diff --git a/ui/components/app/snaps/snap-permissions-list/snap-permissions-list.test.js b/ui/components/app/snaps/snap-permissions-list/snap-permissions-list.test.js index f5f750f62461..ddfdc33970a4 100644 --- a/ui/components/app/snaps/snap-permissions-list/snap-permissions-list.test.js +++ b/ui/components/app/snaps/snap-permissions-list/snap-permissions-list.test.js @@ -5,6 +5,8 @@ import configureStore from '../../../../store/store'; import SnapPermissionsList from './snap-permissions-list'; describe('Snap Permission List', () => { + const mockSnapId = 'mock-snap-id'; + const mockSnapName = 'Snap Name'; const mockPermissionData = { snap_dialog: { caveats: null, @@ -49,6 +51,8 @@ describe('Snap Permission List', () => { it('renders permissions list for snaps', () => { renderWithProvider( , diff --git a/ui/components/app/snaps/update-snap-permission-list/update-snap-permission-list.js b/ui/components/app/snaps/update-snap-permission-list/update-snap-permission-list.js index 4b45bbd11ba2..4f6546e76851 100644 --- a/ui/components/app/snaps/update-snap-permission-list/update-snap-permission-list.js +++ b/ui/components/app/snaps/update-snap-permission-list/update-snap-permission-list.js @@ -3,75 +3,107 @@ import { useSelector } from 'react-redux'; import PropTypes from 'prop-types'; import { getWeightedPermissions } from '../../../../helpers/utils/permission'; import { useI18nContext } from '../../../../hooks/useI18nContext'; -import PermissionCell from '../../permission-cell'; import { Box } from '../../../component-library'; -import { getSnapMetadata, getSnapsMetadata } from '../../../../selectors'; +import { + getMultipleTargetsSubjectMetadata, + getSnapMetadata, + getSnapsMetadata, +} from '../../../../selectors'; import { getSnapName } from '../../../../helpers/utils/util'; +import SnapPermissionCell from '../snap-permission-cell'; export default function UpdateSnapPermissionList({ approvedPermissions, revokedPermissions, newPermissions, + approvedConnections, + revokedConnections, + newConnections, targetSubjectMetadata, }) { const t = useI18nContext(); + const snapId = targetSubjectMetadata.origin; const { name: snapName } = useSelector((state) => getSnapMetadata(state, targetSubjectMetadata.origin), ); + const targetSubjectsMetadata = useSelector((state) => + getMultipleTargetsSubjectMetadata(state, { + ...newConnections, + ...approvedConnections, + ...revokedConnections, + }), + ); + const snapsMetadata = useSelector(getSnapsMetadata); const snapsNameGetter = getSnapName(snapsMetadata); + const approvedPermissionsToShow = { + ...approvedPermissions, + connection_permission: approvedConnections ?? {}, + }; + + const revokedPermissionsToShow = { + ...revokedPermissions, + connection_permission: revokedConnections ?? {}, + }; + + const newPermissionsToShow = { + ...newPermissions, + connection_permission: newConnections ?? {}, + }; + return ( {getWeightedPermissions({ t, - permissions: newPermissions, + permissions: newPermissionsToShow, subjectName: snapName, getSubjectName: snapsNameGetter, }).map((permission, index) => ( - ))} {getWeightedPermissions({ t, - permissions: revokedPermissions, + permissions: revokedPermissionsToShow, subjectName: snapName, getSubjectName: snapsNameGetter, }).map((permission, index) => ( - ))} {getWeightedPermissions({ t, - permissions: approvedPermissions, + permissions: approvedPermissionsToShow, subjectName: snapName, getSubjectName: snapsNameGetter, }).map((permission, index) => ( - ))} @@ -91,5 +123,17 @@ UpdateSnapPermissionList.propTypes = { * New permissions that are being requested */ newPermissions: PropTypes.object.isRequired, + /** + * Pre-approved connections that have already been approved + */ + approvedConnections: PropTypes.object.isRequired, + /** + * Previously used pre-approved connections that are now revoked + */ + revokedConnections: PropTypes.object.isRequired, + /** + * New pre-approved connections that are being requested + */ + newConnections: PropTypes.object.isRequired, targetSubjectMetadata: PropTypes.object.isRequired, }; diff --git a/ui/helpers/utils/permission.js b/ui/helpers/utils/permission.js index 74eaed9c29ac..5885ec89222e 100644 --- a/ui/helpers/utils/permission.js +++ b/ui/helpers/utils/permission.js @@ -15,6 +15,7 @@ import { RestrictedMethods, ///: BEGIN:ONLY_INCLUDE_IF(snaps) EndowmentPermissions, + ConnectionPermission, ///: END:ONLY_INCLUDE_IF } from '../../../shared/constants/permissions'; import Tooltip from '../../components/ui/tooltip'; @@ -34,6 +35,7 @@ import { TextVariant, } from '../constants/design-system'; import { PermissionNames } from '../../../app/scripts/controllers/permissions'; +import { getURLHost } from './util'; ///: END:ONLY_INCLUDE_IF const UNKNOWN_PERMISSION = Symbol('unknown'); @@ -552,7 +554,50 @@ export const PERMISSION_DESCRIPTIONS = deepFreeze({ return result; }, + // connection_permission is pseudo permission used only for + // displaying pre-approved connections alongside other permissions + [ConnectionPermission.connection_permission]: ({ + t, + permissionValue, + subjectName, + }) => { + return Object.keys(permissionValue).map((connection) => { + let connectionName = getURLHost(connection); + // In case the connection is a Snap + if (!connectionName) { + connectionName = connection.replace('npm:', ''); + } + return { + label: t('snapConnectTo', [ + + {connectionName} + , + ]), + description: t('snapConnectionPermissionDescription', [ + getSnapNameComponent(subjectName), + + {connectionName} + , + ]), + leftIcon: undefined, // Icon for connections is handled by PermissionCell + connection, + connectionName, + subjectName, + weight: 3, + }; + }); + }, [UNKNOWN_PERMISSION]: ({ t, permissionName }) => ({ label: t('permission_unknown', [permissionName ?? 'undefined']), leftIcon: IconName.Question, diff --git a/ui/pages/permissions-connect/snaps/snap-install/snap-install.js b/ui/pages/permissions-connect/snaps/snap-install/snap-install.js index 10cab478714f..e9b7a700a755 100644 --- a/ui/pages/permissions-connect/snaps/snap-install/snap-install.js +++ b/ui/pages/permissions-connect/snaps/snap-install/snap-install.js @@ -186,6 +186,7 @@ export default function SnapInstall({ snapId={targetSubjectMetadata.origin} snapName={snapName} permissions={requestState.permissions || {}} + connections={requestState.connections || {}} /> {isScrollable && !isScrolledToBottom ? ( diff --git a/ui/pages/permissions-connect/snaps/snap-update/snap-update.js b/ui/pages/permissions-connect/snaps/snap-update/snap-update.js index 7d4a13903c61..b0f8ec9ba84a 100644 --- a/ui/pages/permissions-connect/snaps/snap-update/snap-update.js +++ b/ui/pages/permissions-connect/snaps/snap-update/snap-update.js @@ -66,6 +66,9 @@ export default function SnapUpdate({ const approvedPermissions = requestState.approvedPermissions ?? {}; const revokedPermissions = requestState.unusedPermissions ?? {}; const newPermissions = requestState.newPermissions ?? {}; + const approvedConnections = requestState.approvedConnections ?? {}; + const revokedConnections = requestState.unusedConnections ?? {}; + const newConnections = requestState.newConnections ?? {}; const { newVersion } = requestState; const isLoading = requestState.loading; @@ -186,6 +189,9 @@ export default function SnapUpdate({ approvedPermissions={approvedPermissions} revokedPermissions={revokedPermissions} newPermissions={newPermissions} + approvedConnections={approvedConnections} + revokedConnections={revokedConnections} + newConnections={newConnections} targetSubjectMetadata={targetSubjectMetadata} /> diff --git a/ui/selectors/selectors.js b/ui/selectors/selectors.js index 9a37fb8ca94a..c0e53d2feb9e 100644 --- a/ui/selectors/selectors.js +++ b/ui/selectors/selectors.js @@ -1157,6 +1157,34 @@ export const getMemoizedInterfaceContent = createDeepEqualSelector( ///: END:ONLY_INCLUDE_IF +///: BEGIN:ONLY_INCLUDE_IF(snaps) +/** + * Input selector providing a way to pass the origins as an argument. + * + * @param _state - Redux state object. + * @param origins - Object containing origins. + * @returns object - Object with keys that can be used as input selector. + */ +const selectOrigins = (_state, origins) => origins; + +/** + * Retrieve metadata for multiple subjects (origins). + * + * @param state - Redux state object. + * @param origins - Object containing keys that represent subject's identification. + * @returns Key:value object containing metadata attached to each subject key. + */ +export const getMultipleTargetsSubjectMetadata = createDeepEqualSelector( + [rawStateSelector, selectOrigins], + (state, origins) => { + return Object.keys(origins ?? {}).reduce((originsMetadata, origin) => { + originsMetadata[origin] = getTargetSubjectMetadata(state, origin); + return originsMetadata; + }, {}); + }, +); +///: END:ONLY_INCLUDE_IF + export function getRpcPrefsForCurrentProvider(state) { const { rpcPrefs } = getProviderConfig(state); return rpcPrefs || {}; diff --git a/ui/selectors/selectors.test.js b/ui/selectors/selectors.test.js index 875551a8618b..6d01b1107b23 100644 --- a/ui/selectors/selectors.test.js +++ b/ui/selectors/selectors.test.js @@ -1194,6 +1194,45 @@ describe('Selectors', () => { expect(selectors.getAnySnapUpdateAvailable(mockState)).toStrictEqual(true); }); + it('#getTargetSubjectMetadata', () => { + const targetSubjectsMetadata = selectors.getTargetSubjectMetadata( + mockState, + 'npm:@metamask/test-snap-bip44', + ); + expect(targetSubjectsMetadata).toStrictEqual({ + iconUrl: null, + name: '@metamask/test-snap-bip44', + subjectType: 'snap', + version: '1.2.3', + }); + }); + + it('#getMultipleTargetsSubjectMetadata', () => { + const targetSubjectsMetadata = selectors.getMultipleTargetsSubjectMetadata( + mockState, + { + 'npm:@metamask/test-snap-bip44': {}, + 'https://snaps.metamask.io': {}, + }, + ); + expect(targetSubjectsMetadata).toStrictEqual({ + 'https://snaps.metamask.io': { + extensionId: null, + iconUrl: + 'https://snaps.metamask.io/favicon-32x32.png?v=96e4834dade94988977ec34e50a62b84', + name: 'MetaMask Snaps Directory', + origin: 'https://snaps.metamask.io', + subjectType: 'website', + }, + 'npm:@metamask/test-snap-bip44': { + iconUrl: null, + name: '@metamask/test-snap-bip44', + subjectType: 'snap', + version: '1.2.3', + }, + }); + }); + describe('#getShowSurveyToast', () => { const realDateNow = Date.now;