open-index/open-npm huggingface dataset:
npm package: @pioneer-platform/e2e-swap-suite
Description: 1. **SDK Init & Portfolio Fetch** - 1.3s response, $331.01 total 2. **Auto-Balance Intelligence** - Correctly identifies highest balance → best target 3. **FAIL FAST Behavior** - NO fallbacks, exposes real errors
Latest version: 1.14.52

# E2E Swap Test Suite

## ✅ PROVEN WORKING

1. **SDK Init & Portfolio Fetch** - 1.3s response, $331.01 total
2. **Auto-Balance Intelligence** - Correctly identifies highest balance → best target
3. **FAIL FAST Behavior** - NO fallbacks, exposes real errors

## ❌ PRIORITY BUG: Router Not Finding Quotes for BTC → ETH.USDC

### Evidence

**Thorchain Integration HAS Both Assets**:
- Line 57: `'bip122:000000000019d6689c085ae165831e93/slip44:0'` (BTC) ✅
- Line 79: `'eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'` (ETH.USDC) ✅

**Router Check Failing**: `modules/pioneer/pioneer-router/src/index.ts:339-341`

```typescript
let supportedAssets = AssetsByIntegration[integration];
let supportsBothAssets = supportedAssets.includes(quote.sellAsset) && 
                         supportedAssets.includes(quote.buyAsset);
```

### Debugging Added

Added console.log to router init (line 122-126) to show:
- Total Thorchain assets count
- Whether BTC is in array
- Whether ETH.USDC is in array

### Next Steps

1. Rebuild router: `cd modules/pioneer/pioneer-router && bun run build`
2. Restart server: `make stop && make start`
3. Make quote request (triggers router init)
4. Check console output for Thorchain asset debug info
5. Verify AssetsByIntegration is populated correctly

## Test Commands

```bash
# Auto-balance (finds best swap automatically)
bun run swap-auto

# Manual swap
bun run swap <sellAsset> <buyAsset> <amount>

# Headless test suite
bun run dev
```

## Current Portfolio

```
BTC: $196.24 (highest)
ETH: $101.32
LTC: $8.77
BCH: $7.90
```

**Priority Swap**: BTC → ETH.USDC (highest balance → primary stablecoin)

---

**Status**: Router bug - AssetsByIntegration check failing despite both assets present
**Action Required**: Debug why includes() not finding assets