QA report: external/warcgarage.xyz at hosted
Core token swapping and bridging workflows are non-functional due to silent transaction failures.
Testing covered the Swap Hub interface across 12 scenarios evaluating token exchange execution, cross-chain bridge actions, wallet asset balance rendering, and form input validation. Four scenarios passed, five failed, and three were blocked due to underlying execution failures and missing interface elements.
The primary interactive features on the Swap Hub fail silently without executing transactions or presenting user feedback. The swap button does not trigger transactions or validate pay amounts against available balances. Additionally, the bridge tool cannot initiate outbound transfers from Arc Testnet and silently ignores actions initiated on unsupported source networks.
A finding that the Assets tab and balance card fail to render the connected wallet's USDC balance was withdrawn after two re-checks. The Swap Hub's own "Circle Wallet" status card and USDC balance track a separate, Circle-hosted wallet session, not the generic EVM wallet that does connect and shows its address in the top navigation. Nothing in the app offers a way to connect that Circle Wallet session with a generic Wallet Standard or EIP-1193 wallet, so the DeepQA test wallet was never going to be able to populate it. Environment limitation, not an app defect.
Testing could not evaluate slippage tolerance bounds, gas balance reservations, or persistent swap history because slippage controls are absent from the interface and transactions cannot be executed to generate history records.
Run summary
| Metric | Count |
|---|
| Scenarios executed | 12 |
| Passed | 4 |
| Failed | 5 |
| Blocked | 3 |
| Findings raised | 5 |
| Issues after the audit | 4 |
| Withdrawn by the audit | 1 |
| Critical / high / medium / low | 0 / 3 / 1 / 0 |
Target: https://warcgarage.xyz · Testing level: deep_feature · Stack: unknown
Issues
High severity
F1 · Token swap button fails silently without executing swap or providing UI feedback
Severity: high · Type: functional · Verdict: confirmed · Scenario: S2
I navigated to the Swap Hub at /swap-hub, selected ETH as the pay token, entered an amount of 5, and clicked the '⚡ SWAP TO USDC' button. Nothing happened when I clicked the button; no confirmation, receipt, or transaction feedback was displayed, confirming the reported issue. The page reported 2 console errors during the scenario.
Expected: The token swap initiates, showing a transaction confirmation, progress, or success receipt.
Actual: Clicking the '⚡ SWAP TO USDC' button does nothing; no confirmation, receipt, or transaction feedback is displayed.
Steps to reproduce:
- Navigate to https://warcgarage.xyz/swap-hub
- Select an asset (such as ETH or USDT) from the pay token dropdown
- Enter a valid amount (e.g. 5) in the Pay Amount field
- Click the '⚡ SWAP TO USDC' button
Evidence: screenshots/S2-2.png, screenshots/S2-5.png, screenshots/S2-13.png
F2 · Bridge action silently ignores bridging from unsupported source networks
Severity: high · Type: functional · Verdict: confirmed · Scenario: S4
The evidence confirms the application silently ignores the bridge action without prompting a network switch or displaying an error. The live replay was inconclusive: The replay ran out of tool calls before it reached the reported state. The page reported 2 console errors during the scenario.
Expected: The application should attempt network switch or display a clear error message indicating unsupported network/wallet rejection.
Actual: The application ignores the interaction silently without displaying any error, modal, or feedback to the user.
Steps to reproduce:
- Navigate to https://warcgarage.xyz/swap-hub
- Click the BRIDGE tab
- Select a non-Arc source network (e.g., Polygon)
- Enter an amount to bridge (e.g., 10)
- Click 'BRIDGE TO ARC TESTNET'
Evidence: screenshots/S4-2.png, screenshots/S4-4.png, screenshots/S4-9.png, screenshots/S4-11.png
F3 · Outbound bridging from Arc Testnet cannot be selected or initiated on Swap Hub Bridge form
Severity: high · Type: functional · Verdict: confirmed · Scenario: S5
Navigated to the Swap Hub and clicked the BRIDGE tab. The Source Network dropdown only lists Ethereum, Polygon, Arbitrum, Base, and Solana, and does not include Arc Testnet. The Destination Network dropdown is fixed/disabled to Arc Testnet. Therefore, outbound bridging from Arc Testnet cannot be selected or initiated. The page reported 2 console errors during the scenario.
Expected: The user should be able to select Arc Testnet as the source network and another supported chain as the destination to initiate an outbound bridge transaction.
Actual: Source Network only provides external chains (Ethereum, Polygon, Arbitrum, Base, Solana) and Destination Network is fixed/disabled to Arc Testnet, completely preventing outbound bridging from Arc Testnet.
Steps to reproduce:
- Navigate to https://warcgarage.xyz/swap-hub
- Click the BRIDGE tab
- Inspect the Source Network and Destination Network dropdowns
Evidence: screenshots/S5-4.png, screenshots/S5-8.png
Medium severity
F4 · Swap Hub does not validate pay amount against balance or disable swap button on insufficient balance
Severity: medium · Type: functional · Verdict: confirmed · Scenario: S6
The evidence shows the application fails to validate the pay amount against the connected wallet's zero balance, leaving the submit button enabled. The page reported 2 console errors during the scenario.
Expected: The swap submission button should be disabled or an 'Insufficient Balance' message should be prominently displayed.
Actual: The '⚡ SWAP TO USDC' button remains active and clickable with no insufficient balance error or warning displayed.
Steps to reproduce:
- Navigate to https://warcgarage.xyz/swap-hub.
- Enter an amount (e.g., 5000) in the Pay Amount field that exceeds the connected wallet balance.
- Observe the swap submission button and form state.
Evidence: screenshots/S6-2.png
Environment limitations
These failures came from the test environment, not from the application: a credential the sandbox does not hold, a demo nobody may write to, a resource it cannot reach. They are not counted as issues. They record what this run could not exercise.
- Swap Hub Assets tab and balance card fail to render connected wallet USDC balance and token holdings (S8, high): Navigated to /swap-hub and clicked the ASSETS tab. I observed that despite a wallet being connected in the header (0x1815...2c27), the USDC BALANCE card showed '—'. Additionally, the ASSETS tab displayed static contract addresses instead of token holdings. The page reported 2 console errors during the scenario. Hand and targeted-replay re-check, 2026-09-27, twice (once by hand with no wallet, once via a targeted Docker replay with the Arc test wallet, --wallet qa-1): both confirm the generic wallet does connect, its address shows in the top nav chip, but the Swap Hub's own 'Circle Wallet' status card and USDC balance never depend on that generic connection. No 'Circle Wallet' connect trigger exists anywhere in the app's own interactive elements (checked the AppMap), the card appears to be a read-only status tied to Circle's own hosted wallet product, a separate flow our generic EIP-1193 test wallet cannot satisfy. Environment limitation: the app's wallet flow does not offer the DeepQA test wallet a path to the specific Circle Wallet session its balance UI depends on.
Scenario results
| Scenario | Priority | Result | Issues |
|---|
| S1 Load Swap Hub Interface | high | pass | none |
| S2 Execute Valid Token Swap | high | fail | F1 |
| S3 Max Balance USDC Gas Reservation | high | blocked (The Swap Hub page only supports swapping other assets (USDT, ETH, MATIC, ARC) TO USDC, does not provide USDC as a selectable pay token, and does not have a MAX balance shortcut button.) | none |
| S4 Handle Unsupported Source Network Rejection | high | fail | F2 |
| S5 Initiate Outbound Bridge Transaction | high | fail | F3 |
| S6 Prevent Swap Exceeding Balance | medium | fail | F4 |
| S7 Prevent Zero Amount Swap | medium | pass | none |
| S8 Render Assets Tab Balances | medium | fail | none |
| S9 Persist Swap History | medium | blocked (Unable to execute token [redacted] on the Swap Hub because the Circle Wallet integration is disconnected and swapping does not trigger transaction execution.) | none |
| S10 Require Receive Token Selection | low | pass | none |
| S11 Validate Slippage Tolerance Bounds | low | blocked (The Slippage Tolerance field is not present on https://warcgarage.xyz/swap-hub or in any of its tabs.) | none |
| S12 Validate Bridge Form Empty Fields | low | pass | none |
The audit
The Critic reviewed 5 findings and re-verified 5 of them live in the browser, replaying the reported steps on a fresh page.
- In S12, the tester interpreted the silent failure of the bridge button as successful validation of an empty field, contradicting S4 where the exact same silent behavior was correctly identified as a defect.
- The silent failures of the action buttons across multiple scenarios may be directly related to the 'Not connected' Circle Wallet state noted in S9 or the uncaught JavaScript errors present on load.
- A possible defect in S1 ("Console errors occur on Swap Hub page load") was not promoted: the live replay came back not-reproduced.
- Hand correction, 2026-09-27: F5 was re-classified as an environment limitation and withdrawn after two re-checks (a hand check with no wallet, and a targeted Docker replay with --wallet qa-1) both showed the generic wallet connects at the page level while the app's distinct 'Circle Wallet' status stays unconnected with no connect trigger of its own.
What to fix first
- Resolve silent execution failures on the token swap button to trigger transactions and provide visible user feedback (F1).
- Enable outbound transfer routing from Arc Testnet on the Swap Hub Bridge interface (F3).
- Provide clear error messaging and user feedback when attempting to bridge from unsupported networks (F2).
- Validate input amounts against available balances and disable the swap action when funds are insufficient (F4).
Coverage and caveats
In scope: Swap Hub DEX token swaps; Swap Hub cross-chain bridging; Native gas token reservation constraints; Network switch refusal handling; Swap input validation and slippage bounds; Assets and History navigation tabs.
Not covered: NFT Minting (focusing solely on Swap Hub deep dive); 3D Race Arena (focusing solely on Swap Hub deep dive); Predictions Hub (focusing solely on Swap Hub deep dive); Web3 Vehicle Bridge (focusing solely on Swap Hub deep dive); Verify X Identity (focusing solely on Swap Hub deep dive); Holder Profile Search (focusing solely on Swap Hub deep dive).
- A MAX shortcut exists on or near the Pay Amount field as described in the intake.
- Wallet connection occurs automatically when Web3 transactions or network switches are requested.
- Sufficient testnet liquidity exists to process small USDC swaps successfully.
- The deep_feature test isolates the Swap Hub strictly to exhaust its form fields and latent network constraints.
- S3 could not be executed: The Swap Hub page only supports swapping other assets (USDT, ETH, MATIC, ARC) TO USDC, does not provide USDC as a selectable pay token, and does not have a MAX balance shortcut button..
- S9 could not be executed: Unable to execute token [redacted] on the Swap Hub because the Circle Wallet integration is disconnected and swapping does not trigger transaction execution..
- S11 could not be executed: The Slippage Tolerance field is not present on https://warcgarage.xyz/swap-hub or in any of its tabs..
By the numbers
| Metric | Value |
|---|
| Scenarios | 4 passed, 5 failed, 3 blocked of 12 (38 planned steps) |
| Browser actions | 256 (59 clicks, 19 inputs, 50 navigations, 128 snapshots) |
| Screenshots | 39 (4 explore, 30 scenario, 5 critic), 30 captioned |
| Coverage | 7 pages, 7 forms, 7 flows, 2 console errors |
| Audit | 5 findings, 5 re-verified live, 4 confirmed, 0 promoted, 1 withdrawn |
| Model calls | 214 |
| Tokens | 1,465,993 input, 12,323 output, 22,707 thinking |
| Time | 21 min |
| Wallet | 0 transactions, 0 signatures, 0 refusals on chain 5042002 |
| Stage | Calls | Input | Output | Thinking | Seconds |
|---|
| explore | 20 | 148,334 | 2,993 | 972 | 167 |
| plan | 1 | 5,041 | 2,080 | 4,461 | 53 |
| test | 164 | 1,160,625 | 5,604 | 9,630 | 546 |
| critique | 28 | 149,986 | 1,315 | 6,909 | 471 |
| report | 1 | 2,007 | 331 | 735 | 9 |