Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
732 commits
Select commit Hold shift + click to select a range
5f4a86f
Fix(Tx flow): fix tx flow styling (#5874)
katspaugh May 15, 2025
8fbe6d2
fix(web): apply theme to Safe App icons (#5865)
May 15, 2025
0127634
fix(Signing UX): hide batch button instead of disable when batching i…
tmjssz May 15, 2025
74b0ca9
Feat(web): don't notify about 1.4.1 upgrades (#5864)
katspaugh May 15, 2025
7214bb7
fix(web): HexEncodedData component (#5878)
May 15, 2025
dd82511
fix(Signing UX): show signatures in advanced transaction details (#5877)
tmjssz May 15, 2025
85cabf6
Analytics(Signing UX): track time spent on receipt (#5745)
katspaugh May 16, 2025
a746667
feat(web): show decimal token amounts in multiSend summary (#5764)
May 16, 2025
2061897
Feat(Tx flow): restore JSON view + copy button (#5884)
katspaugh May 16, 2025
840b4b9
Fix(Receipt): initial height (#5888)
katspaugh May 16, 2025
4000581
Fix(web): on chain signing confirmation view (#5885)
May 19, 2025
68286f5
fix(web): disable nested safe creation for non-owners (#5879)
May 19, 2025
c63ba96
fix(Signing UX): restore contract name in method call (#5881)
tmjssz May 19, 2025
da3d67c
fix(useIsSidebarRoute): move router.isReady into useEffect to fix hyd…
tmjssz May 19, 2025
44b6139
Chore: replace CLA action with a disclaimer in PR template (#5886)
katspaugh May 20, 2025
961ee94
chore(deps): bump the npm_and_yarn group with 5 updates (#5904)
dependabot[bot] May 20, 2025
a115775
Feat(Earn): Add native earn widget (#5620)
usame-algan May 20, 2025
e11c356
Chore(web): run prettier on CSS
katspaugh May 20, 2025
4a38f8f
fix(Signing UX): duplicate contract interaction info (#5899)
tmjssz May 20, 2025
46843c0
fix(Signing UX): e2e tests (#5903)
tmjssz May 20, 2025
b3bd739
fix(Recovery): pass data to second step of recovery flow (#5882)
May 21, 2025
1680d31
Feat(Earn): Add native earn widget (#5907)
usame-algan May 21, 2025
2f1bd9d
feat(Nested transactions): add Tenderly simulation (#5752)
tmjssz May 21, 2025
c98e22a
feat(Tx flow): untrusted fallback handler warnings for multiSend tran…
tmjssz May 21, 2025
a3a617d
1.60.0
usame-algan May 21, 2025
f1dcc2a
Merge remote-tracking branch 'origin/dev' into backmerge
usame-algan May 21, 2025
202d462
Fix(Earn): Check for additional rewards before accessing tokenInfo
usame-algan May 21, 2025
70cf83c
1.60.1
usame-algan May 21, 2025
d3bf52d
fix: show limit order instead of swap order when the orderClass is eq…
clovisdasilvaneto May 22, 2025
249ca8f
fix(web): do not mark address book addresses as untrusted in NameChip…
May 22, 2025
951c980
fix(ExecTransaction): replace Summary component with TxData (#5902)
tmjssz May 22, 2025
67b3d83
Tests(web): Fix transaction builder tests (#5919)
liliya-soroka May 22, 2025
b3e327b
Merge branch 'main' into dev
usame-algan May 22, 2025
3ca8bed
Fix(Tests): Update ReviewTransaction snapshot (#5922)
usame-algan May 22, 2025
cb4de0d
Feat(Mobile): Add morpho vault decoding for transactions in history (…
usame-algan May 23, 2025
bce2b45
fix(tests): regression test tx_history_4 (#5925)
compojoom May 23, 2025
75bcd2a
Fix(Tests): fix regression e2e tx-history suite (#5927)
liliya-soroka May 23, 2025
7bf188c
Fix(Tx flow): prevent navigation when tx modal is open (#4909)
katspaugh May 23, 2025
1bee457
Fix(Earn): Align vault name with icon (#5929)
usame-algan May 23, 2025
dd20102
Fix(Tests): Fix and update recovery and nested safes e2e tests (#5930)
liliya-soroka May 26, 2025
0bbbe2c
Fix(Proposer): Support proposers in nested safes (#5682)
usame-algan May 26, 2025
865d412
feat(web): batch signer management (#5867)
May 26, 2025
6aab90a
fix(Signing UX): remove duplicate info on spending limits confirmatio…
tmjssz May 26, 2025
ad2ddaa
Fix(mobile): balance of all chains (#5923)
clovisdasilvaneto May 27, 2025
0aab1f3
fix: add parameters button in the missing views (#5940)
clovisdasilvaneto May 27, 2025
3f24587
fix(Signing UX): remove duplicate NFT transfer info (#5938)
tmjssz May 27, 2025
ff0de37
refactor(mobile): Push notification subscription (#5924)
compojoom May 27, 2025
2d3509c
fix(Signing UX): reset signer name when address is cleared (#5941)
tmjssz May 27, 2025
f6526cb
Fix(Tests): Update add-owners tests because of new manage signers flo…
liliya-soroka May 28, 2025
ff625fb
Fix(ManageSigners): create address book entries for signers on submit…
tmjssz May 28, 2025
e07f1b1
1.61.0
usame-algan May 28, 2025
3eed37e
Fix(Signing UX): execute status + CSS fixes (#5946)
katspaugh May 28, 2025
b07bc1e
Fix(Tests):update test app url according to changes (#5947)
liliya-soroka May 30, 2025
8d026a4
chore(web): upgrade protocol-kit to v5 (#5910)
Jun 2, 2025
3c1f5c4
Move Transactions menu item after Assets (#5920)
compojoom Jun 2, 2025
f024f64
fix(mobile): Qr code scanning (#5906)
clovisdasilvaneto Jun 2, 2025
d796389
chore(deps): bump ethers from 6.13.4 to 6.14.3 (#5952)
dependabot[bot] Jun 2, 2025
d038946
chore(deps): bump react-native-mmkv from 3.1.0 to 3.2.0 (#5953)
dependabot[bot] Jun 2, 2025
9c5027e
tests(mobile): add unit tests for activeSafeSlice (#5958)
compojoom Jun 2, 2025
4d4ac8d
feat: optimize rpc requests through Multicall3 (#5921)
Jun 3, 2025
2246ff6
fix(web): yarn lint was failing (#5965)
compojoom Jun 3, 2025
8014422
fix(Tx flow): allow navigation for links that open in a new tab (#5964)
tmjssz Jun 3, 2025
433da60
fix(mobile): useScan test was failing (#5968)
compojoom Jun 3, 2025
5d701c3
Fix(Earn): Update earn widget (#5966)
usame-algan Jun 4, 2025
b9321ab
chore: add a cursor rule for our repo (#5969)
compojoom Jun 4, 2025
111d13c
tests(mobile): add tests for addressBookSlice (#5959)
compojoom Jun 4, 2025
f2cb8c1
test(mobile): add badge component snapshot tests (#5960)
compojoom Jun 4, 2025
3c2e428
test(mobile): add signersSlice tests (#5961)
compojoom Jun 4, 2025
ae24fe6
chore: add Agents.md file (#5970)
compojoom Jun 4, 2025
3d2d2c2
Fix(Earn): Add earn button to assets table on dashboard (#5971)
usame-algan Jun 4, 2025
701977c
feat(utils): overwrite guard with zero address when simulating (#5956)
Jun 4, 2025
2c0520d
Fix(Earn): Block earn page for undeployed safes (#5977)
usame-algan Jun 4, 2025
d09c7e9
feat(mobile): iOS improve push notification display when app is in ba…
compojoom Jun 5, 2025
a099dec
feat(mobile): add data import feature (#5978)
compojoom Jun 5, 2025
9b9a19b
chore(mobile): bump mobile version number (#5980)
compojoom Jun 5, 2025
e2d78cc
fix(Signing UX): show name for address of Safe itself correctly (#5976)
tmjssz Jun 5, 2025
f5db28e
1.62.0
compojoom Jun 5, 2025
1011076
Merge branch 'main' into dev
compojoom Jun 5, 2025
5be72ae
fix(Test): Fix verify relayer option (#5950)
francovenica Jun 6, 2025
31f024f
docs(mobile): add push notification docs (#5957)
compojoom Jun 6, 2025
f772c2b
chore: bump @safe-global/protocol-kit (#5986)
dasanra Jun 10, 2025
e4752b2
fix token selection (#5989)
francovenica Jun 10, 2025
bd9b15b
feat(Spaces): leave a space (#5943)
tmjssz Jun 10, 2025
fc756c3
Fix(Earn): Rename widget fee to performance fee (#5998)
usame-algan Jun 10, 2025
bdb4444
Fix(Earn): Rename widget fee to performance fee (#5998)
usame-algan Jun 10, 2025
c894a66
1.62.1
compojoom Jun 10, 2025
56d6926
feat(mobile): add add/edit/view contact screens (#5982)
compojoom Jun 10, 2025
04ab02c
fix(test): fix counting external links (#5988)
francovenica Jun 11, 2025
f56781e
fix(web): do not fetch contract info for non-addresses (#5973)
Jun 11, 2025
1e5d1c4
Fix(Sidebar): Update sidebar layout (#5975)
usame-algan Jun 11, 2025
3202a76
Merge branch 'main' into dev
compojoom Jun 11, 2025
5509112
fix(web:e2e): add click on the sign/execute button (#5999)
francovenica Jun 11, 2025
ae77c46
fix: remove unnecessary corner style (#6002)
clovisdasilvaneto Jun 11, 2025
a399072
fix(mobile): remove dist files (#6004)
compojoom Jun 11, 2025
26cd698
feat(test): add adv params verification after editing (#5987)
francovenica Jun 12, 2025
c163c88
feat(mobile): create advanced transaction details screen (#5993)
clovisdasilvaneto Jun 12, 2025
f1516c4
chore: small update to cursor rules (#5979)
compojoom Jun 13, 2025
9c38312
tests(web): fix tx_builder regression test
compojoom Jun 11, 2025
5eccc90
tests(web): e2e drain account was broken
compojoom Jun 11, 2025
bfb4020
tests(web): fix transaction queue reject
compojoom Jun 13, 2025
f361e67
tests(web): e2e fix tx note test
compojoom Jun 11, 2025
0c719bf
test(web): fix twas history test
compojoom Jun 11, 2025
b8126f5
test(web): e2e fix twap token test
compojoom Jun 11, 2025
ef3d410
feat(mobile): implement currency view (#5995)
compojoom Jun 13, 2025
29d618a
fix(web:e2e): sidebar_9 e2e test (#6013)
usame-algan Jun 13, 2025
3069c68
fix(web:e2e): fix proposer tx submit (#6011)
francovenica Jun 13, 2025
cff1ffa
feat(Proposer): prevent adding owners as proposer (#5994)
tmjssz Jun 13, 2025
536ebd4
feat(mobile): better analytics integration (#6008)
compojoom Jun 13, 2025
b5b5464
fix: improve currency view (#6014)
compojoom Jun 13, 2025
94c1c5e
fix(web:e2e): fix action verfification in bulk tx (#6012)
francovenica Jun 13, 2025
27fdee0
chore(deps-dev): bump expo-module-scripts from 3.5.4 to 4.1.7 (#5983)
dependabot[bot] Jun 16, 2025
c8ea084
chore(deps): bump brace-expansion in the npm_and_yarn group (#6006)
dependabot[bot] Jun 16, 2025
11b52ca
chore(deps): bump CatChen/eslint-suggestion-action from 4.1.12 to 4.1…
dependabot[bot] Jun 16, 2025
7b7232e
chore(deps-dev): bump eslint from 9.20.1 to 9.29.0 (#6018)
dependabot[bot] Jun 16, 2025
2e9d571
chore(deps-dev): bump babel-loader from 8.4.1 to 10.0.0 (#5955)
dependabot[bot] Jun 16, 2025
9c755a1
chore: enforce consistent typescript versions
compojoom Jun 16, 2025
ddca056
chore: enforce consistent react deps
compojoom Jun 16, 2025
aabc723
chore: enforce consistent redux usage across project
compojoom Jun 16, 2025
f6c1ed6
chore: run husky in the monorepo
compojoom Jun 16, 2025
d933101
chore: enforce consistent eslint version
compojoom Jun 16, 2025
088c7d5
chore: enforce same prettier version
compojoom Jun 16, 2025
9268d16
test(mobile): multiple tests failing
compojoom Jun 16, 2025
d521893
chore: enforce same jest version across tests
compojoom Jun 16, 2025
72c929c
fix(mobile): wrong background color used for badge_success (#6021)
compojoom Jun 19, 2025
7d2f8f6
fix(mobile): token icon was blurry (#6020)
compojoom Jun 19, 2025
3eac7a2
fix: copy button being overlaped in sign tx screen (#6024)
clovisdasilvaneto Jun 20, 2025
b52a683
chore: bump @safe-global/safe-deployments to latest version (#6027)
dasanra Jun 23, 2025
234c358
chore(deps-dev): bump remark-mdx-frontmatter from 5.0.0 to 5.2.0 (#6034)
dependabot[bot] Jun 23, 2025
fb9ff73
chore(deps): bump react-native-vision-camera from 4.6.4 to 4.7.0 (#6032)
dependabot[bot] Jun 23, 2025
c0b6040
chore(deps): bump @react-native-firebase/analytics from 22.1.0 to 22.…
dependabot[bot] Jun 23, 2025
4b97760
Update safe-deployments (#6036)
yagopv Jun 23, 2025
3c13d40
chore: bump @safe-global/protocol-kit to latest version #6038
yagopv Jun 23, 2025
ea3f7f1
chore: add more packages to the dependency check (#6035)
compojoom Jun 23, 2025
c7d7876
feat(web): simulate transactions from queue (#5949)
Jun 24, 2025
211e114
fix(web): add feature flag for simulation in queue (#6040)
Jun 24, 2025
869070a
Fix(Header): Remove SAP points from header (#6026)
usame-algan Jun 24, 2025
9c902c9
Feat(Dashboard): Revamp layout (#5991)
usame-algan Jun 24, 2025
b36e2e5
fix(web): migrate to V2 /owners/{address}/safes (#6009)
LucieFaire Jun 24, 2025
8055c8f
feat(web): add CoW fallback handler to Base, Polygon and Avalanche (#…
Jun 24, 2025
ff14490
fix(WalletConnect): prevent URI from being overridden by an empty val…
tmjssz Jun 24, 2025
dcbe90c
Feat(WalletConnect): one-click auth (#5926)
katspaugh Jun 24, 2025
a4e0d4b
chore(mobile): update firebase dependencies (#6042)
compojoom Jun 24, 2025
bfde9af
fix(mobile): notifications fixes (#6041)
compojoom Jun 24, 2025
7ef779a
fix(web:e2e): fix test id for safe loading and safe creation (#6046)
liliya-soroka Jun 25, 2025
e04e510
fix(mobile): subscribe to notification in prod was failing (#6044)
compojoom Jun 25, 2025
5b0db13
test(web): fix 'Verify warning on add owner for one safe in the group…
liliya-soroka Jun 25, 2025
04ef9a4
fix(mobile): multiple onboarding UI improvements (#6049)
compojoom Jun 25, 2025
19f39fc
test(web): fix tx_notes.cy.js (#6051)
liliya-soroka Jun 25, 2025
9d63668
1.63.0 (#6053)
compojoom Jun 25, 2025
f694fb7
Merge branch 'main' into dev
compojoom Jun 25, 2025
8e82378
Fix(Tests): Verify a Reject tx cannot be "Added as batch" (#6054)
liliya-soroka Jun 25, 2025
e49e8c6
fix(mobile): wrong application-group and entitlement for push notific…
compojoom Jun 26, 2025
0397b55
chore: comment out button in CookieAndTermBanner component for future…
ajimeno04 Jun 26, 2025
addf499
Fix:(web:e2e) multichain create and assets hiding (#6022)
francovenica Jun 27, 2025
4221c63
fix(mobile): don't show import account on android (#6060)
the-real-chrizzo Jun 27, 2025
a9f324d
fix(mobile): use generic biometrics term (#6061)
the-real-chrizzo Jun 27, 2025
fc88c9d
fix(web): update balance dynamically in Header top right bar) for act…
LucieFaire Jun 30, 2025
c4cf5af
fix(mobile): Onboarding visual issues (#6065)
clovisdasilvaneto Jun 30, 2025
855445d
fix(mobile): build failure (#6066)
compojoom Jun 30, 2025
618cccd
feat(mobile): add unsupported mastercopy alert (#6056)
compojoom Jun 30, 2025
14f39a2
fix(mobile): notifications on android were missing the safe logo (#6071)
compojoom Jul 1, 2025
0356b8e
Fix(Mobile): Display Proposal badge in queue (#6072)
usame-algan Jul 1, 2025
c7b6222
fix(mobile): biometrics on settings (#6059)
clovisdasilvaneto Jul 1, 2025
8b9bba8
fix(Signing UX): display nested multiSend actions for an execTransact…
tmjssz Jul 1, 2025
e344b9f
Fix(Tx): Propose safe transactions with origin (#6068)
usame-algan Jul 2, 2025
b1577a3
fix(mobile): add missing fingerprint icon (#6074)
compojoom Jul 2, 2025
d556948
Fix(Mobile): Update home screen UI (#6076)
usame-algan Jul 3, 2025
4a50342
Feat(Mobile): Add vault decoding for confirmation view (#6077)
usame-algan Jul 3, 2025
ec374eb
refactor(mobile): do the blockaid check automatically on tx confirmat…
compojoom Jul 3, 2025
c1ac589
fix: decrease button font size (#6069)
clovisdasilvaneto Jul 3, 2025
d1ad033
fix(mobile): onboarding layout image resolution (#6084)
clovisdasilvaneto Jul 4, 2025
91c3842
fix(mobile): display order recipient and slippage (#6073)
compojoom Jul 4, 2025
45db812
Fix(Mobile): Update edit signer UI (#6081)
usame-algan Jul 7, 2025
92b5c75
Fix(Mobile): Update notifications and biometrics screen UI (#6085)
usame-algan Jul 7, 2025
5ccb4c1
feat(mobile): decoding view for Stake Deposit (#6082)
compojoom Jul 7, 2025
c975774
feat(mobile): add RASP library (#6086)
compojoom Jul 7, 2025
1696223
feat(mobile): add capture screen protection (#6083)
compojoom Jul 7, 2025
f10f94d
feat(mobile): add withdrawRequest and Exit views (#6088)
compojoom Jul 7, 2025
db42ce6
fix(mobile): sanitize error messages (#6090)
compojoom Jul 8, 2025
bb93f3e
fix(mobile): tenderly failure status was not shown (#6089)
compojoom Jul 8, 2025
3b83870
Feat(Mobile): Add decoding for cancellation txs in confirmation scree…
usame-algan Jul 8, 2025
0021910
fix(mobile): incorrect loading state on retry signing (#6095)
compojoom Jul 9, 2025
af3b73e
Fix(Mobile): Update biometrics naming, remove signer button color (#6…
usame-algan Jul 9, 2025
2590b77
fix(mobile): link to correct help article on import (#6099)
compojoom Jul 9, 2025
8dad87f
fix: swap fee was not properly shown in decoding (#6097)
compojoom Jul 9, 2025
02d3ac0
fix(mobile): miscellaneous swap order fixes (#6098)
compojoom Jul 9, 2025
d72a9d0
Fix(Mobile): Run tenderly simulation on vault transactions (#6100)
usame-algan Jul 10, 2025
9430e5a
Fix(Mobile): Show truncated data in bottom sheet (#6101)
usame-algan Jul 10, 2025
44a7ff6
Fix(Mobile): Centralize StatusBar and theme logic (#6106)
usame-algan Jul 10, 2025
30bbd01
fix(mobile): align token list with web by removing `excludeSpam` para…
tmjssz Jul 10, 2025
d25df46
Fix(Mobile): UI fixes (#6108)
usame-algan Jul 10, 2025
471d631
Fix(Mobile): Add loading state to tenderly check (#6109)
usame-algan Jul 10, 2025
2810d92
Fix(Mobile): Update bottom tab navigation style (#6111)
usame-algan Jul 10, 2025
685165b
fix(mobile): deep links (#6107)
compojoom Jul 10, 2025
2faf9e0
fix(mobile): show native token info in Action list screen (#6093)
clovisdasilvaneto Jul 10, 2025
524b22e
Feat(web) LiFi decoding (#5974)
Jul 10, 2025
71eb34e
fix(mobile): push notifications improvements (#6103)
compojoom Jul 10, 2025
b23c6f2
fix: cowswap fees were not shown for old txs (#6110)
compojoom Jul 10, 2025
37e006b
Fix(Mobile): Tab color when switching theme (#6113)
usame-algan Jul 10, 2025
77d4ce2
fix(web:e2e): remove owner and proposer test (#6057)
francovenica Jul 10, 2025
6c2d695
Fix(Mobile): Update badge color, fix settings button overlap (#6115)
usame-algan Jul 11, 2025
48e2fa2
fix(AddressInput): consistent avatar size for address book entries (#…
tmjssz Jul 14, 2025
d761b89
fix(mobile): add transaction details to confirmation details (#6114)
compojoom Jul 14, 2025
83b0516
fix(mobile): mask input PK key field (#6116)
compojoom Jul 14, 2025
a97840d
fix(mobile): fix tap stolen by scrollview in data import
compojoom Jul 11, 2025
f28a07b
fix(mobile): clear password during data import
compojoom Jul 11, 2025
1ed952e
fix(mobile): import contact with correct chainId
compojoom Jul 11, 2025
503fbf2
fix(mobile): don’t import keys that are not owners of safes
compojoom Jul 11, 2025
7cfc02d
fix(mobile): create delegates during PK import
compojoom Jul 11, 2025
0b297f4
fix(mobile): subscribe all safes to notifications
compojoom Jul 11, 2025
b2176b7
fix(mobile): register earlier for apns
compojoom Jul 14, 2025
abf1fdc
fix(mobile): tamagui error due to wrong color use
compojoom Jul 14, 2025
a758130
fix(mobile): improve was not importing full safeOverview
compojoom Jul 14, 2025
c5bb891
fix(mobile): store extraReducer was not updating all safeOverviews
compojoom Jul 14, 2025
6e78f4d
feat(mobile): add receipt screens (#6123)
compojoom Jul 14, 2025
a783659
Fix(Mobile/Earn): Rename reward rate to Earn, remove reward rate from…
usame-algan Jul 15, 2025
0e4a64f
fix(web): show address instead of contact in address book entry (#6126)
LucieFaire Jul 16, 2025
59b60fc
fix(WalletConnect): update WcProposalForm to handle unsupported chain…
tmjssz Jul 16, 2025
24aefd8
chore(web): update @safe-global/safe-deployments to version 1.37.39 (…
PooyaRaki Jul 16, 2025
9e61eb5
feat(mobile): integrate address book with Receiver component in trans…
tmjssz Jul 17, 2025
33aff55
chore(web): bump version to 1.65.0 in package.json
PooyaRaki Jul 17, 2025
fa3d31a
feat(mobile): add remove private key option (#6135)
compojoom Jul 17, 2025
931f8ed
Fix(Mobile): Transaction list icon sizes and fallback image (#6131)
usame-algan Jul 17, 2025
3e5d2e6
Merge branch 'main' into dev
compojoom Jul 17, 2025
dafd7b7
chore: run prettier on codebase
compojoom Jul 17, 2025
baf9d09
feat(mobile): navigate to screen on notification press
compojoom Jul 17, 2025
5515bc9
chore: move the app to new account (#6143)
compojoom Jul 18, 2025
cfe90a2
Fix(Mobile): UI fixes + copy changes (#6142)
usame-algan Jul 18, 2025
7019fa0
fix: only create onchain message transaction if signMessageAddress is…
tmjssz Jul 18, 2025
11f03b4
Fix(Mobile): Use SafeTab across app (#6144)
usame-algan Jul 18, 2025
a571761
fix(mobile): bridge tx now displays pending signatures (#6146)
compojoom Jul 18, 2025
1476f6e
feat(mobile): Add loading indicators for transaction history (#6145)
tmjssz Jul 21, 2025
c10b409
fix(mobile): display notification even when app in quit state (#6152)
compojoom Jul 23, 2025
219edfa
chore: bump @safe-global/safe-deployments #6150
yagopv Jul 23, 2025
87c4ffc
fix: stylus dep temp workaround (#6155)
compojoom Jul 23, 2025
d704c84
Feat(Web) Add Mixpanel event tracking (#6133)
vseehausen Jul 23, 2025
a306ba1
chore: bump version to 1.66.0 in package.json
PooyaRaki Jul 24, 2025
d443087
Merge tag 'v1.66.0' into staging
DenSmolonski Aug 19, 2025
6b714b2
fix: normalize color values in CSS styles and clean up unused imports
DenSmolonski Aug 19, 2025
334d095
fix: correct casing of chain identifiers for consistency
DenSmolonski Aug 19, 2025
3b3d1fb
chore: apply patch for @safe-global/safe-deployments v1.37.40
DenSmolonski Aug 19, 2025
92f4bca
fix: update SVG logo dimensions, enhance footer with copyright notice…
DenSmolonski Aug 21, 2025
82082d5
fix: update button label from 'Accept all' to 'Safe settings' for cla…
DenSmolonski Aug 21, 2025
a105c73
fix: update button label from 'Safe settings' to 'Save settings' for …
DenSmolonski Aug 22, 2025
529d947
fix: update STATUS_PAGE URL based on production environment and integ…
DenSmolonski Aug 29, 2025
7e42b80
fix: center align the caption text in SidebarFooter component
DenSmolonski Aug 29, 2025
ba06feb
feat(add-allowance-module-boba-sepolia): added boba sepolia allowance…
Emosaddd Oct 2, 2025
c62e73d
Merge pull request #7 from bobanetwork/feat/add-allowance-module-boba…
Emosaddd Oct 6, 2025
2c4119b
feat(add-allowance-module-boba-mainnet): added boba mainnet allowance…
Emosaddd Oct 8, 2025
6e3ee67
Merge pull request #8 from bobanetwork/feat/add-allowance-module-boba…
Emosaddd Oct 8, 2025
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
  •  
  •  
  •  
102 changes: 102 additions & 0 deletions .cursor/rules/safe-monorepo.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
---
description:
globs:
alwaysApply: true
---
You are an expert developer proficient in TypeScript, Web3/Blockchain(ethers.js, Safe Ecosystem (formally known as Gnosis Safe)), React and Next.js, Expo (React Native), Tamagui, Zod, Yarn v4 (Monorepo Management), Redux, RTK.

Project Structure and Environment

- Follow the established project structure
- Use the `apps` directory for Next.js and Expo applications.
- Utilize the `packages` directory for shared code and components.
- use `expo-plugins` directory for custom expo config plugins
- Use `dotenv` for environment variable management.
- Follow patterns for environment-specific configurations in `eas.json` and `next.config.js`.

Code Style and Structure

- Depending on the part of the code you work on, follow the code style document in the respective docs folder.
- Write concise, technical TypeScript code with accurate examples.
- Use functional and declarative programming patterns; avoid classes.
- Prefer iteration and modularization over code duplication.
- Use descriptive variable names with auxiliary verbs (e.g., `isLoading`, `hasError`).
- Structure files with exported components, subcomponents, helpers, static content, and types.
- Favor named exports for components and functions.

TypeScript and Zod Usage

- Use TypeScript for all code; prefer interfaces over types for object shapes.
- Utilize Zod for schema validation and type inference.
- Avoid enums; use literal types or maps instead.
- Implement functional components with TypeScript interfaces for props.
- follow the lint rules and don't use ts "any" type

Syntax and Formatting

- Use the `const` instead of `function` for pure functions.
- Write declarative JSX with clear and readable structure.

UI and Styling
- in the mobile project utilise Tamagui for UI compoentns and styling
- in the nextjs project use Mui
- Implement responsive design with a mobile-first approach.
- Ensure styling consistency between web and native applications.

State Management and Data Fetching

- Use Redux for state management.
- Use Redux RTK for data fetching, caching, and synchronization.
- Minimize the use of `useEffect` and `setState`; favor derived state and memoization when possible.

Error Handling and Validation

- Prioritize error handling and edge cases.
- Handle errors and edge cases at the beginning of functions.
- Use early returns for error conditions to avoid deep nesting.
- Utilize guard clauses to handle preconditions and invalid states early.
- Implement proper error logging and user-friendly error messages.
- Use custom error types or factories for consistent error handling.

Performance Optimization

- Optimize for both web and mobile performance.
- Use dynamic imports for code splitting in Next.js.
- Implement lazy loading for non-critical components.
- Optimize images use appropriate formats, include size data, and implement lazy loading.

Monorepo Management

- Follow best practices using Yarn v4 for monorepo setups.
- Ensure packages are properly isolated and dependencies are correctly managed.
- Use shared configurations and scripts where appropriate.
- Utilize the workspace structure as defined in the root `package.json`.


Testing and Quality Assurance
- use faker to create test data
- Write unit and integration tests for critical components.
- Use jest and the testing libraries specified in each package
- Ensure code coverage and quality metrics meet the project's requirements.
- when testing Redux code prefer actual state changes test over mock calls
- when testing functions that call network endpoints prefer Mock Service Worker (MSW) over mocking function calls


Key Conventions

- Use descriptive and meaningful commit messages.
- Ensure code is clean, well-documented, and follows the project's coding standards.
- Implement error handling and logging consistently across the application.

Follow Official Documentation

- Adhere to the official documentation for each technology used.
- For Next.js, focus on data fetching methods and routing conventions.
- Stay updated with the latest best practices and updates, especially for Expo, React-Native and Tamagui.

Output Expectations

- Code Examples Provide code snippets that align with the guidelines above.
- Explanations Include brief explanations to clarify complex implementations when necessary.
- Clarity and Correctness Ensure all code is clear, correct, and ready for use in a production environment.
- Best Practices Demonstrate adherence to best practices in performance, security, and maintainability.
5 changes: 1 addition & 4 deletions .github/ISSUE_TEMPLATE/task.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,10 @@ type: 'task'

## Links

Epic on Notion:
Epic on Notion:

## What must be done



## Designs/sketches


## How to test it
2 changes: 0 additions & 2 deletions .github/ISSUE_TEMPLATE/tech-debt.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ labels: 'tech debt'

## Problem


## Proposed solution


## Dependencies & risks
6 changes: 6 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,9 @@ Resolves #
- [ ] I've tested the branch on mobile 📱
- [ ] I've documented how it affects the analytics (if at all) 📊
- [ ] I've written a unit/e2e test for it (if applicable) 🧑‍💻

---

## CLA signature

With the submission of this Pull Request, I confirm that I have read and agree to the terms of the [Contributor License Agreement](https://safe.global/cla).
16 changes: 5 additions & 11 deletions .github/actions/build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@ inputs:
description: 'Production build flag'
required: false

e2e_mnemonic:
description: 'Mnemonic for the E2E tests'
required: false

runs:
using: 'composite'

Expand All @@ -41,16 +37,15 @@ runs:
run: yarn workspace @safe-global/web build
env:
NEXT_PUBLIC_IS_PRODUCTION: ${{ inputs.prod }}
NEXT_PUBLIC_CYPRESS_MNEMONIC: ${{ inputs.e2e_mnemonic }}
NEXT_PUBLIC_GATEWAY_URL_PRODUCTION: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_GATEWAY_URL_PRODUCTION }}
NEXT_PUBLIC_GATEWAY_URL_STAGING: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_GATEWAY_URL_STAGING }}
NEXT_PUBLIC_SAFE_VERSION: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_SAFE_VERSION }}
NEXT_PUBLIC_BEAMER_ID: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_BEAMER_ID }}
NEXT_PUBLIC_GOOGLE_TAG_MANAGER_DEVELOPMENT_AUTH: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_GOOGLE_TAG_MANAGER_DEVELOPMENT_AUTH }}
NEXT_PUBLIC_GOOGLE_TAG_MANAGER_ID: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_GOOGLE_TAG_MANAGER_ID }}
NEXT_PUBLIC_GOOGLE_TAG_MANAGER_LATEST_AUTH: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_GOOGLE_TAG_MANAGER_LATEST_AUTH }}
NEXT_PUBLIC_GOOGLE_TAG_MANAGER_LIVE_AUTH: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_GOOGLE_TAG_MANAGER_LIVE_AUTH }}
NEXT_PUBLIC_PROD_GA_TRACKING_ID: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_PROD_GA_TRACKING_ID }}
NEXT_PUBLIC_TEST_GA_TRACKING_ID: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_TEST_GA_TRACKING_ID }}
NEXT_PUBLIC_SAFE_APPS_GA_TRACKING_ID: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_SAFE_APPS_GA_TRACKING_ID }}
NEXT_PUBLIC_SENTRY_DSN: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_SENTRY_DSN }}
NEXT_PUBLIC_DATADOG_CLIENT_TOKEN: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_DATADOG_CLIENT_TOKEN }}
NEXT_PUBLIC_TENDERLY_ORG_NAME: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_TENDERLY_ORG_NAME }}
NEXT_PUBLIC_TENDERLY_PROJECT_NAME: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_TENDERLY_PROJECT_NAME }}
NEXT_PUBLIC_TENDERLY_SIMULATE_ENDPOINT_URL: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_TENDERLY_SIMULATE_ENDPOINT_URL }}
Expand All @@ -61,14 +56,13 @@ runs:
NEXT_PUBLIC_BRAND_LOGO: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_BRAND_LOGO }}
NEXT_PUBLIC_BRAND_NAME: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_BRAND_NAME }}
NEXT_PUBLIC_BLOCKAID_CLIENT_ID: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_BLOCKAID_CLIENT_ID }}
NEXT_PUBLIC_SOCIAL_WALLET_OPTIONS_STAGING: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_SOCIAL_WALLET_OPTIONS_STAGING }}
NEXT_PUBLIC_SOCIAL_WALLET_OPTIONS_PRODUCTION: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_SOCIAL_WALLET_OPTIONS_PRODUCTION }}
NEXT_PUBLIC_FIREBASE_OPTIONS_PRODUCTION: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_FIREBASE_OPTIONS_PRODUCTION }}
NEXT_PUBLIC_FIREBASE_OPTIONS_STAGING: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_FIREBASE_OPTIONS_STAGING }}
NEXT_PUBLIC_FIREBASE_VAPID_KEY_PRODUCTION: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_FIREBASE_VAPID_KEY_PRODUCTION }}
NEXT_PUBLIC_FIREBASE_VAPID_KEY_STAGING: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_FIREBASE_VAPID_KEY_STAGING }}
NEXT_PUBLIC_SPINDL_SDK_KEY: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_SPINDL_SDK_KEY }}
NEXT_PUBLIC_ECOSYSTEM_ID_ADDRESS: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_ECOSYSTEM_ID_ADDRESS }}
NEXT_PUBLIC_MIXPANEL_TOKEN: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_MIXPANEL_TOKEN }}

- name: Save Next.js Build Cache & Cypress cache
if: steps.restore-nc.outputs.cache-hit-nc != 'true'
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/cache-deps/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ runs:
**/node_modules
/home/runner/.cache/Cypress
${{ github.workspace }}/.yarn/install-state.gz
${{ github.workspace }}/apps/web/src/types
${{ github.workspace }}/packages/utils/src/types
key: ${{ runner.os }}-web-core-modules-${{ hashFiles('**/package.json','**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-web-core-modules-
Expand All @@ -54,7 +54,7 @@ runs:
**/node_modules
/home/runner/.cache/Cypress
${{ github.workspace }}/.yarn/install-state.gz
${{ github.workspace }}/apps/web/src/types
${{ github.workspace }}/packages/utils/src/types
key: ${{inputs.key}}

- name: Restore Next.js
Expand Down
3 changes: 2 additions & 1 deletion .github/actions/cypress/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ runs:
- uses: ./.github/actions/build
with:
secrets: ${{ inputs.secrets }}
e2e_mnemonic: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_CYPRESS_MNEMONIC }}

- uses: cypress-io/github-action@v6
with:
Expand All @@ -54,6 +53,8 @@ runs:
config: baseUrl=http://localhost:8080
install: false
start: yarn workspace @safe-global/web serve
wait-on: 'http://localhost:8080'
wait-on-timeout: 120
working-directory: apps/web
env:
CYPRESS_RECORD_KEY: ${{ inputs.record_key || fromJSON(inputs.secrets).CYPRESS_RECORD_KEY }}
Expand Down
40 changes: 0 additions & 40 deletions .github/workflows/cla.yml

This file was deleted.

52 changes: 52 additions & 0 deletions .github/workflows/mobile-dev-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: EAS Dev Build

on:
push:
branches:
- dev
paths:
- apps/mobile/**
- packages/**
pull_request:
paths:
- apps/mobile/**
- packages/**

jobs:
build:
if: >
github.event_name == 'push' ||
(github.event_name == 'pull_request' &&
contains(github.event.pull_request.labels.*.name, 'mobile-dev-release'))
name: Install and build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Enable Corepack
run: corepack enable

# Set up Node.js
- uses: actions/setup-node@v4
with:
node-version: '22.11.0'
cache: 'yarn'

# Install dependencies
- name: Install dependencies
run: yarn install --immutable

- name: Setup Expo and EAS
uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}

- name: Build & deploy iOS on EAS
working-directory: apps/mobile
run: eas build --profile development --non-interactive --no-wait --platform ios --auto-submit-with-profile=development

- name: Build & deploy Android on EAS
working-directory: apps/mobile
run: eas build --profile development --non-interactive --no-wait --platform android --auto-submit-with-profile=development
42 changes: 42 additions & 0 deletions .github/workflows/mobile-e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: EAS Mobile E2E tests

on:
workflow_dispatch:
schedule:
- cron: '0 6 * * *'
pull_request:
paths:
- apps/mobile/**
- packages/**

jobs:
build:
if: github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'mobile-e2e-test')
name: Install and build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Enable Corepack
run: corepack enable

# Set up Node.js
- uses: actions/setup-node@v4
with:
node-version: '22.11.0' # jod
cache: 'yarn'

# Install dependencies
- name: Install dependencies
run: yarn install --immutable

- name: Setup Expo and EAS
uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}

- name: Build on EAS
working-directory: apps/mobile
run: eas build --profile build-and-maestro-test --non-interactive --no-wait --platform ios
4 changes: 2 additions & 2 deletions .github/workflows/mobile-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ on:
- main
paths:
- apps/mobile/**
- packages/store/**
- packages/**
pull_request:
paths:
- apps/mobile/**
- packages/store/**
- packages/**

jobs:
lint:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/mobile-unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@ on:
- main
paths:
- apps/mobile/**
- packages/**
pull_request:
paths:
- apps/mobile/**

- packages/**
jobs:
test-and-coverage:
runs-on: ubuntu-latest
Expand Down
Loading
Loading