Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
b2ba712
feat[ZUP-88]: add support for ethereum mainnet
RyanHolanda Apr 4, 2025
b98ff0c
chore: add slippage check error message
RyanHolanda Apr 5, 2025
6123b8e
fix: images not loading on web
RyanHolanda Apr 5, 2025
eb0641b
fix: image not updating when changing the url
RyanHolanda Apr 5, 2025
2f6ad59
feat: add tvl info in the pool && min tvl filter
RyanHolanda Apr 10, 2025
6f117c8
chore: bump flutter bootstrap version
RyanHolanda Apr 10, 2025
abdc5da
ci: update install dependencies command
RyanHolanda Apr 10, 2025
686d1e1
ci: remove make commands from CI
RyanHolanda Apr 10, 2025
06fccdd
Merge branch 'main' into staging
RyanHolanda Apr 17, 2025
74a219c
docs: add instructions to add a new network in readme
RyanHolanda Apr 17, 2025
d9da377
feat: add scroll mainnet
RyanHolanda Apr 28, 2025
3f6e195
feat: add network to the deposit page path
RyanHolanda Apr 29, 2025
79261a4
feat: add privacy policy + terms and coditions
RyanHolanda Apr 29, 2025
46c7b33
fix: tests
RyanHolanda Apr 29, 2025
2050e71
Merge branch 'main' into staging
RyanHolanda Apr 30, 2025
e1e73a1
feat: add cookies consent
RyanHolanda Apr 30, 2025
175d4d0
Merge branch 'main' into staging
RyanHolanda May 13, 2025
58bbeac
feat: allow crosschain search
RyanHolanda May 16, 2025
0539501
feat: does not allow search by address in all networks
RyanHolanda May 17, 2025
326b85b
fix: user token amount not updating correctly when changing yields
RyanHolanda May 18, 2025
c933415
feat: add base network
RyanHolanda May 20, 2025
7ba9fa6
Merge branch 'main' into staging
RyanHolanda May 23, 2025
afad225
feat: calculate USD price of input asset
RyanHolanda May 26, 2025
b8a83cd
feat: allow uniswap v4
RyanHolanda Jun 11, 2025
396eae9
Update flutter version on CI
RyanHolanda Jun 24, 2025
1827998
fix: wrong token amount appearing when connecting wallet with tokens …
RyanHolanda Jul 6, 2025
a9f3dfd
chore: remove base support
RyanHolanda Jul 14, 2025
1da6c94
bump version
RyanHolanda Jul 14, 2025
1da2f67
Merge branch 'main' into staging
RyanHolanda Jul 14, 2025
add2ab8
Merge branch 'main' into staging
RyanHolanda Jul 14, 2025
1729fc4
feat: add prefixed percentage range buttons
RyanHolanda Jul 15, 2025
fe3e2a1
bump version
RyanHolanda Jul 15, 2025
f733f3a
Merge branch 'main' into staging
RyanHolanda Jul 15, 2025
b211dce
Merge branch 'main' into staging
RyanHolanda Jul 15, 2025
9fcf3e1
feat: add support to filter DEXs
RyanHolanda Jul 19, 2025
4b6cbdc
feat: add bnb chain support (#37)
RyanHolanda Jul 21, 2025
bb05a7c
chore: remove bnb support
RyanHolanda Jul 21, 2025
3536450
fix: uniswap v4 deposits with full amount available not working
RyanHolanda Jul 23, 2025
929db21
erge branch 'main' into staging
RyanHolanda Jul 23, 2025
1df5fd3
feat: add token groups
RyanHolanda Aug 1, 2025
c6f3612
bump version
RyanHolanda Aug 1, 2025
ef6270d
fix: not showing token groups in live app & preview modal displaying …
RyanHolanda Aug 1, 2025
2bb46c8
fix: loading icon for token group icon too big
RyanHolanda Aug 1, 2025
d4c653d
Merge branch 'main' into staging
RyanHolanda Aug 4, 2025
e4dcf74
feat: add support to dark mode
RyanHolanda Aug 5, 2025
2c5d286
fix: make token input card text color brigther
RyanHolanda Aug 6, 2025
f9ee458
Merge branch 'main' into staging
RyanHolanda Aug 6, 2025
15c7b2d
feat: add support to base & hyperliquid (#44)
RyanHolanda Aug 21, 2025
45c755e
fix: zup cached image loading not showing when setting background
RyanHolanda Aug 21, 2025
d4978f9
chore: update min default pool tvl for search to 5k usd
RyanHolanda Aug 22, 2025
ded2da6
fix: pancakeswap infinity deposit error
RyanHolanda Aug 22, 2025
8c545f0
Merge branch 'main' into staging
RyanHolanda Aug 22, 2025
4a6c07c
bump version
RyanHolanda Aug 22, 2025
95d2cc4
Merge branch 'main' into staging
RyanHolanda Aug 22, 2025
aa20a24
Merge branch 'main' into staging
RyanHolanda Aug 26, 2025
c3b65a2
feat: add auto slippage
RyanHolanda Aug 26, 2025
6d2bef2
bump version
RyanHolanda Aug 26, 2025
53b6908
Merge branch 'main' into staging
RyanHolanda Aug 30, 2025
b463288
chore: update zup logo and improve SEO
RyanHolanda Aug 30, 2025
0487c6b
bump version
RyanHolanda Aug 30, 2025
52ca93c
Merge branch 'main' into staging
RyanHolanda Sep 1, 2025
9fb338f
Merge branch 'main' into staging
RyanHolanda Sep 27, 2025
f90f197
feat: add support to plasma blockchain
RyanHolanda Sep 27, 2025
7fc5dde
bump web version
RyanHolanda Sep 27, 2025
011fc1b
style: remove unused variable
RyanHolanda Sep 27, 2025
a655a66
Merge branch 'main' into staging
RyanHolanda Oct 2, 2025
85ba0af
feat: Deposit flow UI Update (#49)
RyanHolanda Oct 8, 2025
e6526bd
Merge branch 'main' into staging
RyanHolanda Oct 8, 2025
ceda2b9
feat: allow user to see pool stats
RyanHolanda Oct 25, 2025
7c91ba6
style: update from yield dto to liquidity pool dto
RyanHolanda Oct 26, 2025
520479f
fix tests
RyanHolanda Oct 26, 2025
e3660f9
feat: add support to deposit on hx finance
RyanHolanda Nov 4, 2025
36445c0
Merge branch 'main' into staging
RyanHolanda Nov 7, 2025
e3fbb31
chore: remove base outdated banner
RyanHolanda Nov 7, 2025
06b7958
Merge branch 'main' into staging
RyanHolanda Nov 19, 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
  •  
  •  
  •  
13 changes: 13 additions & 0 deletions assets/icons/chart.bar.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions assets/icons/checkmark.circle.fill.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions assets/icons/document.on.document.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions assets/logos/dexscreener.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
77 changes: 39 additions & 38 deletions lib/app/app_layout.dart
Original file line number Diff line number Diff line change
Expand Up @@ -48,25 +48,24 @@ class _AppPageState extends State<AppPage> with DeviceInfoMixin {

if (cache.getCookiesConsentStatus() == null) Overlay.of(context).insert(overlayEntry);

ScaffoldMessenger.of(context).showMaterialBanner(
MaterialBanner(
backgroundColor: ZupColors.orange6,
padding: const EdgeInsets.only(left: 20, right: 10, bottom: 5, top: 5),
dividerColor: Colors.transparent,
content: const Text(
"⚠️ 24h and 7d Yields on Base Network are temporarily delayed, we’re on it! 🚧 30d, and 90d Yields are still running fine.",
style: TextStyle(color: ZupColors.orange),
),
actions: [
ZupIconButton(
iconColor: ZupColors.orange,
backgroundColor: ZupColors.orange5,
icon: const Icon(Icons.close),
onPressed: (context) => ScaffoldMessenger.of(context).clearMaterialBanners(),
),
],
),
);
// ScaffoldMessenger.of(context).showMaterialBanner(
// MaterialBanner(
// backgroundColor: ZupColors.orange6,
// padding: const EdgeInsets.only(left: 20, right: 10, bottom: 5, top: 5),
// dividerColor: Colors.transparent,
// content: const Text(
// "⚠️ 24h Yields on Base Network are temporarily delayed, we’re on it! 🚧 7d, 30d, and 90d Yields are still running fine.",
// style: TextStyle(color: ZupColors.orange),
// ),
// actions: [
// ZupIconButton(
// backgroundColor: ZupColors.orange5,
// icon: const Icon(Icons.close, color: ZupColors.orange),
// onPressed: (context) => ScaffoldMessenger.of(context).clearMaterialBanners(),
// ),
// ],
// ),
// );
});
}

Expand All @@ -77,27 +76,29 @@ class _AppPageState extends State<AppPage> with DeviceInfoMixin {
backgroundColor: ZupThemeColors.background.themed(context.brightness),
bottomNavigationBar: shouldShowBottomNavigationBar ? const AppBottomNavigationBar() : null,
extendBody: shouldShowBottomNavigationBar,
body: CustomScrollView(
body: PrimaryScrollController(
controller: appScrollController,
shrinkWrap: true,
physics: const ClampingScrollPhysics(),
slivers: [
SliverAppBar(
clipBehavior: Clip.none,
forceMaterialTransparency: true,
pinned: true,
titleSpacing: 0,
title: AppHeader(height: appBarHeight),
toolbarHeight: appBarHeight,
),
const SliverFillRemaining(hasScrollBody: false, child: RouterOutlet(key: Key("screen"))),
SliverToBoxAdapter(
child: Padding(
padding: EdgeInsets.only(bottom: shouldShowBottomNavigationBar ? AppBottomNavigationBar.height : 0),
child: const AppFooter(),
child: CustomScrollView(
primary: true,
physics: const ClampingScrollPhysics(),
slivers: [
SliverAppBar(
clipBehavior: Clip.none,
forceMaterialTransparency: true,
pinned: true,
titleSpacing: 0,
title: AppHeader(height: appBarHeight),
toolbarHeight: appBarHeight,
),
),
],
const SliverFillRemaining(hasScrollBody: false, child: RouterOutlet(key: Key("screen"))),
SliverToBoxAdapter(
child: Padding(
padding: EdgeInsets.only(bottom: shouldShowBottomNavigationBar ? AppBottomNavigationBar.height : 0),
child: const AppFooter(),
),
),
],
),
),
),
);
Expand Down
4 changes: 2 additions & 2 deletions lib/app/create/create_page_select_tokens_stage.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import 'package:zup_app/app/app_cubit/app_cubit.dart';
import 'package:zup_app/app/create/widgets/create_page_settings_dropdown/create_page_settings_dropdown.dart';
import 'package:zup_app/app/create/widgets/exchanges_filter_dropdown_button/exchanges_filter_dropdown_button.dart';
import 'package:zup_app/core/cache.dart';
import 'package:zup_app/core/dtos/token_dto.dart';
import 'package:zup_app/core/dtos/multi_chain_token_dto.dart';
import 'package:zup_app/core/injections.dart';
import 'package:zup_app/core/zup_navigator.dart';
import 'package:zup_app/gen/assets.gen.dart';
Expand Down Expand Up @@ -35,7 +35,7 @@ class _CreatePageState extends State<CreatePageSelectTokensStage> with DeviceInf
StreamSubscription? _token1SelectorStreamSubscription;
StreamSubscription? _selectedNetworkStreamSubscription;

bool areTokensEqual(TokenDto? token0, TokenDto? token1) {
bool areTokensEqual(MultiChainTokenDto? token0, MultiChainTokenDto? token1) {
if (token0 == null || token1 == null) return false;

if (appCubit.selectedNetwork.isAllNetworks) return token0.internalId == token1.internalId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,65 +163,6 @@ class _CreatePageSettingsDropdownState extends State<CreatePageSettingsDropdown>
)
: const SizedBox.shrink(),
),
const SizedBox(height: 10),
Row(
children: [
sectionTitle(S.of(context).createPageSettingsDropdownAllowedPoolTypes),
const SizedBox(width: 8),
ZupTooltip.text(
key: const Key("pool-types-allowed-tooltip"),
message: S.of(context).createPageSettingsDropdownAllowedPoolTypesDescription,
child: Assets.icons.infoCircle.svg(
colorFilter: const ColorFilter.mode(ZupColors.gray, BlendMode.srcIn),
),
),
],
),
const SizedBox(height: 5),
Row(
children: [
Text(
"V4",
style: TextStyle(
fontWeight: FontWeight.w500,
fontSize: 15,
color: ZupThemeColors.primaryText.themed(context.brightness),
),
),
const SizedBox(width: 5),
ZupSwitch(
key: const Key("pool-types-allowed-v4-switch"),
value: cache.getPoolSearchSettings().allowV4Search,
onChanged: (value) async {
await cache.savePoolSearchSettings(
settings: cache.getPoolSearchSettings().copyWith(allowV4Search: value),
);

setState(() {});
},
),
const SizedBox(width: 12),
Text(
"V3",
style: TextStyle(
fontWeight: FontWeight.w500,
color: ZupThemeColors.primaryText.themed(context.brightness),
),
),
const SizedBox(width: 5),
ZupSwitch(
key: const Key("pool-types-allowed-v3-switch"),
value: cache.getPoolSearchSettings().allowV3Search,
onChanged: (value) async {
await cache.savePoolSearchSettings(
settings: cache.getPoolSearchSettings().copyWith(allowV3Search: value),
);

setState(() {});
},
),
],
),
],
),
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import 'package:zup_app/core/injections.dart';
import 'package:zup_app/core/repositories/protocol_repository.dart';
import 'package:zup_app/gen/assets.gen.dart';
import 'package:zup_app/l10n/gen/app_localizations.dart';
import 'package:zup_app/widgets/zup_cached_image.dart';
import 'package:zup_core/extensions/extensions.dart';
import 'package:zup_core/zup_singleton_cache.dart';
import 'package:zup_ui_kit/zup_ui_kit.dart';
Expand All @@ -21,7 +20,7 @@ class ExchangesFilterDropdownButton extends StatefulWidget {
class _ExchangesFilterDropdownButtonState extends State<ExchangesFilterDropdownButton> {
final zupSingletonCache = inject<ZupSingletonCache>();
final protocolRepository = inject<ProtocolRepository>();
final zupCachedImage = inject<ZupCachedImage>();
final zupNetworkImage = inject<ZupNetworkImage>();
final cache = inject<Cache>();

ExchangesFilterDropdownButtonCubit? cubit;
Expand Down Expand Up @@ -114,7 +113,7 @@ class _ExchangesFilterDropdownButtonState extends State<ExchangesFilterDropdownB
(protocol) => ZupCheckboxItem(
id: protocol.rawId,
title: protocol.name,
icon: zupCachedImage.build(
icon: zupNetworkImage.load(
context,
protocol.logo,
radius: 20,
Expand Down
4 changes: 2 additions & 2 deletions lib/app/create/yields/[id]/deposit/deposit_cubit.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import 'package:zup_app/core/cache.dart';
import 'package:zup_app/core/concentrated_liquidity_utils/cl_pool_conversors_mixin.dart';
import 'package:zup_app/core/dtos/deposit_page_arguments_dto.dart';
import 'package:zup_app/core/dtos/deposit_settings_dto.dart';
import 'package:zup_app/core/dtos/liquidity_pool_dto.dart';
import 'package:zup_app/core/dtos/pool_search_settings_dto.dart';
import 'package:zup_app/core/dtos/yield_dto.dart';
import 'package:zup_app/core/enums/networks.dart';
import 'package:zup_app/core/mixins/keys_mixin.dart';
import 'package:zup_app/core/pool_service.dart';
Expand Down Expand Up @@ -57,7 +57,7 @@ class DepositCubit extends Cubit<DepositState> with KeysMixin, CLPoolConversorsM
final Duration _poolSqrtPriceX96CacheExpiration = const Duration(seconds: 30);

BigInt? _latestPoolSqrtPriceX96;
YieldDto? yieldPool;
LiquidityPoolDto? yieldPool;

late final Stream<BigInt?> poolSqrtPriceX96Stream = _poolSqrtPriceX96StreamController.stream;

Expand Down
Loading
Loading