From 3e9fb33bf8806fb41d4c1aff771685663c54b449 Mon Sep 17 00:00:00 2001 From: x Date: Thu, 23 Dec 2021 18:16:11 -0600 Subject: [PATCH] deposit ERC20 done --- .../mainnet/connectors/lixir/helpers.sol | 78 ++++++++++++------- contracts/mainnet/connectors/lixir/main.sol | 75 +++++------------- 2 files changed, 66 insertions(+), 87 deletions(-) diff --git a/contracts/mainnet/connectors/lixir/helpers.sol b/contracts/mainnet/connectors/lixir/helpers.sol index f16c8bee..c4467ca6 100644 --- a/contracts/mainnet/connectors/lixir/helpers.sol +++ b/contracts/mainnet/connectors/lixir/helpers.sol @@ -7,38 +7,56 @@ import {Basic} from "../../common/basic.sol"; import "./interface.sol"; abstract contract Helpers is DSMath, Basic { - ILixirFactory constant factory = - ILixirFactory(0xFbC744df515F8962C18e79795F469d57EC460691); + ILixirFactory constant factory = + ILixirFactory(0xFbC744df515F8962C18e79795F469d57EC460691); - function _deposit( - address vault, - uint256 amount0Desired, - uint256 amount1Desired, - uint256 amount0Min, - uint256 amount1Min, - address recipient, - uint256 deadline - ) internal returns ( - uint256 shares, - uint256 amount0In, - uint256 amount1In - ) { - return (0, 0, 0); - } + function _deposit( + address payable vaultAddress, + uint256 amount0Desired, + uint256 amount1Desired, + uint256 amount0Min, + uint256 amount1Min, + address recipient, + uint256 deadline + ) internal returns ( + uint256 shares, + uint256 amount0In, + uint256 amount1In + ) { + uint256 shares; + uint256 amount0In; + uint256 amount1In; - function _depositETH( - address vault, - uint256 amountDesired, - uint256 amountEthMin, - uint256 amountMin, - address recipient, - uint256 deadline - ) internal returns ( - uint256 shares, - uint256 amountEthIn, - uint256 amountIn - ) { - return (0, 0, 0); + if (msg.value > 0) { + ILixirVaultETH vault = ILixirVaultETH(vaultAddress); + + ( + shares, + amount0In, + amount1In + ) = (0, 0, 0); + // ) = vault.depositETH( + // amountDesired, + // amountEthMin, + // amountMin, + // recipient, + // deadline + // ); + } else { + ILixirVault vault = ILixirVault(vaultAddress); + ( + shares, + amount0In, + amount1In + ) = vault.deposit( + amount0Desired, + amount1Desired, + amount0Min, + amount1Min, + recipient, + deadline + ); + } } function _withdraw( diff --git a/contracts/mainnet/connectors/lixir/main.sol b/contracts/mainnet/connectors/lixir/main.sol index 964c51f5..e27aa757 100644 --- a/contracts/mainnet/connectors/lixir/main.sol +++ b/contracts/mainnet/connectors/lixir/main.sol @@ -25,7 +25,7 @@ abstract contract LixirResolver is Helpers, Events { * @param setId ID stores the amount of LP token */ function deposit( - address vault, + address payable vault, uint256 amount0Desired, uint256 amount1Desired, uint256 amount0Min, @@ -38,62 +38,23 @@ abstract contract LixirResolver is Helpers, Events { external payable returns (string memory _eventName, bytes memory _eventParam) - { - uint256 shares; - uint256 amount0In; - uint256 amount1In; + { + amount0Desired = getUint(getIds[0], amount0Desired); + amount1Desired = getUint(getIds[1], amount1Desired); - if (msg.value > 0) { - ( - shares, - amount0In, - amount1In - ) = (0, 0, 0); - // _depositETH( - // vaultAddress, - // amountDesired, - // amountEthMin, - // amountMin, - // recipient, - // deadline - // ); - } else { - ( - shares, - amount0In, - amount1In - ) = _deposit( - vault, - amount0Desired, - amount1Desired, - amount0Min, - amount1Min, - recipient, - deadline - ); - } - // MintParams memory params; - // { - // params = MintParams( - // tokenA, - // tokenB, - // fee, - // tickLower, - // tickUpper, - // amtA, - // amtB, - // slippage - // ); - // } - // params.amtA = getUint(getIds[0], params.amtA); - // params.amtB = getUint(getIds[1], params.amtB); - - // ( - // uint256 _tokenId, - // uint256 liquidity, - // uint256 amountA, - // uint256 amountB - // ) = _mint(params); + ( + uint256 shares, + uint256 amount0In, + uint256 amount1In + ) = _deposit( + vault, + amount0Desired, + amount1Desired, + amount0Min, + amount1Min, + recipient, + deadline + ); setUint(setId, shares); @@ -119,7 +80,7 @@ abstract contract LixirResolver is Helpers, Events { * @param setIds stores the amount of output tokens */ function withdraw( - address vault, + address payable vault, address withdrawer, uint256 shares, uint256 amount0Min,