Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1,042 changes: 952 additions & 90 deletions bun.lock

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,5 +43,10 @@
"@types/node": "^20.0.0",
"@intuition-fee-proxy/sdk": "workspace:*",
"viem": "^2.21.0"
},
"dependencies": {
"@ledgerhq/hw-app-eth": "^7.8.0",
"@ledgerhq/hw-transport-node-hid": "^6.33.1",
"@trezor/connect": "^9.7.3"
}
}
21 changes: 13 additions & 8 deletions packages/webapp/src/components/ClaimLimitsPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -122,14 +122,19 @@ export function ClaimLimitsPanel({ proxy, current, onDone }: Props) {
return (
<section className="card space-y-6">
{/* ── Header + intro ─────────────────────────────── */}
<div>
<h3 className="font-semibold">Claim limits</h3>
<p className="text-sm text-subtle mt-1.5 leading-relaxed">
Your sponsor pool is a shared reserve of TRUST you fund. When users
interact with this proxy, the pool pays for their transactions
instead of their wallet. These four caps control how much any single
user can consume — so one person can&apos;t drain your whole pool.
</p>
<div className="flex items-baseline gap-3 flex-wrap">
<span className="text-[10px] font-mono uppercase tracking-widest text-muted">
Admin only
</span>
<div>
<h2 className="font-semibold">Claim limits</h2>
<p className="text-sm text-subtle mt-1.5 leading-relaxed">
Your sponsor pool is a shared reserve of TRUST you fund. When users
interact with this proxy, the pool pays for their transactions
instead of their wallet. These four caps control how much any single
user can consume — so one person can&apos;t drain your whole pool.
</p>
</div>
</div>

{/* ── Per-tx block ───────────────────────────────── */}
Expand Down
15 changes: 10 additions & 5 deletions packages/webapp/src/components/FundPoolPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,16 @@ export function FundPoolPanel({ proxy, onDone }: Props) {

return (
<section className="card flex flex-col gap-4 h-full">
<div>
<h3 className="font-semibold">Fund the pool</h3>
<p className="text-xs text-subtle">
Permissionless — anyone can top up the shared pool.
</p>
<div className="flex items-baseline gap-3 flex-wrap">
<span className="text-[10px] font-mono uppercase tracking-widest text-muted">
Public
</span>
<div>
<h2 className="font-semibold">Fund the pool</h2>
<p className="text-xs text-subtle">
Permissionless — anyone can top up the shared pool.
</p>
</div>
</div>

<label className="block space-y-1">
Expand Down
17 changes: 12 additions & 5 deletions packages/webapp/src/components/HistoryTab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,18 @@ export function HistoryTab({ proxy, isAdmin, channel }: Props) {
return (
<section className="space-y-4">
<div className="card space-y-2">
<h3 className="font-semibold">History</h3>
<p className="text-sm text-subtle leading-relaxed">
Chronological log of every public event on this proxy — pool
contributions, refunds, and fee withdrawals.
</p>
<div className="flex items-baseline gap-3 flex-wrap">
<span className="text-[10px] font-mono uppercase tracking-widest text-muted">
Activity
</span>
<div>
<h2 className="font-semibold">History</h2>
<p className="text-sm text-subtle leading-relaxed">
Chronological log of every public event on this proxy — pool
contributions, refunds, and fee withdrawals.
</p>
</div>
</div>
{isSponsored && (
<div className="text-xs text-muted">
Current pool balance:{' '}
Expand Down
15 changes: 10 additions & 5 deletions packages/webapp/src/components/ReclaimFromPoolPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,16 @@ export function ReclaimFromPoolPanel({ proxy, onDone }: Props) {

return (
<section className="card flex flex-col gap-4 h-full">
<div>
<h3 className="font-semibold">Reclaim from pool</h3>
<p className="text-xs text-subtle">
Withdraw unspent TRUST you previously funded.
</p>
<div className="flex items-baseline gap-3 flex-wrap">
<span className="text-[10px] font-mono uppercase tracking-widest text-muted">
Admin only
</span>
<div>
<h2 className="font-semibold">Reclaim from pool</h2>
<p className="text-xs text-subtle">
Withdraw unspent TRUST you previously funded.
</p>
</div>
</div>

<label className="block space-y-1">
Expand Down
17 changes: 11 additions & 6 deletions packages/webapp/src/components/SetFeesPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -76,12 +76,17 @@ export function SetFeesPanel({ proxy, currentFixed, currentPct, onDone }: Props)

return (
<section className="card space-y-4">
<div>
<h2 className="font-semibold">Update fees</h2>
<p className="text-xs text-subtle">
Admin-only. Direct write takes effect immediately. Safe propose
opens a multisig transaction for owners to co-sign in Den.
</p>
<div className="flex items-baseline gap-3 flex-wrap">
<span className="text-[10px] font-mono uppercase tracking-widest text-muted">
Admin only
</span>
<div>
<h2 className="font-semibold">Update fees</h2>
<p className="text-xs text-subtle">
Direct write takes effect immediately. Safe propose opens a
multisig transaction for owners to co-sign in Den.
</p>
</div>
</div>

<div className="grid gap-4 sm:grid-cols-2">
Expand Down
65 changes: 32 additions & 33 deletions packages/webapp/src/components/VersionsPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -254,40 +254,39 @@ export function VersionsPanel({

return (
<section className="card space-y-4">
<div>
<h2 className="font-semibold">
Versions (
<a
href="https://eips.ethereum.org/EIPS/eip-7936"
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-0.5 text-brand underline decoration-brand/60 decoration-from-font hover:decoration-brand"
<div className="flex items-baseline gap-3 flex-wrap">
<a
href="https://eips.ethereum.org/EIPS/eip-7936"
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-0.5 text-[10px] font-mono uppercase tracking-widest text-muted hover:text-brand transition-colors"
>
ERC-7936
<svg
width="10"
height="10"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2.5"
aria-hidden="true"
className="-translate-y-px"
>
ERC-7936
<svg
width="10"
height="10"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2.5"
aria-hidden="true"
className="-translate-y-px"
>
<path
d="M7 17L17 7M17 7H9M17 7v8"
strokeLinecap="round"
strokeLinejoin="round"
/>
</svg>
</a>
)
</h2>
<p className="text-xs text-subtle leading-relaxed">
Every implementation this proxy has registered + the canonical
directory published by the team. Pin any past version with{' '}
<code className="font-mono">executeAtVersion(v, data)</code>.
</p>
<path
d="M7 17L17 7M17 7H9M17 7v8"
strokeLinecap="round"
strokeLinejoin="round"
/>
</svg>
</a>
<div>
<h2 className="font-semibold">Versions</h2>
<p className="text-xs text-subtle leading-relaxed">
Every implementation this proxy has registered + the canonical
directory published by the team. Pin any past version with{' '}
<code className="font-mono">executeAtVersion(v, data)</code>.
</p>
</div>
</div>

<div className="rounded-md border border-amber-500/30 bg-amber-500/5 px-3 py-2 text-xs text-subtle leading-relaxed">
Expand Down
19 changes: 12 additions & 7 deletions packages/webapp/src/components/WithdrawPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,18 @@ export function WithdrawPanel({ proxy, accumulated, onDone }: Props) {

return (
<section className="card space-y-4">
<div>
<h2 className="font-semibold">Withdraw fees</h2>
<p className="text-xs text-subtle">
Pull accumulated fees to any address. Admin-only. Direct write
takes effect immediately. Safe propose opens a multisig
transaction for owners to co-sign in Den.
</p>
<div className="flex items-baseline gap-3 flex-wrap">
<span className="text-[10px] font-mono uppercase tracking-widest text-muted">
Admin only
</span>
<div>
<h2 className="font-semibold">Withdraw fees</h2>
<p className="text-xs text-subtle">
Pull accumulated fees to any address. Direct write takes effect
immediately. Safe propose opens a multisig transaction for
owners to co-sign in Den.
</p>
</div>
</div>

<label className="block space-y-1">
Expand Down
Loading