diff --git a/contracts/polygon/connectors/fluidity/helper.sol b/contracts/polygon/connectors/fluidity/helper.sol index 0203f6c7..fe269db5 100644 --- a/contracts/polygon/connectors/fluidity/helper.sol +++ b/contracts/polygon/connectors/fluidity/helper.sol @@ -8,8 +8,6 @@ import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "./interface.sol"; abstract contract Helpers is DSMath, Basic { - -P1M2 internal constant p1m2 = P1M2("0xf40c01Adc86CF5d534Ff5CaFaA451694FdD2b08C"); - + P1M2 internal constant p1m2 = + P1M2("0xf40c01Adc86CF5d534Ff5CaFaA451694FdD2b08C"); } - diff --git a/contracts/polygon/connectors/fluidity/interface.sol b/contracts/polygon/connectors/fluidity/interface.sol index 0c5a4b72..9f866fde 100644 --- a/contracts/polygon/connectors/fluidity/interface.sol +++ b/contracts/polygon/connectors/fluidity/interface.sol @@ -1,9 +1,19 @@ pragma solidity ^0.8.6; interface P1M2 { + function supply(address token_, uint256 amount_) + external + returns (uint256 itokenAmount_); - function supply(address token_, uint amount_) external returns (uint itokenAmount_); - function withdraw(address token_, uint amount_) external returns (uint itokenAmount_); - function withdrawItoken(address token_, uint itokenAmount_) external returns (uint amount_); - function claim(address user_, address token_) external returns (uint[] memory updatedRewards_); -} \ No newline at end of file + function withdraw(address token_, uint256 amount_) + external + returns (uint256 itokenAmount_); + + function withdrawItoken(address token_, uint256 itokenAmount_) + external + returns (uint256 amount_); + + function claim(address user_, address token_) + external + returns (uint256[] memory updatedRewards_); +} diff --git a/contracts/polygon/connectors/fluidity/main.sol b/contracts/polygon/connectors/fluidity/main.sol index 61468a71..ebb66a3f 100644 --- a/contracts/polygon/connectors/fluidity/main.sol +++ b/contracts/polygon/connectors/fluidity/main.sol @@ -1,79 +1,108 @@ pragma solidity ^0.8.6; pragma experimental ABIEncoderV2; - -import "./events.sol"; -import "./helpers.sol"; +import {Events} from "./events.sol"; +import {Helpers} "./helpers.sol"; import { TokenInterface } from "../../common/interfaces.sol"; + abstract contract FluidityP1M2 is Events, Helpers { + function supply( + address token_, + uint256 amt, + uint256 getId, + uint256 setId + ) + public + payable + returns (string memory _eventName, bytes memory _eventParam) + { + uint256 amt_ = getUint(getId, amt); + TokenInterface tokenContract = TokenInterface(token_); + amt_ = amt_ == type(uint256).max + ? tokenContract.balanceOf(address(this)) + : amt_; -function supply(address token_, - uint amt, - uint getId, - uint setId - ) public payable returns (string memory _eventName, bytes memory _eventParam) { - - uint amt_ = getUint(getId, amt); + uint256 itokenAmount_ = p1m2.supply(token_, amt_); - TokenInterface tokenContract = TokenInterface(token_); - amt_ = amt_ == type(uint).max ? tokenContract.balanceOf(address(this)) : amt_; - - (uint itokenAmount_ )= p1m2.supply(token_,amt_ ); + setUint(setId, amt_); - setUint(setId, amt_ ); + _eventName = "LogSupply(address,uint,uint,uint,uint)"; + _eventParam = abi.encode( + address(token_), + amt_, + itokenAmount_, + getId, + setId + ); + } - _eventName = "LogSupply(address,uint,uint,uint,uint)"; - _eventParam = abi.encode(address(token_) , amt_ , itokenAmount_ , getId , setId); + function withdraw( + address token_, + uint256 amount_, + uint256 getId, + uint256 setId + ) + public + payable + returns (string memory _eventName, bytes memory _eventParam) + { + uint256 amt_ = getUint(getId, amount_); + TokenInterface tokenContract = TokenInterface(token_); + amt_ = amt_ == type(uint256).max + ? tokenContract.balanceOf(address(this)) + : amt_; + + uint256 itokenAmount_ = p1m2.withdraw(token_, amt_); + + setUint(setId, amt_); + + _eventName = "LogWithdraw(address,uint,uint,uint,uint)"; + _eventParam = abi.encode( + address(token_), + amt_, + itokenAmount_, + getId, + setId + ); + } + + function withdrawItoken( + address token_, + uint256 itokenAmount_, + uint256 getId, + uint256 setId + ) + public + payable + returns (string memory _eventName, bytes memory _eventParam) + { + uint256 amt_ = getUint(getId, itokenAmount_); + TokenInterface tokenContract = TokenInterface(token_); + amt_ = amt_ == type(uint256).max + ? tokenContract.balanceOf(address(this)) + : amt_; + + uint256 amount_ = p1m2.withdrawItoken(token_, amt_); + + setUint(setId, amt_); + + _eventName = "LogWithdrawItoken(address,uint,uint,uint,uint)"; + _eventParam = abi.encode(address(token_), amt_, amount_, getId, setId); + } + + function claim( + address user_, + address token_, + + ) public returns (string memory _eventName, bytes memory _eventParam) { + uint256[] memory updatedRewards_ = p1m2.claim(user_, token_); + + _eventName = "LogClaimReward(address,address,uint[])"; + _eventParam = abi.encode( + address(user_), + address(token_), + updatedRewards_ + ); + } } - - -function withdraw(address token_ , uint amount_, uint getId , uint setId) public payable returns (string memory _eventName , bytes memory _eventParam){ - - uint amt_ = getUint(getId, amount_); - TokenInterface tokenContract = TokenInterface(token_); - amt_ = amt_ == type(uint).max ? tokenContract.balanceOf(address(this)) : amt_; - - (uint itokenAmount_) = p1m2.withdraw(token_,amt_); - - setUint(setId, amt_ ); - - - - _eventName = "LogWithdraw(address,uint,uint,uint,uint)"; - _eventParam = abi.encode(address(token_) , amt_ , itokenAmount_ , getId , setId); - - -} - -function withdrawItoken(address token_, uint itokenAmount_ , uint getId,uint setId) public payable returns (string memory _eventName , bytes memory _eventParam){ - - uint amt_ = getUint(getId, itokenAmount_); - TokenInterface tokenContract = TokenInterface(token_); - amt_ = amt_ == type(uint).max ? tokenContract.balanceOf(address(this)) : amt_; - - (uint amount_) = p1m2.withdrawItoken(token_,amt_); - - setUint(setId, amt_ ); - - - - _eventName = "LogWithdrawItoken(address,uint,uint,uint,uint)"; - _eventParam = abi.encode(address(token_) ,amt_, amount_ , getId , setId); - -} - - -function claim(address user_, address token_, uint getId,uint setId) public payable returns (string memory _eventName , bytes memory _eventParam){ - - - uint[] memory updatedRewards_ = p1m2.claim(user_,token_); - - - _eventName = "LogClaimReward(address,address,uint[])"; - _eventParam = abi.encode(address(user_),address(token_) , updatedRewards_); - -} - - -} \ No newline at end of file