{
  "_format": "hh-sol-artifact-1",
  "contractName": "CurveStableswapMock",
  "sourceName": "contracts/mocks/external/CurveStableswapMock.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_tokens",
          "type": "address[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "ETH_TOKEN_ADDRESS",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256",
          "name": "_min_mint_amount",
          "type": "uint256"
        }
      ],
      "name": "add_liquidity",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "coins",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "int128",
          "name": "_i",
          "type": "int128"
        },
        {
          "internalType": "int128",
          "name": "_j",
          "type": "int128"
        },
        {
          "internalType": "uint256",
          "name": "_dx",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_min_dy",
          "type": "uint256"
        }
      ],
      "name": "exchange",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50604051610c61380380610c618339818101604052602081101561003357600080fd5b810190808051604051939291908464010000000082111561005357600080fd5b90830190602082018581111561006857600080fd5b825186602082028301116401000000008211171561008557600080fd5b82525081516020918201928201910280838360005b838110156100b257818101518382015260200161009a565b50505050919091016040525050600160009081559150505b815181101561010e5760006001600160a01b03168282815181106100ea57fe5b60200260200101516001600160a01b0316141561010657600080fd5b6001016100ca565b508051610122906001906020840190610129565b50506101b5565b82805482825590600052602060002090810192821561017e579160200282015b8281111561017e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610149565b5061018a92915061018e565b5090565b6101b291905b8082111561018a5780546001600160a01b0319168155600101610194565b90565b610a9d806101c46000396000f3fe60806040526004361061003f5760003560e01c80631878d1f1146100445780633df0212414610075578063b72df5de146100be578063c661065714610163575b600080fd5b34801561005057600080fd5b5061005961018d565b604080516001600160a01b039092168252519081900360200190f35b6100ac6004803603608081101561008b57600080fd5b508035600f90810b91602081013590910b90604081013590606001356101a5565b60408051918252519081900360200190f35b6100ac600480360360408110156100d457600080fd5b8101906020810181356401000000008111156100ef57600080fd5b82018360208201111561010157600080fd5b8035906020019184602083028401116401000000008311171561012357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550509135925061041f915050565b34801561016f57600080fd5b506100596004803603602081101561018657600080fd5b5035610599565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6000600260005414156101ff576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600055600f85810b9085900b141561021857600080fd5b81831461022457600080fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0316600186600f0b8154811061025257fe5b6000918252602090912001546001600160a01b0316141561027e5734831461027957600080fd5b61031f565b600185600f0b8154811061028e57fe5b6000918252602080832090910154604080516323b872dd60e01b81523360048201523060248201526044810188905290516001600160a01b03909216936323b872dd9360648084019491939192918390030190829087803b1580156102f257600080fd5b505af1158015610306573d6000803e3d6000fd5b505050506040513d602081101561031c57600080fd5b50505b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0316600185600f0b8154811061034d57fe5b6000918252602090912001546001600160a01b031614156103775761037233836105c3565b610412565b600184600f0b8154811061038757fe5b60009182526020808320909101546040805163a9059cbb60e01b81523360048201526024810187905290516001600160a01b039092169363a9059cbb9360448084019491939192918390030190829087803b1580156103e557600080fd5b505af11580156103f9573d6000803e3d6000fd5b505050506040513d602081101561040f57600080fd5b50505b5060016000559392505050565b600060026000541415610479576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260009081555b835181101561058d5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0316600182815481106104b557fe5b6000918252602090912001546001600160a01b0316141561053c57348482815181106104dd57fe5b602002602001015114610537576040805162461bcd60e51b815260206004820152601c60248201527f4574682073656e742073686f756c6420657175616c20616d6f756e7400000000604482015290519081900360640190fd5b610585565b610585333086848151811061054d57fe5b60200260200101516001858154811061056257fe5b6000918252602090912001546001600160a01b031692919063ffffffff6106ad16565b600101610481565b50506001600055919050565b6000600182815481106105a857fe5b6000918252602090912001546001600160a01b031692915050565b80471015610618576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d8060008114610663576040519150601f19603f3d011682016040523d82523d6000602084013e610668565b606091505b50509050806106a85760405162461bcd60e51b815260040180806020018281038252603a8152602001806109de603a913960400191505060405180910390fd5b505050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261070790859061070d565b50505050565b6060610762826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166107be9092919063ffffffff16565b8051909150156106a85780806020019051602081101561078157600080fd5b50516106a85760405162461bcd60e51b815260040180806020018281038252602a815260200180610a3e602a913960400191505060405180910390fd5b60606107cd84846000856107d7565b90505b9392505050565b6060824710156108185760405162461bcd60e51b8152600401808060200182810382526026815260200180610a186026913960400191505060405180910390fd5b61082185610933565b610872576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106108b15780518252601f199092019160209182019101610892565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610913576040519150601f19603f3d011682016040523d82523d6000602084013e610918565b606091505b5091509150610928828286610939565b979650505050505050565b3b151590565b606083156109485750816107d0565b8251156109585782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109a257818101518382015260200161098a565b50505050905090810190601f1680156109cf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212203e6fc1b199659cfab44d0a9a52d67f16fa02ce04c5ee7d5b466a21834b5c1c7364736f6c634300060a0033",
  "deployedBytecode": "0x60806040526004361061003f5760003560e01c80631878d1f1146100445780633df0212414610075578063b72df5de146100be578063c661065714610163575b600080fd5b34801561005057600080fd5b5061005961018d565b604080516001600160a01b039092168252519081900360200190f35b6100ac6004803603608081101561008b57600080fd5b508035600f90810b91602081013590910b90604081013590606001356101a5565b60408051918252519081900360200190f35b6100ac600480360360408110156100d457600080fd5b8101906020810181356401000000008111156100ef57600080fd5b82018360208201111561010157600080fd5b8035906020019184602083028401116401000000008311171561012357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550509135925061041f915050565b34801561016f57600080fd5b506100596004803603602081101561018657600080fd5b5035610599565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6000600260005414156101ff576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600055600f85810b9085900b141561021857600080fd5b81831461022457600080fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0316600186600f0b8154811061025257fe5b6000918252602090912001546001600160a01b0316141561027e5734831461027957600080fd5b61031f565b600185600f0b8154811061028e57fe5b6000918252602080832090910154604080516323b872dd60e01b81523360048201523060248201526044810188905290516001600160a01b03909216936323b872dd9360648084019491939192918390030190829087803b1580156102f257600080fd5b505af1158015610306573d6000803e3d6000fd5b505050506040513d602081101561031c57600080fd5b50505b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0316600185600f0b8154811061034d57fe5b6000918252602090912001546001600160a01b031614156103775761037233836105c3565b610412565b600184600f0b8154811061038757fe5b60009182526020808320909101546040805163a9059cbb60e01b81523360048201526024810187905290516001600160a01b039092169363a9059cbb9360448084019491939192918390030190829087803b1580156103e557600080fd5b505af11580156103f9573d6000803e3d6000fd5b505050506040513d602081101561040f57600080fd5b50505b5060016000559392505050565b600060026000541415610479576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260009081555b835181101561058d5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0316600182815481106104b557fe5b6000918252602090912001546001600160a01b0316141561053c57348482815181106104dd57fe5b602002602001015114610537576040805162461bcd60e51b815260206004820152601c60248201527f4574682073656e742073686f756c6420657175616c20616d6f756e7400000000604482015290519081900360640190fd5b610585565b610585333086848151811061054d57fe5b60200260200101516001858154811061056257fe5b6000918252602090912001546001600160a01b031692919063ffffffff6106ad16565b600101610481565b50506001600055919050565b6000600182815481106105a857fe5b6000918252602090912001546001600160a01b031692915050565b80471015610618576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d8060008114610663576040519150601f19603f3d011682016040523d82523d6000602084013e610668565b606091505b50509050806106a85760405162461bcd60e51b815260040180806020018281038252603a8152602001806109de603a913960400191505060405180910390fd5b505050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261070790859061070d565b50505050565b6060610762826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166107be9092919063ffffffff16565b8051909150156106a85780806020019051602081101561078157600080fd5b50516106a85760405162461bcd60e51b815260040180806020018281038252602a815260200180610a3e602a913960400191505060405180910390fd5b60606107cd84846000856107d7565b90505b9392505050565b6060824710156108185760405162461bcd60e51b8152600401808060200182810382526026815260200180610a186026913960400191505060405180910390fd5b61082185610933565b610872576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106108b15780518252601f199092019160209182019101610892565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610913576040519150601f19603f3d011682016040523d82523d6000602084013e610918565b606091505b5091509150610928828286610939565b979650505050505050565b3b151590565b606083156109485750816107d0565b8251156109585782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109a257818101518382015260200161098a565b50505050905090810190601f1680156109cf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212203e6fc1b199659cfab44d0a9a52d67f16fa02ce04c5ee7d5b466a21834b5c1c7364736f6c634300060a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
