[ { "inputs": [ { "internalType": "address", "name": "_token0", "type": "address" }, { "internalType": "address", "name": "_token1", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "uint256", "name": "_amount0", "type": "uint256" }, { "internalType": "uint256", "name": "_amount1", "type": "uint256" } ], "name": "addLiquidity", "outputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "components": [ { "internalType": "enum DataTypes.LiquidityChangeType", "name": "liquidityChangeType", "type": "uint8" }, { "internalType": "address", "name": "token0", "type": "address" }, { "internalType": "address", "name": "token1", "type": "address" }, { "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "internalType": "uint256", "name": "amount1", "type": "uint256" }, { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "uint256", "name": "reserve0", "type": "uint256" }, { "internalType": "uint256", "name": "reserve1", "type": "uint256" } ], "internalType": "struct DataTypes.LiquidityChangeData", "name": "liquidityChangeData", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shares", "type": "uint256" } ], "name": "removeLiquidity", "outputs": [ { "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "internalType": "uint256", "name": "amount1", "type": "uint256" }, { "components": [ { "internalType": "enum DataTypes.LiquidityChangeType", "name": "liquidityChangeType", "type": "uint8" }, { "internalType": "address", "name": "token0", "type": "address" }, { "internalType": "address", "name": "token1", "type": "address" }, { "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "internalType": "uint256", "name": "amount1", "type": "uint256" }, { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "uint256", "name": "reserve0", "type": "uint256" }, { "internalType": "uint256", "name": "reserve1", "type": "uint256" } ], "internalType": "struct DataTypes.LiquidityChangeData", "name": "liquidityChangeData", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "reserve0", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reserve1", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenIn", "type": "address" }, { "internalType": "uint256", "name": "_amountIn", "type": "uint256" } ], "name": "swap", "outputs": [ { "internalType": "uint256", "name": "amountOut", "type": "uint256" }, { "components": [ { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "uint256", "name": "amountOut", "type": "uint256" }, { "internalType": "address", "name": "tokenIn", "type": "address" }, { "internalType": "uint256", "name": "reserve0", "type": "uint256" }, { "internalType": "uint256", "name": "reserve1", "type": "uint256" } ], "internalType": "struct DataTypes.SwapData", "name": "swapData", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "token0", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token1", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
60c0346100c357601f610f3438819003918201601f19168301916001600160401b038311848410176100c85780849260409485528339810103126100c357610052602061004b836100de565b92016100de565b6001600160a01b039182166080521660a052604051610e4190816100f382396080518181816101210152818161052c015281816108d00152610c38015260a05181818160980152818161016c0152818161029501528181610419015281816104b30152818161058f01526109270152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100c35756fe608080604052600436101561001357600080fd5b60003560e01c9081630dfe168114610c255750806318160ddd14610c07578063443cb4bc14610be95780635a76f25e14610bcb57806370a0823114610b915780639c8f9f231461089e5780639cd441da146104e2578063d004f0f7146100cc5763d21220a71461008257600080fd5b346100c75760003660031901126100c7576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600080fd5b346100c75760403660031901126100c7576100e5610c67565b60243590600060806040516100f981610d2b565b82815260208101839052604081018390526060810183905201526001600160a01b03908116917f0000000000000000000000000000000000000000000000000000000000000000918216918383148080156104b0575b1561047b578215610446576000901561040e5750600054906001547f00000000000000000000000000000000000000000000000000000000000000009290915b6040516323b872dd60e01b81523360048201523060248201526044810186905290602090829060649082906000906001600160a01b03165af1801561036f576103f1575b506103e584028481046103e5036103db57610206926101fa6103e861020093048092610da6565b92610dfe565b90610db9565b60405163a9059cbb60e01b81523360048201526024810182905290939091602090839060449082906000906001600160a01b03165af190811561036f576024926020926103b0575b506040516370a0823160e01b815230600482015292839182905afa90811561036f5760009161037b575b506040516370a0823160e01b8152306004820152936020856024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa92831561036f57600093610335575b60c095508260005583600155604051906102e782610d2b565b8152602081019085825260408101928352606081019384526080810194855260405195865251602086015251604085015260018060a01b0390511660608401525160808301525160a0820152f35b92946020813d602011610367575b8161035060209383610d47565b810103126103635760c0955051926102ce565b8580fd5b3d9150610343565b6040513d6000823e3d90fd5b906020823d6020116103a8575b8161039560209383610d47565b810103126103a557505184610278565b80fd5b3d9150610388565b6103cf90833d85116103d4575b6103c78183610d47565b810190610de6565b61024e565b503d6103bd565b634e487b7160e01b600052601160045260246000fd5b6104099060203d6020116103d4576103c78183610d47565b6101d3565b6001549054849250907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661018f565b60405162461bcd60e51b815260206004820152600d60248201526c0616d6f756e7420696e203d203609c1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b2103a37b5b2b760991b6044820152606490fd5b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316851461014f565b346100c75760403660031901126100c757600435602435610501610d69565b506040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692906020816064816000885af1801561036f57610881575b506040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906020816064816000875af1801561036f57610864575b506000548015801590610859575b610806575b60025490816107c75750506105ef8382610da6565b600060038211156107b95750808060011c600181018091116103db57905b82821061079a5750505b925b8315610768573360005260036020526040600020610638858254610dfe565b905561064684600254610dfe565b6002556040516370a0823160e01b815230600482015291602083602481895afa92831561036f57600093610734575b506040516370a0823160e01b815230600482015293602085602481845afa94851561036f576000956106fe575b509183916106fc9593610120989560005584600155604051956106c487610cf8565b6000875260208701526040860152606085015260808401528460a084015260c083015260e08201526040519283526020830190610c7d565bf35b90946020823d60201161072c575b8161071960209383610d47565b810103126103a5575051936101206106a2565b3d915061070c565b90926020823d602011610760575b8161074f60209383610d47565b810103126103a55750519186610675565b3d9150610742565b60405162461bcd60e51b815260206004820152600a6024820152690736861726573203d20360b41b6044820152606490fd5b9091506107b0826107ab8184610db9565b610dfe565b60011c9061060d565b901561061757506001610617565b6107e76107e06107f0926107db8587610da6565b610db9565b9286610da6565b60015490610db9565b8082116107ff57505b92610619565b90506107f9565b6108108482610da6565b61081c83600154610da6565b146105da5760405162461bcd60e51b815260206004820152601060248201526f78202f207920213d206478202f20647960801b6044820152606490fd5b5060015415156105d5565b61087c9060203d6020116103d4576103c78183610d47565b6105c7565b6108999060203d6020116103d4576103c78183610d47565b610564565b346100c75760203660031901126100c7576004356108ba610d69565b506040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691602082602481865afa91821561036f57600092610b5d575b506040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316939092602084602481885afa93841561036f57600094610b29575b506109758184610da6565b936109916109866002548097610db9565b956107db8387610da6565b9185151580610b20575b15610ae257826109d8876109de9333600052600360205260406000206109c28a8254610dd9565b90556109d089600254610dd9565b600255610dd9565b92610dd9565b600091825560015560405163a9059cbb60e01b8152336004820152602481018690529060209082906044908290875af1801561036f57610ac5575b5060405163a9059cbb60e01b815233600482015260248101829052946020866044816000855af193841561036f57610140966106fc95610aa8575b50600054906001549260405195610a6a87610cf8565b600187526020870152604086015286606086015283608086015260a085015260c084015260e083015260405193845260208401526040830190610c7d565b610ac09060203d6020116103d4576103c78183610d47565b610a54565b610add9060203d6020116103d4576103c78183610d47565b610a19565b60405162461bcd60e51b81526020600482015260166024820152750616d6f756e7430206f7220616d6f756e7431203d20360541b6044820152606490fd5b5082151561099b565b90936020823d602011610b55575b81610b4460209383610d47565b810103126103a5575051928561096a565b3d9150610b37565b90916020823d602011610b89575b81610b7860209383610d47565b810103126103a55750519083610911565b3d9150610b6b565b346100c75760203660031901126100c7576001600160a01b03610bb2610c67565b1660005260036020526020604060002054604051908152f35b346100c75760003660031901126100c7576020600154604051908152f35b346100c75760003660031901126100c7576020600054604051908152f35b346100c75760003660031901126100c7576020600254604051908152f35b346100c75760003660031901126100c7577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600435906001600160a01b03821682036100c757565b80516002811015610ce25760e0918291845260018060a01b03602082015116602085015260018060a01b036040820151166040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151910152565b634e487b7160e01b600052602160045260246000fd5b610100810190811067ffffffffffffffff821117610d1557604052565b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff821117610d1557604052565b90601f8019910116810190811067ffffffffffffffff821117610d1557604052565b60405190610d7682610cf8565b600060e0838281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b818102929181159184041417156103db57565b8115610dc3570490565b634e487b7160e01b600052601260045260246000fd5b919082039182116103db57565b908160209103126100c7575180151581036100c75790565b919082018092116103db5756fea264697066735822122065bad565c1fb68b845897f3e87e32b18923e65d0a78bec3c5d798a41f54d466d64736f6c634300081c00330000000000000000000000005f66d360c145738a2f217cfbc95e84e586cabcb8000000000000000000000000f83b36a40cb1f0e88a8ae74cbb2fdcb2670c5e48