Assessment reports>Wasabi>Threat Models>acceptAsk

Function: acceptAsk(WasabiStructs.Ask _ask, byte[] _signature)

Lets LPs accept an ask.

Inputs

  • _ask

    • Control: Fully controlled by the caller.

    • Constraints: Token address and price must fit constraints of the

      pool.

    • Impact: Decides how acceptance is handled.

  • _signature

    • Control: Fully controlled by the caller.

    • Constraints: N/A.

    • Impact: Used by the conduit to validate the ask. Functionality is

      out of scope.

Branches and code coverage (including function calls)

Intended branches

  • Asks without an associated ERC20 can be accepted with native token.

  • Asks with an associated ERC20 can be accepted.

Negative behavior

  • Asks without a valid signature cannot be accepted.

  • Reverts when not called by the owner.

  • Asks cannot be accepted if balance is insufficient.

Function call analysis

  • acceptAsk -> WasabiConduit(factory.getConduitAddress()).acceptAsk

  • What is controllable? The factory controls the conduit address. The caller controls the ask and signature.

    • If return value controllable, how is it used and how can it go wrong? The return value is not used.

    • What happens if it reverts, reenters, or does other unusual control flow? The function reverts if the call does not succeed.

  • acceptAsk -> erc20.approve

    • What is controllable? The factory controls the conduit address while the caller controls the price.

    • If return value controllable, how is it used and how can it go wrong? The return value is not used.

    • What happens if it reverts, reenters, or does other unusual control flow? The function reverts if the call does not succeed.

Zellic © 2024Back to top ↑