[
  {
    "inputs": [],
    "name": "eip712Domain",
    "outputs": [
      {
        "name": "fields",
        "type": "bytes1"
      },
      {
        "name": "name",
        "type": "string"
      },
      {
        "name": "version",
        "type": "string"
      },
      {
        "name": "chainId",
        "type": "uint256"
      },
      {
        "name": "verifyingContract",
        "type": "address"
      },
      {
        "name": "salt",
        "type": "bytes32"
      },
      {
        "name": "extensions",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "components": [
              {
                "name": "user",
                "type": "address"
              },
              {
                "name": "pool",
                "type": "address"
              },
              {
                "name": "sharesIn",
                "type": "uint256"
              },
              {
                "name": "minAmountsOut",
                "type": "uint256[]"
              },
              {
                "name": "recipient",
                "type": "address"
              },
              {
                "name": "deadline",
                "type": "uint256"
              },
              {
                "name": "nonce",
                "type": "uint256"
              }
            ],
            "name": "intent",
            "type": "tuple"
          },
          {
            "name": "v",
            "type": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32"
          }
        ],
        "name": "signedIntents",
        "type": "tuple[]"
      },
      {
        "name": "pythUpdateData",
        "type": "bytes[]"
      },
      {
        "components": [
          {
            "name": "token",
            "type": "address"
          },
          {
            "name": "priceInWad",
            "type": "uint256"
          },
          {
            "name": "timestamp",
            "type": "uint256"
          },
          {
            "name": "v",
            "type": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32"
          }
        ],
        "name": "cexPriceData",
        "type": "tuple[]"
      }
    ],
    "name": "executeExitProportionalIntents",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "components": [
              {
                "name": "user",
                "type": "address"
              },
              {
                "name": "pool",
                "type": "address"
              },
              {
                "name": "tokenIn",
                "type": "address"
              },
              {
                "name": "amountIn",
                "type": "uint256"
              },
              {
                "name": "minSharesOut",
                "type": "uint256"
              },
              {
                "name": "recipient",
                "type": "address"
              },
              {
                "name": "deadline",
                "type": "uint256"
              },
              {
                "name": "nonce",
                "type": "uint256"
              }
            ],
            "name": "intent",
            "type": "tuple"
          },
          {
            "name": "v",
            "type": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32"
          }
        ],
        "name": "signedIntents",
        "type": "tuple[]"
      },
      {
        "name": "pythUpdateData",
        "type": "bytes[]"
      },
      {
        "components": [
          {
            "name": "token",
            "type": "address"
          },
          {
            "name": "priceInWad",
            "type": "uint256"
          },
          {
            "name": "timestamp",
            "type": "uint256"
          },
          {
            "name": "v",
            "type": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32"
          }
        ],
        "name": "cexPriceData",
        "type": "tuple[]"
      }
    ],
    "name": "executeJoinIntents",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "components": [
              {
                "name": "user",
                "type": "address"
              },
              {
                "name": "pool",
                "type": "address"
              },
              {
                "name": "tokensIn",
                "type": "address[]"
              },
              {
                "name": "amountsIn",
                "type": "uint256[]"
              },
              {
                "name": "minSharesOut",
                "type": "uint256"
              },
              {
                "name": "recipient",
                "type": "address"
              },
              {
                "name": "deadline",
                "type": "uint256"
              },
              {
                "name": "nonce",
                "type": "uint256"
              }
            ],
            "name": "intent",
            "type": "tuple"
          },
          {
            "name": "v",
            "type": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32"
          }
        ],
        "name": "signedIntents",
        "type": "tuple[]"
      },
      {
        "name": "pythUpdateData",
        "type": "bytes[]"
      },
      {
        "components": [
          {
            "name": "token",
            "type": "address"
          },
          {
            "name": "priceInWad",
            "type": "uint256"
          },
          {
            "name": "timestamp",
            "type": "uint256"
          },
          {
            "name": "v",
            "type": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32"
          }
        ],
        "name": "cexPriceData",
        "type": "tuple[]"
      }
    ],
    "name": "executeJoinProportionalIntents",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "components": [
              {
                "name": "user",
                "type": "address"
              },
              {
                "name": "tokenIn",
                "type": "address"
              },
              {
                "name": "tokenOut",
                "type": "address"
              },
              {
                "name": "amountIn",
                "type": "uint256"
              },
              {
                "name": "minAmountOut",
                "type": "uint256"
              },
              {
                "components": [
                  {
                    "name": "pool",
                    "type": "address"
                  },
                  {
                    "name": "tokenIn",
                    "type": "address"
                  },
                  {
                    "name": "tokenOut",
                    "type": "address"
                  }
                ],
                "name": "path",
                "type": "tuple[]"
              },
              {
                "name": "recipient",
                "type": "address"
              },
              {
                "name": "deadline",
                "type": "uint256"
              },
              {
                "name": "nonce",
                "type": "uint256"
              }
            ],
            "name": "intent",
            "type": "tuple"
          },
          {
            "name": "v",
            "type": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32"
          }
        ],
        "name": "signedIntents",
        "type": "tuple[]"
      },
      {
        "name": "pythUpdateData",
        "type": "bytes[]"
      },
      {
        "components": [
          {
            "name": "token",
            "type": "address"
          },
          {
            "name": "priceInWad",
            "type": "uint256"
          },
          {
            "name": "timestamp",
            "type": "uint256"
          },
          {
            "name": "v",
            "type": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32"
          }
        ],
        "name": "cexPriceData",
        "type": "tuple[]"
      }
    ],
    "name": "executeSwapIntents",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "name": "exitProportionalNonces",
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "factory",
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "feeCollector",
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "intentFee",
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "name": "joinNonces",
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "name": "joinProportionalNonces",
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxHops",
    "outputs": [
      {
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxIntentsPerBatch",
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "oracle",
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "name": "poolToGaugeVault",
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "name": "swapNonces",
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "name": "pool",
            "type": "address"
          },
          {
            "name": "tokenIn",
            "type": "address"
          },
          {
            "name": "tokenOut",
            "type": "address"
          }
        ],
        "name": "path",
        "type": "tuple[]"
      }
    ],
    "name": "validatePath",
    "outputs": [
      {
        "name": "isValid",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  }
]
