[
  {
    "inputs": [],
    "name": "getAddressETH",
    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "buyAddr", "type": "address" },
      { "internalType": "address", "name": "sellAddr", "type": "address" },
      { "internalType": "uint256", "name": "sellAmt", "type": "uint256" },
      { "internalType": "uint256", "name": "slippage", "type": "uint256" },
      { "internalType": "uint256", "name": "distribution", "type": "uint256" },
      { "internalType": "uint256", "name": "disableDexes", "type": "uint256" }
    ],
    "name": "getBuyAmount",
    "outputs": [
      { "internalType": "uint256", "name": "buyAmt", "type": "uint256" },
      { "internalType": "uint256", "name": "unitAmt", "type": "uint256" },
      {
        "internalType": "uint256[]",
        "name": "distributions",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "contract TokenInterface[]",
        "name": "tokens",
        "type": "address[]"
      },
      { "internalType": "uint256", "name": "sellAmt", "type": "uint256" },
      { "internalType": "uint256", "name": "slippage", "type": "uint256" },
      {
        "internalType": "uint256[]",
        "name": "distribution",
        "type": "uint256[]"
      },
      {
        "internalType": "uint256[]",
        "name": "disableDexes",
        "type": "uint256[]"
      },
      {
        "internalType": "uint256[]",
        "name": "destTokenEthPriceTimesGasPrices",
        "type": "uint256[]"
      }
    ],
    "name": "getBuyAmountMultiWithGas",
    "outputs": [
      { "internalType": "uint256", "name": "buyAmt", "type": "uint256" },
      { "internalType": "uint256", "name": "unitAmt", "type": "uint256" },
      {
        "internalType": "uint256[]",
        "name": "distributions",
        "type": "uint256[]"
      },
      {
        "internalType": "uint256[]",
        "name": "returnAmounts",
        "type": "uint256[]"
      },
      {
        "internalType": "uint256",
        "name": "estimateGasAmount",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "buyAddr", "type": "address" },
      { "internalType": "address", "name": "sellAddr", "type": "address" },
      { "internalType": "uint256", "name": "sellAmt", "type": "uint256" },
      { "internalType": "uint256", "name": "slippage", "type": "uint256" },
      { "internalType": "uint256", "name": "distribution", "type": "uint256" },
      { "internalType": "uint256", "name": "disableDexes", "type": "uint256" },
      {
        "internalType": "uint256",
        "name": "destTokenEthPriceTimesGasPrices",
        "type": "uint256"
      }
    ],
    "name": "getBuyAmountWithGas",
    "outputs": [
      { "internalType": "uint256", "name": "buyAmt", "type": "uint256" },
      { "internalType": "uint256", "name": "unitAmt", "type": "uint256" },
      {
        "internalType": "uint256[]",
        "name": "distributions",
        "type": "uint256[]"
      },
      {
        "internalType": "uint256",
        "name": "estimateGasAmount",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "internalType": "contract TokenInterface[]",
            "name": "tokens",
            "type": "address[]"
          },
          {
            "internalType": "uint256[]",
            "name": "distribution",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256[]",
            "name": "disableDexes",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256[]",
            "name": "destTokenEthPriceTimesGasPrices",
            "type": "uint256[]"
          }
        ],
        "internalType": "struct Resolver.MultiTokenPaths[]",
        "name": "multiTokenPaths",
        "type": "tuple[]"
      },
      { "internalType": "uint256", "name": "sellAmt", "type": "uint256" },
      { "internalType": "uint256", "name": "slippage", "type": "uint256" }
    ],
    "name": "getBuyAmountsMulti",
    "outputs": [
      {
        "components": [
          { "internalType": "uint256", "name": "buyAmt", "type": "uint256" },
          { "internalType": "uint256", "name": "unitAmt", "type": "uint256" },
          {
            "internalType": "uint256[]",
            "name": "distributions",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256[]",
            "name": "returnAmounts",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256",
            "name": "estimateGasAmount",
            "type": "uint256"
          }
        ],
        "internalType": "struct Resolver.MultiTokenPathsBuyAmt[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
    "stateMutability": "view",
    "type": "function"
  }
]
