From e6b22ff6283618ae84ae0a3b7ddfbade57c91e63 Mon Sep 17 00:00:00 2001 From: Roman Krasiuk Date: Sat, 7 Nov 2026 18:34:19 +0100 Subject: [PATCH 1/2] feat(routes): add a price or speed priority to the Routes tester --- src/components/RoutesTester.tsx | 21 ++++++++++++++++++++- src/lib/routes-quote-api.test.ts | 1 + src/lib/routes-test.test.ts | 15 +++++++++++++++ src/lib/routes-test.ts | 11 +++++++++++ src/pages/_api/api/routes-quote.ts | 10 ++++++++-- 5 files changed, 55 insertions(+), 3 deletions(-) diff --git a/src/components/RoutesTester.tsx b/src/components/RoutesTester.tsx index 966704e65..ca76d7529 100644 --- a/src/components/RoutesTester.tsx +++ b/src/components/RoutesTester.tsx @@ -59,6 +59,7 @@ import { subsidizedDelivery, type TestMethod, type TestMode, + type TestPriority, type TestRoute, } from '../lib/routes-test' import { @@ -360,6 +361,7 @@ function RouteLifecycle({ onNeedKey: () => void }) { const [mode, setMode] = useState(route.capabilities.transfer?.modes[0] ?? 'exactSource') + const [priority, setPriority] = useState('price') const [amount, setAmount] = useState('') const [sender, setSender] = useState('') const [recipient, setRecipient] = useState('') @@ -461,7 +463,9 @@ function RouteLifecycle({ }) const tempoAccount = tempoWallet && connection.connector?.id === tempoWallet.id ? connection.address : undefined - const subsidyAvailable = canSubsidize(route, method, mode) + // The API refuses 1:1 delivery for speed-priority transfers, so choosing speed drops it. + const speed = method === 'transfer' && priority === 'speed' + const subsidyAvailable = !speed && canSubsidize(route, method, mode) const input = { method, mode, @@ -471,6 +475,7 @@ function RouteLifecycle({ refundAddress, // Without a key, the docs demo key quotes 1:1 delivery as a preview; it cannot create routes. subsidize: subsidyAvailable && !subsidyRefused, + priority: speed ? priority : undefined, } let quoteParams: ReturnType | undefined let quoteValidation = '' @@ -1371,6 +1376,20 @@ function RouteLifecycle({ )} + {isTransfer && ( + + )} )} - {isTransfer && ( - - )} )} {!isTransfer && (