Stratax::_executeOpenOperation passes the wrong token to _call1InchSwap, breaking the balanceOf fallback pathStratax::_call1InchSwap accepts an _asset parameter described in the NatSpec as "the asset being swapped to" — i.e., the output token of the swap. This parameter is used in the balanceOf fallback when 1inch returns no data:
In Stratax::_executeOpenOperation, flashParams.borrowToken is passed instead of _asset:
The swap in the open flow converts borrow tokens (e.g., WETH) back to the collateral/flash loan token (e.g., USDC). The output is USDC (_asset), but flashParams.borrowToken (WETH) is passed as _asset to _call1InchSwap.
Likelihood:
The fallback path triggers when 1inch returns empty result data, which depends on the specific swap function called by the encoded calldata.
Impact:
When the fallback triggers during position creation, the transaction always reverts — the WETH balance post-swap is ~0 and cannot satisfy a USDC-denominated _minReturnAmount. This is a DoS on position creation for any 1inch swap route that returns empty data.
The unwind flow is unaffected since it correctly passes _asset.
Pass _asset (the flash loan / collateral token) instead of flashParams.borrowToken:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.