{
  "_format": "hh-sol-artifact-1",
  "contractName": "UniswapV2ExchangeAdapterV2",
  "sourceName": "contracts/protocol/integration/exchange/UniswapV2ExchangeAdapterV2.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_router",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_sourceToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_destinationToken",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "_fixIn",
          "type": "bool"
        }
      ],
      "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": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_destinationAddress",
          "type": "address"
        },
        {
          "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": [
        {
          "internalType": "address[]",
          "name": "_path",
          "type": "address[]"
        },
        {
          "internalType": "bool",
          "name": "_shouldSwapExactTokensForTokens",
          "type": "bool"
        }
      ],
      "name": "getUniswapExchangeData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "router",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a060405234801561001057600080fd5b506040516108e23803806108e283398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6108496100996000398061010652806102a052806102d852506108496000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632173867a1461005c578063334fc2891461008557806347e6fbc01461009a578063e171fcab146100ad578063f887ea40146100cf575b600080fd5b61006f61006a366004610421565b6100d7565b60405161007c919061066a565b60405180910390f35b61008d610104565b60405161007c9190610602565b61006f6100a83660046103d7565b610128565b6100c06100bb366004610310565b6101c9565b60405161007c93929190610616565b61008d6102d6565b606082826040516020016100ec929190610646565b60405160208183030381529060405290505b92915050565b7f000000000000000000000000000000000000000000000000000000000000000090565b604080516002808252606080830184529283929190602083019080368337019050509050848160008151811061015a57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050838160018151811061018857fe5b6001600160a01b039092166020928302919091018201526040516101b0918391869101610646565b6040516020818303038152906040529150509392505050565b6000806060806000858060200190518101906101e591906104d3565b9150915060608161020e576040518060800160405280604381526020016107d160439139610228565b60405180608001604052806043815260200161078e604391395b826102335788610235565b895b83610240578a610242565b895b858d42604051602401610259959493929190610684565b60408051601f198184030181529082905291610274916105e6565b6040519081900390206020820180516001600160e01b03166001600160e01b03199092169190911790527f0000000000000000000000000000000000000000000000000000000000000000965060009550935050505096509650969350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b80356100fe8161077f565b80516100fe8161077f565b60008060008060008060c08789031215610328578182fd5b863561033381610767565b9550602087013561034381610767565b9450604087013561035381610767565b9350606087013592506080870135915060a087013567ffffffffffffffff81111561037c578182fd5b80880189601f82011261038d578283fd5b803591506103a261039d83610707565b6106c0565b8281528a60208484010111156103b6578384fd5b6103c783602083016020850161072b565b8093505050509295509295509295565b6000806000606084860312156103eb578283fd5b83356103f681610767565b9250602084013561040681610767565b915060408401356104168161077f565b809150509250925092565b60008060408385031215610433578182fd5b823567ffffffffffffffff811115610449578283fd5b80840185601f82011261045a578384fd5b8035915061046a61039d836106e7565b80838252602080830192508084018982838802870101111561048a578788fd5b8794505b858510156104b55780356104a181610767565b84526001949094019392810192810161048e565b508196506104c589828a016102fa565b955050505050509250929050565b600080604083850312156104e5578182fd5b825167ffffffffffffffff8111156104fb578283fd5b80840185601f82011261050c578384fd5b8051915061051c61039d836106e7565b80838252602080830192508084018982838802870101111561053c578788fd5b8794505b8585101561056757805161055381610767565b845260019490940193928101928101610540565b508196506104c589828a01610305565b6000815180845260208085019450808401835b838110156105af5781516001600160a01b03168752958201959082019060010161058a565b509495945050505050565b600081518084526105d2816020860160208601610737565b601f01601f19169290920160200192915050565b600082516105f8818460208701610737565b9190910192915050565b6001600160a01b0391909116815260200190565b600060018060a01b03851682528360208301526060604083015261063d60608301846105ba565b95945050505050565b6000604082526106596040830185610577565b905082151560208301529392505050565b60006020825261067d60208301846105ba565b9392505050565b600086825285602083015260a060408301526106a360a0830186610577565b6001600160a01b0394909416606083015250608001529392505050565b60405181810167ffffffffffffffff811182821017156106df57600080fd5b604052919050565b600067ffffffffffffffff8211156106fd578081fd5b5060209081020190565b600067ffffffffffffffff82111561071d578081fd5b50601f01601f191660200190565b82818337506000910152565b60005b8381101561075257818101518382015260200161073a565b83811115610761576000848401525b50505050565b6001600160a01b038116811461077c57600080fd5b50565b801515811461077c57600080fdfe737761704578616374546f6b656e73466f72546f6b656e732875696e743235362c75696e743235362c616464726573735b5d2c616464726573732c75696e743235362973776170546f6b656e73466f724578616374546f6b656e732875696e743235362c75696e743235362c616464726573735b5d2c616464726573732c75696e7432353629a264697066735822122082d8603562da8a34190e2afeb854bacfed79780401b4a17108537504d4907a3864736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80632173867a1461005c578063334fc2891461008557806347e6fbc01461009a578063e171fcab146100ad578063f887ea40146100cf575b600080fd5b61006f61006a366004610421565b6100d7565b60405161007c919061066a565b60405180910390f35b61008d610104565b60405161007c9190610602565b61006f6100a83660046103d7565b610128565b6100c06100bb366004610310565b6101c9565b60405161007c93929190610616565b61008d6102d6565b606082826040516020016100ec929190610646565b60405160208183030381529060405290505b92915050565b7f000000000000000000000000000000000000000000000000000000000000000090565b604080516002808252606080830184529283929190602083019080368337019050509050848160008151811061015a57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050838160018151811061018857fe5b6001600160a01b039092166020928302919091018201526040516101b0918391869101610646565b6040516020818303038152906040529150509392505050565b6000806060806000858060200190518101906101e591906104d3565b9150915060608161020e576040518060800160405280604381526020016107d160439139610228565b60405180608001604052806043815260200161078e604391395b826102335788610235565b895b83610240578a610242565b895b858d42604051602401610259959493929190610684565b60408051601f198184030181529082905291610274916105e6565b6040519081900390206020820180516001600160e01b03166001600160e01b03199092169190911790527f0000000000000000000000000000000000000000000000000000000000000000965060009550935050505096509650969350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b80356100fe8161077f565b80516100fe8161077f565b60008060008060008060c08789031215610328578182fd5b863561033381610767565b9550602087013561034381610767565b9450604087013561035381610767565b9350606087013592506080870135915060a087013567ffffffffffffffff81111561037c578182fd5b80880189601f82011261038d578283fd5b803591506103a261039d83610707565b6106c0565b8281528a60208484010111156103b6578384fd5b6103c783602083016020850161072b565b8093505050509295509295509295565b6000806000606084860312156103eb578283fd5b83356103f681610767565b9250602084013561040681610767565b915060408401356104168161077f565b809150509250925092565b60008060408385031215610433578182fd5b823567ffffffffffffffff811115610449578283fd5b80840185601f82011261045a578384fd5b8035915061046a61039d836106e7565b80838252602080830192508084018982838802870101111561048a578788fd5b8794505b858510156104b55780356104a181610767565b84526001949094019392810192810161048e565b508196506104c589828a016102fa565b955050505050509250929050565b600080604083850312156104e5578182fd5b825167ffffffffffffffff8111156104fb578283fd5b80840185601f82011261050c578384fd5b8051915061051c61039d836106e7565b80838252602080830192508084018982838802870101111561053c578788fd5b8794505b8585101561056757805161055381610767565b845260019490940193928101928101610540565b508196506104c589828a01610305565b6000815180845260208085019450808401835b838110156105af5781516001600160a01b03168752958201959082019060010161058a565b509495945050505050565b600081518084526105d2816020860160208601610737565b601f01601f19169290920160200192915050565b600082516105f8818460208701610737565b9190910192915050565b6001600160a01b0391909116815260200190565b600060018060a01b03851682528360208301526060604083015261063d60608301846105ba565b95945050505050565b6000604082526106596040830185610577565b905082151560208301529392505050565b60006020825261067d60208301846105ba565b9392505050565b600086825285602083015260a060408301526106a360a0830186610577565b6001600160a01b0394909416606083015250608001529392505050565b60405181810167ffffffffffffffff811182821017156106df57600080fd5b604052919050565b600067ffffffffffffffff8211156106fd578081fd5b5060209081020190565b600067ffffffffffffffff82111561071d578081fd5b50601f01601f191660200190565b82818337506000910152565b60005b8381101561075257818101518382015260200161073a565b83811115610761576000848401525b50505050565b6001600160a01b038116811461077c57600080fd5b50565b801515811461077c57600080fdfe737761704578616374546f6b656e73466f72546f6b656e732875696e743235362c75696e743235362c616464726573735b5d2c616464726573732c75696e743235362973776170546f6b656e73466f724578616374546f6b656e732875696e743235362c75696e743235362c616464726573735b5d2c616464726573732c75696e7432353629a264697066735822122082d8603562da8a34190e2afeb854bacfed79780401b4a17108537504d4907a3864736f6c634300060a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
