ci / gate (push) Canceled after 5m23s
The intents panel can now swap any token the account holds into QTC, wNEAR or USDC (#76). Rust prices it both ways and takes the larger output. - Pool: best_pool lists Ref's DCL pools for the pair and skips any that are not running or whitelist other accounts (they refuse with E407). It quotes each on chain. - pool_swap_calls is one delegate action: first the fee's mt_transfer, ceil(amount × bps) in the input token to the sponsor's recipient; then the ft_withdraw to the pool, with Ref's Swap message, a floor (default 1% slippage), and the account as client_echo. - The fee is computed exactly as the sponsor's rule (observer#51) checks it, so the relay accepts it. - 1Click: a quote inside Intents (recipient and refund are the account) carrying the fee as appFees. When it wins, a firm quote is taken, its echoed recipient, refund, assets and amount checked against what was asked, and it is funded by one relayed mt_transfer. - near_swap prices again at confirm time, checks the balance and the sponsor's terms, signs with the owning wallet's key, and relays it. Measured while building this: without a partner key, 1Click adds its own 20 bps and passes on half of an app fee (30 asked, 15 recorded). The Distribution Channel key is what makes the 1Click leg pay the full fee. Checked live with quotes from the dev account: - 1 QTC → 24.75 wNEAR on the QTC/wNEAR pool, with a 0.003 QTC fee; no 1Click quote; - 10 wNEAR → 46.83 USDC on a pool, against 46.78 on 1Click; - 10 wNEAR → 0.393 QTC. Executing one needs a funded account, which the release test (#78's route on a real wallet) will do. Refs #76, #82 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUx7SPonBnB3ofU4mH41WT