{
  "_format": "hh-sol-artifact-1",
  "contractName": "UniswapV3ExchangeAdapter",
  "sourceName": "contracts/protocol/integration/exchange/UniswapV3ExchangeAdapter.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_swapRouter",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_path",
          "type": "address[]"
        },
        {
          "internalType": "uint24[]",
          "name": "_fees",
          "type": "uint24[]"
        }
      ],
      "name": "generateDataParam",
      "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": "uint256",
          "name": "_sourceQuantity",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_minDestinationQuantity",
          "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": "swapRouter",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a060405234801561001057600080fd5b50604051610a2e380380610a2e83398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6109966100986000398060bb52806101c152806103e552506109966000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063334fc2891461005157806340ab081d1461006f578063c31c9c071461008f578063e171fcab14610097575b600080fd5b6100596100b9565b6040516100669190610743565b60405180910390f35b61008261007d3660046105ec565b6100dd565b6040516100669190610787565b6100596101bf565b6100aa6100a5366004610536565b6101e3565b60405161006693929190610757565b7f000000000000000000000000000000000000000000000000000000000000000090565b60408051602081019091526000808252606091905b600019860181101561016d578187878381811061010b57fe5b90506020020160208101906101209190610514565b86868481811061012c57fe5b90506020020160208101906101419190610655565b604051602001610153939291906106db565b60408051601f1981840301815291905291506001016100f2565b50808686600019810181811061017f57fe5b90506020020160208101906101949190610514565b6040516020016101a59291906106a4565b604051602081830303815290604052915050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060606000610234600087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff61041d169050565b9050806001600160a01b03168b6001600160a01b0316146102705760405162461bcd60e51b8152600401610267906107c9565b60405180910390fd5b60006102c16014888890500388888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff61041d169050565b9050806001600160a01b03168b6001600160a01b0316146102f45760405162461bcd60e51b81526004016102679061081d565b6102fc61047c565b6040518060a0016040528089898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020018c6001600160a01b031681526020014281526020018b81526020018a8152509050606060405180606001604052806033815260200161092e603391398260405160240161039e91906108a6565b60408051601f1981840301815290829052916103b991610727565b6040519081900390206020820180516001600160e01b03166001600160e01b03199092169190911790527f00000000000000000000000000000000000000000000000000000000000000009750600096509450505050509750975097945050505050565b6000818260140110156104425760405162461bcd60e51b81526004016102679061087a565b81601401835110156104665760405162461bcd60e51b81526004016102679061079a565b5081810160200151600160601b90045b92915050565b6040518060a001604052806060815260200160006001600160a01b031681526020016000815260200160008152602001600081525090565b80356001600160a01b038116811461047657600080fd5b60008083601f8401126104dc578182fd5b50813567ffffffffffffffff8111156104f3578182fd5b602083019150836020808302850101111561050d57600080fd5b9250929050565b600060208284031215610525578081fd5b61052f83836104b4565b9392505050565b600080600080600080600060c0888a031215610550578283fd5b61055a89896104b4565b96506105698960208a016104b4565b95506105788960408a016104b4565b9450606088013593506080880135925060a088013567ffffffffffffffff808211156105a2578384fd5b818a018b601f8201126105b3578485fd5b80359250818311156105c3578485fd5b8b60208483010111156105d4578485fd5b60208101945050508091505092959891949750929550565b60008060008060408587031215610601578384fd5b843567ffffffffffffffff80821115610618578586fd5b610624888389016104cb565b9096509450602087013591508082111561063c578384fd5b50610649878288016104cb565b95989497509550505050565b600060208284031215610666578081fd5b813562ffffff8116811461052f578182fd5b600081518084526106908160208601602086016108fd565b601f01601f19169290920160200192915050565b600083516106b68184602088016108fd565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600084516106ed8184602089016108fd565b60609490941b6bffffffffffffffffffffffff19169190930190815260e89190911b6001600160e81b031916601482015260170192915050565b600082516107398184602087016108fd565b9190910192915050565b6001600160a01b0391909116815260200190565b600060018060a01b03851682528360208301526060604083015261077e6060830184610678565b95945050505050565b60006020825261052f6020830184610678565b602080825260159082015274746f416464726573735f6f75744f66426f756e647360581b604082015260600190565b60208082526034908201527f556e6973776170563345786368616e6765416461707465723a20736f75726365604082015273040e8ded6cadc40e0c2e8d040dad2e6dac2e8c6d60631b606082015260800190565b60208082526039908201527f556e6973776170563345786368616e6765416461707465723a2064657374696e60408201527f6174696f6e20746f6b656e2070617468206d69736d6174636800000000000000606082015260800190565b602080825260129082015271746f416464726573735f6f766572666c6f7760701b604082015260600190565b600060208252825160a060208401526108c260c0840182610678565b60018060a01b0360208601511660408501526040850151606085015260608501516080850152608085015160a0850152809250505092915050565b60005b83811015610918578181015183820152602001610900565b83811115610927576000848401525b5050505056fe6578616374496e707574282862797465732c616464726573732c75696e743235362c75696e743235362c75696e743235362929a2646970667358221220036549d47e7a5f21a6a3677756f0aa1d50773c3197b01d1dafd0188856c0af5e64736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063334fc2891461005157806340ab081d1461006f578063c31c9c071461008f578063e171fcab14610097575b600080fd5b6100596100b9565b6040516100669190610743565b60405180910390f35b61008261007d3660046105ec565b6100dd565b6040516100669190610787565b6100596101bf565b6100aa6100a5366004610536565b6101e3565b60405161006693929190610757565b7f000000000000000000000000000000000000000000000000000000000000000090565b60408051602081019091526000808252606091905b600019860181101561016d578187878381811061010b57fe5b90506020020160208101906101209190610514565b86868481811061012c57fe5b90506020020160208101906101419190610655565b604051602001610153939291906106db565b60408051601f1981840301815291905291506001016100f2565b50808686600019810181811061017f57fe5b90506020020160208101906101949190610514565b6040516020016101a59291906106a4565b604051602081830303815290604052915050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060606000610234600087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff61041d169050565b9050806001600160a01b03168b6001600160a01b0316146102705760405162461bcd60e51b8152600401610267906107c9565b60405180910390fd5b60006102c16014888890500388888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff61041d169050565b9050806001600160a01b03168b6001600160a01b0316146102f45760405162461bcd60e51b81526004016102679061081d565b6102fc61047c565b6040518060a0016040528089898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020018c6001600160a01b031681526020014281526020018b81526020018a8152509050606060405180606001604052806033815260200161092e603391398260405160240161039e91906108a6565b60408051601f1981840301815290829052916103b991610727565b6040519081900390206020820180516001600160e01b03166001600160e01b03199092169190911790527f00000000000000000000000000000000000000000000000000000000000000009750600096509450505050509750975097945050505050565b6000818260140110156104425760405162461bcd60e51b81526004016102679061087a565b81601401835110156104665760405162461bcd60e51b81526004016102679061079a565b5081810160200151600160601b90045b92915050565b6040518060a001604052806060815260200160006001600160a01b031681526020016000815260200160008152602001600081525090565b80356001600160a01b038116811461047657600080fd5b60008083601f8401126104dc578182fd5b50813567ffffffffffffffff8111156104f3578182fd5b602083019150836020808302850101111561050d57600080fd5b9250929050565b600060208284031215610525578081fd5b61052f83836104b4565b9392505050565b600080600080600080600060c0888a031215610550578283fd5b61055a89896104b4565b96506105698960208a016104b4565b95506105788960408a016104b4565b9450606088013593506080880135925060a088013567ffffffffffffffff808211156105a2578384fd5b818a018b601f8201126105b3578485fd5b80359250818311156105c3578485fd5b8b60208483010111156105d4578485fd5b60208101945050508091505092959891949750929550565b60008060008060408587031215610601578384fd5b843567ffffffffffffffff80821115610618578586fd5b610624888389016104cb565b9096509450602087013591508082111561063c578384fd5b50610649878288016104cb565b95989497509550505050565b600060208284031215610666578081fd5b813562ffffff8116811461052f578182fd5b600081518084526106908160208601602086016108fd565b601f01601f19169290920160200192915050565b600083516106b68184602088016108fd565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600084516106ed8184602089016108fd565b60609490941b6bffffffffffffffffffffffff19169190930190815260e89190911b6001600160e81b031916601482015260170192915050565b600082516107398184602087016108fd565b9190910192915050565b6001600160a01b0391909116815260200190565b600060018060a01b03851682528360208301526060604083015261077e6060830184610678565b95945050505050565b60006020825261052f6020830184610678565b602080825260159082015274746f416464726573735f6f75744f66426f756e647360581b604082015260600190565b60208082526034908201527f556e6973776170563345786368616e6765416461707465723a20736f75726365604082015273040e8ded6cadc40e0c2e8d040dad2e6dac2e8c6d60631b606082015260800190565b60208082526039908201527f556e6973776170563345786368616e6765416461707465723a2064657374696e60408201527f6174696f6e20746f6b656e2070617468206d69736d6174636800000000000000606082015260800190565b602080825260129082015271746f416464726573735f6f766572666c6f7760701b604082015260600190565b600060208252825160a060208401526108c260c0840182610678565b60018060a01b0360208601511660408501526040850151606085015260608501516080850152608085015160a0850152809250505092915050565b60005b83811015610918578181015183820152602001610900565b83811115610927576000848401525b5050505056fe6578616374496e707574282862797465732c616464726573732c75696e743235362c75696e743235362c75696e743235362929a2646970667358221220036549d47e7a5f21a6a3677756f0aa1d50773c3197b01d1dafd0188856c0af5e64736f6c634300060a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
