{
  "_format": "hh-sol-artifact-1",
  "contractName": "UniswapV3IndexExchangeAdapter",
  "sourceName": "contracts/protocol/integration/index-exchange/UniswapV3IndexExchangeAdapter.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_router",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "uint24",
          "name": "fee",
          "type": "uint24"
        }
      ],
      "name": "getEncodedFeeData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getSpender",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_sourceToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_destinationToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_destinationAddress",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "_isSendTokenFixed",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "_sourceQuantity",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_destinationQuantity",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "getTradeCalldata",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "router",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a060405234801561001057600080fd5b5060405161082e38038061082e83398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6107966100986000398060bb52806102d1528061030752506107966000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063334fc28914610051578063b77e4bf51461006f578063e869b69b1461008f578063f887ea40146100b1575b600080fd5b6100596100b9565b604051610066919061054f565b60405180910390f35b61008261007d366004610465565b6100dd565b6040516100669190610593565b6100a261009d36600461038a565b610106565b60405161006693929190610563565b610059610305565b7f000000000000000000000000000000000000000000000000000000000000000090565b6060816040516020016100f09190610537565b6040516020818303038152906040529050919050565b60008060608161011c858263ffffffff61032916565b90506060886101fc5760405180608001604052806053815260200161070e605391396040518061010001604052808e6001600160a01b031681526020018d6001600160a01b031681526020018462ffffff1681526020018c6001600160a01b031681526020014281526020018981526020018a815260200160006001600160a01b03168152506040516024016101b291906105ff565b60408051601f1981840301815290829052916101cd9161051b565b6040519081900390206020820180516001600160e01b03166001600160e01b03199092169190911790526102cf565b6040518060800160405280605281526020016106bc605291396040518061010001604052808e6001600160a01b031681526020018d6001600160a01b031681526020018462ffffff1681526020018c6001600160a01b031681526020014281526020018a815260200189815260200160006001600160a01b031681525060405160240161028991906105ff565b60408051601f1981840301815290829052916102a49161051b565b6040519081900390206020820180516001600160e01b03166001600160e01b03199092169190911790525b7f00000000000000000000000000000000000000000000000000000000000000009d60009d50909b509950505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000818260030110156103575760405162461bcd60e51b815260040161034e906105a6565b60405180910390fd5b816003018351101561037b5760405162461bcd60e51b815260040161034e906105d1565b50818101600301515b92915050565b600080600080600080600060e0888a0312156103a4578283fd5b87356103af81610695565b965060208801356103bf81610695565b955060408801356103cf81610695565b945060608801356103df816106ad565b93506080880135925060a0880135915060c088013567ffffffffffffffff811115610408578182fd5b8089018a601f820112610419578283fd5b8035915061042e61042983610635565b61060e565b8281528b6020848401011115610442578384fd5b610453836020830160208501610659565b80935050505092959891949750929550565b600060208284031215610476578081fd5b813562ffffff81168114610488578182fd5b9392505050565b600081518084526104a7816020860160208601610665565b601f01601f19169290920160200192915050565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff16908401526060808301518216908401526080808301519084015260a0828101519084015260c0808301519084015260e09182015116910152565b6000825161052d818460208701610665565b9190910192915050565b60e89190911b6001600160e81b031916815260030190565b6001600160a01b0391909116815260200190565b600060018060a01b03851682528360208301526060604083015261058a606083018461048f565b95945050505050565b600060208252610488602083018461048f565b602080825260119082015270746f55696e7432345f6f766572666c6f7760781b604082015260600190565b602080825260149082015273746f55696e7432345f6f75744f66426f756e647360601b604082015260600190565b610100810161038482846104bb565b60405181810167ffffffffffffffff8111828210171561062d57600080fd5b604052919050565b600067ffffffffffffffff82111561064b578081fd5b50601f01601f191660200190565b82818337506000910152565b60005b83811015610680578181015183820152602001610668565b8381111561068f576000848401525b50505050565b6001600160a01b03811681146106aa57600080fd5b50565b80151581146106aa57600080fdfe6578616374496e70757453696e676c652828616464726573732c616464726573732c75696e7432342c616464726573732c75696e743235362c75696e743235362c75696e743235362c75696e74313630292965786163744f757470757453696e676c652828616464726573732c616464726573732c75696e7432342c616464726573732c75696e743235362c75696e743235362c75696e743235362c75696e743136302929a264697066735822122053b66bae9f7e32ee137d515013ecebe03cd5694bf0b4463074594d4ee4597e8f64736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063334fc28914610051578063b77e4bf51461006f578063e869b69b1461008f578063f887ea40146100b1575b600080fd5b6100596100b9565b604051610066919061054f565b60405180910390f35b61008261007d366004610465565b6100dd565b6040516100669190610593565b6100a261009d36600461038a565b610106565b60405161006693929190610563565b610059610305565b7f000000000000000000000000000000000000000000000000000000000000000090565b6060816040516020016100f09190610537565b6040516020818303038152906040529050919050565b60008060608161011c858263ffffffff61032916565b90506060886101fc5760405180608001604052806053815260200161070e605391396040518061010001604052808e6001600160a01b031681526020018d6001600160a01b031681526020018462ffffff1681526020018c6001600160a01b031681526020014281526020018981526020018a815260200160006001600160a01b03168152506040516024016101b291906105ff565b60408051601f1981840301815290829052916101cd9161051b565b6040519081900390206020820180516001600160e01b03166001600160e01b03199092169190911790526102cf565b6040518060800160405280605281526020016106bc605291396040518061010001604052808e6001600160a01b031681526020018d6001600160a01b031681526020018462ffffff1681526020018c6001600160a01b031681526020014281526020018a815260200189815260200160006001600160a01b031681525060405160240161028991906105ff565b60408051601f1981840301815290829052916102a49161051b565b6040519081900390206020820180516001600160e01b03166001600160e01b03199092169190911790525b7f00000000000000000000000000000000000000000000000000000000000000009d60009d50909b509950505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000818260030110156103575760405162461bcd60e51b815260040161034e906105a6565b60405180910390fd5b816003018351101561037b5760405162461bcd60e51b815260040161034e906105d1565b50818101600301515b92915050565b600080600080600080600060e0888a0312156103a4578283fd5b87356103af81610695565b965060208801356103bf81610695565b955060408801356103cf81610695565b945060608801356103df816106ad565b93506080880135925060a0880135915060c088013567ffffffffffffffff811115610408578182fd5b8089018a601f820112610419578283fd5b8035915061042e61042983610635565b61060e565b8281528b6020848401011115610442578384fd5b610453836020830160208501610659565b80935050505092959891949750929550565b600060208284031215610476578081fd5b813562ffffff81168114610488578182fd5b9392505050565b600081518084526104a7816020860160208601610665565b601f01601f19169290920160200192915050565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff16908401526060808301518216908401526080808301519084015260a0828101519084015260c0808301519084015260e09182015116910152565b6000825161052d818460208701610665565b9190910192915050565b60e89190911b6001600160e81b031916815260030190565b6001600160a01b0391909116815260200190565b600060018060a01b03851682528360208301526060604083015261058a606083018461048f565b95945050505050565b600060208252610488602083018461048f565b602080825260119082015270746f55696e7432345f6f766572666c6f7760781b604082015260600190565b602080825260149082015273746f55696e7432345f6f75744f66426f756e647360601b604082015260600190565b610100810161038482846104bb565b60405181810167ffffffffffffffff8111828210171561062d57600080fd5b604052919050565b600067ffffffffffffffff82111561064b578081fd5b50601f01601f191660200190565b82818337506000910152565b60005b83811015610680578181015183820152602001610668565b8381111561068f576000848401525b50505050565b6001600160a01b03811681146106aa57600080fd5b50565b80151581146106aa57600080fdfe6578616374496e70757453696e676c652828616464726573732c616464726573732c75696e7432342c616464726573732c75696e743235362c75696e743235362c75696e743235362c75696e74313630292965786163744f757470757453696e676c652828616464726573732c616464726573732c75696e7432342c616464726573732c75696e743235362c75696e743235362c75696e743235362c75696e743136302929a264697066735822122053b66bae9f7e32ee137d515013ecebe03cd5694bf0b4463074594d4ee4597e8f64736f6c634300060a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
