SHOOK / OFFICIAL PROTOCOLDocumentation
MAINNET EDITIONOpen SHOOK

PermanentMarketRouter

Complete compiled interface, including inherited methods.

Solidity 0.8.36+commit.8a079791 · Download ABI ↓ ·

Constructor 1

nonpayableconstructor(address, address, address)
{
  "type": "constructor",
  "inputs": [
    {
      "name": "poolManager_",
      "type": "address",
      "internalType": "contract IPoolManager"
    },
    {
      "name": "shook_",
      "type": "address",
      "internalType": "contract IERC20"
    },
    {
      "name": "liquidityVault_",
      "type": "address",
      "internalType": "contract ILockedLiquidityPool"
    }
  ],
  "stateMutability": "nonpayable"
}

Functions 8

payablebuyExactETHIn(uint256, address, uint256)
{
  "type": "function",
  "name": "buyExactETHIn",
  "inputs": [
    {
      "name": "minShookOut",
      "type": "uint256",
      "internalType": "uint256"
    },
    {
      "name": "receiver",
      "type": "address",
      "internalType": "address"
    },
    {
      "name": "deadline",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "outputs": [
    {
      "name": "shookOut",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "payable"
}
payablebuyExactSHOOKOut(uint256, uint256, address, uint256)
{
  "type": "function",
  "name": "buyExactSHOOKOut",
  "inputs": [
    {
      "name": "shookOut",
      "type": "uint256",
      "internalType": "uint256"
    },
    {
      "name": "maxETHIn",
      "type": "uint256",
      "internalType": "uint256"
    },
    {
      "name": "receiver",
      "type": "address",
      "internalType": "address"
    },
    {
      "name": "deadline",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "outputs": [
    {
      "name": "ethSpent",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "payable"
}
viewpoolKey()
{
  "type": "function",
  "name": "poolKey",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "tuple",
      "internalType": "struct PoolKey",
      "components": [
        {
          "name": "currency0",
          "type": "address",
          "internalType": "Currency"
        },
        {
          "name": "currency1",
          "type": "address",
          "internalType": "Currency"
        },
        {
          "name": "fee",
          "type": "uint24",
          "internalType": "uint24"
        },
        {
          "name": "tickSpacing",
          "type": "int24",
          "internalType": "int24"
        },
        {
          "name": "hooks",
          "type": "address",
          "internalType": "contract IHooks"
        }
      ]
    }
  ],
  "stateMutability": "view"
}
viewpoolManager()
{
  "type": "function",
  "name": "poolManager",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "address",
      "internalType": "contract IPoolManager"
    }
  ],
  "stateMutability": "view"
}
nonpayablesellExactETHOut(uint256, uint256, address, uint256)
{
  "type": "function",
  "name": "sellExactETHOut",
  "inputs": [
    {
      "name": "ethOut",
      "type": "uint256",
      "internalType": "uint256"
    },
    {
      "name": "maxShookIn",
      "type": "uint256",
      "internalType": "uint256"
    },
    {
      "name": "receiver",
      "type": "address",
      "internalType": "address payable"
    },
    {
      "name": "deadline",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "outputs": [
    {
      "name": "shookSpent",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "nonpayable"
}
nonpayablesellExactSHOOKIn(uint256, uint256, address, uint256)
{
  "type": "function",
  "name": "sellExactSHOOKIn",
  "inputs": [
    {
      "name": "shookIn",
      "type": "uint256",
      "internalType": "uint256"
    },
    {
      "name": "minETHOut",
      "type": "uint256",
      "internalType": "uint256"
    },
    {
      "name": "receiver",
      "type": "address",
      "internalType": "address payable"
    },
    {
      "name": "deadline",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "outputs": [
    {
      "name": "ethOut",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "nonpayable"
}
viewshook()
{
  "type": "function",
  "name": "shook",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "address",
      "internalType": "contract IERC20"
    }
  ],
  "stateMutability": "view"
}
nonpayableunlockCallback(bytes)
{
  "type": "function",
  "name": "unlockCallback",
  "inputs": [
    {
      "name": "data",
      "type": "bytes",
      "internalType": "bytes"
    }
  ],
  "outputs": [
    {
      "name": "",
      "type": "bytes",
      "internalType": "bytes"
    }
  ],
  "stateMutability": "nonpayable"
}

Events 1

eventPermanentSwap(address, address, bool, bool, uint256, uint256)
{
  "type": "event",
  "name": "PermanentSwap",
  "inputs": [
    {
      "name": "payer",
      "type": "address",
      "indexed": true,
      "internalType": "address"
    },
    {
      "name": "receiver",
      "type": "address",
      "indexed": true,
      "internalType": "address"
    },
    {
      "name": "isBuy",
      "type": "bool",
      "indexed": true,
      "internalType": "bool"
    },
    {
      "name": "exactInput",
      "type": "bool",
      "indexed": false,
      "internalType": "bool"
    },
    {
      "name": "shookAmount",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    },
    {
      "name": "ethAmount",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    }
  ],
  "anonymous": false
}

Errors 13

errorDeadlineExpired()
{
  "type": "error",
  "name": "DeadlineExpired",
  "inputs": []
}
errorInvalidDelta()
{
  "type": "error",
  "name": "InvalidDelta",
  "inputs": []
}
errorInvalidPool()
{
  "type": "error",
  "name": "InvalidPool",
  "inputs": []
}
errorNativeTransferFailed()
{
  "type": "error",
  "name": "NativeTransferFailed",
  "inputs": []
}
errorNativeTransferRejected()
{
  "type": "error",
  "name": "NativeTransferRejected",
  "inputs": []
}
errorOnlyPoolManager()
{
  "type": "error",
  "name": "OnlyPoolManager",
  "inputs": []
}
errorReentrancyGuardReentrantCall()
{
  "type": "error",
  "name": "ReentrancyGuardReentrantCall",
  "inputs": []
}
errorSafeCastOverflowedIntToUint(int256)
{
  "type": "error",
  "name": "SafeCastOverflowedIntToUint",
  "inputs": [
    {
      "name": "value",
      "type": "int256",
      "internalType": "int256"
    }
  ]
}
errorSafeCastOverflowedUintToInt(uint256)
{
  "type": "error",
  "name": "SafeCastOverflowedUintToInt",
  "inputs": [
    {
      "name": "value",
      "type": "uint256",
      "internalType": "uint256"
    }
  ]
}
errorSafeERC20FailedOperation(address)
{
  "type": "error",
  "name": "SafeERC20FailedOperation",
  "inputs": [
    {
      "name": "token",
      "type": "address",
      "internalType": "address"
    }
  ]
}
errorSlippageExceeded()
{
  "type": "error",
  "name": "SlippageExceeded",
  "inputs": []
}
errorZeroAddress()
{
  "type": "error",
  "name": "ZeroAddress",
  "inputs": []
}
errorZeroAmount()
{
  "type": "error",
  "name": "ZeroAmount",
  "inputs": []
}

Receive 1

payablereceive()
{
  "type": "receive",
  "stateMutability": "payable"
}

Source and provenance

Imported source files 27

Supporting contracts, interfaces, and libraries imported by the sources above, including their dependencies.

Source fingerprint: 3aa777a77b99551fc33720bc204c6478a4fb635d09b135d6a09dced54b06a637. Download manifest.