Skip to content
This repository was archived by the owner on Jan 11, 2026. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
79e0df4
update app.json
MeisterJustice Nov 7, 2024
cfb531d
update crypto screen
MeisterJustice Nov 7, 2024
00ce64a
update env variables
MeisterJustice Nov 8, 2024
23efe51
Merge pull request #58 from metastable-labs/port-apple-team
njokuScript Nov 8, 2024
a3afafd
chore: update types
njokuScript Nov 8, 2024
0d2620b
Merge branch 'staging' of https://github.com/metastable-labs/liquid-i…
njokuScript Nov 8, 2024
f8ca2b9
chore: refactor registration process
njokuScript Nov 8, 2024
8bde24e
chore: add native eth to token return list
njokuScript Nov 8, 2024
2b43076
chore: pass public key returned from backend
njokuScript Nov 8, 2024
5c50d3f
implement search
MeisterJustice Nov 8, 2024
fb71bb1
Add support for Native ETH balance (#60)
njokuScript Nov 8, 2024
8ed7ef6
Merge branch 'staging' of https://github.com/metastable-labs/liquid-i…
MeisterJustice Nov 9, 2024
8727a34
fix: passkey integration
renanmav Nov 9, 2024
8a1975f
integrate new pools data
MeisterJustice Nov 10, 2024
8be89bc
update seach EP
MeisterJustice Nov 10, 2024
9b35703
Merge pull request #62 from metastable-labs/justice-ui-checklist
njokuScript Nov 10, 2024
de3c9d0
chore: update verification call payload
njokuScript Nov 10, 2024
6905d10
Merge branch 'staging' of https://github.com/metastable-labs/liquid-i…
njokuScript Nov 10, 2024
8f74301
chore: refactor pool liquidity
njokuScript Nov 11, 2024
59ddb3b
Merge pull request #61 from metastable-labs/renan/fix-passkeys
njokuScript Nov 11, 2024
6978d04
chore: remove earn and fees on empty data
njokuScript Nov 11, 2024
697ef9a
chore: update holdings
njokuScript Nov 11, 2024
bc74739
Implement contract interaction (#59)
njokuScript Nov 11, 2024
81ceaa4
logo
njokuScript Nov 11, 2024
fd11fa0
Merge branch 'native-eth-balance' of https://github.com/metastable-la…
MeisterJustice Nov 11, 2024
304d88d
update data naming
MeisterJustice Nov 11, 2024
a70dc6d
revert top10pools
MeisterJustice Nov 11, 2024
a603a82
chore: update pool details
njokuScript Nov 11, 2024
83c35a7
Merge branch 'justice-integration' of https://github.com/metastable-l…
njokuScript Nov 11, 2024
5b0c05f
clean up integration
MeisterJustice Nov 11, 2024
b7171a1
Merge branch 'justice-integration' of https://github.com/metastable-l…
njokuScript Nov 11, 2024
efa9c69
integrate tokens in liquidity
MeisterJustice Nov 11, 2024
446cc8c
handle pool pair
MeisterJustice Nov 11, 2024
6c6996e
updates
njokuScript Nov 11, 2024
8689690
Merge branch 'justice-integration' of https://github.com/metastable-l…
njokuScript Nov 11, 2024
b7a8e9a
chore: fix public key mismatch
njokuScript Nov 12, 2024
f0e26b7
chore: handle positions reducer
njokuScript Nov 12, 2024
cc3a782
chore: update position reducer
njokuScript Nov 13, 2024
0a94330
chore: fix verification response typing
njokuScript Nov 13, 2024
19ea5d2
remove pools from percisted, add token by address
MeisterJustice Nov 14, 2024
a57e030
Merge branch 'justice-integration' of https://github.com/metastable-l…
njokuScript Nov 14, 2024
6565f03
update pool integration
MeisterJustice Nov 14, 2024
57d0105
Merge branch 'justice-integration' of https://github.com/metastable-l…
njokuScript Nov 14, 2024
d625635
chore: update texts
njokuScript Nov 15, 2024
5a2f96f
chore: revert vol type conversion
njokuScript Nov 15, 2024
8bdbaa1
change search to be trending pools
njokuScript Nov 15, 2024
06ee4a7
chore: fix account bug
njokuScript Nov 15, 2024
ec357e6
integrate add liquidity
MeisterJustice Nov 15, 2024
eb541d5
Merge branch 'njoku/improvements' of https://github.com/metastable-la…
MeisterJustice Nov 15, 2024
30a5d07
chore: add total fee usd to pool stats
njokuScript Nov 15, 2024
77fe1ac
chore: fix fee display data
njokuScript Nov 15, 2024
831a55a
chore: updates
njokuScript Nov 15, 2024
91155a9
update ui
MeisterJustice Nov 15, 2024
0ab3460
remove logs
MeisterJustice Nov 15, 2024
74d9c0b
add input format functionality
MeisterJustice Nov 16, 2024
743d181
chore: fix account abstraction types
njokuScript Nov 16, 2024
508eb9e
update add liquidity screen implementations
MeisterJustice Nov 16, 2024
7dd5342
Merge branch 'njoku/improvements' of https://github.com/metastable-la…
MeisterJustice Nov 16, 2024
9510ceb
chore: implement a calls hook
njokuScript Nov 16, 2024
efa9500
chore: refactor paymaster config to use pimilco
njokuScript Nov 16, 2024
b86b61c
chore: refactor viem client to use pimilco
njokuScript Nov 17, 2024
c94e809
chore: use public key as signer
njokuScript Nov 17, 2024
27bcb95
Implement pool data and add Liquidity (#64)
njokuScript Nov 17, 2024
23e32ad
add settings screens
MeisterJustice Nov 17, 2024
c477409
update env
MeisterJustice Nov 17, 2024
8accffb
Merge branch 'justice-settings-page' of https://github.com/metastable…
njokuScript Nov 17, 2024
1aa86f2
add socials
MeisterJustice Nov 17, 2024
fe4b4db
chore: update onboarding text
njokuScript Nov 17, 2024
3ca531b
Merge pull request #66 from metastable-labs/njoku/improvements
njokuScript Nov 17, 2024
935e495
Merge pull request #65 from metastable-labs/justice-settings-page
njokuScript Nov 17, 2024
dffe67e
ui changes (#67)
MeisterJustice Nov 19, 2024
ca2df51
remove unnecessary balance
MeisterJustice Nov 20, 2024
de16c37
update button action
MeisterJustice Nov 20, 2024
f5c6bae
create image component
MeisterJustice Nov 20, 2024
8fe475b
Merge pull request #71 from metastable-labs/justice-add-default-pool-…
njokuScript Nov 20, 2024
eeac3af
Merge pull request #70 from metastable-labs/justice-pools-button
njokuScript Nov 20, 2024
e7dad1d
Merge pull request #69 from metastable-labs/justice-remove-default-ba…
njokuScript Nov 20, 2024
85c2c80
fix: tap to go to next and prev / fix progress pause on press next or…
iyiolaosuagwu Nov 21, 2024
11802ce
Fix/button loading state (#75)
iyiolaosuagwu Nov 21, 2024
ce2e8f7
update remove liquidity ui (#73)
MeisterJustice Nov 21, 2024
5b34815
update subtitle width (#74)
MeisterJustice Nov 21, 2024
8109dd0
Feat/refresh control (#77)
iyiolaosuagwu Nov 21, 2024
ef1b321
Feat/shrime loader component (#76)
iyiolaosuagwu Nov 21, 2024
ece6ded
align onboarding images (#78)
MeisterJustice Nov 22, 2024
1211ff3
update auth
MeisterJustice Nov 22, 2024
196baf6
Improve passkey auth (#79)
njokuScript Nov 22, 2024
e953325
fix: fixed recent search, cleaned up modal loader and empty search re…
iyiolaosuagwu Nov 23, 2024
f817cf6
ui cleanup (#80)
MeisterJustice Nov 23, 2024
21ff770
fixed image and icon alignment on onboarding (#82)
iyiolaosuagwu Nov 25, 2024
17ebd82
refactor chart
MeisterJustice Nov 25, 2024
0a5c96f
clean up
MeisterJustice Nov 25, 2024
5ca28b3
make bars bigger
MeisterJustice Nov 25, 2024
f89d2a8
Merge pull request #83 from metastable-labs/justice-refactor-chart
njokuScript Nov 25, 2024
8209880
fix button loading issue
MeisterJustice Nov 25, 2024
b47e5af
fix: convert non-strings to strings (#84)
iyiolaosuagwu Nov 25, 2024
42890fd
fix: no result component for no result search (#86)
iyiolaosuagwu Nov 26, 2024
9be8e53
Fix/toast resend otp (#87)
iyiolaosuagwu Nov 26, 2024
3ecfc4a
chores: hook and state update optimization (#85)
iyiolaosuagwu Nov 28, 2024
8076bb3
Feature/eng 26 implement home feed main view (#97)
iyiolaosuagwu Dec 5, 2024
89660b7
Feature/eng-47/Profile Screen (#99)
iyiolaosuagwu Dec 6, 2024
a90cfff
Discover Screen (#100)
iyiolaosuagwu Dec 9, 2024
ecbc43c
feature/create-strategy (#101)
iyiolaosuagwu Dec 11, 2024
9a2ea70
Build Strategy Detail Page / Comment (#102)
iyiolaosuagwu Dec 12, 2024
a499bd5
Build Portfolio Screen (#103)
iyiolaosuagwu Dec 12, 2024
5af0dd3
Feature/Eng-36/Implement Tanstack (#94)
MeisterJustice Dec 13, 2024
e010bb8
revert strategy actions
MeisterJustice Dec 14, 2024
6d16936
Crypto Deposit Screen / Bug fix (#104)
iyiolaosuagwu Dec 14, 2024
6acf83a
Feature/integrate strategies (#105)
MeisterJustice Dec 16, 2024
6d3cafb
update integration
MeisterJustice Dec 16, 2024
4da2b52
update reponse types
MeisterJustice Dec 16, 2024
f9869ca
Like / Unlike Strategy (#106)
iyiolaosuagwu Dec 17, 2024
a89fab4
Create / Like & UnLike Comment (#107)
iyiolaosuagwu Dec 17, 2024
04dbc95
Discover Page Search And Filter (#108)
iyiolaosuagwu Dec 18, 2024
eee6fbe
add swap icon
MeisterJustice Dec 19, 2024
7aff313
Merge branch 'staging' of https://github.com/metastable-labs/liquid-i…
MeisterJustice Dec 19, 2024
7645be0
feature: connect disconnect wallet modal (#111)
iyiolaosuagwu Dec 20, 2024
9cc8169
Invest / Withdraw From Strategy (#112)
iyiolaosuagwu Dec 23, 2024
d862691
docs: Clarified the Dependency Installation Command in Step 2 (#109)
mdqst Dec 23, 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
  •  
  •  
  •  
5 changes: 3 additions & 2 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
EXPO_PUBLIC_BASE_RPC_URL=https://mainnet.base.org
EXPO_PUBLIC_BUNDLER_RPC_URL=https://public.pimlico.io/v2/1/rpc
EXPO_PUBLIC_API_URL=https://api.useliquid.xyz
EXPO_PUBLIC_API_URL=https://development.useliquid.xyz
EXPO_PUBLIC_API_KEY=
EXPO_PUBLIC_PRIVY_APP_ID=
EXPO_PUBLIC_PRIVY_CLIENT_ID=
EXPO_PUBLIC_PRIVY_CLIENT_ID=
EXPO_PUBLIC_PIMILCO_API_KEY=
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ This is an [Expo](https://expo.dev) project created with [`create-expo-app`](htt
2. Install dependencies:

```bash
yarn i
yarn install
```

3. Setup your `.env` file based on `.env.example`. Make sure you have a valid Liquid API key.
Expand Down
12 changes: 4 additions & 8 deletions app.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,26 +14,22 @@
},
"ios": {
"supportsTablet": true,
"bundleIdentifier": "com.liquid.supermigrate",
"bundleIdentifier": "xyz.useliquid.liquid",
"buildNumber": "1",
"infoPlist": {
"NSFaceIDUsageDescription": "This app uses Face ID to sign in with Passkeys."
},
"config": {
"usesNonExemptEncryption": false
},
"associatedDomains": [
"webcredentials:api.useliquid.xyz?mode=developer",
"webcredentials:api.useliquid.xyz",
"webcredentials:development.useliquid.xyz"
]
"associatedDomains": ["webcredentials:api.useliquid.xyz", "webcredentials:development.useliquid.xyz"]
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/images/liquid-adaptive-icon.png",
"backgroundColor": "#ffffff"
},
"package": "com.liquid.supermigrate"
"package": "xyz.useliquid.liquid"
},
"web": {
"bundler": "metro",
Expand Down Expand Up @@ -70,4 +66,4 @@
},
"owner": "supermigrate"
}
}
}
2 changes: 1 addition & 1 deletion app/(liquidity-actions)/_layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { StatusBar } from 'expo-status-bar';
const LiquidityActionsStack = () => {
return (
<>
<StatusBar style="inverted" />
<StatusBar style="dark" />

<Stack screenOptions={{ headerShown: false }}>
<Stack.Screen name="add" />
Expand Down
46 changes: 44 additions & 2 deletions app/(onboarding)/_layout.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useState, useEffect, useRef } from 'react';
import { StyleSheet, Dimensions, Platform, View, StatusBar as RNStatusBar } from 'react-native';
import { StyleSheet, Dimensions, Platform, View, StatusBar as RNStatusBar, Pressable } from 'react-native';
import { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs';
import { StatusBar } from 'expo-status-bar';

Expand Down Expand Up @@ -56,6 +56,17 @@ export default function OnboardingTabLayout() {
}
};

const navigateToPreviousScreen = () => {
switch (pathname) {
case '/step2':
router.push('/(onboarding)/step1');
break;
case '/step3':
router.push('/(onboarding)/step2');
break;
}
};

useEffect(() => {
if (!isPaused) {
intervalRef.current = setInterval(() => {
Expand Down Expand Up @@ -86,7 +97,7 @@ export default function OnboardingTabLayout() {

return (
<>
<StatusBar style="light" />
<StatusBar style="dark" />
<View style={styles.indicator}>
<LQDOnboardingIndicator
timer={timer}
Expand Down Expand Up @@ -130,6 +141,23 @@ export default function OnboardingTabLayout() {
/>
</Tab.Navigator>

<Pressable
onPress={() => {
if (currentStep > 0) {
navigateToPreviousScreen();
}
}}
style={styles.prev}
/>
<Pressable
onPress={() => {
if (currentStep < 2) {
navigateToNextScreen();
}
}}
style={styles.next}
/>

<View style={styles.action}>
<LQDButton onPress={() => router.replace('/(signup)')} title="Let's go!" />
</View>
Expand All @@ -155,4 +183,18 @@ const styles = StyleSheet.create({
paddingBottom: Platform.OS === 'ios' ? 33 : 16,
width: Dimensions.get('window').width,
},
prev: {
flex: 1,
position: 'absolute',
height: Dimensions.get('window').height,
left: 0,
width: 65,
},
next: {
flex: 1,
position: 'absolute',
height: Dimensions.get('window').height,
right: 0,
width: 65,
},
});
2 changes: 1 addition & 1 deletion app/(onboarding)/step1.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const Step1 = () => {
firstArc={arc}
secondArc={arc1}
title="DeFi made easy"
subtitle="Deposit Liquidity on Aerodrome pools in 3 seconds"
subtitle="Earn more with your money, securely"
containerStyle={{ backgroundColor: '#4691FE' }}
imageStyle={{ left: 6 }}
firstArcStyle={styles.firstArc}
Expand Down
24 changes: 24 additions & 0 deletions app/(portfolio)/_layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { Stack } from 'expo-router';
import { LQDStackHeader } from '@/components';

const PortfolioStack = () => {
return (
<Stack
screenOptions={{
header: (props) => <LQDStackHeader {...props} style={{ paddingTop: 34 }} />,
headerShown: true,
}}
>
<Stack.Screen
name="index"
options={{
header: (props) => <LQDStackHeader {...props} style={{ paddingTop: 60 }} hasTitle />,
headerShown: true,
headerTitle: 'Portfolio',
}}
/>
</Stack>
);
};

export default PortfolioStack;
5 changes: 5 additions & 0 deletions app/(portfolio)/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { Portfolio } from '@/screens';

const PortfolioScreen = () => <Portfolio />;

export default PortfolioScreen;
7 changes: 7 additions & 0 deletions app/(settings)/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import Settings from '@/screens/settings';

const Settingscreen = () => {
return <Settings />;
};

export default Settingscreen;
20 changes: 20 additions & 0 deletions app/(settings)/legal-privacy.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { StyleSheet, Text, View } from 'react-native';

const LegalAndPrivacy = () => {
return (
<View style={styles.container}>
<Text>Legal and Privacy</Text>
</View>
);
};

export default LegalAndPrivacy;

const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#fff',
},
});
20 changes: 20 additions & 0 deletions app/(settings)/support.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { StyleSheet, Text, View } from 'react-native';

const Support = () => {
return (
<View style={styles.container}>
<Text>Support</Text>
</View>
);
};

export default Support;

const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#fff',
},
});
41 changes: 41 additions & 0 deletions app/(strategy)/_layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import { Stack } from 'expo-router';
import { LQDStackHeader } from '@/components';

const StrategyStack = () => {
return (
<Stack
screenOptions={{
header: (props) => <LQDStackHeader {...props} style={{ paddingTop: 60 }} hasTitle />,
headerTitle: 'Create Strategy',
}}
>
<Stack.Screen
name="new-action-strategy"
options={{
header: (props) => <LQDStackHeader {...props} style={{ paddingTop: 60 }} hasTitle leftIcon="close" />,
headerTitle: 'New Action',
headerShown: true,
presentation: 'fullScreenModal',
animation: 'slide_from_bottom',
}}
/>

<Stack.Screen
name="preview-strategy"
options={{
header: (props) => <LQDStackHeader {...props} style={{ paddingTop: 60 }} hasTitle />,
headerTitle: 'Preview and publish',
headerShown: true,
}}
/>
<Stack.Screen
name="details"
options={{
headerShown: false,
}}
/>
</Stack>
);
};

export default StrategyStack;
5 changes: 5 additions & 0 deletions app/(strategy)/create-strategy.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { CreateStrategy } from '@/screens';

const CreateStrategyScreen = () => <CreateStrategy />;

export default CreateStrategyScreen;
10 changes: 10 additions & 0 deletions app/(strategy)/details/[id].tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { StrategyDetail } from '@/screens';
import { useLocalSearchParams } from 'expo-router';

const StrategyDetailScreen = () => {
const { id } = useLocalSearchParams();

return <StrategyDetail strategyId={id as string} />;
};

export default StrategyDetailScreen;
19 changes: 19 additions & 0 deletions app/(strategy)/details/_layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { Stack } from 'expo-router';

import { LQDStackHeader } from '@/components';

const StrategyDetailLayout = () => {
return (
<>
<Stack
screenOptions={{
header: (props) => <LQDStackHeader {...props} style={{ paddingTop: 60 }} hasTitle />,
headerTitle: 'Strategy',
headerShown: true,
}}
></Stack>
</>
);
};

export default StrategyDetailLayout;
5 changes: 5 additions & 0 deletions app/(strategy)/new-action-strategy.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { NewActionStrategy } from '@/screens';

const NewActionScreen = () => <NewActionStrategy />;

export default NewActionScreen;
5 changes: 5 additions & 0 deletions app/(strategy)/preview-strategy.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { PreviewStrategy } from '@/screens';

const PreviewStrategyScreen = () => <PreviewStrategy />;

export default PreviewStrategyScreen;
Loading