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§
- Function with signature
EIP712_DOMAIN_SEPARATOR()
and selector0xdab400f3
. - Container type for the return parameters of the
EIP712_DOMAIN_SEPARATOR()
function. - Function with signature
FEATURE_NAME()
and selector0x6ae4b4f7
. - Container type for the return parameters of the
FEATURE_NAME()
function. - Function with signature
FEATURE_VERSION()
and selector0x031b905c
. - Container type for the return parameters of the
FEATURE_VERSION()
function. - Event with signature
OtcOrderFilled(bytes32,address,address,address,address,uint128,uint128)
and selector0xac75f773e3a92f1a02b12134d65e1f47f8a14eabe4eaf1e24624918e6a8b269f
. - Function with signature
_fillOtcOrder((address,address,uint128,uint128,address,address,address,uint256),(uint8,uint8,bytes32,bytes32),uint128,address,bool,address)
and selector0xe4ba8439
. - Container type for the return parameters of the
_fillOtcOrder((address,address,uint128,uint128,address,address,address,uint256),(uint8,uint8,bytes32,bytes32),uint128,address,bool,address)
function. - Function with signature
batchFillTakerSignedOtcOrders((address,address,uint128,uint128,address,address,address,uint256)[],(uint8,uint8,bytes32,bytes32)[],(uint8,uint8,bytes32,bytes32)[],bool[])
and selector0xe52d1764
. - Container type for the return parameters of the
batchFillTakerSignedOtcOrders((address,address,uint128,uint128,address,address,address,uint256)[],(uint8,uint8,bytes32,bytes32)[],(uint8,uint8,bytes32,bytes32)[],bool[])
function. - Constructor`.
- Function with signature
fillOtcOrder((address,address,uint128,uint128,address,address,address,uint256),(uint8,uint8,bytes32,bytes32),uint128)
and selector0xdac748d4
. - Function with signature
fillOtcOrderForEth((address,address,uint128,uint128,address,address,address,uint256),(uint8,uint8,bytes32,bytes32),uint128)
and selector0xa578efaf
. - Container type for the return parameters of the
fillOtcOrderForEth((address,address,uint128,uint128,address,address,address,uint256),(uint8,uint8,bytes32,bytes32),uint128)
function. - Container type for the return parameters of the
fillOtcOrder((address,address,uint128,uint128,address,address,address,uint256),(uint8,uint8,bytes32,bytes32),uint128)
function. - Function with signature
fillOtcOrderWithEth((address,address,uint128,uint128,address,address,address,uint256),(uint8,uint8,bytes32,bytes32))
and selector0x706394d5
. - Container type for the return parameters of the
fillOtcOrderWithEth((address,address,uint128,uint128,address,address,address,uint256),(uint8,uint8,bytes32,bytes32))
function. - Function with signature
fillTakerSignedOtcOrder((address,address,uint128,uint128,address,address,address,uint256),(uint8,uint8,bytes32,bytes32),(uint8,uint8,bytes32,bytes32))
and selector0x4f948110
. - Function with signature
fillTakerSignedOtcOrderForEth((address,address,uint128,uint128,address,address,address,uint256),(uint8,uint8,bytes32,bytes32),(uint8,uint8,bytes32,bytes32))
and selector0x724d3953
. - Container type for the return parameters of the
fillTakerSignedOtcOrderForEth((address,address,uint128,uint128,address,address,address,uint256),(uint8,uint8,bytes32,bytes32),(uint8,uint8,bytes32,bytes32))
function. - Container type for the return parameters of the
fillTakerSignedOtcOrder((address,address,uint128,uint128,address,address,address,uint256),(uint8,uint8,bytes32,bytes32),(uint8,uint8,bytes32,bytes32))
function. - Function with signature
getOtcOrderHash((address,address,uint128,uint128,address,address,address,uint256))
and selector0x53476b89
. - Container type for the return parameters of the
getOtcOrderHash((address,address,uint128,uint128,address,address,address,uint256))
function. - Function with signature
getOtcOrderInfo((address,address,uint128,uint128,address,address,address,uint256))
and selector0x8c807c43
. - Container type for the return parameters of the
getOtcOrderInfo((address,address,uint128,uint128,address,address,address,uint256))
function. - Function with signature
lastOtcTxOriginNonce(address,uint64)
and selector0x59ebfb45
. - Container type for the return parameters of the
lastOtcTxOriginNonce(address,uint64)
function. - Function with signature
migrate()
and selector0x8fd3ab80
. - Container type for the return parameters of the
migrate()
function.
Enums§
- Container for all the
ZeroXOtcOrdersFeature
function calls. - Container for all the
ZeroXOtcOrdersFeature
events.