๐Ÿ‹
Moby
  • Letโ€™s Get Started
    • ๐Ÿ‹ About Moby
    • โšก Our Vision
    • ๐Ÿค“ Your Guidebook
      • Get Setup
        • Connect Wallet
        • Trade Options
        • 0DTE Options
        • Provide Liquidity
      • Fees & Instruments
        • Fee Generation
        • Fee Distribution
        • Instruments
      • Testnet
  • How itโ€™s Built
    • ๐Ÿš€ Synchronized Liquidity Engine (SLE)
    • ๐Ÿงฎ Options Pricing Model
      • Mark Price
        • Futures Index
        • Implied Volatility
      • Risk Premium
        • Deriving Greeks
        • Risk Premium Calculation
        • Risk Managing Mechanism
    • ๐Ÿค– Architecture
      • Liquidity Provision Mechanism
      • Options Listing Standard
      • How to Open / Close / Settle Position
      • Synchronized Liquidity Engine (SLE)
      • Options Position Tokens
      • Tools to Maximize Capital Efficiency
    • โš™๏ธ Key Features
      • High Leverage & Limited Risk with No Liquidation
      • Narrow Spread with Dynamic Risk Premium
      • Guaranteed Settlement
      • Capital Efficiency Improvements with Combo Options
      • Even Higher Capital Efficiency with Clearing House
      • Abundant Liquidity for All Options
      • Composable Options for Structured Products
      • High Profitability for LPs
      • Real-Time Automatically Hedged OLP
      • Upcoming Features
    • โ›“ DeFi Options Vault
      • ๐Ÿป Berachain DeFi Options Vault
        • ๐Ÿ”’ Architecture
        • ๐Ÿ“ˆ Options Strategy
  • How itโ€™s Driven
    • ๐Ÿ›ก๏ธ Building the Safest DeFi Protocol
      • Safety Features
      • Smart Contract Audit & Real-Time Security Monitoring
    • ๐Ÿ› Backed by Decentralized Governance
      • Governance
    • ๐ŸŒ Led by the Best Partners & Community
      • Arbitrum X Moby
      • Engagement Programs
  • Need More Info?
    • ๐Ÿ“š Resource Library
      • Developer Resources & Educational Contents
      • Terms & Conditions
      • Glossary
      • FAQ
  • Developers
    • Moby Traders API
      • REST API
        • General
        • Account
        • Market
    • Trade Scripts
      • Prerequisites
      • Open Positions
      • Close Positions
    • Interfaces & ABI
      • PositionManager.sol
      • SettleManager.sol
      • RewardRouterV2.sol
      • OptionsMarket.sol
    • Appendix 1: Parameters for Open/Close Options
    • Appendix 2: the Diff between optionId and optionTokenId
    • Appendix 3: Sample Moby Contract Module for Developers
Powered by GitBook
On this page
  • PositionManager Interface Documentation
  • State-Changing Functions
  • View Functions
  • Events
  • ABI
  1. Developers
  2. Interfaces & ABI

PositionManager.sol

Last Updated At 20th Jan, 2025

PositionManager Interface Documentation

State-Changing Functions

cancelClosePosition

function cancelClosePosition(
    bytes32 _key, 
    address payable _executionFeeReceiver) external returns (bool)
  • Cancels a pending close position request

  • Returns whether it is successful

cancelOpenPosition

function cancelOpenPosition(
    bytes32 _key, 
    address payable _executionFeeReceiver) external returns (bool)
  • Cancels a pending open position request

  • Returns whether it is successful

createClosePosition

function createClosePosition(
    uint16 _underlyingAssetIndex, 
    uint256 _optionTokenId, 
    uint256 _size, 
    address[] memory _path, 
    uint256 _minAmountOut, 
    uint256 _minOutWhenSwap, 
    bool _withdrawETH) external payable returns (bytes32)
  • Creates a request to close an existing option position

  • Requires execution fee to be paid

  • Returns request key for tracking

createOpenPosition

function createOpenPosition(
    uint16 _underlyingAssetIndex, 
    uint8 _length, 
    bool[4] memory _isBuys, 
    bytes32[4] memory _optionIds, 
    bool[4] memory _isCalls, 
    uint256 _minSize, 
    address[] memory _path, 
    uint256 _amountIn, 
    uint256 _minOutWhenSwap, 
    address _leadTrader) external payable returns (bytes32)
  • Creates a request to open a new option position using ERC20 tokens

  • Supports multiple options in a single transaction

  • Returns request key for tracking

createOpenPositionNAT

function createOpenPositionNAT(
    uint16 _underlyingAssetIndex, 
    uint8 _length, 
    bool[4] memory _isBuys, 
    bytes32[4] memory _optionIds, 
    bool[4] memory _isCalls, 
    uint256 _minSize, 
    address[] memory _path, 
    uint256 _minOutWhenSwap, 
    address _leadTrader) external payable returns (bytes32)
  • Similar to createOpenPosition but accepts Native token(ex. ETH) as payment

  • Automatically wraps native token to wrapped one

  • Returns request key for tracking

View Functions

closePositionRequests

function closePositionRequests(bytes32) external view returns 
(
    address account, 
    uint16 underlyingAssetIndex, 
    uint40 expiry, 
    uint256 optionTokenId, 
    uint256 size, 
    uint256 minAmountOut, 
    uint256 minOutWhenSwap, 
    bool withdrawETH, 
    uint40 blockTime, 
    IPositionManager.RequestStatus status, 
    uint256 amountOut, 
    uint256 executionPrice, 
    uint40 processBlockTime
)
  • Returns detailed information about a close position request

  • Includes request status and execution details

getClosePositionRequestPath

function getClosePositionRequestPath(bytes32 _key) external view returns 
(address[] memory)
  • Returns the token swap path for a close position request

  • Used for routing tokens through DEX

getOpenPositionRequestPath

function getOpenPositionRequestPath(bytes32 _key) external view returns 
(address[] memory)
  • Returns the token swap path for an open position request

  • Used for routing tokens through DEX

getRequestKey

function getRequestKey(
    address _account, 
    uint256 _index, 
    bool _isOpenPosition) external pure returns (bytes32)
  • Returns a unique key for a position request

  • Used for tracking and identifying requests

getRequestQueueLengths

function getRequestQueueLengths() external view returns (uint256, uint256, uint256)
  • Returns the current lengths of request queues

  • Used for monitoring system state

openPositionRequests

function openPositionRequests(bytes32) external view returns
(
    address account, 
    uint16 underlyingAssetIndex, 
    uint40 expiry, 
    uint256 optionTokenId, 
    uint256 minSize, 
    uint256 amountIn, 
    uint256 minOutWhenSwap, 
    bool isDepositedInETH, 
    uint40 blockTime, 
    IPositionManager.RequestStatus status, 
    uint256 sizeOut, 
    uint256 executionPrice, 
    uint40 processBlockTime, 
    uint256 amountOut
)
  • Returns detailed information about an open position request

  • Includes request status and execution details

openPositionsIndex

function openPositionsIndex(address) external view returns (uint256)
  • Returns the current index for open positions of an address

  • Used for tracking position requests

positionRequestKeys

function positionRequestKeys(uint256) external view returns (bytes32)
  • Returns the request key at a specific index

  • Used for iterating through requests

positionRequestTypes

function positionRequestTypes(uint256) external view returns (bool)
  • Returns whether a request at specific index is an open or close position

  • True for open positions, false for close positions

Events

CreateOpenPosition

event CreateOpenPosition(
    address indexed account,
    uint16 indexed underlyingAssetIndex,
    bytes32[4] optionIds,
    uint40 indexed expiry,
    uint256 optionTokenId,
    uint256 minSize,
    address[] path,
    uint256 amountIn,
    uint256 minOutWhenSwap,
    uint256 index,
    uint256 queueIndex,
    uint256 gasPrice,
    uint40 blockTime
)
  • Emitted when a new open position request is created

  • Contains all relevant information about the position request

  • Includes routing path and pricing information

ExecuteOpenPosition

event ExecuteOpenPosition(
    address indexed account,
    uint16 indexed underlyingAssetIndex,
    uint40 indexed expiry,
    uint256 optionTokenId,
    uint256 size,
    address[] path,
    uint256 amountIn,
    uint256 executionPrice,
    uint40 timeGap
)
  • Emitted when an open position request is executed

  • Records the final execution details and pricing

  • Includes time gap between request and execution

CancelOpenPosition

event CancelOpenPosition(
    address indexed account,
    uint16 indexed underlyingAssetIndex,
    bytes32[4] optionIds,
    uint40 indexed expiry,
    uint256 optionTokenId,
    address[] path,
    uint256 amountIn,
    uint40 timeGap
)
  • Emitted when an open position request is cancelled

  • Records the details of the cancelled request

  • Includes time gap between request and cancellation

CreateClosePosition

event CreateClosePosition(
    address indexed account,
    uint16 indexed underlyingAssetIndex,
    uint40 indexed expiry,
    uint256 optionTokenId,
    uint256 size,
    address[] path,
    uint256 minAmountOut,
    uint256 minOutWhenSwap,
    uint256 index,
    uint256 queueIndex,
    uint40 blockTime
)
  • Emitted when a new close position request is created

  • Contains all relevant information about the closing request

  • Includes minimum expected output amounts

ExecuteClosePosition

event ExecuteClosePosition(
    address indexed account,
    uint16 indexed underlyingAssetIndex,
    uint40 indexed expiry,
    uint256 optionTokenId,
    uint256 size,
    address[] path,
    uint256 amountOut,
    uint256 executionPrice,
    uint40 timeGap
)
  • Emitted when a close position request is executed

  • Records the final closing details and pricing

  • Includes actual output amount received

CancelClosePosition

event CancelClosePosition(
    address indexed account,
    uint16 indexed underlyingAssetIndex,
    uint40 indexed expiry,
    uint256 optionTokenId,
    uint256 size,
    address[] path,
    uint40 timeGap
)
  • Emitted when a close position request is cancelled

  • Records the details of the cancelled closing request

  • Includes time gap between request and cancellation

ABI

[
  {
    "type": "receive",
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "__AuthorityUtil_init__",
    "inputs": [
      {
        "name": "_authority",
        "type": "address",
        "internalType": "contract IOptionsAuthority"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "__BasePositionManager_init__",
    "inputs": [
      {
        "name": "_optionsMarket",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_controller",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_weth",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_authority",
        "type": "address",
        "internalType": "contract IOptionsAuthority"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "approve",
    "inputs": [
      {
        "name": "_token",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_spender",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_amount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "authority",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "contract IOptionsAuthority"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "cancelClosePosition",
    "inputs": [
      {
        "name": "_key",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "_executionFeeReceiver",
        "type": "address",
        "internalType": "address payable"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "cancelOpenPosition",
    "inputs": [
      {
        "name": "_key",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "_executionFeeReceiver",
        "type": "address",
        "internalType": "address payable"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "closePositionRequests",
    "inputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "underlyingAssetIndex",
        "type": "uint16",
        "internalType": "uint16"
      },
      {
        "name": "expiry",
        "type": "uint40",
        "internalType": "uint40"
      },
      {
        "name": "optionTokenId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "size",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "minAmountOut",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "minOutWhenSwap",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "withdrawETH",
        "type": "bool",
        "internalType": "bool"
      },
      {
        "name": "blockTime",
        "type": "uint40",
        "internalType": "uint40"
      },
      {
        "name": "status",
        "type": "uint8",
        "internalType": "enum IPositionManager.RequestStatus"
      },
      {
        "name": "amountOut",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "executionPrice",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "processBlockTime",
        "type": "uint40",
        "internalType": "uint40"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "closePositionsIndex",
    "inputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "controller",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "copyTradeFeeRebateRate",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "createClosePosition",
    "inputs": [
      {
        "name": "_underlyingAssetIndex",
        "type": "uint16",
        "internalType": "uint16"
      },
      {
        "name": "_optionTokenId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "_size",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "_path",
        "type": "address[]",
        "internalType": "address[]"
      },
      {
        "name": "_minAmountOut",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "_minOutWhenSwap",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "_withdrawETH",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "createOpenPosition",
    "inputs": [
      {
        "name": "_underlyingAssetIndex",
        "type": "uint16",
        "internalType": "uint16"
      },
      {
        "name": "_length",
        "type": "uint8",
        "internalType": "uint8"
      },
      {
        "name": "_isBuys",
        "type": "bool[4]",
        "internalType": "bool[4]"
      },
      {
        "name": "_optionIds",
        "type": "bytes32[4]",
        "internalType": "bytes32[4]"
      },
      {
        "name": "_isCalls",
        "type": "bool[4]",
        "internalType": "bool[4]"
      },
      {
        "name": "_minSize",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "_path",
        "type": "address[]",
        "internalType": "address[]"
      },
      {
        "name": "_amountIn",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "_minOutWhenSwap",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "_leadTrader",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "createOpenPositionNAT",
    "inputs": [
      {
        "name": "_underlyingAssetIndex",
        "type": "uint16",
        "internalType": "uint16"
      },
      {
        "name": "_length",
        "type": "uint8",
        "internalType": "uint8"
      },
      {
        "name": "_isBuys",
        "type": "bool[4]",
        "internalType": "bool[4]"
      },
      {
        "name": "_optionIds",
        "type": "bytes32[4]",
        "internalType": "bytes32[4]"
      },
      {
        "name": "_isCalls",
        "type": "bool[4]",
        "internalType": "bool[4]"
      },
      {
        "name": "_minSize",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "_path",
        "type": "address[]",
        "internalType": "address[]"
      },
      {
        "name": "_minOutWhenSwap",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "_leadTrader",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "ethTransferGasLimit",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "executeClosePosition",
    "inputs": [
      {
        "name": "_requestIndex",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "_key",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "_executionFeeReceiver",
        "type": "address",
        "internalType": "address payable"
      }
    ],
    "outputs": [
      {
        "name": "isExecuted",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "executeOpenPosition",
    "inputs": [
      {
        "name": "_requestIndex",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "_key",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "_executionFeeReceiver",
        "type": "address",
        "internalType": "address payable"
      }
    ],
    "outputs": [
      {
        "name": "isExecuted",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "executePositions",
    "inputs": [
      {
        "name": "_endIndex",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "_executionFeeReceiver",
        "type": "address",
        "internalType": "address payable"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "executionFee",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getClosePositionRequestPath",
    "inputs": [
      {
        "name": "_key",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "address[]",
        "internalType": "address[]"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getOpenPositionRequestPath",
    "inputs": [
      {
        "name": "_key",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "address[]",
        "internalType": "address[]"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getRequestKey",
    "inputs": [
      {
        "name": "_account",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_index",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "_isOpenPosition",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "getRequestQueueLengths",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "initialize",
    "inputs": [
      {
        "name": "_optionsMarket",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_controller",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_weth",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_authority",
        "type": "address",
        "internalType": "contract IOptionsAuthority"
      },
      {
        "name": "_executionFee",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "leadTrader",
    "inputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "maxTimeDelay",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint40",
        "internalType": "uint40"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "onERC1155BatchReceived",
    "inputs": [
      {
        "name": "operator",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "from",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "ids",
        "type": "uint256[]",
        "internalType": "uint256[]"
      },
      {
        "name": "values",
        "type": "uint256[]",
        "internalType": "uint256[]"
      },
      {
        "name": "data",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "onERC1155Received",
    "inputs": [
      {
        "name": "operator",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "from",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "id",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "value",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "data",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "openPositionRequests",
    "inputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "underlyingAssetIndex",
        "type": "uint16",
        "internalType": "uint16"
      },
      {
        "name": "expiry",
        "type": "uint40",
        "internalType": "uint40"
      },
      {
        "name": "optionTokenId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "minSize",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "amountIn",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "minOutWhenSwap",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "isDepositedInETH",
        "type": "bool",
        "internalType": "bool"
      },
      {
        "name": "blockTime",
        "type": "uint40",
        "internalType": "uint40"
      },
      {
        "name": "status",
        "type": "uint8",
        "internalType": "enum IPositionManager.RequestStatus"
      },
      {
        "name": "sizeOut",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "executionPrice",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "processBlockTime",
        "type": "uint40",
        "internalType": "uint40"
      },
      {
        "name": "amountOut",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "openPositionsIndex",
    "inputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "optionsMarket",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "owner",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "positionDeadlineBuffer",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint40",
        "internalType": "uint40"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "positionRequestKeys",
    "inputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "positionRequestKeysStart",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "positionRequestTypes",
    "inputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "renounceOwnership",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "sendValue",
    "inputs": [
      {
        "name": "_receiver",
        "type": "address",
        "internalType": "address payable"
      },
      {
        "name": "_amount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setAuthority",
    "inputs": [
      {
        "name": "_newAuthority",
        "type": "address",
        "internalType": "contract IOptionsAuthority"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setCopyTradeFeeRebateRate",
    "inputs": [
      {
        "name": "_copyTradeFeeRebateRate",
        "type": "uint40",
        "internalType": "uint40"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setEthTransferGasLimit",
    "inputs": [
      {
        "name": "_ethTransferGasLimit",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setExecutionFee",
    "inputs": [
      {
        "name": "_executionFee",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setMaxTimeDelay",
    "inputs": [
      {
        "name": "_maxTimeDelay",
        "type": "uint40",
        "internalType": "uint40"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setPositionDeadlineBuffer",
    "inputs": [
      {
        "name": "_positionDeadlineBuffer",
        "type": "uint40",
        "internalType": "uint40"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "supportsInterface",
    "inputs": [
      {
        "name": "interfaceId",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ],
    "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": "weth",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "event",
    "name": "AuthorityUpdated",
    "inputs": [
      {
        "name": "authority",
        "type": "address",
        "indexed": true,
        "internalType": "contract IOptionsAuthority"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "CancelClosePosition",
    "inputs": [
      {
        "name": "account",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "underlyingAssetIndex",
        "type": "uint16",
        "indexed": true,
        "internalType": "uint16"
      },
      {
        "name": "expiry",
        "type": "uint40",
        "indexed": true,
        "internalType": "uint40"
      },
      {
        "name": "optionTokenId",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "size",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "path",
        "type": "address[]",
        "indexed": false,
        "internalType": "address[]"
      },
      {
        "name": "timeGap",
        "type": "uint40",
        "indexed": false,
        "internalType": "uint40"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "CancelErrorMessage",
    "inputs": [
      {
        "name": "errorMessage",
        "type": "string",
        "indexed": true,
        "internalType": "string"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "CancelOpenPosition",
    "inputs": [
      {
        "name": "account",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "underlyingAssetIndex",
        "type": "uint16",
        "indexed": true,
        "internalType": "uint16"
      },
      {
        "name": "optionIds",
        "type": "bytes32[4]",
        "indexed": false,
        "internalType": "bytes32[4]"
      },
      {
        "name": "expiry",
        "type": "uint40",
        "indexed": true,
        "internalType": "uint40"
      },
      {
        "name": "optionTokenId",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "path",
        "type": "address[]",
        "indexed": false,
        "internalType": "address[]"
      },
      {
        "name": "amountIn",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "timeGap",
        "type": "uint40",
        "indexed": false,
        "internalType": "uint40"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "CreateClosePosition",
    "inputs": [
      {
        "name": "account",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "underlyingAssetIndex",
        "type": "uint16",
        "indexed": true,
        "internalType": "uint16"
      },
      {
        "name": "expiry",
        "type": "uint40",
        "indexed": true,
        "internalType": "uint40"
      },
      {
        "name": "optionTokenId",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "size",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "path",
        "type": "address[]",
        "indexed": false,
        "internalType": "address[]"
      },
      {
        "name": "minAmountOut",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "minOutWhenSwap",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "index",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "queueIndex",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "blockTime",
        "type": "uint40",
        "indexed": false,
        "internalType": "uint40"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "CreateOpenPosition",
    "inputs": [
      {
        "name": "account",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "underlyingAssetIndex",
        "type": "uint16",
        "indexed": true,
        "internalType": "uint16"
      },
      {
        "name": "optionIds",
        "type": "bytes32[4]",
        "indexed": false,
        "internalType": "bytes32[4]"
      },
      {
        "name": "expiry",
        "type": "uint40",
        "indexed": true,
        "internalType": "uint40"
      },
      {
        "name": "optionTokenId",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "minSize",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "path",
        "type": "address[]",
        "indexed": false,
        "internalType": "address[]"
      },
      {
        "name": "amountIn",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "minOutWhenSwap",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "index",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "queueIndex",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "gasPrice",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "blockTime",
        "type": "uint40",
        "indexed": false,
        "internalType": "uint40"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ExecuteClosePosition",
    "inputs": [
      {
        "name": "account",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "underlyingAssetIndex",
        "type": "uint16",
        "indexed": true,
        "internalType": "uint16"
      },
      {
        "name": "expiry",
        "type": "uint40",
        "indexed": true,
        "internalType": "uint40"
      },
      {
        "name": "optionTokenId",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "size",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "path",
        "type": "address[]",
        "indexed": false,
        "internalType": "address[]"
      },
      {
        "name": "amountOut",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "executionPrice",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "timeGap",
        "type": "uint40",
        "indexed": false,
        "internalType": "uint40"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ExecuteErrorMessage",
    "inputs": [
      {
        "name": "errorMessage",
        "type": "string",
        "indexed": true,
        "internalType": "string"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ExecuteOpenPosition",
    "inputs": [
      {
        "name": "account",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "underlyingAssetIndex",
        "type": "uint16",
        "indexed": true,
        "internalType": "uint16"
      },
      {
        "name": "expiry",
        "type": "uint40",
        "indexed": true,
        "internalType": "uint40"
      },
      {
        "name": "optionTokenId",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "size",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "path",
        "type": "address[]",
        "indexed": false,
        "internalType": "address[]"
      },
      {
        "name": "amountIn",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "executionPrice",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "timeGap",
        "type": "uint40",
        "indexed": false,
        "internalType": "uint40"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "GenerateRequestKey",
    "inputs": [
      {
        "name": "account",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "key",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "isOpen",
        "type": "bool",
        "indexed": true,
        "internalType": "bool"
      }
    ],
    "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": "event",
    "name": "SetCopyTradeFeeRebateRate",
    "inputs": [
      {
        "name": "copyTradeFeeRebateRate",
        "type": "uint40",
        "indexed": true,
        "internalType": "uint40"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "SetEthTransferGasLimit",
    "inputs": [
      {
        "name": "ethTransferGasLimit",
        "type": "uint256",
        "indexed": true,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "SetExecutionFee",
    "inputs": [
      {
        "name": "executionFee",
        "type": "uint256",
        "indexed": true,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "SetMaxTimeDelay",
    "inputs": [
      {
        "name": "maxTimeDelay",
        "type": "uint40",
        "indexed": true,
        "internalType": "uint40"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "SetPositionDeadlineBuffer",
    "inputs": [
      {
        "name": "positionDeadlineBuffer",
        "type": "uint40",
        "indexed": true,
        "internalType": "uint40"
      }
    ],
    "anonymous": false
  }
]

PreviousInterfaces & ABINextSettleManager.sol

Last updated 4 months ago