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

Release 1.48.0 #4667

Merged
merged 97 commits into from
Dec 17, 2024
Merged
Show file tree
Hide file tree
Changes from 92 commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
0818e71
Refactor: upgrade to Next 15 (#4485)
compojoom Nov 19, 2024
67454b1
Fix: run prettier
katspaugh Nov 19, 2024
ee8d13b
Tests: Add proposer tests (#4536)
mike10ca Nov 19, 2024
38010be
Pull from main
katspaugh Nov 20, 2024
abdae72
Chore: update cgw sdk to stable version
katspaugh Nov 20, 2024
436f99e
Tests: Add proposers tests (#4542)
mike10ca Nov 20, 2024
01c1079
Tests: Add safe apps tests (#4544)
mike10ca Nov 21, 2024
7253f67
Fix: mui accordion background (#4543)
katspaugh Nov 21, 2024
e4776d1
Fix: section heading in terms (#4545)
katspaugh Nov 21, 2024
5f8fad0
Chore: update walletconnect packages
katspaugh Nov 22, 2024
6ff9e32
Fix: remove old app store button (#4546)
katspaugh Nov 22, 2024
03b34bf
Tests: Add staking history tests (#4549)
mike10ca Nov 22, 2024
cf98da0
Chore: replace @walletconnect packages with @reown/walletkit (#4548)
katspaugh Nov 22, 2024
a4862ad
Update import export tests (#4551)
mike10ca Nov 22, 2024
74a7e24
Fix: WC unit tests (#4553)
katspaugh Nov 22, 2024
43d158f
fix: fetch safe overviews including untrusted token fiatTotal (#4495)
schmanu Nov 22, 2024
96d6f20
Chore(deps): Bump ethers from 6.11.1 to 6.13.4 (#4557)
dependabot[bot] Nov 25, 2024
207dfd1
Epic: sidebar improvements (#4442)
jmealy Nov 25, 2024
5637ba7
fix: Disable transaction buttons until sdk is initialized (#4405)
usame-algan Nov 25, 2024
dec9e37
Merge branch 'main' of github.com:safe-global/safe-wallet-web into dev
katspaugh Nov 25, 2024
0eb9dc2
fix: only return "next" transactions as pending (#4568)
iamacook Nov 26, 2024
7642d4a
Tests: Fix sidebar and staking tests (#4566)
mike10ca Nov 26, 2024
9382f62
fix: remove unnecessary log (#4570)
iamacook Nov 26, 2024
1aa6626
fix: Init Safe SDK for replayed safes (#4567)
usame-algan Nov 27, 2024
2ed4765
Tests: Add safe pin tests (#4573)
mike10ca Nov 27, 2024
5098280
Refactor: rm unnecessary tx decoding (#4541)
katspaugh Nov 27, 2024
ed631fc
fix: Advanced safe creation address computation (#4564)
usame-algan Nov 27, 2024
cc5374c
Tests: Add regex to handle my accounts (#4574)
mike10ca Nov 28, 2024
6a16d5c
Docs: update .env.example
katspaugh Nov 28, 2024
9f5ab1e
Merge branch 'main' of github.com:safe-global/safe-wallet-web into dev
katspaugh Nov 28, 2024
047f45d
fix: Don't break array elements in tx details into multiple lines if …
usame-algan Nov 28, 2024
1814c26
fix: update `wallet_getCallsStatus` spec. (#4569)
iamacook Nov 28, 2024
d8ff281
Tests: Add sidebar tests (#4577)
mike10ca Nov 28, 2024
d595f12
Tests: Add timeout for drain account app (#4579)
mike10ca Nov 29, 2024
316b956
feat: add LI.FI widget (#4459)
iamacook Nov 29, 2024
7dcd953
feat: zkEmail fake door (#4578)
tmjssz Nov 29, 2024
b50340d
feat: allow signing with owned parent Safes (#4406)
schmanu Nov 29, 2024
a3cd8e4
Chore: fix lodash imports (#4580)
katspaugh Nov 29, 2024
d5517fe
Fix: replace "signer(s)" with "N signers" or "1 signer" (#4550)
katspaugh Nov 29, 2024
b4c7d99
Tests: Add using of mock safe address (#4581)
mike10ca Nov 29, 2024
c312078
Chore: extract terms version into a separate file for a smaller build…
katspaugh Dec 2, 2024
fb15873
fix: add event labels to opening and (un-)pinning of Safe Apps (#4582)
iamacook Dec 2, 2024
dc9327e
Tests: Fix tests (#4586)
mike10ca Dec 2, 2024
374f556
1.48.0
katspaugh Dec 2, 2024
b30a74b
Tests: Update twap tests (#4590)
mike10ca Dec 2, 2024
9e31418
tests: Update test steps (#4591)
mike10ca Dec 2, 2024
2bf0514
Chore: speed up dev build (#4592)
katspaugh Dec 3, 2024
7668262
fix: do not duplicate hex prefixes in `wallet_getCallsStatus` receipt…
iamacook Dec 3, 2024
3936846
Tests: Update prod tests (#4596)
mike10ca Dec 3, 2024
40768af
Tests: Increase timeout (#4600)
mike10ca Dec 4, 2024
41614f8
feat: Update header safe token widget for SAP [SW-586] (#4565)
usame-algan Dec 4, 2024
b6eb6f9
fix: Update privacy policy to include Fingerprint usage (#4605)
usame-algan Dec 4, 2024
dd61600
Tests: fix safe-wallet-provider unit tests (#4606)
katspaugh Dec 4, 2024
6f3a235
Tests: Add recovery tests (#4607)
mike10ca Dec 4, 2024
10179c2
fix: Exclude SAP allocation from voting power (#4610)
usame-algan Dec 5, 2024
56e0bd0
Chore: add AI code review action (#4609)
katspaugh Dec 5, 2024
74fe854
fix: remove unnecessary deps. from `useAllOwnedSafes` cache (#4604)
iamacook Dec 5, 2024
fa245b7
Tests: Add incoming tx history tests (#4615)
mike10ca Dec 5, 2024
3b83ccb
Merge remote-tracking branch 'origin/dev' into backmerge
usame-algan Dec 5, 2024
17e32e5
Chore: upgrade React to 19 stable (#4618)
katspaugh Dec 6, 2024
d8fd62f
Refactor: restore old MUI props (#4620)
katspaugh Dec 6, 2024
eefcb4a
Chore(deps-dev): Bump webpack from 5.95.0 to 5.97.1 (#4625)
dependabot[bot] Dec 9, 2024
608d004
fix: Disable Add to Batch button for safe apps [SW-363] (#4623)
usame-algan Dec 10, 2024
cff8b41
fix: upgrade transactions for 1.0.0 Safes (#4460)
schmanu Dec 10, 2024
b1c435b
fix: allow passing custom chainId to ModalDialog (#4589)
schmanu Dec 10, 2024
c3d7922
fix: do not clear AddressInput when disabled (#4597)
schmanu Dec 10, 2024
ac4de7a
fix: do not offer executing unsigned txs with connected wallet (#4598)
schmanu Dec 10, 2024
fb605f5
fix: don't use `chainId` when calculating domain hash of <=1.2.0 (#4616)
iamacook Dec 10, 2024
922400c
Fix: typo in NetworkWarning
katspaugh Dec 10, 2024
217e2d5
Chore: update protocol-kit and safe-deployments (#4634)
katspaugh Dec 11, 2024
296bff3
Chore: Update protocol kit to add new network (#4647)
Fbartoli Dec 12, 2024
d9af60d
Chore: run AI review only on PR creation
katspaugh Dec 12, 2024
6939359
Fix: token pair arrow background (#4648)
katspaugh Dec 13, 2024
52d6300
Feat: include recently visited safes in import and export data [SW-59…
jmealy Dec 13, 2024
49dfe62
Refactor sidebar hooks [SW-647] (#4641)
usame-algan Dec 13, 2024
b34d46d
Fix: pass sx prop to Box and Typography (#4654)
katspaugh Dec 13, 2024
841f571
refactor: Extract useAllSafesGrouped logic and write tests (#4652)
usame-algan Dec 13, 2024
0c1a737
Refactor: Reuse Single account item component [SW-647] (#4658)
usame-algan Dec 13, 2024
9f08316
fix: Add sorting back to useAllSafes hook (#4659)
usame-algan Dec 13, 2024
d094768
Fix: allow removing counterfactual safes from safe list (#4643)
jmealy Dec 13, 2024
4a379f6
fix: Show raw data if decodedData doesn't contain any parameters [SW-…
usame-algan Dec 15, 2024
e509e6b
fix: Adjust sidebar search input design, show notifications on pin sa…
usame-algan Dec 15, 2024
762cccb
Chore(deps-dev): Bump @testing-library/react from 16.0.1 to 16.1.0 (#…
dependabot[bot] Dec 16, 2024
2878005
Chore(deps): Bump zodiac-roles-deployments from 2.2.5 to 2.3.4 (#4662)
dependabot[bot] Dec 16, 2024
2088738
Chore(deps): Bump next from 15.0.4 to 15.1.0 (#4661)
dependabot[bot] Dec 16, 2024
a7ae301
Chore(deps-dev): Bump @svgr/webpack from 6.5.1 to 8.1.0 (#4663)
dependabot[bot] Dec 16, 2024
fb161fc
Chore(deps): Bump @web3-onboard/coinbase from 2.2.6 to 2.4.1 (#4664)
dependabot[bot] Dec 16, 2024
d52a5b7
fix: CheckWallet sdk only if safe is also loaded (#4637)
usame-algan Dec 16, 2024
1673714
fix: Revert add read-only button naming (#4666)
usame-algan Dec 16, 2024
e905001
1.48.0
katspaugh Dec 16, 2024
41a8ec9
Chore: restore previous yarn.lock
katspaugh Dec 16, 2024
d61021d
fix: rank featured Safe Apps first on dashboard (#4644)
iamacook Dec 16, 2024
2d98a9e
Fix: box border color in tx details (#4668)
katspaugh Dec 16, 2024
9e44ad4
Fix: pass chainId in address book dialog (#4669)
katspaugh Dec 16, 2024
6caca1d
fix: Refetch owned safes after deployment (#4673)
usame-algan Dec 16, 2024
7e88d74
Fix: signer vs plural signers (#4675)
katspaugh Dec 17, 2024
b942226
fix: Cap max expiry for setTimeout in useIsExpiredSwap (#4674)
usame-algan Dec 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
26 changes: 10 additions & 16 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,16 @@
NEXT_PUBLIC_INFURA_TOKEN=
NEXT_PUBLIC_SAFE_APPS_INFURA_TOKEN=

# WalletConnect
NEXT_PUBLIC_WC_PROJECT_ID=

## CGW
NEXT_PUBLIC_GATEWAY_URL_PRODUCTION=
NEXT_PUBLIC_GATEWAY_URL_STAGING=

# Blockaid
NEXT_PUBLIC_BLOCKAID_CLIENT_ID=

# Transaction simulation
NEXT_PUBLIC_TENDERLY_SIMULATE_ENDPOINT_URL=
NEXT_PUBLIC_TENDERLY_PROJECT_NAME=
Expand All @@ -17,15 +23,11 @@ NEXT_PUBLIC_IS_PRODUCTION=
# Latest supported safe version, used for upgrade prompts
NEXT_PUBLIC_SAFE_VERSION=

# Access keys
# Sentry
NEXT_PUBLIC_SENTRY_DSN=
NEXT_PUBLIC_BEAMER_ID=

# Wallet-specific variables
NEXT_PUBLIC_WC_PROJECT_ID=

# E2E tests
NEXT_PUBLIC_CYPRESS_MNEMONIC=
# Beamer
NEXT_PUBLIC_BEAMER_ID=

# Safe Gelato relay service
NEXT_PUBLIC_SAFE_GELATO_RELAY_SERVICE_URL_PRODUCTION=
Expand All @@ -34,19 +36,11 @@ NEXT_PUBLIC_SAFE_GELATO_RELAY_SERVICE_URL_STAGING=
# Firebase Cloud Messaging
NEXT_PUBLIC_FIREBASE_OPTIONS_PRODUCTION=
NEXT_PUBLIC_FIREBASE_VAPID_KEY_PRODUCTION=

NEXT_PUBLIC_FIREBASE_OPTIONS_STAGING=
NEXT_PUBLIC_FIREBASE_VAPID_KEY_STAGING=

# Blockaid
NEXT_PUBLIC_BLOCKAID_CLIENT_ID

# Social Login
NEXT_PUBLIC_SOCIAL_WALLET_OPTIONS_STAGING=
NEXT_PUBLIC_SOCIAL_WALLET_OPTIONS_PRODUCTION=

# Cypress wallet private keys
CYPRESS_WALLET_CREDENTIALS=

# [optional] Beamer keys for e2e tests
BEAMER_DATA_E2E=
BEAMER_DATA_E2E=
45 changes: 0 additions & 45 deletions .eslintrc.json

This file was deleted.

32 changes: 32 additions & 0 deletions .github/workflows/code-review-gpt.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: AI code review

permissions:
contents: read
pull-requests: write

on:
pull_request:
types: [opened]

jobs:
review:
# Don't run on draft PRs
if: ${{ github.event.pull_request.draft == false }}
runs-on: ubuntu-latest
steps:
- uses: anc95/ChatGPT-CodeReview@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
# Optional
MODEL: gpt-4o # https://platform.openai.com/docs/models
PROMPT: |
Review the code changes in this pull request with the following guidelines:
1. Focus on Issues: Only highlight potential problems, such as logical errors, violations of best practices, or opportunities for improvement. Avoid commenting on existing code unless directly impacted by the changes.
2. Skip Politeness: Provide feedback directly and concisely, without unnecessary niceties.
3. No Praise: Avoid commenting on what’s done well or works correctly unless necessary for context.
4. Actionable Suggestions: Offer specific, actionable recommendations for refactoring or fixes where applicable.
5. Refactoring Ideas: Pay attention to the code structure and suggest improvements where necessary. Apply the DRY and SOLID principles. Prevent too complex components, inline functions, inline styles, and too much logic inside React components.
6. Stay Brief: If no clear issues are identified or the concerns are minor, keep feedback minimal or state that no significant issues were found.

Output should be focused, practical, and devoid of redundant commentary. Stick to 260 characters per comment.
4 changes: 2 additions & 2 deletions .github/workflows/cypress/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ runs:
curl -O 'https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb'
sudo apt-get install ./google-chrome-stable_current_amd64.deb

- name: Install Cypress 13.13.1
- name: Install Cypress 13.15.2
shell: bash
run: npm install cypress@13.13.1 --legacy-peer-deps
run: yarn add -D cypress@13.15.2

- uses: ./.github/workflows/build
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/e2e-full-ondemand.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ concurrency:
jobs:
e2e:
runs-on: ubuntu-20.04
timeout-minutes: 40
timeout-minutes: 90
name: Cypress Full Regression on demand tests
strategy:
fail-fast: false
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/e2e-ondemand.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ concurrency:
jobs:
e2e:
runs-on: ubuntu-20.04
timeout-minutes: 40
timeout-minutes: 90
name: Cypress Regression on demand tests
strategy:
fail-fast: false
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,11 @@ jobs:

- uses: ./.github/workflows/yarn

- uses: CatChen/eslint-suggestion-action@v2
- uses: CatChen/eslint-suggestion-action@v4.1.7
with:
request-changes: true # optional
fail-check: true # optional
github-token: ${{ secrets.GITHUB_TOKEN }} # optional
directory: './' # optional
targets: 'src' # optional
config-path: './eslint.config.mjs'
1 change: 1 addition & 0 deletions cypress.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ export default defineConfig({
hideXHR: true,
defaultCommandTimeout: 10000,
pageLoadTimeout: 60000,
numTestsKeptInMemory: 20,
},

chromeWebSecurity: false,
Expand Down
6 changes: 0 additions & 6 deletions cypress/e2e/happypath/recovery_hp_1.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,7 @@ describe('Recovery happy path tests 1', () => {
recovery.clickOnNextBtn()
tx.executeFlow_1()
recovery.verifyRecovererAdded([constants.SEPOLIA_OWNER_2_SHORT])

recovery.clearRecoverers()

// recovery.removeRecoverer(0, constants.SEPOLIA_OWNER_2)
// recovery.clickOnNextBtn()
// tx.executeFlow_1()

recovery.getSetupRecoveryBtn()
})
})
42 changes: 42 additions & 0 deletions cypress/e2e/happypath/recovery_hp_4.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import * as constants from '../../support/constants.js'
import * as main from '../pages/main.page.js'
import * as owner from '../pages/owners.pages.js'
import * as recovery from '../pages/recovery.pages.js'
import * as tx from '../pages/transactions.page.js'
import { getSafes, CATEGORIES } from '../../support/safes/safesHandler.js'
import * as wallet from '../../support/utils/wallet.js'

let recoverySafes = []
const walletCredentials = JSON.parse(Cypress.env('CYPRESS_WALLET_CREDENTIALS'))
const signer = walletCredentials.OWNER_4_PRIVATE_KEY

describe('Recovery happy path tests 4', () => {
before(async () => {
recoverySafes = await getSafes(CATEGORIES.recovery)
})

beforeEach(() => {
cy.visit(constants.securityUrl + recoverySafes.SEP_RECOVERY_SAFE_5)
cy.clearLocalStorage()
main.acceptCookies()
})

// Check that recovery can be setup and removed from modules
it('Recovery setup happy path 4', () => {
wallet.connectSigner(signer)
owner.waitForConnectionStatus()
recovery.clearRecoverers()
recovery.clickOnSetupRecoveryBtn()
recovery.clickOnSetupRecoveryModalBtn()
recovery.clickOnNextBtn()
recovery.enterRecovererAddress(constants.SEPOLIA_OWNER_2)
recovery.agreeToTerms()
recovery.clickOnNextBtn()
tx.executeFlow_1()
recovery.verifyRecovererAdded([constants.SEPOLIA_OWNER_2_SHORT])
cy.visit(constants.modulesUrl + recoverySafes.SEP_RECOVERY_SAFE_5)
recovery.deleteRecoveryModule()
cy.visit(constants.securityUrl + recoverySafes.SEP_RECOVERY_SAFE_5)
recovery.getSetupRecoveryBtn()
})
})
51 changes: 51 additions & 0 deletions cypress/e2e/happypath_2/proposers.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import * as constants from '../../support/constants.js'
import * as owner from '../pages/owners.pages.js'
import { getSafes, CATEGORIES } from '../../support/safes/safesHandler.js'
import * as wallet from '../../support/utils/wallet.js'
import * as proposer from '../pages/proposers.pages.js'

let staticSafes = []
const walletCredentials = JSON.parse(Cypress.env('CYPRESS_WALLET_CREDENTIALS'))
const signer = walletCredentials.OWNER_4_PRIVATE_KEY
const signer3 = walletCredentials.OWNER_3_PRIVATE_KEY
const addedProposer = walletCredentials.OWNER_3_WALLET_ADDRESS
const proposerAddress = 'sep:0xC16D...6fED'
const proposerAddress2 = '0x8eeC...2a3b'
const proposerName2 = 'Proposer 2'
const proposerName = 'Proposer 1'
const changedProposerName = 'Changed proposer name'

describe('Happy path Proposers tests', () => {
before(async () => {
staticSafes = await getSafes(CATEGORIES.static)
})

//TODO: Flaky due to UI retrieval issue - wip
it.skip('Verify that editing a proposer is only possible for the proposer created by the creator', () => {
cy.visit(constants.setupUrl + staticSafes.SEP_STATIC_SAFE_31)
wallet.connectSigner(signer3)
cy.contains(owner.safeAccountNonceStr, { timeout: 10000 })
proposer.verifyEditProposerBtnDisabled(proposerAddress)

proposer.clickOnEditProposerBtn(proposerAddress2)
proposer.enterProposerName(changedProposerName)
proposer.clickOnSubmitProposerBtn()
proposer.checkProposerData([changedProposerName])

proposer.clickOnEditProposerBtn(proposerAddress2)
proposer.enterProposerName(proposerName2)
proposer.clickOnSubmitProposerBtn()
proposer.checkProposerData([proposerName2])
})

it('Verify a proposer can be added', () => {
cy.visit(constants.setupUrl + staticSafes.SEP_STATIC_SAFE_32)
wallet.connectSigner(signer)
cy.contains(owner.safeAccountNonceStr, { timeout: 10000 })
proposer.deleteAllProposers()
proposer.clickOnAddProposerBtn()
proposer.enterProposerData(addedProposer, proposerName)
proposer.clickOnSubmitProposerBtn()
proposer.verifyProposerSuccessMsgDisplayed()
})
})
Loading
Loading