{
  "_format": "hh-sol-artifact-1",
  "contractName": "CurveStEthExchangeAdapter",
  "sourceName": "contracts/protocol/integration/exchange/CurveStEthExchangeAdapter.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IWETH",
          "name": "_weth",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_stETH",
          "type": "address"
        },
        {
          "internalType": "contract IStableSwapPool",
          "name": "_stableswap",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_sourceQuantity",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_minDestinationQuantity",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_destinationAddress",
          "type": "address"
        }
      ],
      "name": "buyStEth",
      "outputs": [],
      "stateMutability": "nonpayable",
      "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": "",
          "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": "uint256",
          "name": "_sourceQuantity",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_minDestinationQuantity",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_destinationAddress",
          "type": "address"
        }
      ],
      "name": "sellStEth",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "stETH",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "stableswap",
      "outputs": [
        {
          "internalType": "contract IStableSwapPool",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "weth",
      "outputs": [
        {
          "internalType": "contract IWETH",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x60e06040523480156200001157600080fd5b5060405162000f9138038062000f918339810160408190526200003491620002d1565b6001600160601b0319606084811b821660805283811b821660a05282901b1660c05260405163c661065760e01b81526001600160a01b0382169063c66106579062000085906000906004016200033d565b60206040518083038186803b1580156200009e57600080fd5b505afa158015620000b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000d9919062000289565b6001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b031614620001295760405162461bcd60e51b815260040162000120906200038d565b60405180910390fd5b816001600160a01b0316816001600160a01b031663c661065760016040518263ffffffff1660e01b81526004016200016291906200033d565b60206040518083038186803b1580156200017b57600080fd5b505afa15801562000190573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b6919062000289565b6001600160a01b031614620001df5760405162461bcd60e51b8152600401620001209062000346565b816001600160a01b031663095ea7b382620002046200028360201b620008101760201c565b6040518363ffffffff1660e01b81526004016200022392919062000324565b602060405180830381600087803b1580156200023e57600080fd5b505af115801562000253573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002799190620002af565b50505050620003eb565b60001990565b6000602082840312156200029b578081fd5b8151620002a881620003d2565b9392505050565b600060208284031215620002c1578081fd5b81518015158114620002a8578182fd5b600080600060608486031215620002e6578182fd5b8351620002f381620003d2565b60208501519093506200030681620003d2565b60408501519092506200031981620003d2565b809150509250925092565b6001600160a01b03929092168252602082015260400190565b90815260200190565b60208082526027908201527f537461626c657377617020706f6f6c2068617320696e76616c69642053544554604082015266090be929c888ab60cb1b606082015260800190565b60208082526025908201527f537461626c657377617020706f6f6c2068617320696e76616c6964204554485f6040820152640929c888ab60db1b606082015260800190565b6001600160a01b0381168114620003e857600080fd5b50565b60805160601c60a05160601c60c05160601c610b346200045d6000398061015d528061026452806105345250806101be52806105f3528061062c5280610691528061071d52508061018552806102f6528061037c528061042652806104c9528061065552806107595250610b346000f3fe6080604052600436106100745760003560e01c80639be658ad1161004e5780639be658ad146100d5578063ae1628e7146100f7578063c1fe3e4814610117578063e171fcab1461012c5761007b565b80630658614214610080578063334fc289146100ab5780633fc8cef3146100c05761007b565b3661007b57005b600080fd5b34801561008c57600080fd5b5061009561015b565b6040516100a29190610954565b60405180910390f35b3480156100b757600080fd5b5061009561017f565b3480156100cc57600080fd5b50610095610183565b3480156100e157600080fd5b506100f56100f036600461091c565b6101a7565b005b34801561010357600080fd5b506100f561011236600461091c565b61040f565b34801561012357600080fd5b5061009561062a565b34801561013857600080fd5b5061014c610147366004610816565b61064e565b6040516100a2939291906109a5565b7f000000000000000000000000000000000000000000000000000000000000000081565b3090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906101f790339030908890600401610968565b602060405180830381600087803b15801561021157600080fd5b505af1158015610225573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024991906108dd565b50604051630f7c084960e21b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633df02124906102a090600190859089908990600401610a0f565b602060405180830381600087803b1580156102ba57600080fd5b505af11580156102ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f29190610904565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561034f57600080fd5b505af1158015610363573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016935063a9059cbb92506103b691508590859060040161098c565b602060405180830381600087803b1580156103d057600080fd5b505af11580156103e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040891906108dd565b5050505050565b6040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd9061045f90339030908890600401610968565b602060405180830381600087803b15801561047957600080fd5b505af115801561048d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b191906108dd565b50604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d906104fe908690600401610a67565b600060405180830381600087803b15801561051857600080fd5b505af115801561052c573d6000803e3d6000fd5b5050505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633df02124856000600188886040518663ffffffff1660e01b81526004016105879493929190610a0f565b6020604051808303818588803b1580156105a057600080fd5b505af11580156105b4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105d99190610904565b60405163a9059cbb60e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906103b6908590859060040161098c565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316896001600160a01b03161480156106c557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b0316145b1561071b5760608686896040516024016106e193929190610a70565b60408051601f198184030181529190526020810180516001600160e01b031663ae1628e760e01b1790523094506000935091506108049050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316896001600160a01b031614801561078d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b0316145b156107e35760608686896040516024016107a993929190610a70565b60408051601f198184030181529190526020810180516001600160e01b0316639be658ad60e01b1790523094506000935091506108049050565b60405162461bcd60e51b81526004016107fb90610a32565b60405180910390fd5b96509650969350505050565b60001990565b60008060008060008060c0878903121561082e578182fd5b863561083981610ae6565b9550602087013561084981610ae6565b9450604087013561085981610ae6565b9350606087013592506080870135915060a087013567ffffffffffffffff811115610882578182fd5b80880189601f820112610893578283fd5b803591506108a86108a383610ab6565b610a8f565b8281528a60208484010111156108bc578384fd5b6108cd836020830160208501610ada565b8093505050509295509295509295565b6000602082840312156108ee578081fd5b815180151581146108fd578182fd5b9392505050565b600060208284031215610915578081fd5b5051919050565b600080600060608486031215610930578283fd5b8335925060208401359150604084013561094981610ae6565b809150509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b600060018060a01b038516825260208481840152606060408401528351806060850152825b818110156109e6578581018301518582016080015282016109ca565b818111156109f75783608083870101525b50601f01601f19169290920160800195945050505050565b600f94850b81529290930b60208301526040820152606081019190915260800190565b6020808252818101527f4d7573742073776170206265747765656e207765746820616e64207374455448604082015260600190565b90815260200190565b92835260208301919091526001600160a01b0316604082015260600190565b60405181810167ffffffffffffffff81118282101715610aae57600080fd5b604052919050565b600067ffffffffffffffff821115610acc578081fd5b50601f01601f191660200190565b82818337506000910152565b6001600160a01b0381168114610afb57600080fd5b5056fea264697066735822122054fd2dadc4fe0a9bfd931c89c12c3a7dea02213f461cce465285ec28172ce94e64736f6c634300060a0033",
  "deployedBytecode": "0x6080604052600436106100745760003560e01c80639be658ad1161004e5780639be658ad146100d5578063ae1628e7146100f7578063c1fe3e4814610117578063e171fcab1461012c5761007b565b80630658614214610080578063334fc289146100ab5780633fc8cef3146100c05761007b565b3661007b57005b600080fd5b34801561008c57600080fd5b5061009561015b565b6040516100a29190610954565b60405180910390f35b3480156100b757600080fd5b5061009561017f565b3480156100cc57600080fd5b50610095610183565b3480156100e157600080fd5b506100f56100f036600461091c565b6101a7565b005b34801561010357600080fd5b506100f561011236600461091c565b61040f565b34801561012357600080fd5b5061009561062a565b34801561013857600080fd5b5061014c610147366004610816565b61064e565b6040516100a2939291906109a5565b7f000000000000000000000000000000000000000000000000000000000000000081565b3090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906101f790339030908890600401610968565b602060405180830381600087803b15801561021157600080fd5b505af1158015610225573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024991906108dd565b50604051630f7c084960e21b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633df02124906102a090600190859089908990600401610a0f565b602060405180830381600087803b1580156102ba57600080fd5b505af11580156102ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f29190610904565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561034f57600080fd5b505af1158015610363573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016935063a9059cbb92506103b691508590859060040161098c565b602060405180830381600087803b1580156103d057600080fd5b505af11580156103e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040891906108dd565b5050505050565b6040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd9061045f90339030908890600401610968565b602060405180830381600087803b15801561047957600080fd5b505af115801561048d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b191906108dd565b50604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d906104fe908690600401610a67565b600060405180830381600087803b15801561051857600080fd5b505af115801561052c573d6000803e3d6000fd5b5050505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633df02124856000600188886040518663ffffffff1660e01b81526004016105879493929190610a0f565b6020604051808303818588803b1580156105a057600080fd5b505af11580156105b4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105d99190610904565b60405163a9059cbb60e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906103b6908590859060040161098c565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316896001600160a01b03161480156106c557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b0316145b1561071b5760608686896040516024016106e193929190610a70565b60408051601f198184030181529190526020810180516001600160e01b031663ae1628e760e01b1790523094506000935091506108049050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316896001600160a01b031614801561078d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b0316145b156107e35760608686896040516024016107a993929190610a70565b60408051601f198184030181529190526020810180516001600160e01b0316639be658ad60e01b1790523094506000935091506108049050565b60405162461bcd60e51b81526004016107fb90610a32565b60405180910390fd5b96509650969350505050565b60001990565b60008060008060008060c0878903121561082e578182fd5b863561083981610ae6565b9550602087013561084981610ae6565b9450604087013561085981610ae6565b9350606087013592506080870135915060a087013567ffffffffffffffff811115610882578182fd5b80880189601f820112610893578283fd5b803591506108a86108a383610ab6565b610a8f565b8281528a60208484010111156108bc578384fd5b6108cd836020830160208501610ada565b8093505050509295509295509295565b6000602082840312156108ee578081fd5b815180151581146108fd578182fd5b9392505050565b600060208284031215610915578081fd5b5051919050565b600080600060608486031215610930578283fd5b8335925060208401359150604084013561094981610ae6565b809150509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b600060018060a01b038516825260208481840152606060408401528351806060850152825b818110156109e6578581018301518582016080015282016109ca565b818111156109f75783608083870101525b50601f01601f19169290920160800195945050505050565b600f94850b81529290930b60208301526040820152606081019190915260800190565b6020808252818101527f4d7573742073776170206265747765656e207765746820616e64207374455448604082015260600190565b90815260200190565b92835260208301919091526001600160a01b0316604082015260600190565b60405181810167ffffffffffffffff81118282101715610aae57600080fd5b604052919050565b600067ffffffffffffffff821115610acc578081fd5b50601f01601f191660200190565b82818337506000910152565b6001600160a01b0381168114610afb57600080fd5b5056fea264697066735822122054fd2dadc4fe0a9bfd931c89c12c3a7dea02213f461cce465285ec28172ce94e64736f6c634300060a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
