Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

feat(Multichain): Multichain Safes with same address #4120

Merged
merged 86 commits into from
Oct 14, 2024
Merged
Show file tree
Hide file tree
Changes from 82 commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
4069d34
feat: show multichain accounts in sidebar (#4090)
schmanu Aug 28, 2024
957f236
fix: counting of total Safes in the sidebar
schmanu Aug 28, 2024
a0116da
Feat: replay safe creation with same address (#4116)
schmanu Aug 29, 2024
3c50dd8
Merge branch 'dev' into epic/multichain-safes
jmealy Sep 10, 2024
6d44e2f
[Multichain] feat: automatically migrate incompatible Safes from L1 t…
schmanu Sep 11, 2024
bb82043
[Multichain] Feat: new network select (#4124)
schmanu Sep 11, 2024
eb6381f
Merge remote-tracking branch 'origin/dev' into epic/multichain-safes
schmanu Sep 12, 2024
ee2257e
[Multichain] feat: SetupToL2 during Safe creation [SW-95] (#4075)
schmanu Sep 12, 2024
0cf633e
[Multichain] Feat: show warning when changing signer setup in a multi…
jmealy Sep 12, 2024
60f08a5
Merge remote-tracking branch 'origin/dev' into epic/multichain-safes
schmanu Sep 13, 2024
09fc8a6
[Multichain] fix: Hide header network selector on non-safe routes [SW…
usame-algan Sep 16, 2024
80c8649
Merge remote-tracking branch 'origin/dev' into epic/multichain-safes
usame-algan Sep 16, 2024
b0d17ea
fix: allow activating Safes as non-owner (#4176)
schmanu Sep 17, 2024
4f5e9bf
[Multichain] Feat: disable adding new chains to safes created from ol…
jmealy Sep 17, 2024
6555c95
[Multichain] feat: redesign of multiaccounts and context menu for mul…
schmanu Sep 17, 2024
8680d6b
[Multichain] fix: Network selector links and visual style [SW-184] (#…
usame-algan Sep 17, 2024
1db148e
[Multichain] fix: Zksync network selector [SW-152] (#4185)
usame-algan Sep 17, 2024
938d524
fix: show unavailable networks when replaying Safes (#4197)
schmanu Sep 18, 2024
99b0cb1
fix: check for canonical deployments (#4193)
schmanu Sep 19, 2024
c81e54d
fix: show network when activating a safe (#4199)
jmealy Sep 19, 2024
bf6ea57
[Multichain] Fix: precise counterfactual safes (#4191)
schmanu Sep 19, 2024
91f0566
[Multichain] Feat: multichain feature toggle (#4209)
schmanu Sep 19, 2024
7c321fe
Fix: multichain disable tx creation for undeployed Safes (#4208)
schmanu Sep 19, 2024
27f2970
fix: dont add setupToL2 for older safe version (#4213)
schmanu Sep 19, 2024
d450f1c
Feat(Multichain): Show warning on dashboard when multichain setup is …
jmealy Sep 20, 2024
05197e0
fix(Multichain): memoize data for InconsistentSignerSetupWarning (#4232)
schmanu Sep 23, 2024
244dad2
Merge remote-tracking branch 'origin/dev' into epic/multichain-safes
schmanu Sep 23, 2024
126a8bb
[Multichain] fix: Disable submit button while replaying safe [SW-173]…
usame-algan Sep 23, 2024
2f8d774
Chore: update lint action (#4230)
katspaugh Sep 23, 2024
a4ee3d6
fix: do not disable currently selected network in the network selecto…
jmealy Sep 23, 2024
357fc85
fix(Multichain): add more unsupported Safe cases (#4233)
schmanu Sep 23, 2024
caf5b96
[Multichain] fix: Pass options for safe creation [SW-199] (#4234)
usame-algan Sep 23, 2024
8679c93
Fix(Multichain): replay modal loses focus when typing certain letters…
jmealy Sep 24, 2024
916318f
fix(Multichain): overview of non multichain Safe (#4235)
schmanu Sep 24, 2024
8e6b2e8
[Multichain] fix: Add analytics events [SW-165] (#4228)
usame-algan Sep 24, 2024
88a9549
fix: Minified react error because of DOM nesting (#4244)
usame-algan Sep 24, 2024
11754e1
fix: use wallet network as default for safe creation (#4241)
jmealy Sep 24, 2024
5c9be78
Fix(Multichain): Show owner setup warning also when replacing owners …
jmealy Sep 24, 2024
ffe9139
fix: Add loading spinner to add new network form when submitting (#4245)
usame-algan Sep 25, 2024
54f7c47
Feat(Multichain): simplify multichain naming options [SW-187] [SW-221…
jmealy Sep 25, 2024
1e971f7
Merge remote-tracking branch 'origin/dev' into epic/multichain-safes
usame-algan Sep 25, 2024
6880bf0
fix: Display current chain network logo in success screen as a fallba…
usame-algan Sep 25, 2024
2910cec
chore: Fix lint issues
usame-algan Sep 25, 2024
3ff63d4
Merge remote-tracking branch 'origin/epic/multichain-safes' into epic…
usame-algan Sep 25, 2024
a701240
fix: Redirect user to dashboard after safe creation (#4252)
usame-algan Sep 25, 2024
ea83b21
Feat: cached safe overviews (#4221)
schmanu Sep 25, 2024
d899d2b
Feat(Multichain): update text on safe creation review step [SW-225] (…
jmealy Sep 25, 2024
3361831
fix: Show notification when adding a new network to an account (#4250)
usame-algan Sep 26, 2024
2531ac1
fix: throw custom error for empty setupData (#4255)
schmanu Sep 26, 2024
5c7d23c
Feat(Multichain): use contract addresses from safe-deployments [SW-16…
jmealy Sep 30, 2024
d5e6219
Merge remote-tracking branch 'origin/dev' into epic/multichain-safes
schmanu Sep 30, 2024
c63ea91
[Multichain] fix: Adjust multichain design [SW-244] (#4284)
usame-algan Sep 30, 2024
2d832eb
Fix(Multichain): ignore empty safe address when loading safeOverviews…
schmanu Oct 1, 2024
f38021c
feat: block adding networks to safes with unknown setupModule calls (…
schmanu Oct 1, 2024
03c6810
fix: Adjust balance alignment in safe list (#4286)
usame-algan Oct 1, 2024
e8e0f67
[Multichain] fix: Check all fallbackHandler deployments [SW-236] (#4281)
usame-algan Oct 1, 2024
bfcbba1
fix: decoding of migration txs (#4291)
schmanu Oct 1, 2024
c8592a9
fix: detection of migration txs in SignOrExecuteForm (#4296)
schmanu Oct 2, 2024
a5b4870
Feat(Multichain): explain impossible network addition (#4283)
schmanu Oct 2, 2024
6cd64f8
Feat(Multichain): add feature flag checks when adding a new network […
jmealy Oct 2, 2024
d7ee967
Fix(Multichain): do not migrate to L2 if no lib contract is available…
schmanu Oct 2, 2024
4ff9d0f
Merge remote-tracking branch 'origin/dev' into epic/multichain-safes
schmanu Oct 2, 2024
c8f5406
fix: Display Activate now button in sidebar for counterfactual safes …
usame-algan Oct 2, 2024
53f220b
fix: Use chain-specific addresses for safe creation (#4305)
usame-algan Oct 4, 2024
150013a
fix: validate account config for cf safes (#4302)
schmanu Oct 7, 2024
fcaa83e
fix: store owner and Safe name in addressBook on all chosen networks …
schmanu Oct 7, 2024
67e8423
[Multichain] fix: Add more analytics events for multichain [SW-165] (…
usame-algan Oct 7, 2024
b641210
fix: Add condensed network list to safe creation review (#4321)
usame-algan Oct 7, 2024
8c5ea04
Merge remote-tracking branch 'origin/dev' into epic/multichain-safes
usame-algan Oct 7, 2024
87b5c0c
Fix(Multichain): disable apps for counterfactual Safes (#4320)
schmanu Oct 7, 2024
ca3c779
fix: Use readonly provider for predicting address during safe creatio…
usame-algan Oct 7, 2024
8e42093
fix: Invert condition to disable correct nav items (#4323)
usame-algan Oct 7, 2024
2d811ea
fix(Multichain): Safe address prediction and creation on zkSync (#4334)
schmanu Oct 8, 2024
a5f5a4c
fix: Adjust multichain analytics events (#4330)
usame-algan Oct 8, 2024
1220035
fix(Multichain): detect migration txs and mark them as trusted (#4339)
schmanu Oct 9, 2024
dcdd502
fix(Multichain): allow missing paymentToken when adding networks (#4343)
schmanu Oct 9, 2024
3789654
fix: Update address book for replayed safe (#4337)
usame-algan Oct 9, 2024
606cc03
Merge remote-tracking branch 'origin/dev' into epic/multichain-safes
schmanu Oct 9, 2024
a827466
[Multichain] fix: Copy owners to address book when replaying safe [SW…
usame-algan Oct 10, 2024
5dfcaab
feat(Multichain): link to help article (#4361)
schmanu Oct 11, 2024
3890cef
fix: Only show network logo of activated safe (#4370)
usame-algan Oct 14, 2024
5472160
Tests: Update automation tests (#4368)
mike10ca Oct 14, 2024
0f3cb8a
fix: allowSpendingLimit in CheckWallet (#4371)
schmanu Oct 14, 2024
c6eef57
Merge remote-tracking branch 'origin/dev' into epic/multichain-safes
schmanu Oct 14, 2024
3473f7a
feat: add bade to unavailable networks (#4372)
schmanu Oct 14, 2024
295fef7
refactor: move multichain utils to correct file (#4373)
schmanu Oct 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/e2e-ondemand.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ jobs:
cypress/e2e/regression/*.cy.js
cypress/e2e/safe-apps/*.cy.js
cypress/e2e/smoke/*.cy.js
cypress/e2e/prodhealthcheck/*.cy.js
group: 'Regression on demand tests'
tag: 'regression'

Expand Down
28 changes: 24 additions & 4 deletions cypress/e2e/pages/create_wallet.pages.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ const googleSignedinBtn = '[data-testid="signed-in-account-btn"]'
export const accountInfoHeader = '[data-testid="open-account-center"]'
export const reviewStepOwnerInfo = '[data-testid="review-step-owner-info"]'
const reviewStepNextBtn = '[data-testid="review-step-next-btn"]'
const creationModalLetsGoBtn = '[data-testid="cf-creation-lets-go-btn"]'
const safeCreationStatusInfo = '[data-testid="safe-status-info"]'
const startUsingSafeBtn = '[data-testid="start-using-safe-btn"]'
const sponsorIcon = '[data-testid="sponsor-icon"]'
Expand All @@ -36,6 +37,8 @@ export const activateAccountBtn = '[data-testid="activate-account-btn-cf"]'
const notificationsSwitch = '[data-testid="notifications-switch"]'
export const addFundsSection = '[data-testid="add-funds-section"]'
export const noTokensAlert = '[data-testid="no-tokens-alert"]'
const networkCheckbox = '[data-testid="network-checkbox"]'
const cancelIcon = '[data-testid="CancelIcon"]'

const sponsorStr = 'Your account is sponsored by Goerli'
const safeCreationProcessing = 'Transaction is being executed'
Expand All @@ -61,8 +64,8 @@ export function checkNotificationsSwitchIs(status) {
cy.get(notificationsSwitch).find('input').should(`be.${status}`)
}

export function clickOnActivateAccountBtn() {
cy.get(activateAccountBtn).click()
export function clickOnActivateAccountBtn(index) {
cy.get(activateAccountBtn).eq(index).click()
}

export function clickOnQRCodeSwitch() {
Expand Down Expand Up @@ -123,6 +126,12 @@ export function clickOnReviewStepNextBtn() {
cy.get(reviewStepNextBtn).click()
cy.get(reviewStepNextBtn, { timeout: 60000 }).should('not.exist')
}

export function clickOnLetsGoBtn() {
cy.get(creationModalLetsGoBtn).click()
cy.get(creationModalLetsGoBtn, { timeout: 60000 }).should('not.exist')
}

export function verifyOwnerInfoIsPresent() {
return cy.get(reviewStepOwnerInfo).shoul('exist')
}
Expand Down Expand Up @@ -184,6 +193,17 @@ export function selectNetwork(network) {
cy.get('li').parents('ul').contains(regex).click()
}

export function selectMultiNetwork(index, network) {
cy.get('input').eq(index).click()
cy.get('input').eq(index).type(network)
cy.get(networkCheckbox).eq(0).click()
}

export function clearNetworkInput(index) {
cy.get('input').eq(index).click()
cy.get(cancelIcon).click()
}

export function clickOnNextBtn() {
cy.get(nextBtn).should('be.enabled').click()
}
Expand Down Expand Up @@ -257,8 +277,8 @@ export function verifyThresholdStringInSummaryStep(startThreshold, endThreshold)
cy.contains(`${startThreshold} out of ${endThreshold}`)
}

export function verifyNetworkInSummaryStep(network) {
cy.get('div').contains('Name').parent().parent().contains(network)
export function verifySafeNetworkNameInSummaryStep(name) {
cy.get('div').contains('Name').parent().parent().contains(name)
}

export function verifyEstimatedFeeInSummaryStep() {
Expand Down
2 changes: 1 addition & 1 deletion cypress/e2e/pages/load_safe.pages.js
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ export function verifyDataInReviewSection(safeName, ownerName, threshold = null,
cy.findByText(ownerName).should('be.visible')
if (ownerAddress !== null) cy.get(safeDataForm).contains(ownerAddress).should('be.visible')
if (threshold !== null) cy.get(safeDataForm).contains(threshold).should('be.visible')
if (network !== null) cy.get(sidebar.chainLogo).eq(1).contains(network).should('be.visible')
if (network !== null) cy.get(sidebar.chainLogo).eq(0).contains(network).should('be.visible')
}

export function clickOnAddBtn() {
Expand Down
4 changes: 2 additions & 2 deletions cypress/e2e/pages/owners.pages.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const newOwnerNonceInput = 'input[name="nonce"]'
const thresholdInput = 'input[name="threshold"]'
const thresHoldDropDownIcon = 'svg[data-testid="ArrowDropDownIcon"]'
const thresholdList = 'ul[role="listbox"]'
const thresholdDropdown = 'div[aria-haspopup="listbox"]'
const thresholdDropdown = '[data-testid="threshold-selector"]'
const thresholdOption = 'li[role="option"]'
const existingOwnerAddressInput = (index) => `input[name="owners.${index}.address"]`
const existingOwnerNameInput = (index) => `input[name="owners.${index}.name"]`
Expand Down Expand Up @@ -80,7 +80,7 @@ export function verifyOwnerDeletionWindowDisplayed() {
}

function clickOnThresholdDropdown() {
cy.get(thresholdDropdown).eq(1).click()
cy.get(thresholdDropdown).eq(0).click()
}

export function getThresholdOptions() {
Expand Down
90 changes: 2 additions & 88 deletions cypress/e2e/regression/create_safe_cf.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,15 @@ import * as constants from '../../support/constants'
import * as main from '../pages/main.page'
import * as createwallet from '../pages/create_wallet.pages'
import * as owner from '../pages/owners.pages'
import * as navigation from '../pages/navigation.page.js'
import * as ls from '../../support/localstorage_data.js'
import { getSafes, CATEGORIES } from '../../support/safes/safesHandler.js'
import * as safeapps from '../pages/safeapps.pages'
import * as wallet from '../../support/utils/wallet.js'

let staticSafes = []
const walletCredentials = JSON.parse(Cypress.env('CYPRESS_WALLET_CREDENTIALS'))
// DO NOT use OWNER_2_PRIVATE_KEY for safe creation. Used for CF safes.
const signer = walletCredentials.OWNER_2_PRIVATE_KEY

const txOrder = [
'Activate Safe now',
'Add another signer',
'Set up recovery',
'Swap tokens',
'Custom transaction',
'Send token',
]

describe('CF Safe regression tests', () => {
before(async () => {
staticSafes = await getSafes(CATEGORIES.static)
Expand All @@ -31,19 +20,6 @@ describe('CF Safe regression tests', () => {
cy.visit(constants.homeUrl + staticSafes.SEP_STATIC_SAFE_0)
})

it('Verify Add native assets and Create tx modals can be opened', () => {
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__undeployedSafes, ls.undeployedSafe.safe1)
cy.reload()
wallet.connectSigner(signer)
owner.waitForConnectionStatus()
createwallet.clickOnAddFundsBtn()
main.verifyElementsIsVisible([createwallet.qrCode])
navigation.clickOnModalCloseBtn(0)

createwallet.clickOnCreateTxBtn()
navigation.clickOnModalCloseBtn(0)
})

it('Verify "0 out of 2 step completed" is shown in the dashboard', () => {
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__undeployedSafes, ls.undeployedSafe.safe1)
cy.reload()
Expand All @@ -70,68 +46,6 @@ describe('CF Safe regression tests', () => {
createwallet.checkQRCodeSwitchStatus(constants.checkboxStates.unchecked)
})

it('Verify "Create new transaction" modal contains tx types in sequence', () => {
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__undeployedSafes, ls.undeployedSafe.safe1)
cy.reload()
wallet.connectSigner(signer)
owner.waitForConnectionStatus()
createwallet.clickOnCreateTxBtn()
createwallet.checkAllTxTypesOrder(txOrder)
})

it('Verify "Add safe now" button takes to a tx "Activate account"', () => {
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__undeployedSafes, ls.undeployedSafe.safe1)
cy.reload()
wallet.connectSigner(signer)
owner.waitForConnectionStatus()
createwallet.clickOnCreateTxBtn()
createwallet.clickOnTxType(txOrder[0])
cy.contains(createwallet.deployWalletStr)
})

it('Verify "Add another Owner" takes to a tx Add owner', () => {
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__undeployedSafes, ls.undeployedSafe.safe1)
cy.reload()
wallet.connectSigner(signer)
owner.waitForConnectionStatus()
createwallet.clickOnCreateTxBtn()
createwallet.clickOnTxType(txOrder[1])
main.verifyTextVisibility([createwallet.addSignerStr])
})

it('Verify "Setup recovery" button takes to the "Account recovery" flow', () => {
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__undeployedSafes, ls.undeployedSafe.safe1)
cy.reload()
wallet.connectSigner(signer)
owner.waitForConnectionStatus()
createwallet.clickOnCreateTxBtn()
createwallet.clickOnTxType(txOrder[2])
main.verifyTextVisibility([createwallet.accountRecoveryStr])
})

it('Verify "Send token" takes to the tx form to send tokens', () => {
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__undeployedSafes, ls.undeployedSafe.safe1)
cy.reload()
wallet.connectSigner(signer)
owner.waitForConnectionStatus()
createwallet.clickOnCreateTxBtn()
createwallet.clickOnTxType(txOrder[5])
main.verifyTextVisibility([createwallet.sendTokensStr])
})

it('Verify "Custom transaction" takes to the tx builder app ', () => {
const iframeSelector = `iframe[id="iframe-${constants.TX_Builder_url}"]`
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__undeployedSafes, ls.undeployedSafe.safe1)
cy.reload()
wallet.connectSigner(signer)
owner.waitForConnectionStatus()
createwallet.clickOnCreateTxBtn()
createwallet.clickOnTxType(txOrder[4])
main.getIframeBody(iframeSelector).within(() => {
cy.contains(safeapps.transactionBuilderStr)
})
})

it('Verify "Notifications" in the settings are disabled', () => {
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__undeployedSafes, ls.undeployedSafe.safe1)
cy.reload()
Expand All @@ -151,7 +65,7 @@ describe('CF Safe regression tests', () => {
cy.visit(constants.BALANCE_URL + staticSafes.SEP_STATIC_SAFE_0)
wallet.connectSigner(signer)
owner.waitForConnectionStatus()
createwallet.clickOnActivateAccountBtn()
main.verifyElementsIsVisible([createwallet.activateAccountBtn])
createwallet.clickOnActivateAccountBtn(1)
cy.contains(createwallet.deployWalletStr)
})
})
25 changes: 12 additions & 13 deletions cypress/e2e/regression/create_safe_simple.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,6 @@ describe('Safe creation tests', () => {
owner.waitForConnectionStatus()
})

it('Verify Next button is disabled until switching to network is done', () => {
createwallet.clickOnContinueWithWalletBtn()
createwallet.selectNetwork(constants.networks.ethereum)
createwallet.clickOnCreateNewSafeBtn()
createwallet.checkNetworkChangeWarningMsg()
createwallet.verifyNextBtnIsDisabled()
createwallet.selectNetwork(constants.networks.sepolia)
createwallet.verifyNextBtnIsEnabled()
})

// TODO: Check unit tests
it('Verify error message is displayed if wallet name input exceeds 50 characters', () => {
createwallet.clickOnContinueWithWalletBtn()
Expand Down Expand Up @@ -84,7 +74,7 @@ describe('Safe creation tests', () => {
createwallet.verifyOwnerAddressInSummaryStep(constants.DEFAULT_OWNER_ADDRESS)
createwallet.verifyOwnerAddressInSummaryStep(constants.DEFAULT_OWNER_ADDRESS)
createwallet.verifyThresholdStringInSummaryStep(1, 2)
createwallet.verifyNetworkInSummaryStep(constants.networks.sepolia)
createwallet.verifySafeNetworkNameInSummaryStep(constants.networks.sepolia.toLowerCase())
createwallet.clickOnBackBtn()
createwallet.clickOnBackBtn()
cy.wait(1000)
Expand All @@ -95,8 +85,7 @@ describe('Safe creation tests', () => {
createwallet.verifyOwnerAddressInSummaryStep(constants.DEFAULT_OWNER_ADDRESS)
createwallet.verifyOwnerAddressInSummaryStep(constants.DEFAULT_OWNER_ADDRESS)
createwallet.verifyThresholdStringInSummaryStep(1, 2)
createwallet.verifyNetworkInSummaryStep(constants.networks.sepolia)
createwallet.verifyEstimatedFeeInSummaryStep()
createwallet.verifySafeNetworkNameInSummaryStep(constants.networks.sepolia.toLowerCase())
})

it('Verify tip is displayed on right side for threshold 1/1', () => {
Expand Down Expand Up @@ -133,11 +122,21 @@ describe('Safe creation tests', () => {
)
.then(() => {
createwallet.waitForConnectionMsgDisappear()
createwallet.selectMultiNetwork(1, constants.networks.sepolia.toLowerCase())
createwallet.clickOnNextBtn()
createwallet.clickOnAddNewOwnerBtn()
createwallet.clickOnSignerAddressInput(1)
createwallet.selectSignerOnAutocomplete(2)
owner.verifyErrorMsgInvalidAddress(constants.addressBookErrrMsg.ownerAdded)
})
})

// Unskip when the bug is fixed
it.skip('Verify Next button is disabled until switching to network is done', () => {
createwallet.clickOnContinueWithWalletBtn()
createwallet.clickOnCreateNewSafeBtn()
createwallet.verifyNextBtnIsEnabled()
createwallet.clearNetworkInput(1)
createwallet.verifyNextBtnIsDisabled()
})
})
1 change: 1 addition & 0 deletions cypress/e2e/smoke/create_safe_cf.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ describe('[SMOKE] CF Safe creation tests', () => {
},
]
checkDataLayerEvents(safe_created)
createwallet.clickOnLetsGoBtn()
createwallet.verifyCFSafeCreated()
})
})
Expand Down
5 changes: 1 addition & 4 deletions cypress/e2e/smoke/import_export_data.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import * as file from '../pages/import_export.pages'
import * as main from '../pages/main.page'
import * as constants from '../../support/constants'
import * as ls from '../../support/localstorage_data.js'
import * as createwallet from '../pages/create_wallet.pages'
import * as sideBar from '../pages/sidebar.pages'
import { getSafes, CATEGORIES } from '../../support/safes/safesHandler.js'

Expand All @@ -15,9 +14,7 @@ describe('[SMOKE] Import Export Data tests', () => {
})

beforeEach(() => {
cy.visit(constants.dataSettingsUrl).then(() => {
createwallet.selectNetwork(constants.networks.sepolia)
})
cy.visit(constants.dataSettingsUrl)
})

it('[SMOKE] Verify Safe can be accessed after test file upload', () => {
Expand Down
7 changes: 7 additions & 0 deletions jest.setup.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,15 @@
// Learn more: https://github.com/testing-library/jest-dom
import '@testing-library/jest-dom/extend-expect'
import { TextEncoder, TextDecoder } from 'util'
import { Headers, Request, Response } from 'node-fetch'

jest.mock('@web3-onboard/coinbase', () => jest.fn())
jest.mock('@web3-onboard/injected-wallets', () => ({ ProviderLabel: { MetaMask: 'MetaMask' } }))
jest.mock('@web3-onboard/keystone/dist/index', () => jest.fn())
jest.mock('@web3-onboard/ledger/dist/index', () => jest.fn())
jest.mock('@web3-onboard/trezor', () => jest.fn())
jest.mock('@web3-onboard/walletconnect', () => jest.fn())
jest.mock('safe-client-gateway-sdk')

const mockOnboardState = {
chains: [],
Expand Down Expand Up @@ -68,3 +70,8 @@ Object.defineProperty(Uint8Array, Symbol.hasInstance, {
: Uint8Array[Symbol.hasInstance].call(this, potentialInstance)
},
})

// These are required for safe-client-gateway-sdk
globalThis.Request = Request
globalThis.Response = Response
globalThis.Headers = Headers
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
"@safe-global/api-kit": "^2.4.6",
"@safe-global/protocol-kit": "^4.1.1",
"@safe-global/safe-apps-sdk": "^9.1.0",
"@safe-global/safe-deployments": "^1.37.8",
"@safe-global/safe-deployments": "^1.37.10",
"@safe-global/safe-gateway-typescript-sdk": "3.22.3-beta.15",
"@safe-global/safe-modules-deployments": "^2.2.1",
"@sentry/react": "^7.91.0",
Expand Down Expand Up @@ -91,6 +91,7 @@
"react-hook-form": "7.41.1",
"react-papaparse": "^4.0.2",
"react-redux": "^9.1.2",
"safe-client-gateway-sdk": "git+https://github.com/safe-global/safe-client-gateway-sdk.git#v1.53.0-next-7344903",
"semver": "^7.6.3",
"zodiac-roles-deployments": "^2.2.5"
},
Expand Down
8 changes: 8 additions & 0 deletions public/images/sidebar/multichain-account.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading