{
  "generated": "Generated. Do not edit.",
  "abi": [
    {
      "type": "constructor",
      "inputs": [
        {
          "name": "factory_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "swapRouter_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "owner_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "defaultFee_",
          "type": "uint24",
          "internalType": "uint24"
        },
        {
          "name": "twapWindow_",
          "type": "uint32",
          "internalType": "uint32"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "acceptOwner",
      "inputs": [],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "defaultFee",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint24",
          "internalType": "uint24"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "factory",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract IUniswapV3Factory"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "feeOf",
      "inputs": [
        {
          "name": "tokenA",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "tokenB",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "fee",
          "type": "uint24",
          "internalType": "uint24"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "owner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pairFee",
      "inputs": [
        {
          "name": "token0",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "token1",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "fee",
          "type": "uint24",
          "internalType": "uint24"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pendingOwner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "quote",
      "inputs": [
        {
          "name": "amountIn",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "path",
          "type": "address[]",
          "internalType": "address[]"
        }
      ],
      "outputs": [
        {
          "name": "amountOut",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "setDefaultFee",
      "inputs": [
        {
          "name": "fee",
          "type": "uint24",
          "internalType": "uint24"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setOwner",
      "inputs": [
        {
          "name": "owner_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setPairFee",
      "inputs": [
        {
          "name": "tokenA",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "tokenB",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "fee",
          "type": "uint24",
          "internalType": "uint24"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setTwapWindow",
      "inputs": [
        {
          "name": "window",
          "type": "uint32",
          "internalType": "uint32"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "swapExactTokensForTokens",
      "inputs": [
        {
          "name": "amountIn",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "amountOutMin",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "path",
          "type": "address[]",
          "internalType": "address[]"
        },
        {
          "name": "to",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "amountOut",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "swapRouter",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract IUniV3SwapRouter"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "twapWindow",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint32",
          "internalType": "uint32"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "event",
      "name": "DefaultFeeSet",
      "inputs": [
        {
          "name": "fee",
          "type": "uint24",
          "indexed": false,
          "internalType": "uint24"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnerPending",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnerSet",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "PairFeeSet",
      "inputs": [
        {
          "name": "tokenA",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "tokenB",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "fee",
          "type": "uint24",
          "indexed": false,
          "internalType": "uint24"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "TwapWindowSet",
      "inputs": [
        {
          "name": "window",
          "type": "uint32",
          "indexed": false,
          "internalType": "uint32"
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "InvalidFee",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidPath",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidTick",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NoPool",
      "inputs": [
        {
          "name": "tokenA",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "tokenB",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "fee",
          "type": "uint24",
          "internalType": "uint24"
        }
      ]
    },
    {
      "type": "error",
      "name": "NotOwner",
      "inputs": []
    },
    {
      "type": "error",
      "name": "Overflow",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ReentrancyGuardReentrantCall",
      "inputs": []
    },
    {
      "type": "error",
      "name": "SafeERC20FailedOperation",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "ZeroAddress",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ZeroAmount",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ZeroAmount",
      "inputs": []
    }
  ]
}
