{
  "_format": "hh-sol-artifact-1",
  "contractName": "KyberV3IndexExchangeAdapter",
  "sourceName": "contracts/protocol/integration/index-exchange/KyberV3IndexExchangeAdapter.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_dmmRouter",
          "type": "address"
        },
        {
          "internalType": "contract IDMMFactory",
          "name": "_dmmFactory",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "dmmFactory",
      "outputs": [
        {
          "internalType": "contract IDMMFactory",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "dmmRouter",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "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"
    }
  ],
  "bytecode": "0x60c060405234801561001057600080fd5b5060405161091638038061091683398101604081905261002f9161004d565b6001600160601b0319606092831b8116608052911b1660a05261009e565b6000806040838503121561005f578182fd5b825161006a81610086565b602084015190925061007b81610086565b809150509250929050565b6001600160a01b038116811461009b57600080fd5b50565b60805160601c60a05160601c6108426100d4600039806101cb528061039452508060a3528060c7528061035b52506108426000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806319ca917814610051578063334fc2891461006f578063e869b69b14610077578063ffc0d00314610099575b600080fd5b6100596100a1565b604051610066919061056c565b60405180910390f35b6100596100c5565b61008a61008536600461040f565b6100e9565b60405161006693929190610580565b610059610392565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000090565b60408051600280825260608083018452600093849391928392916020830190803683370190505090508a8160008151811061012057fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898160018151811061014e57fe5b6001600160a01b03929092166020928302919091019091015260408051600180825281830190925260609181602001602082028036833701905050905061019c86600063ffffffff6103b616565b816000815181106101a957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eb787f618d8d8460008151811061020757fe5b60200260200101516040518463ffffffff1660e01b815260040161022d939291906105c9565b60206040518083038186803b15801561024557600080fd5b505afa158015610259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027d91906104ea565b6102a25760405162461bcd60e51b81526004016102999061061b565b60405180910390fd5b6060896102c7576040518060800160405280604d8152602001610773604d91396102e1565b6040518060800160405280604d81526020016107c0604d91395b8a6102ec57886102ee565b895b8b6102f9578a6102fb565b895b84868f4260405160240161031496959493929190610675565b60408051601f19818403018152908290529161032f91610550565b6040519081900390206020820180516001600160e01b03166001600160e01b03199092169190911790527f000000000000000000000000000000000000000000000000000000000000000096506000955093505050509750975097945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000818260140110156103db5760405162461bcd60e51b815260040161029990610649565b81601401835110156103ff5760405162461bcd60e51b8152600401610299906105ec565b500160200151600160601b900490565b600080600080600080600060e0888a031215610429578283fd5b87356104348161074c565b965060208801356104448161074c565b955060408801356104548161074c565b9450606088013561046481610764565b93506080880135925060a0880135915060c088013567ffffffffffffffff81111561048d578182fd5b8089018a601f82011261049e578283fd5b803591506104b36104ae836106ec565b6106c5565b8281528b60208484010111156104c7578384fd5b6104d8836020830160208501610710565b80935050505092959891949750929550565b6000602082840312156104fb578081fd5b815161050681610764565b9392505050565b6000815180845260208085019450808401835b838110156105455781516001600160a01b031687529582019590820190600101610520565b509495945050505050565b6000825161056281846020870161071c565b9190910192915050565b6001600160a01b0391909116815260200190565b600060018060a01b03851682528360208301526060604083015282518060608401526105b381608085016020870161071c565b601f01601f191691909101608001949350505050565b6001600160a01b0393841681529183166020830152909116604082015260600190565b602080825260159082015274746f416464726573735f6f75744f66426f756e647360581b604082015260600190565b602080825260149082015273496e76616c696420706f6f6c206164647265737360601b604082015260600190565b602080825260129082015271746f416464726573735f6f766572666c6f7760701b604082015260600190565b600087825286602083015260c0604083015261069460c083018761050d565b82810360608401526106a6818761050d565b6001600160a01b03959095166080840152505060a00152949350505050565b60405181810167ffffffffffffffff811182821017156106e457600080fd5b604052919050565b600067ffffffffffffffff821115610702578081fd5b50601f01601f191660200190565b82818337506000910152565b60005b8381101561073757818101518382015260200161071f565b83811115610746576000848401525b50505050565b6001600160a01b038116811461076157600080fd5b50565b801515811461076157600080fdfe73776170546f6b656e73466f724578616374546f6b656e732875696e743235362c75696e743235362c616464726573735b5d2c616464726573735b5d2c616464726573732c75696e7432353629737761704578616374546f6b656e73466f72546f6b656e732875696e743235362c75696e743235362c616464726573735b5d2c616464726573735b5d2c616464726573732c75696e7432353629a2646970667358221220b76f2951ec9efc8af7c125713d93544e17aee200ed921677666d442b2d4460cf64736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806319ca917814610051578063334fc2891461006f578063e869b69b14610077578063ffc0d00314610099575b600080fd5b6100596100a1565b604051610066919061056c565b60405180910390f35b6100596100c5565b61008a61008536600461040f565b6100e9565b60405161006693929190610580565b610059610392565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000090565b60408051600280825260608083018452600093849391928392916020830190803683370190505090508a8160008151811061012057fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898160018151811061014e57fe5b6001600160a01b03929092166020928302919091019091015260408051600180825281830190925260609181602001602082028036833701905050905061019c86600063ffffffff6103b616565b816000815181106101a957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eb787f618d8d8460008151811061020757fe5b60200260200101516040518463ffffffff1660e01b815260040161022d939291906105c9565b60206040518083038186803b15801561024557600080fd5b505afa158015610259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027d91906104ea565b6102a25760405162461bcd60e51b81526004016102999061061b565b60405180910390fd5b6060896102c7576040518060800160405280604d8152602001610773604d91396102e1565b6040518060800160405280604d81526020016107c0604d91395b8a6102ec57886102ee565b895b8b6102f9578a6102fb565b895b84868f4260405160240161031496959493929190610675565b60408051601f19818403018152908290529161032f91610550565b6040519081900390206020820180516001600160e01b03166001600160e01b03199092169190911790527f000000000000000000000000000000000000000000000000000000000000000096506000955093505050509750975097945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000818260140110156103db5760405162461bcd60e51b815260040161029990610649565b81601401835110156103ff5760405162461bcd60e51b8152600401610299906105ec565b500160200151600160601b900490565b600080600080600080600060e0888a031215610429578283fd5b87356104348161074c565b965060208801356104448161074c565b955060408801356104548161074c565b9450606088013561046481610764565b93506080880135925060a0880135915060c088013567ffffffffffffffff81111561048d578182fd5b8089018a601f82011261049e578283fd5b803591506104b36104ae836106ec565b6106c5565b8281528b60208484010111156104c7578384fd5b6104d8836020830160208501610710565b80935050505092959891949750929550565b6000602082840312156104fb578081fd5b815161050681610764565b9392505050565b6000815180845260208085019450808401835b838110156105455781516001600160a01b031687529582019590820190600101610520565b509495945050505050565b6000825161056281846020870161071c565b9190910192915050565b6001600160a01b0391909116815260200190565b600060018060a01b03851682528360208301526060604083015282518060608401526105b381608085016020870161071c565b601f01601f191691909101608001949350505050565b6001600160a01b0393841681529183166020830152909116604082015260600190565b602080825260159082015274746f416464726573735f6f75744f66426f756e647360581b604082015260600190565b602080825260149082015273496e76616c696420706f6f6c206164647265737360601b604082015260600190565b602080825260129082015271746f416464726573735f6f766572666c6f7760701b604082015260600190565b600087825286602083015260c0604083015261069460c083018761050d565b82810360608401526106a6818761050d565b6001600160a01b03959095166080840152505060a00152949350505050565b60405181810167ffffffffffffffff811182821017156106e457600080fd5b604052919050565b600067ffffffffffffffff821115610702578081fd5b50601f01601f191660200190565b82818337506000910152565b60005b8381101561073757818101518382015260200161071f565b83811115610746576000848401525b50505050565b6001600160a01b038116811461076157600080fd5b50565b801515811461076157600080fdfe73776170546f6b656e73466f724578616374546f6b656e732875696e743235362c75696e743235362c616464726573735b5d2c616464726573735b5d2c616464726573732c75696e7432353629737761704578616374546f6b656e73466f72546f6b656e732875696e743235362c75696e743235362c616464726573735b5d2c616464726573735b5d2c616464726573732c75696e7432353629a2646970667358221220b76f2951ec9efc8af7c125713d93544e17aee200ed921677666d442b2d4460cf64736f6c634300060a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
