Module brontes_classifier::ZeroXOtcOrdersFeature

source ·
Expand description

Generated by the following Solidity interface…

interface ZeroXOtcOrdersFeature {
    type OrderStatus is uint8;
    type SignatureType is uint8;
    struct OtcOrder {
        address makerToken;
        address takerToken;
        uint128 makerAmount;
        uint128 takerAmount;
        address maker;
        address taker;
        address txOrigin;
        uint256 expiryAndNonce;
    }
    struct OtcOrderInfo {
        bytes32 orderHash;
        OrderStatus status;
    }
    struct Signature {
        SignatureType signatureType;
        uint8 v;
        bytes32 r;
        bytes32 s;
    }

    event OtcOrderFilled(bytes32 orderHash, address maker, address taker, address makerToken, address takerToken, uint128 makerTokenFilledAmount, uint128 takerTokenFilledAmount);

    constructor(address zeroExAddress, address weth);

    function EIP712_DOMAIN_SEPARATOR() external view returns (bytes32);
    function FEATURE_NAME() external view returns (string memory);
    function FEATURE_VERSION() external view returns (uint256);
    function _fillOtcOrder(OtcOrder memory order, Signature memory makerSignature, uint128 takerTokenFillAmount, address taker, bool useSelfBalance, address recipient) external returns (uint128 takerTokenFilledAmount, uint128 makerTokenFilledAmount);
    function batchFillTakerSignedOtcOrders((address, address, uint128, uint128, address, address, address, uint256)[] memory orders, (SignatureType, uint8, bytes32, bytes32)[] memory makerSignatures, (SignatureType, uint8, bytes32, bytes32)[] memory takerSignatures, bool[] memory unwrapWeth) external returns (bool[] memory successes);
    function fillOtcOrder(OtcOrder memory order, Signature memory makerSignature, uint128 takerTokenFillAmount) external returns (uint128 takerTokenFilledAmount, uint128 makerTokenFilledAmount);
    function fillOtcOrderForEth(OtcOrder memory order, Signature memory makerSignature, uint128 takerTokenFillAmount) external returns (uint128 takerTokenFilledAmount, uint128 makerTokenFilledAmount);
    function fillOtcOrderWithEth(OtcOrder memory order, Signature memory makerSignature) external payable returns (uint128 takerTokenFilledAmount, uint128 makerTokenFilledAmount);
    function fillTakerSignedOtcOrder(OtcOrder memory order, Signature memory makerSignature, Signature memory takerSignature) external;
    function fillTakerSignedOtcOrderForEth(OtcOrder memory order, Signature memory makerSignature, Signature memory takerSignature) external;
    function getOtcOrderHash(OtcOrder memory order) external view returns (bytes32 orderHash);
    function getOtcOrderInfo(OtcOrder memory order) external view returns (OtcOrderInfo memory orderInfo);
    function lastOtcTxOriginNonce(address txOrigin, uint64 nonceBucket) external view returns (uint128 lastNonce);
    function migrate() external returns (bytes4 success);
}

…which was generated by the following JSON ABI:

[
  {
    "type": "constructor",
    "inputs": [
      {
        "name": "zeroExAddress",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "weth",
        "type": "address",
        "internalType": "contract IEtherToken"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "EIP712_DOMAIN_SEPARATOR",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "FEATURE_NAME",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "string",
        "internalType": "string"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "FEATURE_VERSION",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "_fillOtcOrder",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct LibNativeOrder.OtcOrder",
        "components": [
          {
            "name": "makerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "takerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "makerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "takerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "taker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "txOrigin",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "expiryAndNonce",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "name": "makerSignature",
        "type": "tuple",
        "internalType": "struct LibSignature.Signature",
        "components": [
          {
            "name": "signatureType",
            "type": "uint8",
            "internalType": "enum LibSignature.SignatureType"
          },
          {
            "name": "v",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ]
      },
      {
        "name": "takerTokenFillAmount",
        "type": "uint128",
        "internalType": "uint128"
      },
      {
        "name": "taker",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "useSelfBalance",
        "type": "bool",
        "internalType": "bool"
      },
      {
        "name": "recipient",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "takerTokenFilledAmount",
        "type": "uint128",
        "internalType": "uint128"
      },
      {
        "name": "makerTokenFilledAmount",
        "type": "uint128",
        "internalType": "uint128"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "batchFillTakerSignedOtcOrders",
    "inputs": [
      {
        "name": "orders",
        "type": "tuple[]",
        "internalType": "tuple[]",
        "components": [
          {
            "name": "makerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "takerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "makerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "takerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "taker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "txOrigin",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "expiryAndNonce",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "name": "makerSignatures",
        "type": "tuple[]",
        "internalType": "tuple[]",
        "components": [
          {
            "name": "signatureType",
            "type": "uint8",
            "internalType": "enum LibSignature.SignatureType"
          },
          {
            "name": "v",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ]
      },
      {
        "name": "takerSignatures",
        "type": "tuple[]",
        "internalType": "tuple[]",
        "components": [
          {
            "name": "signatureType",
            "type": "uint8",
            "internalType": "enum LibSignature.SignatureType"
          },
          {
            "name": "v",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ]
      },
      {
        "name": "unwrapWeth",
        "type": "bool[]",
        "internalType": "bool[]"
      }
    ],
    "outputs": [
      {
        "name": "successes",
        "type": "bool[]",
        "internalType": "bool[]"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "fillOtcOrder",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct LibNativeOrder.OtcOrder",
        "components": [
          {
            "name": "makerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "takerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "makerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "takerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "taker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "txOrigin",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "expiryAndNonce",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "name": "makerSignature",
        "type": "tuple",
        "internalType": "struct LibSignature.Signature",
        "components": [
          {
            "name": "signatureType",
            "type": "uint8",
            "internalType": "enum LibSignature.SignatureType"
          },
          {
            "name": "v",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ]
      },
      {
        "name": "takerTokenFillAmount",
        "type": "uint128",
        "internalType": "uint128"
      }
    ],
    "outputs": [
      {
        "name": "takerTokenFilledAmount",
        "type": "uint128",
        "internalType": "uint128"
      },
      {
        "name": "makerTokenFilledAmount",
        "type": "uint128",
        "internalType": "uint128"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "fillOtcOrderForEth",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct LibNativeOrder.OtcOrder",
        "components": [
          {
            "name": "makerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "takerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "makerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "takerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "taker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "txOrigin",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "expiryAndNonce",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "name": "makerSignature",
        "type": "tuple",
        "internalType": "struct LibSignature.Signature",
        "components": [
          {
            "name": "signatureType",
            "type": "uint8",
            "internalType": "enum LibSignature.SignatureType"
          },
          {
            "name": "v",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ]
      },
      {
        "name": "takerTokenFillAmount",
        "type": "uint128",
        "internalType": "uint128"
      }
    ],
    "outputs": [
      {
        "name": "takerTokenFilledAmount",
        "type": "uint128",
        "internalType": "uint128"
      },
      {
        "name": "makerTokenFilledAmount",
        "type": "uint128",
        "internalType": "uint128"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "fillOtcOrderWithEth",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct LibNativeOrder.OtcOrder",
        "components": [
          {
            "name": "makerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "takerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "makerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "takerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "taker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "txOrigin",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "expiryAndNonce",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "name": "makerSignature",
        "type": "tuple",
        "internalType": "struct LibSignature.Signature",
        "components": [
          {
            "name": "signatureType",
            "type": "uint8",
            "internalType": "enum LibSignature.SignatureType"
          },
          {
            "name": "v",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ]
      }
    ],
    "outputs": [
      {
        "name": "takerTokenFilledAmount",
        "type": "uint128",
        "internalType": "uint128"
      },
      {
        "name": "makerTokenFilledAmount",
        "type": "uint128",
        "internalType": "uint128"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "fillTakerSignedOtcOrder",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct LibNativeOrder.OtcOrder",
        "components": [
          {
            "name": "makerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "takerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "makerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "takerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "taker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "txOrigin",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "expiryAndNonce",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "name": "makerSignature",
        "type": "tuple",
        "internalType": "struct LibSignature.Signature",
        "components": [
          {
            "name": "signatureType",
            "type": "uint8",
            "internalType": "enum LibSignature.SignatureType"
          },
          {
            "name": "v",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ]
      },
      {
        "name": "takerSignature",
        "type": "tuple",
        "internalType": "struct LibSignature.Signature",
        "components": [
          {
            "name": "signatureType",
            "type": "uint8",
            "internalType": "enum LibSignature.SignatureType"
          },
          {
            "name": "v",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ]
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "fillTakerSignedOtcOrderForEth",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct LibNativeOrder.OtcOrder",
        "components": [
          {
            "name": "makerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "takerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "makerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "takerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "taker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "txOrigin",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "expiryAndNonce",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "name": "makerSignature",
        "type": "tuple",
        "internalType": "struct LibSignature.Signature",
        "components": [
          {
            "name": "signatureType",
            "type": "uint8",
            "internalType": "enum LibSignature.SignatureType"
          },
          {
            "name": "v",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ]
      },
      {
        "name": "takerSignature",
        "type": "tuple",
        "internalType": "struct LibSignature.Signature",
        "components": [
          {
            "name": "signatureType",
            "type": "uint8",
            "internalType": "enum LibSignature.SignatureType"
          },
          {
            "name": "v",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32",
            "internalType": "bytes32"
          }
        ]
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "getOtcOrderHash",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct LibNativeOrder.OtcOrder",
        "components": [
          {
            "name": "makerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "takerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "makerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "takerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "taker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "txOrigin",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "expiryAndNonce",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "outputs": [
      {
        "name": "orderHash",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getOtcOrderInfo",
    "inputs": [
      {
        "name": "order",
        "type": "tuple",
        "internalType": "struct LibNativeOrder.OtcOrder",
        "components": [
          {
            "name": "makerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "takerToken",
            "type": "address",
            "internalType": "contract IERC20Token"
          },
          {
            "name": "makerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "takerAmount",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "maker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "taker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "txOrigin",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "expiryAndNonce",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "outputs": [
      {
        "name": "orderInfo",
        "type": "tuple",
        "internalType": "struct LibNativeOrder.OtcOrderInfo",
        "components": [
          {
            "name": "orderHash",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "status",
            "type": "uint8",
            "internalType": "enum LibNativeOrder.OrderStatus"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "lastOtcTxOriginNonce",
    "inputs": [
      {
        "name": "txOrigin",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "nonceBucket",
        "type": "uint64",
        "internalType": "uint64"
      }
    ],
    "outputs": [
      {
        "name": "lastNonce",
        "type": "uint128",
        "internalType": "uint128"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "migrate",
    "inputs": [],
    "outputs": [
      {
        "name": "success",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "event",
    "name": "OtcOrderFilled",
    "inputs": [
      {
        "name": "orderHash",
        "type": "bytes32",
        "indexed": false,
        "internalType": "bytes32"
      },
      {
        "name": "maker",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "taker",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "makerToken",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "takerToken",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "makerTokenFilledAmount",
        "type": "uint128",
        "indexed": false,
        "internalType": "uint128"
      },
      {
        "name": "takerTokenFilledAmount",
        "type": "uint128",
        "indexed": false,
        "internalType": "uint128"
      }
    ],
    "anonymous": false
  }
]

Structs§

Enums§