Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
b405da2
fix: update HLP minimum deposit
i-xtsu-sixyou-ken-mei Sep 2, 2026
f1a9f21
fix: align app HLP minimum with official vault
i-xtsu-sixyou-ken-mei Sep 2, 2026
ef20c87
feat: resume HLP follow-up after reviewed bridge
i-xtsu-sixyou-ken-mei Sep 2, 2026
0adfaad
feat: model HLP as an invest destination
i-xtsu-sixyou-ken-mei Sep 2, 2026
a2d7d4a
feat: route HLP deposits through unified review
i-xtsu-sixyou-ken-mei Sep 2, 2026
7d8c32d
feat: route HLP reviewed batches to HLP progress
i-xtsu-sixyou-ken-mei Sep 2, 2026
650a550
feat: summarize reviewed HLP route
i-xtsu-sixyou-ken-mei Sep 2, 2026
9ebe262
feat: prepare reviewed HLP deposit from route screen
i-xtsu-sixyou-ken-mei Sep 2, 2026
4a10d0b
feat: continue reviewed bridge into HLP vault
i-xtsu-sixyou-ken-mei Sep 2, 2026
086fd60
feat: add HLP progress route
i-xtsu-sixyou-ken-mei Sep 2, 2026
a0cd9a6
test: update HLP minimum contract
i-xtsu-sixyou-ken-mei Sep 2, 2026
adac67e
test: cover unified HLP plan request
i-xtsu-sixyou-ken-mei Sep 2, 2026
b2ced77
test: expect 10 USDC HLP minimum
i-xtsu-sixyou-ken-mei Sep 2, 2026
57fbdf0
fix: clear HLP destination when leaving its tab
i-xtsu-sixyou-ken-mei Sep 2, 2026
bd89414
fix: reset invest destination on scope change
i-xtsu-sixyou-ken-mei Sep 2, 2026
c5ec669
fix: import Hyperliquid balance API from public service barrel
i-xtsu-sixyou-ken-mei Sep 2, 2026
7401334
fix: isolate HLP review from stale execution state
i-xtsu-sixyou-ken-mei Sep 2, 2026
0d59889
fix: never resubmit source batch during HLP recovery
i-xtsu-sixyou-ken-mei Sep 2, 2026
93a8ec9
test: align HLP wizard fixture with 10 USDC minimum
i-xtsu-sixyou-ken-mei Sep 2, 2026
a1f1275
feat: unify HLP deposit flow through reviewed execution
i-xtsu-sixyou-ken-mei Sep 3, 2026
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
7 changes: 7 additions & 0 deletions apps/app/src/app/invest/hlp-progress.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import type { ReactElement } from 'react';

import { HlpProgressScreen } from '@/screens/invest/HlpProgressScreen';

export default function HlpProgressRoute(): ReactElement {
return <HlpProgressScreen />;
}
86 changes: 86 additions & 0 deletions apps/app/src/components/invest/HlpPlanSummary.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
import { hlpStepFromPlan } from '@zapengine/app-core/lib/wallet/depositWizardMachine';
import type {
DepositPlan,
PlanOrchestrationDepositPlan,
} from '@zapengine/types/api';
import { formatUnits } from 'viem';

import { Card } from '@/components/ui/Card';
import { InfoRow } from '@/components/ui/InfoRow';
import type { SingleChainFundingDraft } from '@/integration/useInvest';
import { formatPlanGas } from '@/integration/planPreviewFormatters';
import { isStrategyDepositPlan } from '@/integration/simulationPreviewModel';
import { formatUsd } from '@/lib/format';

function asDepositPlan(
plan: PlanOrchestrationDepositPlan | undefined,
): DepositPlan | undefined {
if (!plan || isStrategyDepositPlan(plan)) return undefined;
return plan;
}

function usd6Label(value: string | undefined): string {
if (!value) return '—';
return `${formatUnits(BigInt(value), 6)} USDC`;
}

function compactAddress(value: string | undefined): string {
if (!value) return '—';
return `${value.slice(0, 8)}…${value.slice(-6)}`;
}

export function HlpPlanSummary({
plan: orchestrationPlan,
amountUsd,
singleChainFundingDraft,
}: {
plan: PlanOrchestrationDepositPlan | undefined;
amountUsd: number;
singleChainFundingDraft: SingleChainFundingDraft | null;
}) {
const plan = asDepositPlan(orchestrationPlan);
const step = plan ? hlpStepFromPlan(plan) : null;
const bridgeLeg = plan?.legs.find(
(leg) => leg.kind === 'bridge' && leg.protocol === 'hyperliquid',
);
const transactionCount =
(plan?.approvals.length ?? 0) + (plan?.calls.length ?? 0);

return (
<Card className="mt-5 p-4">
<InfoRow label="Total" value={formatUsd(amountUsd)} divider />
<InfoRow
label="Funding"
value={`${usd6Label(singleChainFundingDraft?.fromAmount)} · Base`}
divider
/>
<InfoRow label="Route" value="Base → Hyperliquid" divider />
<InfoRow
label="Expected received"
value={usd6Label(bridgeLeg?.toAmountMin ?? step?.expectedUsd)}
divider
/>
<InfoRow
label="HLP minimum"
value={usd6Label(step?.minDepositUsd)}
divider
/>
<InfoRow
label="Official HLP vault"
value={compactAddress(step?.action.vaultAddress)}
divider
/>
<InfoRow
label="Withdrawal lock"
value={step ? `${step.lockupDays} days after deposit` : '—'}
divider
/>
<InfoRow
label="Source transactions"
value={String(transactionCount)}
divider
/>
<InfoRow label="Source gas" value={formatPlanGas(plan?.totalGasUsd)} />
</Card>
);
}
103 changes: 0 additions & 103 deletions apps/app/src/components/invest/HyperliquidDepositCard.tsx

This file was deleted.

Loading
Loading