Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
b54a5e7
feat: abstract squid route fetching
jjramirezn Jun 12, 2025
769b541
refactor: use parseunits
jjramirezn Jun 12, 2025
5076156
refactor: remove console.dir
jjramirezn Jun 12, 2025
65eb664
feat: handle very large numbers with careful scaling
jjramirezn Jun 12, 2025
49451d1
refactor: use const for squid api url
jjramirezn Jun 13, 2025
37a248c
feat: add cross-chain action card
jjramirezn Jun 18, 2025
526c84d
Merge remote-tracking branch 'origin/peanut-wallet' into feat/cross-c…
jjramirezn Jun 18, 2025
9c138db
refactor: use decimals from token price instead of hardcoded
jjramirezn Jun 18, 2025
0704210
style: Apply prettier formatting
jjramirezn Jun 18, 2025
67dfe8d
Merge remote-tracking branch 'origin/peanut-wallet-dev' into feat/cor…
jjramirezn Jun 18, 2025
74a01ba
feat: show min received for cross-chain payments
jjramirezn Jun 22, 2025
4eccc76
chore: clean unused variables
jjramirezn Jun 22, 2025
665d9c3
fix: tests ach_pull to ach
jjramirezn Jun 30, 2025
97cdbcf
Merge remote-tracking branch 'origin/peanut-wallet-dev' into feat/cro…
jjramirezn Jun 30, 2025
9d96d70
Merge remote-tracking branch 'origin/peanut-wallet-dev' into feat/cor…
jjramirezn Jun 30, 2025
186d490
Merge branch 'feat/coral-integration' into feat/cross-chain-action-card
jjramirezn Jun 30, 2025
83a5ac8
fix: pr comments
jjramirezn Jun 30, 2025
df106b3
fix: withdrawData and pulsate animation
jjramirezn Jun 30, 2025
4bce37b
fix: cursor placement in token amount input
kushagrasarathe Jun 30, 2025
19aab4e
fix: delete unused code
jjramirezn Jun 30, 2025
c67403d
fix: add camera perm modal
kushagrasarathe Jul 1, 2025
4906a27
fix: enable mexico bank offramp
kushagrasarathe Jul 1, 2025
90d6233
refactor: better comments for direct usd payments
jjramirezn Jul 1, 2025
8c1bcdf
Merge pull request #919 from peanutprotocol/feat/cross-chain-action-card
jjramirezn Jul 1, 2025
ad2fe8e
Merge pull request #919 from peanutprotocol/feat/cross-chain-action-card
jjramirezn Jul 1, 2025
923ddb3
feat: add qr scanning for xchain
jjramirezn Jul 1, 2025
d0cc9a5
Merge branch 'feat/qr-scanning-xchain' into feat/coral-integration
jjramirezn Jul 1, 2025
cca8489
fix: remove malicious code
jjramirezn Jul 1, 2025
46f87b7
Merge pull request #944 from peanutprotocol/feat/coral-integration
jjramirezn Jul 2, 2025
7c4beab
fix: handle mxn in offramp destination details (#945)
kushagrasarathe Jul 3, 2025
5d2799f
fix: show share receipt option in direct send status view (#946)
kushagrasarathe Jul 3, 2025
7a69a61
[TASK-12678] fix: coral withdraw fixes (#949)
jjramirezn Jul 4, 2025
8144f70
fix: lock orientation to portrait mode (#947)
kushagrasarathe Jul 4, 2025
71e47e7
fix: update payment form for crosschain add money (#954)
jjramirezn Jul 5, 2025
0b1af76
[TASK-12682] fix: show token selector for guest flow (#955)
jjramirezn Jul 7, 2025
f3cbec0
implemented Context instead of sessionStorage in onrampData to avoid …
FacuBozzi Jul 7, 2025
63340f2
refactor: fetch external wallet balances from mobula (#956) (#958)
jjramirezn Jul 8, 2025
8e7e89e
[TASK-12645] copy button for individual fields (#960)
FacuBozzi Jul 8, 2025
b1b6247
fix: gas estimation for external wallets (#961)
jjramirezn Jul 8, 2025
aedc3a8
[TASK-12603] reset send flow state when navigating to/from payment li…
FacuBozzi Jul 8, 2025
ba18831
[TASK-12312] ENS/eth address network error being displayed on the fro…
FacuBozzi Jul 8, 2025
42e4dea
fix: centre align views on mobile (#950)
kushagrasarathe Jul 9, 2025
2f14c04
[TASK-12542] added formatIban function for correct display (#952)
FacuBozzi Jul 9, 2025
8bac72d
[TASK-12672] feat: show sponsored by peanut message (#959)
jjramirezn Jul 9, 2025
43ce008
fix: correct approval owner and base rpc (#965)
jjramirezn Jul 9, 2025
f4c2b1c
feat: add alachemy as fallback rpc url (#948)
kushagrasarathe Jul 10, 2025
d16afad
[TASK-12866] fix: small fixes around crosschain ui (#966)
jjramirezn Jul 10, 2025
8de081f
removed white spaces before processing to BIC (#951)
FacuBozzi Jul 10, 2025
e0686e0
feat: resuable slider component (#968)
kushagrasarathe Jul 10, 2025
17a8f0e
fix: update desktop navigation with add/withdraw paths (#969)
kushagrasarathe Jul 10, 2025
e752059
[TASK-11884] request via link with comment and attachment is creating…
FacuBozzi Jul 10, 2025
da30c00
fix: support page staging (#972)
kushagrasarathe Jul 10, 2025
1c8db75
fix: ui comments (#973)
jjramirezn Jul 10, 2025
2c7acd2
Support and beta changes to staging (#978)
jjramirezn Jul 11, 2025
70bc888
[TASK-12312] Bugfix/ens error withdrawing (#976)
FacuBozzi Jul 11, 2025
5186a6b
fix: coral small issues (#979)
jjramirezn Jul 11, 2025
e744e43
chore: enable usdt in mainnet (#980)
jjramirezn Jul 15, 2025
b4266c3
fix: slider tap bug logic (#983)
kushagrasarathe Jul 15, 2025
2351f27
fix: some issues and comments (#984)
jjramirezn Jul 16, 2025
f13deb9
[TASK-12771] Feat/new landing page (#974)
FacuBozzi Jul 16, 2025
a9ab4db
[TASK-13136] feat: allow uppercase in url (#986)
jjramirezn Jul 16, 2025
497e474
fix: inform create request type when creating from UI (#987)
jjramirezn Jul 16, 2025
64bbc81
fix: balance warning modal (#988)
jjramirezn Jul 16, 2025
66f0d03
chore: remove unused file (#990)
jjramirezn Jul 16, 2025
c334f18
Merge remote-tracking branch 'origin/peanut-wallet' into chore/releas…
jjramirezn Jul 16, 2025
1b44176
chore: re-add removed code for gas estimation
jjramirezn Jul 16, 2025
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
6 changes: 6 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export NEXT_PUBLIC_WC_PROJECT_ID=""
export NEXT_PUBLIC_SENTRY_DSN=""
export NEXT_PUBLIC_RECAPTCHA_SITE_KEY=""
export NEXT_PUBLIC_INFURA_API_KEY=""
export NEXT_PUBLIC_ALCHEMY_API_KEY=""
export NEXT_PUBLIC_JUSTANAME_ENS_DOMAIN=""

export MOBULA_API_KEY=""
Expand All @@ -26,6 +27,10 @@ export WC_PROJECT_ID=""
export GA_KEY=""
export SOCKET_API_KEY=""

# SQUID
export SQUID_API_URL=""
export SQUID_INTEGRATOR_ID=""

# Passkey envs
export NEXT_PUBLIC_ZERO_DEV_PASSKEY_PROJECT_ID=""
export NEXT_PUBLIC_ZERO_DEV_BUNDLER_URL=""
Expand All @@ -34,6 +39,7 @@ export NEXT_PUBLIC_ZERO_DEV_PASSKEY_SERVER_URL=""
export NEXT_PUBLIC_POLYGON_PAYMASTER_URL=""
export NEXT_PUBLIC_POLYGON_BUNDLER_URL=""
export NEXT_PUBLIC_BALANCE_WARNING_THRESHOLD=1
export NEXT_PUBLIC_BALANCE_WARNING_EXPIRY=15

export NEXT_PUBLIC_INFURA_API_KEY=""

Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
"@hookform/resolvers": "3.9.1",
"@justaname.id/react": "0.3.180",
"@justaname.id/sdk": "0.2.177",
"@radix-ui/react-slider": "^1.3.5",
"@reduxjs/toolkit": "^2.5.0",
"@reown/appkit": "1.6.9",
"@reown/appkit-adapter-wagmi": "1.6.9",
Expand Down
115 changes: 113 additions & 2 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions public/arrows/small-arrow.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions src/app/(mobile-ui)/add-money/[country]/bank/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export default function OnrampBankPage() {

const [isKycModalOpen, setIsKycModalOpen] = useState(false)
const [liveKycStatus, setLiveKycStatus] = useState<KYCStatus | undefined>(undefined)
const { amountToOnramp: amountFromContext, setAmountToOnramp, setError, error } = useOnrampFlow()
const { amountToOnramp: amountFromContext, setAmountToOnramp, setError, error, setOnrampData } = useOnrampFlow()
const formRef = useRef<{ handleSubmit: () => void }>(null)
const [isUpdatingUser, setIsUpdatingUser] = useState(false)
const [userUpdateError, setUserUpdateError] = useState<string | null>(null)
Expand Down Expand Up @@ -186,7 +186,7 @@ export default function OnrampBankPage() {
amount: cleanedAmount,
country: selectedCountry,
})
sessionStorage.setItem('onrampData', JSON.stringify(onrampDataResponse))
setOnrampData(onrampDataResponse)

if (onrampDataResponse.transferId) {
setStep('showDetails')
Expand Down
20 changes: 15 additions & 5 deletions src/app/(mobile-ui)/home/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,14 @@ import { UserHeader } from '@/components/UserHeader'
import { useAuth } from '@/context/authContext'
import { useWallet } from '@/hooks/wallet/useWallet'
import { useUserStore, useWalletStore } from '@/redux/hooks'
import { formatExtendedNumber, getUserPreferences, printableUsdc, updateUserPreferences } from '@/utils'
import {
formatExtendedNumber,
getUserPreferences,
printableUsdc,
updateUserPreferences,
getFromLocalStorage,
saveToLocalStorage,
} from '@/utils'
import { useDisconnect } from '@reown/appkit/react'
import Image from 'next/image'
import Link from 'next/link'
Expand All @@ -30,6 +37,7 @@ import { formatUnits } from 'viem'
import { PEANUT_WALLET_TOKEN_DECIMALS } from '@/constants'

const BALANCE_WARNING_THRESHOLD = parseInt(process.env.NEXT_PUBLIC_BALANCE_WARNING_THRESHOLD ?? '500')
const BALANCE_WARNING_EXPIRY = parseInt(process.env.NEXT_PUBLIC_BALANCE_WARNING_EXPIRY ?? '1814400') // 21 days in seconds

export default function Home() {
const { balance, address, isFetchingBalance, isFetchingRewardBalance } = useWallet()
Expand Down Expand Up @@ -106,7 +114,7 @@ export default function Home() {
// effect for showing balance warning modal
useEffect(() => {
if (typeof window !== 'undefined' && !isFetchingBalance) {
const hasSeenBalanceWarningThisSession = sessionStorage.getItem('hasSeenBalanceWarningThisSession')
const hasSeenBalanceWarning = getFromLocalStorage('hasSeenBalanceWarning')
const balanceInUsd = Number(formatUnits(balance, PEANUT_WALLET_TOKEN_DECIMALS))

// show if:
Expand All @@ -115,12 +123,11 @@ export default function Home() {
// 3. no other modals are currently active
if (
balanceInUsd > BALANCE_WARNING_THRESHOLD &&
!hasSeenBalanceWarningThisSession &&
!hasSeenBalanceWarning &&
!showIOSPWAInstallModal &&
!showAddMoneyPromptModal
) {
setShowBalanceWarningModal(true)
sessionStorage.setItem('hasSeenBalanceWarningThisSession', 'true')
}
}
}, [balance, isFetchingBalance, showIOSPWAInstallModal, showAddMoneyPromptModal])
Expand Down Expand Up @@ -212,7 +219,10 @@ export default function Home() {
{/* Balance Warning Modal */}
<BalanceWarningModal
visible={showBalanceWarningModal}
onCloseAction={() => setShowBalanceWarningModal(false)}
onCloseAction={() => {
setShowBalanceWarningModal(false)
saveToLocalStorage('hasSeenBalanceWarning', 'true', BALANCE_WARNING_EXPIRY)
}}
/>
</PageContainer>
)
Expand Down
2 changes: 1 addition & 1 deletion src/app/(mobile-ui)/request/create/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export const metadata = generateMetadata({

export default function RequestCreate() {
return (
<PageContainer className="self-start">
<PageContainer className="h-full min-h-[inherit] w-full md:self-start">
<CreateRequestLinkView />
</PageContainer>
)
Expand Down
2 changes: 1 addition & 1 deletion src/app/(mobile-ui)/send/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export const metadata = generateMetadata({

export default function SendPage() {
return (
<PageContainer className="self-start">
<PageContainer className="h-full min-h-[inherit] w-full md:self-start">
<SendRouterView />
</PageContainer>
)
Expand Down
Loading
Loading