{
  "_format": "hh-sol-artifact-1",
  "contractName": "ZeroExApiAdapter",
  "sourceName": "contracts/protocol/integration/exchange/ZeroExApiAdapter.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_zeroExAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_wethAddress",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "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": "wethAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "zeroExAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60e060405234801561001057600080fd5b506040516113aa3803806113aa83398101604081905261002f91610056565b6001600160601b0319606092831b811660808190529190921b90911660a05260c0526100a7565b60008060408385031215610068578182fd5b82516100738161008f565b60208401519092506100848161008f565b809150509250929050565b6001600160a01b03811681146100a457600080fd5b50565b60805160601c60a05160601c60c05160601c6112cc6100de6000398060c752508060eb52508060a352806106bd52506112cc6000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80632658b4ad14610051578063334fc2891461006f5780634f0e0ef314610077578063e171fcab1461007f575b600080fd5b6100596100a1565b6040516100669190610ec0565b60405180910390f35b6100596100c5565b6100596100e9565b61009261008d366004610b4c565b61010d565b60405161006693929190610ed4565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080606081808080808060048a10156101425760405162461bcd60e51b815260040161013990611110565b60405180910390fd5b602460a43501356001600160e01b031916630415565b60e41b8114806101785750638182b61f60e01b6001600160e01b03198216145b156101a65761018a8b6004818f611235565b8101906101979190610ab7565b92995090975093509150610579565b633dff34e160e21b6001600160e01b031982161415610203576101cc8b6004818f611235565b8101906101d99190610a4a565b949b50929950975060019650909450909250506001600160a01b0385166101fe578e94505b610579565b6336589ea960e21b6001600160e01b03198216141561029e5760608c8c600490809261023193929190611235565b81019061023e9190610c05565b825191965094509091506001106102675760405162461bcd60e51b815260040161013990610f68565b8060008151811061027457fe5b602002602001015197508060018251038151811061028e57fe5b6020026020010151965050610579565b632a9dd1db60e21b6001600160e01b031982161415610314576102bf6107f6565b60008d8d60049080926102d493929190611235565b8101906102e19190610e2c565b60208301518351909c509a506001600160801b038116975091935090915061030b90508286610737565b93505050610579565b6375103cb960e01b6001600160e01b0319821614156104475760608060008e8e600490809261034593929190611235565b8101906103529190610ca3565b83519396509094509250506103795760405162461bcd60e51b815260040161013990610f3e565b806103965760405162461bcd60e51b81526004016101399061116f565b826000815181106103a357fe5b6020026020010151602001519950826000815181106103be57fe5b602090810291909101015151985060005b835181101561043e578281815181106103e457fe5b60200260200101516001600160801b03168701965061043284828151811061040857fe5b602002602001015184838151811061041c57fe5b60200260200101516001600160801b0316610737565b909501946001016103cf565b50505050610579565b63357a3cd960e11b6001600160e01b0319821614156104b65760608c8c600490809261047593929190611235565b8101906104829190610d86565b985060019750909550935090506001600160a01b0386166104a1578f95505b6104aa816107a5565b90985096506105799050565b637a1eb1b960e01b6001600160e01b0319821614156104fc576104dc8b6004818f611235565b8101906104e99190610afc565b939a509198509094509092506105799050565b63079d98d960e11b6001600160e01b0319821614156105615760608c8c600490809261052a93929190611235565b8101906105379190610c51565b83519197509550919250506001106102675760405162461bcd60e51b815260040161013990611047565b60405162461bcd60e51b815260040161013990610fcd565b506001600160a01b03861673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148015906105c457506001600160a01b03851673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14155b6105e05760405162461bcd60e51b8152600401610139906110ae565b8f6001600160a01b0316866001600160a01b0316146106115760405162461bcd60e51b81526004016101399061107e565b8e6001600160a01b0316856001600160a01b0316146106425760405162461bcd60e51b8152600401610139906110d9565b82158061066057508d6001600160a01b0316846001600160a01b0316145b61067c5760405162461bcd60e51b815260040161013990610f9f565b8c821461069b5760405162461bcd60e51b8152600401610139906111b7565b8b8110156106bb5760405162461bcd60e51b81526004016101399061113a565b7f000000000000000000000000000000000000000000000000000000000000000060008c8c82925081818080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250969f50949d50909b5050505050505050505050509750975097945050505050565b600082606001516001600160801b031660001480610760575060408301516001600160801b0316155b80610769575081155b156107765750600061079f565b82606001516001600160801b03168284604001516001600160801b0316028161079b57fe5b0490505b92915050565b80516000908190602b11156107cc5760405162461bcd60e51b815260040161013990611010565b50508051602080830151601760131990930183900490920290920190910151606091821c92911c90565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081019190915290565b803561079f81611269565b600082601f830112610865578081fd5b813561087861087382611215565b6111ee565b81815291506020808301908481018184028601820187101561089957600080fd5b60005b848110156108c15781356108af81611269565b8452928201929082019060010161089c565b505050505092915050565b600082601f8301126108dc578081fd5b81356108ea61087382611215565b81815291506020808301908481018184028601820187101561090b57600080fd5b60005b848110156108c157813561092181611281565b8452928201929082019060010161090e565b8035801515811461079f57600080fd5b6000610140808385031215610956578182fd5b61095f816111ee565b91505061096c838361084a565b815261097b836020840161084a565b602082015261098d8360408401610a0a565b604082015261099f8360608401610a0a565b60608201526109b1836080840161084a565b60808201526109c38360a0840161084a565b60a08201526109d58360c0840161084a565b60c082015260e082013560e08201526101006109f384828501610a21565b818301525061012080830135818301525092915050565b80356001600160801b038116811461079f57600080fd5b803567ffffffffffffffff8116811461079f57600080fd5b803560ff8116811461079f57600080fd5b60008060008060008060c08789031215610a62578182fd5b8635610a6d81611269565b95506020870135610a7d81611269565b94506040870135610a8d81611269565b93506060870135610a9d81611269565b9598949750929560808101359460a0909101359350915050565b60008060008060808587031215610acc578384fd5b8435610ad781611269565b93506020850135610ae781611269565b93969395505050506040820135916060013590565b600080600080600060a08688031215610b13578081fd5b8535610b1e81611269565b94506020860135610b2e81611269565b94979496505050506040830135926060810135926080909101359150565b600080600080600080600060c0888a031215610b66578485fd5b8735610b7181611269565b96506020880135610b8181611269565b95506040880135610b9181611269565b9450606088013593506080880135925060a088013567ffffffffffffffff80821115610bbb578283fd5b818a018b601f820112610bcc578384fd5b8035925081831115610bdc578384fd5b8b6020848301011115610bed578384fd5b60208101945050508091505092959891949750929550565b600080600060608486031215610c19578081fd5b833567ffffffffffffffff811115610c2f578182fd5b610c3b86828701610855565b9660208601359650604090950135949350505050565b60008060008060808587031215610c66578182fd5b843567ffffffffffffffff811115610c7c578283fd5b610c8887828801610855565b97602087013597506040870135966060013595509350505050565b60008060008060808587031215610cb8578182fd5b843567ffffffffffffffff80821115610ccf578384fd5b81870188601f820112610ce0578485fd5b80359250610cf061087384611215565b80848252602080830192508084016101408d83828a028801011115610d1357898afd5b8995505b87861015610d3f57610d298e83610943565b8552600195909501949382019390810190610d17565b509199508a013597505050604088013592505080821115610d5e578384fd5b50610d6b878288016108cc565b925050610d7b8660608701610933565b905092959194509250565b60008060008060808587031215610d9b578182fd5b843567ffffffffffffffff80821115610db2578384fd5b81870188601f820112610dc3578485fd5b8035925081831115610dd3578485fd5b610de6601f8401601f19166020016111ee565b9150828252886020848301011115610dfc578485fd5b610e0d83602084016020840161125d565b509450506020850135925060408501359150610d7b866060870161084a565b60008060008385036101e0811215610e42578182fd5b610e4c8686610943565b9350608061013f1982011215610e60578182fd5b50610e6b60806111ee565b610e79866101408701610a39565b8152610e89866101608701610a39565b602082015261018085013560408201526101a0850135606082015291506101c0840135610eb581611281565b809150509250925092565b6001600160a01b0391909116815260200190565b600060018060a01b038516825260208481840152606060408401528351806060850152825b81811015610f1557858101830151858201608001528201610ef9565b81811115610f265783608083870101525b50601f01601f19169290920160800195945050505050565b60208082526010908201526f456d70747920524651206f726465727360801b604082015260600190565b6020808252601c908201527f556e697377617020746f6b656e207061746820746f6f2073686f727400000000604082015260600190565b602080825260149082015273135a5cdb585d18da1959081c9958da5c1a595b9d60621b604082015260600190565b60208082526023908201527f556e737570706f727465642030784150492066756e6374696f6e2073656c65636040820152623a37b960e91b606082015260800190565b6020808252601e908201527f556e6973776170563320746f6b656e207061746820746f6f2073686f72740000604082015260600190565b6020808252601d908201527f4d756c7469686f7020746f6b656e207061746820746f6f2073686f7274000000604082015260600190565b60208082526016908201527526b4b9b6b0ba31b432b21034b7383aba103a37b5b2b760511b604082015260600190565b602080825260119082015270115512081b9bdd081cdd5c1c1bdc9d1959607a1b604082015260600190565b60208082526017908201527f4d69736d617463686564206f757470757420746f6b656e000000000000000000604082015260600190565b60208082526010908201526f496e76616c69642063616c6c6461746160801b604082015260600190565b6020808252818101527f4d69736d617463686564206f757470757420746f6b656e207175616e74697479604082015260600190565b60208082526028908201527f626174636846696c6c5266714f72646572206d75737420626520616c6c206f72604082015267206e6f7468696e6760c01b606082015260800190565b6020808252601f908201527f4d69736d61746368656420696e70757420746f6b656e207175616e7469747900604082015260600190565b60405181810167ffffffffffffffff8111828210171561120d57600080fd5b604052919050565b600067ffffffffffffffff82111561122b578081fd5b5060209081020190565b60008085851115611244578182fd5b83861115611250578182fd5b5050820193919092039150565b82818337506000910152565b6001600160a01b038116811461127e57600080fd5b50565b6001600160801b038116811461127e57600080fdfea2646970667358221220a6ff3c43f21e07e3f930dab7c7d062d5a0e2d2f4c15015d2a7f87662f35963e164736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80632658b4ad14610051578063334fc2891461006f5780634f0e0ef314610077578063e171fcab1461007f575b600080fd5b6100596100a1565b6040516100669190610ec0565b60405180910390f35b6100596100c5565b6100596100e9565b61009261008d366004610b4c565b61010d565b60405161006693929190610ed4565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080606081808080808060048a10156101425760405162461bcd60e51b815260040161013990611110565b60405180910390fd5b602460a43501356001600160e01b031916630415565b60e41b8114806101785750638182b61f60e01b6001600160e01b03198216145b156101a65761018a8b6004818f611235565b8101906101979190610ab7565b92995090975093509150610579565b633dff34e160e21b6001600160e01b031982161415610203576101cc8b6004818f611235565b8101906101d99190610a4a565b949b50929950975060019650909450909250506001600160a01b0385166101fe578e94505b610579565b6336589ea960e21b6001600160e01b03198216141561029e5760608c8c600490809261023193929190611235565b81019061023e9190610c05565b825191965094509091506001106102675760405162461bcd60e51b815260040161013990610f68565b8060008151811061027457fe5b602002602001015197508060018251038151811061028e57fe5b6020026020010151965050610579565b632a9dd1db60e21b6001600160e01b031982161415610314576102bf6107f6565b60008d8d60049080926102d493929190611235565b8101906102e19190610e2c565b60208301518351909c509a506001600160801b038116975091935090915061030b90508286610737565b93505050610579565b6375103cb960e01b6001600160e01b0319821614156104475760608060008e8e600490809261034593929190611235565b8101906103529190610ca3565b83519396509094509250506103795760405162461bcd60e51b815260040161013990610f3e565b806103965760405162461bcd60e51b81526004016101399061116f565b826000815181106103a357fe5b6020026020010151602001519950826000815181106103be57fe5b602090810291909101015151985060005b835181101561043e578281815181106103e457fe5b60200260200101516001600160801b03168701965061043284828151811061040857fe5b602002602001015184838151811061041c57fe5b60200260200101516001600160801b0316610737565b909501946001016103cf565b50505050610579565b63357a3cd960e11b6001600160e01b0319821614156104b65760608c8c600490809261047593929190611235565b8101906104829190610d86565b985060019750909550935090506001600160a01b0386166104a1578f95505b6104aa816107a5565b90985096506105799050565b637a1eb1b960e01b6001600160e01b0319821614156104fc576104dc8b6004818f611235565b8101906104e99190610afc565b939a509198509094509092506105799050565b63079d98d960e11b6001600160e01b0319821614156105615760608c8c600490809261052a93929190611235565b8101906105379190610c51565b83519197509550919250506001106102675760405162461bcd60e51b815260040161013990611047565b60405162461bcd60e51b815260040161013990610fcd565b506001600160a01b03861673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148015906105c457506001600160a01b03851673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14155b6105e05760405162461bcd60e51b8152600401610139906110ae565b8f6001600160a01b0316866001600160a01b0316146106115760405162461bcd60e51b81526004016101399061107e565b8e6001600160a01b0316856001600160a01b0316146106425760405162461bcd60e51b8152600401610139906110d9565b82158061066057508d6001600160a01b0316846001600160a01b0316145b61067c5760405162461bcd60e51b815260040161013990610f9f565b8c821461069b5760405162461bcd60e51b8152600401610139906111b7565b8b8110156106bb5760405162461bcd60e51b81526004016101399061113a565b7f000000000000000000000000000000000000000000000000000000000000000060008c8c82925081818080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250969f50949d50909b5050505050505050505050509750975097945050505050565b600082606001516001600160801b031660001480610760575060408301516001600160801b0316155b80610769575081155b156107765750600061079f565b82606001516001600160801b03168284604001516001600160801b0316028161079b57fe5b0490505b92915050565b80516000908190602b11156107cc5760405162461bcd60e51b815260040161013990611010565b50508051602080830151601760131990930183900490920290920190910151606091821c92911c90565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081019190915290565b803561079f81611269565b600082601f830112610865578081fd5b813561087861087382611215565b6111ee565b81815291506020808301908481018184028601820187101561089957600080fd5b60005b848110156108c15781356108af81611269565b8452928201929082019060010161089c565b505050505092915050565b600082601f8301126108dc578081fd5b81356108ea61087382611215565b81815291506020808301908481018184028601820187101561090b57600080fd5b60005b848110156108c157813561092181611281565b8452928201929082019060010161090e565b8035801515811461079f57600080fd5b6000610140808385031215610956578182fd5b61095f816111ee565b91505061096c838361084a565b815261097b836020840161084a565b602082015261098d8360408401610a0a565b604082015261099f8360608401610a0a565b60608201526109b1836080840161084a565b60808201526109c38360a0840161084a565b60a08201526109d58360c0840161084a565b60c082015260e082013560e08201526101006109f384828501610a21565b818301525061012080830135818301525092915050565b80356001600160801b038116811461079f57600080fd5b803567ffffffffffffffff8116811461079f57600080fd5b803560ff8116811461079f57600080fd5b60008060008060008060c08789031215610a62578182fd5b8635610a6d81611269565b95506020870135610a7d81611269565b94506040870135610a8d81611269565b93506060870135610a9d81611269565b9598949750929560808101359460a0909101359350915050565b60008060008060808587031215610acc578384fd5b8435610ad781611269565b93506020850135610ae781611269565b93969395505050506040820135916060013590565b600080600080600060a08688031215610b13578081fd5b8535610b1e81611269565b94506020860135610b2e81611269565b94979496505050506040830135926060810135926080909101359150565b600080600080600080600060c0888a031215610b66578485fd5b8735610b7181611269565b96506020880135610b8181611269565b95506040880135610b9181611269565b9450606088013593506080880135925060a088013567ffffffffffffffff80821115610bbb578283fd5b818a018b601f820112610bcc578384fd5b8035925081831115610bdc578384fd5b8b6020848301011115610bed578384fd5b60208101945050508091505092959891949750929550565b600080600060608486031215610c19578081fd5b833567ffffffffffffffff811115610c2f578182fd5b610c3b86828701610855565b9660208601359650604090950135949350505050565b60008060008060808587031215610c66578182fd5b843567ffffffffffffffff811115610c7c578283fd5b610c8887828801610855565b97602087013597506040870135966060013595509350505050565b60008060008060808587031215610cb8578182fd5b843567ffffffffffffffff80821115610ccf578384fd5b81870188601f820112610ce0578485fd5b80359250610cf061087384611215565b80848252602080830192508084016101408d83828a028801011115610d1357898afd5b8995505b87861015610d3f57610d298e83610943565b8552600195909501949382019390810190610d17565b509199508a013597505050604088013592505080821115610d5e578384fd5b50610d6b878288016108cc565b925050610d7b8660608701610933565b905092959194509250565b60008060008060808587031215610d9b578182fd5b843567ffffffffffffffff80821115610db2578384fd5b81870188601f820112610dc3578485fd5b8035925081831115610dd3578485fd5b610de6601f8401601f19166020016111ee565b9150828252886020848301011115610dfc578485fd5b610e0d83602084016020840161125d565b509450506020850135925060408501359150610d7b866060870161084a565b60008060008385036101e0811215610e42578182fd5b610e4c8686610943565b9350608061013f1982011215610e60578182fd5b50610e6b60806111ee565b610e79866101408701610a39565b8152610e89866101608701610a39565b602082015261018085013560408201526101a0850135606082015291506101c0840135610eb581611281565b809150509250925092565b6001600160a01b0391909116815260200190565b600060018060a01b038516825260208481840152606060408401528351806060850152825b81811015610f1557858101830151858201608001528201610ef9565b81811115610f265783608083870101525b50601f01601f19169290920160800195945050505050565b60208082526010908201526f456d70747920524651206f726465727360801b604082015260600190565b6020808252601c908201527f556e697377617020746f6b656e207061746820746f6f2073686f727400000000604082015260600190565b602080825260149082015273135a5cdb585d18da1959081c9958da5c1a595b9d60621b604082015260600190565b60208082526023908201527f556e737570706f727465642030784150492066756e6374696f6e2073656c65636040820152623a37b960e91b606082015260800190565b6020808252601e908201527f556e6973776170563320746f6b656e207061746820746f6f2073686f72740000604082015260600190565b6020808252601d908201527f4d756c7469686f7020746f6b656e207061746820746f6f2073686f7274000000604082015260600190565b60208082526016908201527526b4b9b6b0ba31b432b21034b7383aba103a37b5b2b760511b604082015260600190565b602080825260119082015270115512081b9bdd081cdd5c1c1bdc9d1959607a1b604082015260600190565b60208082526017908201527f4d69736d617463686564206f757470757420746f6b656e000000000000000000604082015260600190565b60208082526010908201526f496e76616c69642063616c6c6461746160801b604082015260600190565b6020808252818101527f4d69736d617463686564206f757470757420746f6b656e207175616e74697479604082015260600190565b60208082526028908201527f626174636846696c6c5266714f72646572206d75737420626520616c6c206f72604082015267206e6f7468696e6760c01b606082015260800190565b6020808252601f908201527f4d69736d61746368656420696e70757420746f6b656e207175616e7469747900604082015260600190565b60405181810167ffffffffffffffff8111828210171561120d57600080fd5b604052919050565b600067ffffffffffffffff82111561122b578081fd5b5060209081020190565b60008085851115611244578182fd5b83861115611250578182fd5b5050820193919092039150565b82818337506000910152565b6001600160a01b038116811461127e57600080fd5b50565b6001600160801b038116811461127e57600080fdfea2646970667358221220a6ff3c43f21e07e3f930dab7c7d062d5a0e2d2f4c15015d2a7f87662f35963e164736f6c634300060a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
