Expand description

Generated by the following Solidity interface…

interface OneInchAggregationRouterV5 {
    struct Order {
        uint256 salt;
        address makerAsset;
        address takerAsset;
        address maker;
        address receiver;
        address allowedSender;
        uint256 makingAmount;
        uint256 takingAmount;
        uint256 offsets;
        bytes interactions;
    }
    struct OrderRFQ {
        uint256 info;
        address makerAsset;
        address takerAsset;
        address maker;
        address allowedSender;
        uint256 makingAmount;
        uint256 takingAmount;
    }
    struct SwapDescription {
        address srcToken;
        address dstToken;
        address payable srcReceiver;
        address payable dstReceiver;
        uint256 amount;
        uint256 minReturnAmount;
        uint256 flags;
    }

    error AccessDenied();
    error AdvanceNonceFailed();
    error AlreadyFilled();
    error ArbitraryStaticCallFailed();
    error BadPool();
    error BadSignature();
    error ETHTransferFailed();
    error EmptyPools();
    error EthDepositRejected();
    error GetAmountCallFailed();
    error IncorrectDataLength();
    error InsufficientBalance();
    error InvalidMsgValue();
    error InvalidatedOrder();
    error MakingAmountExceeded();
    error MakingAmountTooLow();
    error OnlyOneAmountShouldBeZero();
    error OrderExpired();
    error PermitLengthTooLow();
    error PredicateIsNotTrue();
    error PrivateOrder();
    error RFQBadSignature();
    error RFQPrivateOrder();
    error RFQSwapWithZeroAmount();
    error RFQZeroTargetIsForbidden();
    error ReentrancyDetected();
    error RemainingAmountIsZero();
    error ReservesCallFailed();
    error ReturnAmountIsNotEnough();
    error SafePermitBadLength();
    error SafeTransferFailed();
    error SafeTransferFromFailed();
    error SimulationResults(bool success, bytes res);
    error SwapAmountTooLarge();
    error SwapWithZeroAmount();
    error TakingAmountExceeded();
    error TakingAmountIncreased();
    error TakingAmountTooHigh();
    error TransferFromMakerToTakerFailed();
    error TransferFromTakerToMakerFailed();
    error UnknownOrder();
    error WrongAmount();
    error WrongGetter();
    error ZeroAddress();
    error ZeroMinReturn();
    error ZeroReturnAmount();
    error ZeroTargetIsForbidden();

    event NonceIncreased(address indexed maker, uint256 newNonce);
    event OrderCanceled(address indexed maker, bytes32 orderHash, uint256 remainingRaw);
    event OrderFilled(address indexed maker, bytes32 orderHash, uint256 remaining);
    event OrderFilledRFQ(bytes32 orderHash, uint256 makingAmount);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor(address weth);

    receive() external payable;

    function advanceNonce(uint8 amount) external;
    function and(uint256 offsets, bytes memory data) external view returns (bool);
    function arbitraryStaticCall(address target, bytes memory data) external view returns (uint256);
    function cancelOrder(Order memory order) external returns (uint256 orderRemaining, bytes32 orderHash);
    function cancelOrderRFQ(uint256 orderInfo) external;
    function cancelOrderRFQ(uint256 orderInfo, uint256 additionalMask) external;
    function checkPredicate(Order memory order) external view returns (bool);
    function clipperSwap(address clipperExchange, address srcToken, address dstToken, uint256 inputAmount, uint256 outputAmount, uint256 goodUntil, bytes32 r, bytes32 vs) external payable returns (uint256 returnAmount);
    function clipperSwapTo(address clipperExchange, address payable recipient, address srcToken, address dstToken, uint256 inputAmount, uint256 outputAmount, uint256 goodUntil, bytes32 r, bytes32 vs) external payable returns (uint256 returnAmount);
    function clipperSwapToWithPermit(address clipperExchange, address payable recipient, address srcToken, address dstToken, uint256 inputAmount, uint256 outputAmount, uint256 goodUntil, bytes32 r, bytes32 vs, bytes memory permit) external returns (uint256 returnAmount);
    function destroy() external;
    function eq(uint256 value, bytes memory data) external view returns (bool);
    function fillOrder(Order memory order, bytes memory signature, bytes memory interaction, uint256 makingAmount, uint256 takingAmount, uint256 skipPermitAndThresholdAmount) external payable returns (uint256, uint256, bytes32);
    function fillOrderRFQ(OrderRFQ memory order, bytes memory signature, uint256 flagsAndAmount) external payable returns (uint256, uint256, bytes32);
    function fillOrderRFQCompact(OrderRFQ memory order, bytes32 r, bytes32 vs, uint256 flagsAndAmount) external payable returns (uint256 filledMakingAmount, uint256 filledTakingAmount, bytes32 orderHash);
    function fillOrderRFQTo(OrderRFQ memory order, bytes memory signature, uint256 flagsAndAmount, address target) external payable returns (uint256 filledMakingAmount, uint256 filledTakingAmount, bytes32 orderHash);
    function fillOrderRFQToWithPermit(OrderRFQ memory order, bytes memory signature, uint256 flagsAndAmount, address target, bytes memory permit) external returns (uint256, uint256, bytes32);
    function fillOrderTo(Order memory order_, bytes memory signature, bytes memory interaction, uint256 makingAmount, uint256 takingAmount, uint256 skipPermitAndThresholdAmount, address target) external payable returns (uint256 actualMakingAmount, uint256 actualTakingAmount, bytes32 orderHash);
    function fillOrderToWithPermit(Order memory order, bytes memory signature, bytes memory interaction, uint256 makingAmount, uint256 takingAmount, uint256 skipPermitAndThresholdAmount, address target, bytes memory permit) external returns (uint256, uint256, bytes32);
    function gt(uint256 value, bytes memory data) external view returns (bool);
    function hashOrder(Order memory order) external view returns (bytes32);
    function increaseNonce() external;
    function invalidatorForOrderRFQ(address maker, uint256 slot) external view returns (uint256);
    function lt(uint256 value, bytes memory data) external view returns (bool);
    function nonce(address) external view returns (uint256);
    function nonceEquals(address makerAddress, uint256 makerNonce) external view returns (bool);
    function or(uint256 offsets, bytes memory data) external view returns (bool);
    function owner() external view returns (address);
    function remaining(bytes32 orderHash) external view returns (uint256);
    function remainingRaw(bytes32 orderHash) external view returns (uint256);
    function remainingsRaw(bytes32[] memory orderHashes) external view returns (uint256[] memory);
    function renounceOwnership() external;
    function rescueFunds(address token, uint256 amount) external;
    function simulate(address target, bytes memory data) external;
    function swap(address executor, SwapDescription memory desc, bytes memory permit, bytes memory data) external payable returns (uint256 returnAmount, uint256 spentAmount);
    function timestampBelow(uint256 time) external view returns (bool);
    function timestampBelowAndNonceEquals(uint256 timeNonceAccount) external view returns (bool);
    function transferOwnership(address newOwner) external;
    function uniswapV3Swap(uint256 amount, uint256 minReturn, uint256[] memory pools) external payable returns (uint256 returnAmount);
    function uniswapV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes memory) external;
    function uniswapV3SwapTo(address payable recipient, uint256 amount, uint256 minReturn, uint256[] memory pools) external payable returns (uint256 returnAmount);
    function uniswapV3SwapToWithPermit(address payable recipient, address srcToken, uint256 amount, uint256 minReturn, uint256[] memory pools, bytes memory permit) external returns (uint256 returnAmount);
    function unoswap(address srcToken, uint256 amount, uint256 minReturn, uint256[] memory pools) external payable returns (uint256 returnAmount);
    function unoswapTo(address payable recipient, address srcToken, uint256 amount, uint256 minReturn, uint256[] memory pools) external payable returns (uint256 returnAmount);
    function unoswapToWithPermit(address payable recipient, address srcToken, uint256 amount, uint256 minReturn, uint256[] memory pools, bytes memory permit) external returns (uint256 returnAmount);
}

…which was generated by the following JSON ABI:

[
  {
    "type": "constructor",
    "inputs": [
      {
        "name": "weth",
        "type": "address",
        "internalType": "contract IWETH"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "receive",
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "advanceNonce",
    "inputs": [
      {
        "name": "amount",
        "type": "uint8",
        "internalType": "uint8"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "and",
    "inputs": [
      {
        "name": "offsets",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "data",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "arbitraryStaticCall",
    "inputs": [
      {
        "name": "target",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "data",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "cancelOrder",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct OrderLib.Order",
        "components": [
          {
            "name": "salt",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "makerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "takerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedSender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "makingAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "takingAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "offsets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "interactions",
            "type": "bytes",
            "internalType": "bytes"
          }
        ]
      }
    ],
    "outputs": [
      {
        "name": "orderRemaining",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "orderHash",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "cancelOrderRFQ",
    "inputs": [
      {
        "name": "orderInfo",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "cancelOrderRFQ",
    "inputs": [
      {
        "name": "orderInfo",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "additionalMask",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "checkPredicate",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct OrderLib.Order",
        "components": [
          {
            "name": "salt",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "makerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "takerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedSender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "makingAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "takingAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "offsets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "interactions",
            "type": "bytes",
            "internalType": "bytes"
          }
        ]
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "clipperSwap",
    "inputs": [
      {
        "name": "clipperExchange",
        "type": "address",
        "internalType": "contract IClipperExchangeInterface"
      },
      {
        "name": "srcToken",
        "type": "address",
        "internalType": "contract IERC20"
      },
      {
        "name": "dstToken",
        "type": "address",
        "internalType": "contract IERC20"
      },
      {
        "name": "inputAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "outputAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "goodUntil",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "r",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "vs",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "returnAmount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "clipperSwapTo",
    "inputs": [
      {
        "name": "clipperExchange",
        "type": "address",
        "internalType": "contract IClipperExchangeInterface"
      },
      {
        "name": "recipient",
        "type": "address",
        "internalType": "address payable"
      },
      {
        "name": "srcToken",
        "type": "address",
        "internalType": "contract IERC20"
      },
      {
        "name": "dstToken",
        "type": "address",
        "internalType": "contract IERC20"
      },
      {
        "name": "inputAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "outputAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "goodUntil",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "r",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "vs",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "returnAmount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "clipperSwapToWithPermit",
    "inputs": [
      {
        "name": "clipperExchange",
        "type": "address",
        "internalType": "contract IClipperExchangeInterface"
      },
      {
        "name": "recipient",
        "type": "address",
        "internalType": "address payable"
      },
      {
        "name": "srcToken",
        "type": "address",
        "internalType": "contract IERC20"
      },
      {
        "name": "dstToken",
        "type": "address",
        "internalType": "contract IERC20"
      },
      {
        "name": "inputAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "outputAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "goodUntil",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "r",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "vs",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "permit",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "returnAmount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "destroy",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "eq",
    "inputs": [
      {
        "name": "value",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "data",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "fillOrder",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct OrderLib.Order",
        "components": [
          {
            "name": "salt",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "makerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "takerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedSender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "makingAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "takingAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "offsets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "interactions",
            "type": "bytes",
            "internalType": "bytes"
          }
        ]
      },
      {
        "name": "signature",
        "type": "bytes",
        "internalType": "bytes"
      },
      {
        "name": "interaction",
        "type": "bytes",
        "internalType": "bytes"
      },
      {
        "name": "makingAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "takingAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "skipPermitAndThresholdAmount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "fillOrderRFQ",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct OrderRFQLib.OrderRFQ",
        "components": [
          {
            "name": "info",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "makerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "takerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedSender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "makingAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "takingAmount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "name": "signature",
        "type": "bytes",
        "internalType": "bytes"
      },
      {
        "name": "flagsAndAmount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "fillOrderRFQCompact",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct OrderRFQLib.OrderRFQ",
        "components": [
          {
            "name": "info",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "makerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "takerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedSender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "makingAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "takingAmount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "name": "r",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "vs",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "flagsAndAmount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "filledMakingAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "filledTakingAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "orderHash",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "fillOrderRFQTo",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct OrderRFQLib.OrderRFQ",
        "components": [
          {
            "name": "info",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "makerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "takerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedSender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "makingAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "takingAmount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "name": "signature",
        "type": "bytes",
        "internalType": "bytes"
      },
      {
        "name": "flagsAndAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "target",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "filledMakingAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "filledTakingAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "orderHash",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "fillOrderRFQToWithPermit",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct OrderRFQLib.OrderRFQ",
        "components": [
          {
            "name": "info",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "makerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "takerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedSender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "makingAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "takingAmount",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "name": "signature",
        "type": "bytes",
        "internalType": "bytes"
      },
      {
        "name": "flagsAndAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "target",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "permit",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "fillOrderTo",
    "inputs": [
      {
        "name": "order_",
        "type": "tuple",
        "internalType": "struct OrderLib.Order",
        "components": [
          {
            "name": "salt",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "makerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "takerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedSender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "makingAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "takingAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "offsets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "interactions",
            "type": "bytes",
            "internalType": "bytes"
          }
        ]
      },
      {
        "name": "signature",
        "type": "bytes",
        "internalType": "bytes"
      },
      {
        "name": "interaction",
        "type": "bytes",
        "internalType": "bytes"
      },
      {
        "name": "makingAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "takingAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "skipPermitAndThresholdAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "target",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "actualMakingAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "actualTakingAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "orderHash",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "fillOrderToWithPermit",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct OrderLib.Order",
        "components": [
          {
            "name": "salt",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "makerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "takerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedSender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "makingAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "takingAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "offsets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "interactions",
            "type": "bytes",
            "internalType": "bytes"
          }
        ]
      },
      {
        "name": "signature",
        "type": "bytes",
        "internalType": "bytes"
      },
      {
        "name": "interaction",
        "type": "bytes",
        "internalType": "bytes"
      },
      {
        "name": "makingAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "takingAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "skipPermitAndThresholdAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "target",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "permit",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "gt",
    "inputs": [
      {
        "name": "value",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "data",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "hashOrder",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct OrderLib.Order",
        "components": [
          {
            "name": "salt",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "makerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "takerAsset",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "receiver",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedSender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "makingAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "takingAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "offsets",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "interactions",
            "type": "bytes",
            "internalType": "bytes"
          }
        ]
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "increaseNonce",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "invalidatorForOrderRFQ",
    "inputs": [
      {
        "name": "maker",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "slot",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "lt",
    "inputs": [
      {
        "name": "value",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "data",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "nonce",
    "inputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "nonceEquals",
    "inputs": [
      {
        "name": "makerAddress",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "makerNonce",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "or",
    "inputs": [
      {
        "name": "offsets",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "data",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "owner",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "remaining",
    "inputs": [
      {
        "name": "orderHash",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "remainingRaw",
    "inputs": [
      {
        "name": "orderHash",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "remainingsRaw",
    "inputs": [
      {
        "name": "orderHashes",
        "type": "bytes32[]",
        "internalType": "bytes32[]"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256[]",
        "internalType": "uint256[]"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "renounceOwnership",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "rescueFunds",
    "inputs": [
      {
        "name": "token",
        "type": "address",
        "internalType": "contract IERC20"
      },
      {
        "name": "amount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "simulate",
    "inputs": [
      {
        "name": "target",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "data",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "swap",
    "inputs": [
      {
        "name": "executor",
        "type": "address",
        "internalType": "contract IAggregationExecutor"
      },
      {
        "name": "desc",
        "type": "tuple",
        "internalType": "struct GenericRouter.SwapDescription",
        "components": [
          {
            "name": "srcToken",
            "type": "address",
            "internalType": "contract IERC20"
          },
          {
            "name": "dstToken",
            "type": "address",
            "internalType": "contract IERC20"
          },
          {
            "name": "srcReceiver",
            "type": "address",
            "internalType": "address payable"
          },
          {
            "name": "dstReceiver",
            "type": "address",
            "internalType": "address payable"
          },
          {
            "name": "amount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "minReturnAmount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "flags",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "name": "permit",
        "type": "bytes",
        "internalType": "bytes"
      },
      {
        "name": "data",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "returnAmount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "spentAmount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "timestampBelow",
    "inputs": [
      {
        "name": "time",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "timestampBelowAndNonceEquals",
    "inputs": [
      {
        "name": "timeNonceAccount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "transferOwnership",
    "inputs": [
      {
        "name": "newOwner",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "uniswapV3Swap",
    "inputs": [
      {
        "name": "amount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "minReturn",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "pools",
        "type": "uint256[]",
        "internalType": "uint256[]"
      }
    ],
    "outputs": [
      {
        "name": "returnAmount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "uniswapV3SwapCallback",
    "inputs": [
      {
        "name": "amount0Delta",
        "type": "int256",
        "internalType": "int256"
      },
      {
        "name": "amount1Delta",
        "type": "int256",
        "internalType": "int256"
      },
      {
        "name": "",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "uniswapV3SwapTo",
    "inputs": [
      {
        "name": "recipient",
        "type": "address",
        "internalType": "address payable"
      },
      {
        "name": "amount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "minReturn",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "pools",
        "type": "uint256[]",
        "internalType": "uint256[]"
      }
    ],
    "outputs": [
      {
        "name": "returnAmount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "uniswapV3SwapToWithPermit",
    "inputs": [
      {
        "name": "recipient",
        "type": "address",
        "internalType": "address payable"
      },
      {
        "name": "srcToken",
        "type": "address",
        "internalType": "contract IERC20"
      },
      {
        "name": "amount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "minReturn",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "pools",
        "type": "uint256[]",
        "internalType": "uint256[]"
      },
      {
        "name": "permit",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "returnAmount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "unoswap",
    "inputs": [
      {
        "name": "srcToken",
        "type": "address",
        "internalType": "contract IERC20"
      },
      {
        "name": "amount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "minReturn",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "pools",
        "type": "uint256[]",
        "internalType": "uint256[]"
      }
    ],
    "outputs": [
      {
        "name": "returnAmount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "unoswapTo",
    "inputs": [
      {
        "name": "recipient",
        "type": "address",
        "internalType": "address payable"
      },
      {
        "name": "srcToken",
        "type": "address",
        "internalType": "contract IERC20"
      },
      {
        "name": "amount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "minReturn",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "pools",
        "type": "uint256[]",
        "internalType": "uint256[]"
      }
    ],
    "outputs": [
      {
        "name": "returnAmount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "unoswapToWithPermit",
    "inputs": [
      {
        "name": "recipient",
        "type": "address",
        "internalType": "address payable"
      },
      {
        "name": "srcToken",
        "type": "address",
        "internalType": "contract IERC20"
      },
      {
        "name": "amount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "minReturn",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "pools",
        "type": "uint256[]",
        "internalType": "uint256[]"
      },
      {
        "name": "permit",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "returnAmount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "event",
    "name": "NonceIncreased",
    "inputs": [
      {
        "name": "maker",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "newNonce",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "OrderCanceled",
    "inputs": [
      {
        "name": "maker",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "orderHash",
        "type": "bytes32",
        "indexed": false,
        "internalType": "bytes32"
      },
      {
        "name": "remainingRaw",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "OrderFilled",
    "inputs": [
      {
        "name": "maker",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "orderHash",
        "type": "bytes32",
        "indexed": false,
        "internalType": "bytes32"
      },
      {
        "name": "remaining",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "OrderFilledRFQ",
    "inputs": [
      {
        "name": "orderHash",
        "type": "bytes32",
        "indexed": false,
        "internalType": "bytes32"
      },
      {
        "name": "makingAmount",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "OwnershipTransferred",
    "inputs": [
      {
        "name": "previousOwner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "newOwner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "error",
    "name": "AccessDenied",
    "inputs": []
  },
  {
    "type": "error",
    "name": "AdvanceNonceFailed",
    "inputs": []
  },
  {
    "type": "error",
    "name": "AlreadyFilled",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ArbitraryStaticCallFailed",
    "inputs": []
  },
  {
    "type": "error",
    "name": "BadPool",
    "inputs": []
  },
  {
    "type": "error",
    "name": "BadSignature",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ETHTransferFailed",
    "inputs": []
  },
  {
    "type": "error",
    "name": "EmptyPools",
    "inputs": []
  },
  {
    "type": "error",
    "name": "EthDepositRejected",
    "inputs": []
  },
  {
    "type": "error",
    "name": "GetAmountCallFailed",
    "inputs": []
  },
  {
    "type": "error",
    "name": "IncorrectDataLength",
    "inputs": []
  },
  {
    "type": "error",
    "name": "InsufficientBalance",
    "inputs": []
  },
  {
    "type": "error",
    "name": "InvalidMsgValue",
    "inputs": []
  },
  {
    "type": "error",
    "name": "InvalidatedOrder",
    "inputs": []
  },
  {
    "type": "error",
    "name": "MakingAmountExceeded",
    "inputs": []
  },
  {
    "type": "error",
    "name": "MakingAmountTooLow",
    "inputs": []
  },
  {
    "type": "error",
    "name": "OnlyOneAmountShouldBeZero",
    "inputs": []
  },
  {
    "type": "error",
    "name": "OrderExpired",
    "inputs": []
  },
  {
    "type": "error",
    "name": "PermitLengthTooLow",
    "inputs": []
  },
  {
    "type": "error",
    "name": "PredicateIsNotTrue",
    "inputs": []
  },
  {
    "type": "error",
    "name": "PrivateOrder",
    "inputs": []
  },
  {
    "type": "error",
    "name": "RFQBadSignature",
    "inputs": []
  },
  {
    "type": "error",
    "name": "RFQPrivateOrder",
    "inputs": []
  },
  {
    "type": "error",
    "name": "RFQSwapWithZeroAmount",
    "inputs": []
  },
  {
    "type": "error",
    "name": "RFQZeroTargetIsForbidden",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ReentrancyDetected",
    "inputs": []
  },
  {
    "type": "error",
    "name": "RemainingAmountIsZero",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ReservesCallFailed",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ReturnAmountIsNotEnough",
    "inputs": []
  },
  {
    "type": "error",
    "name": "SafePermitBadLength",
    "inputs": []
  },
  {
    "type": "error",
    "name": "SafeTransferFailed",
    "inputs": []
  },
  {
    "type": "error",
    "name": "SafeTransferFromFailed",
    "inputs": []
  },
  {
    "type": "error",
    "name": "SimulationResults",
    "inputs": [
      {
        "name": "success",
        "type": "bool",
        "internalType": "bool"
      },
      {
        "name": "res",
        "type": "bytes",
        "internalType": "bytes"
      }
    ]
  },
  {
    "type": "error",
    "name": "SwapAmountTooLarge",
    "inputs": []
  },
  {
    "type": "error",
    "name": "SwapWithZeroAmount",
    "inputs": []
  },
  {
    "type": "error",
    "name": "TakingAmountExceeded",
    "inputs": []
  },
  {
    "type": "error",
    "name": "TakingAmountIncreased",
    "inputs": []
  },
  {
    "type": "error",
    "name": "TakingAmountTooHigh",
    "inputs": []
  },
  {
    "type": "error",
    "name": "TransferFromMakerToTakerFailed",
    "inputs": []
  },
  {
    "type": "error",
    "name": "TransferFromTakerToMakerFailed",
    "inputs": []
  },
  {
    "type": "error",
    "name": "UnknownOrder",
    "inputs": []
  },
  {
    "type": "error",
    "name": "WrongAmount",
    "inputs": []
  },
  {
    "type": "error",
    "name": "WrongGetter",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ZeroAddress",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ZeroMinReturn",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ZeroReturnAmount",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ZeroTargetIsForbidden",
    "inputs": []
  }
]

Structs§

Enums§