From 0e2c73ffef9f0c4f5d1d6d213ff67f1a63bc2ce0 Mon Sep 17 00:00:00 2001 From: x Date: Thu, 23 Dec 2021 16:07:35 -0600 Subject: [PATCH] skeleton compiles --- contracts/mainnet/connectors/lixir/events.sol | 2 +- .../mainnet/connectors/lixir/helpers.sol | 36 +++++++---- .../mainnet/connectors/lixir/interface.sol | 2 +- contracts/mainnet/connectors/lixir/main.sol | 63 ++++++++++++++----- 4 files changed, 74 insertions(+), 29 deletions(-) diff --git a/contracts/mainnet/connectors/lixir/events.sol b/contracts/mainnet/connectors/lixir/events.sol index f6c3b2d7..3aee3a76 100644 --- a/contracts/mainnet/connectors/lixir/events.sol +++ b/contracts/mainnet/connectors/lixir/events.sol @@ -16,6 +16,6 @@ contract Events { uint256 indexed recipient, uint256 shares, uint256 amount0Out, - uint256 amount1Out, + uint256 amount1Out ); } \ No newline at end of file diff --git a/contracts/mainnet/connectors/lixir/helpers.sol b/contracts/mainnet/connectors/lixir/helpers.sol index 9f211cc1..f16c8bee 100644 --- a/contracts/mainnet/connectors/lixir/helpers.sol +++ b/contracts/mainnet/connectors/lixir/helpers.sol @@ -8,48 +8,58 @@ import "./interface.sol"; abstract contract Helpers is DSMath, Basic { ILixirFactory constant factory = - ILixirFactory(0xfbc744df515f8962c18e79795f469d57ec460691); + ILixirFactory(0xFbC744df515F8962C18e79795F469d57EC460691); function _deposit( + address vault, uint256 amount0Desired, uint256 amount1Desired, uint256 amount0Min, uint256 amount1Min, address recipient, uint256 deadline - ) returns ( + ) internal returns ( uint256 shares, uint256 amount0In, uint256 amount1In ) { - + return (0, 0, 0); } - function _depositETH( + address vault, uint256 amountDesired, uint256 amountEthMin, uint256 amountMin, address recipient, uint256 deadline - ) returns ( + ) internal returns ( uint256 shares, uint256 amountEthIn, uint256 amountIn ) { - + return (0, 0, 0); } - function _withdraw( - - ) returns () { - + address withdrawer, + uint256 shares, + uint256 amount0Min, + uint256 amount1Min, + address recipient, + uint256 deadline + ) internal returns (uint256 amount0Out, uint256 amount1Out) { + return (0, 0); } function _withdrawETH( - - ) returns () { - + address withdrawer, + uint256 shares, + uint256 amountEthMin, + uint256 amountMin, + address payable recipient, + uint256 deadline + ) internal returns (uint256 amountEthOut, uint256 amountOut) { + return (0, 0); } } diff --git a/contracts/mainnet/connectors/lixir/interface.sol b/contracts/mainnet/connectors/lixir/interface.sol index 7964b353..b3e94765 100644 --- a/contracts/mainnet/connectors/lixir/interface.sol +++ b/contracts/mainnet/connectors/lixir/interface.sol @@ -208,7 +208,7 @@ interface ILixirFactory { // is LixirBase // don't think we need this address token0, address token1, uint256 index - ) public view returns (address); + ) external view returns (address); function vaultsLengthForPair(address token0, address token1) external diff --git a/contracts/mainnet/connectors/lixir/main.sol b/contracts/mainnet/connectors/lixir/main.sol index 355aa6e5..964c51f5 100644 --- a/contracts/mainnet/connectors/lixir/main.sol +++ b/contracts/mainnet/connectors/lixir/main.sol @@ -14,16 +14,18 @@ abstract contract LixirResolver is Helpers, Events { /** * @dev Add liqudity to the vault * @notice Mint Lixir Vault Tokens - * @param token0 token0 address - * @param token1 token1 address - * @param amount0 amount of tokenA - * @param amount1 amount of tokenB + * @param vault vault address + * @param amount0Desired amount of tokenA + * @param amount1Desired amount of tokenB + * @param amount0Min amount of tokenA + * @param amount1Min amount of tokenB + * @param recipient recipient of the Lixir Vault Tokens + * @param deadline unix timestamp * @param getIds ID to retrieve amtA * @param setId ID stores the amount of LP token */ - function desosit( - address token0, - address token1, + function deposit( + address vault, uint256 amount0Desired, uint256 amount1Desired, uint256 amount0Min, @@ -37,10 +39,39 @@ abstract contract LixirResolver is Helpers, Events { payable returns (string memory _eventName, bytes memory _eventParam) { - // grab the correct vault from the factory - - // check if one of these is ETH, you have to use depositETH, not deposit - + uint256 shares; + uint256 amount0In; + uint256 amount1In; + + 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( @@ -64,11 +95,14 @@ abstract contract LixirResolver is Helpers, Events { // uint256 amountB // ) = _mint(params); - // setUint(setId, liquidity); + setUint(setId, shares); - _eventName = "LogDeposit(uint256,uint256,uint256,uint256,int24,int24)"; + _eventName = "LogDeposit(address,uint256,uint256,uint256)"; _eventParam = abi.encode( - vault + vault, + shares, + amount0In, + amount1In ); } @@ -80,6 +114,7 @@ abstract contract LixirResolver is Helpers, Events { * @param shares the amount of Lixir Vault Tokens to remove * @param amount0Min Min amount of token0. * @param amount1Min Min amount of token1. + * @param deadline unix timestamp * @param getId ID to retrieve LP token amounts * @param setIds stores the amount of output tokens */