Trading
- Trading Modes
- Assets & Contracts
- Trading Mechanics
- Risk Management
- Launchpad
- Trading View
MegaETH
Protocol Technical Reference
Contracts
CLOBManager.sol
CLOB Manager Contract
ABI
Copy
Ask AI
[
{
"type": "constructor",
"inputs": [
{ "name": "_beacon", "type": "address", "internalType": "address" },
{ "name": "_maxNumOrders", "type": "uint256", "internalType": "uint256" },
{ "name": "_makerFees", "type": "uint16[]", "internalType": "uint16[]" },
{ "name": "_takerFees", "type": "uint16[]", "internalType": "uint16[]" }
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "ABI_VERSION",
"inputs": [],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "approveOperator",
"inputs": [
{ "name": "operator", "type": "address", "internalType": "address" },
{ "name": "roles", "type": "uint256", "internalType": "uint256" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "beacon",
"inputs": [],
"outputs": [{ "name": "", "type": "address", "internalType": "address" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "cancelOwnershipHandover",
"inputs": [],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "collectFees",
"inputs": [
{ "name": "token", "type": "address", "internalType": "address" }
],
"outputs": [
{ "name": "fee", "type": "uint256", "internalType": "uint256" }
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "completeOwnershipHandover",
"inputs": [
{ "name": "pendingOwner", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "createMarket",
"inputs": [
{ "name": "baseToken", "type": "address", "internalType": "address" },
{ "name": "quoteToken", "type": "address", "internalType": "address" },
{
"name": "settings",
"type": "tuple",
"internalType": "struct ICLOBManager.SettingsParams",
"components": [
{ "name": "owner", "type": "address", "internalType": "address" },
{
"name": "maxLimitsPerTx",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "minLimitOrderAmountInBase",
"type": "uint256",
"internalType": "uint256"
},
{ "name": "tickSize", "type": "uint256", "internalType": "uint256" }
]
}
],
"outputs": [
{ "name": "marketAddress", "type": "address", "internalType": "address" }
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "creditAccount",
"inputs": [
{ "name": "account", "type": "address", "internalType": "address" },
{ "name": "token", "type": "address", "internalType": "address" },
{ "name": "amount", "type": "uint256", "internalType": "uint256" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "debitAccount",
"inputs": [
{ "name": "account", "type": "address", "internalType": "address" },
{ "name": "token", "type": "address", "internalType": "address" },
{ "name": "amount", "type": "uint256", "internalType": "uint256" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "deposit",
"inputs": [
{ "name": "account", "type": "address", "internalType": "address" },
{ "name": "token", "type": "address", "internalType": "address" },
{ "name": "amount", "type": "uint256", "internalType": "uint256" },
{ "name": "fromOperator", "type": "bool", "internalType": "bool" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "disapproveOperator",
"inputs": [
{ "name": "operator", "type": "address", "internalType": "address" },
{ "name": "roles", "type": "uint256", "internalType": "uint256" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "getAccountBalance",
"inputs": [
{ "name": "account", "type": "address", "internalType": "address" },
{ "name": "token", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "getEventNonce",
"inputs": [],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "getFeeRecipient",
"inputs": [],
"outputs": [{ "name": "", "type": "address", "internalType": "address" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "getFeeTier",
"inputs": [
{ "name": "account", "type": "address", "internalType": "address" }
],
"outputs": [
{ "name": "", "type": "uint8", "internalType": "enum FeeTiers" }
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getMakerFeeRate",
"inputs": [
{ "name": "feeTier", "type": "uint8", "internalType": "enum FeeTiers" }
],
"outputs": [{ "name": "", "type": "uint16", "internalType": "uint16" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "getMarketAddress",
"inputs": [
{ "name": "quoteToken", "type": "address", "internalType": "address" },
{ "name": "baseToken", "type": "address", "internalType": "address" }
],
"outputs": [
{ "name": "marketAddress", "type": "address", "internalType": "address" }
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getOperatorRoleApprovals",
"inputs": [
{ "name": "account", "type": "address", "internalType": "address" },
{ "name": "operator", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "getTakerFeeRate",
"inputs": [
{ "name": "feeTier", "type": "uint8", "internalType": "enum FeeTiers" }
],
"outputs": [{ "name": "", "type": "uint16", "internalType": "uint16" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "gteRouter",
"inputs": [],
"outputs": [{ "name": "", "type": "address", "internalType": "address" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "initialize",
"inputs": [
{ "name": "_owner", "type": "address", "internalType": "address" },
{ "name": "_feeRecipient", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "isMarket",
"inputs": [
{ "name": "market", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "makerFees",
"inputs": [],
"outputs": [
{ "name": "", "type": "uint256", "internalType": "PackedFeeRates" }
],
"stateMutability": "view"
},
{
"type": "function",
"name": "maxNumOrders",
"inputs": [],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "owner",
"inputs": [],
"outputs": [
{ "name": "result", "type": "address", "internalType": "address" }
],
"stateMutability": "view"
},
{
"type": "function",
"name": "ownershipHandoverExpiresAt",
"inputs": [
{ "name": "pendingOwner", "type": "address", "internalType": "address" }
],
"outputs": [
{ "name": "result", "type": "uint256", "internalType": "uint256" }
],
"stateMutability": "view"
},
{
"type": "function",
"name": "pullFromAccount",
"inputs": [
{ "name": "account", "type": "address", "internalType": "address" },
{ "name": "token", "type": "address", "internalType": "address" },
{ "name": "amount", "type": "uint256", "internalType": "uint256" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "pushToAccount",
"inputs": [
{ "name": "account", "type": "address", "internalType": "address" },
{ "name": "token", "type": "address", "internalType": "address" },
{ "name": "amount", "type": "uint256", "internalType": "uint256" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "renounceOwnership",
"inputs": [],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "requestOwnershipHandover",
"inputs": [],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "setAccountFeeTiers",
"inputs": [
{ "name": "accounts", "type": "address[]", "internalType": "address[]" },
{
"name": "feeTiers",
"type": "uint8[]",
"internalType": "enum FeeTiers[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setFeeRecipient",
"inputs": [
{
"name": "newFeeRecipient",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "settleIncomingOrder",
"inputs": [
{
"name": "params",
"type": "tuple",
"internalType": "struct SettleParams",
"components": [
{ "name": "taker", "type": "address", "internalType": "address" },
{
"name": "quoteToken",
"type": "address",
"internalType": "address"
},
{ "name": "baseToken", "type": "address", "internalType": "address" },
{ "name": "side", "type": "uint8", "internalType": "enum Side" },
{
"name": "settlement",
"type": "uint8",
"internalType": "enum ICLOB.Settlement"
},
{
"name": "takerQuoteAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "takerBaseAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "makerCredits",
"type": "tuple[]",
"internalType": "struct MakerCredit[]",
"components": [
{ "name": "maker", "type": "address", "internalType": "address" },
{
"name": "quoteAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "baseAmount",
"type": "uint256",
"internalType": "uint256"
}
]
}
]
}
],
"outputs": [
{ "name": "takerFee", "type": "uint256", "internalType": "uint256" }
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "takerFees",
"inputs": [],
"outputs": [
{ "name": "", "type": "uint256", "internalType": "PackedFeeRates" }
],
"stateMutability": "view"
},
{
"type": "function",
"name": "transferOwnership",
"inputs": [
{ "name": "newOwner", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "withdraw",
"inputs": [
{ "name": "account", "type": "address", "internalType": "address" },
{ "name": "token", "type": "address", "internalType": "address" },
{ "name": "amount", "type": "uint256", "internalType": "uint256" },
{ "name": "toOperator", "type": "bool", "internalType": "bool" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "event",
"name": "AccountCredited",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "eventNonce",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "AccountDebited",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "eventNonce",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "AccountFeeTierUpdated",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "feeTier",
"type": "uint8",
"indexed": false,
"internalType": "enum FeeTiers"
},
{
"name": "eventNonce",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Deposit",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "funder",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "eventNonce",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "FeeCollected",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "fee",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "eventNonce",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "FeeRecipientSet",
"inputs": [
{
"name": "feeRecipient",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "eventNonce",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Initialized",
"inputs": [
{
"name": "version",
"type": "uint64",
"indexed": false,
"internalType": "uint64"
}
],
"anonymous": false
},
{
"type": "event",
"name": "MarketCreated",
"inputs": [
{
"name": "creator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "baseToken",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "quoteToken",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "market",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "quoteDecimals",
"type": "uint8",
"indexed": false,
"internalType": "uint8"
},
{
"name": "baseDecimals",
"type": "uint8",
"indexed": false,
"internalType": "uint8"
},
{
"name": "config",
"type": "tuple",
"indexed": false,
"internalType": "struct ICLOBManager.ConfigParams",
"components": [
{
"name": "quoteToken",
"type": "address",
"internalType": "address"
},
{ "name": "baseToken", "type": "address", "internalType": "address" },
{ "name": "quoteSize", "type": "uint256", "internalType": "uint256" },
{ "name": "baseSize", "type": "uint256", "internalType": "uint256" }
]
},
{
"name": "settings",
"type": "tuple",
"indexed": false,
"internalType": "struct ICLOBManager.SettingsParams",
"components": [
{ "name": "owner", "type": "address", "internalType": "address" },
{
"name": "maxLimitsPerTx",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "minLimitOrderAmountInBase",
"type": "uint256",
"internalType": "uint256"
},
{ "name": "tickSize", "type": "uint256", "internalType": "uint256" }
]
},
{
"name": "eventNonce",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OperatorApproved",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "eventNonce",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OperatorDisapproved",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "eventNonce",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OwnershipHandoverCanceled",
"inputs": [
{
"name": "pendingOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OwnershipHandoverRequested",
"inputs": [
{
"name": "pendingOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OwnershipTransferred",
"inputs": [
{
"name": "oldOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RolesApproved",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "roles",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "eventNonce",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RolesDisapproved",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "roles",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "eventNonce",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Withdraw",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "recipient",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "eventNonce",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{ "type": "error", "name": "AlreadyInitialized", "inputs": [] },
{ "type": "error", "name": "CLOBBeaconMustHaveRouter", "inputs": [] },
{ "type": "error", "name": "IndexOutOfBounds", "inputs": [] },
{ "type": "error", "name": "InsufficientBalance", "inputs": [] },
{ "type": "error", "name": "InvalidBeaconAddress", "inputs": [] },
{ "type": "error", "name": "InvalidFeeRecipient", "inputs": [] },
{ "type": "error", "name": "InvalidInitialization", "inputs": [] },
{ "type": "error", "name": "InvalidPair", "inputs": [] },
{ "type": "error", "name": "InvalidSettings", "inputs": [] },
{
"type": "error",
"name": "InvalidTierLength_ReduceFeeTierEnumSize",
"inputs": []
},
{ "type": "error", "name": "InvalidTokenAddress", "inputs": [] },
{ "type": "error", "name": "MarketAlreadyExists", "inputs": [] },
{ "type": "error", "name": "MarketDoesNotExist", "inputs": [] },
{ "type": "error", "name": "NewOwnerIsZeroAddress", "inputs": [] },
{ "type": "error", "name": "NoHandoverRequest", "inputs": [] },
{ "type": "error", "name": "NotInitializing", "inputs": [] },
{ "type": "error", "name": "OperatorDoesNotHaveRole", "inputs": [] },
{ "type": "error", "name": "TooManyFeeTiers", "inputs": [] },
{ "type": "error", "name": "Unauthorized", "inputs": [] },
{ "type": "error", "name": "UnauthorizedMarket", "inputs": [] },
{ "type": "error", "name": "UnmatchingArrayLengths", "inputs": [] }
]
On this page
Assistant
Responses are generated using AI and may contain mistakes.