claim function updated

This commit is contained in:
CodeNinja04 2022-03-03 23:52:00 +05:30
parent 37af029bbb
commit ef2c024e67
3 changed files with 114 additions and 77 deletions

View File

@ -8,8 +8,6 @@ import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "./interface.sol"; import "./interface.sol";
abstract contract Helpers is DSMath, Basic { abstract contract Helpers is DSMath, Basic {
P1M2 internal constant p1m2 =
P1M2 internal constant p1m2 = P1M2("0xf40c01Adc86CF5d534Ff5CaFaA451694FdD2b08C"); P1M2("0xf40c01Adc86CF5d534Ff5CaFaA451694FdD2b08C");
} }

View File

@ -1,9 +1,19 @@
pragma solidity ^0.8.6; pragma solidity ^0.8.6;
interface P1M2 { 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_, uint256 amount_)
function withdraw(address token_, uint amount_) external returns (uint itokenAmount_); external
function withdrawItoken(address token_, uint itokenAmount_) external returns (uint amount_); returns (uint256 itokenAmount_);
function claim(address user_, address token_) external returns (uint[] memory updatedRewards_);
function withdrawItoken(address token_, uint256 itokenAmount_)
external
returns (uint256 amount_);
function claim(address user_, address token_)
external
returns (uint256[] memory updatedRewards_);
} }

View File

@ -1,79 +1,108 @@
pragma solidity ^0.8.6; pragma solidity ^0.8.6;
pragma experimental ABIEncoderV2; pragma experimental ABIEncoderV2;
import {Events} from "./events.sol";
import "./events.sol"; import {Helpers} "./helpers.sol";
import "./helpers.sol";
import { TokenInterface } from "../../common/interfaces.sol"; import { TokenInterface } from "../../common/interfaces.sol";
abstract contract FluidityP1M2 is Events, Helpers { 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_, uint256 itokenAmount_ = p1m2.supply(token_, amt_);
uint amt,
uint getId,
uint setId
) public payable returns (string memory _eventName, bytes memory _eventParam) {
uint amt_ = getUint(getId, amt); setUint(setId, amt_);
TokenInterface tokenContract = TokenInterface(token_); _eventName = "LogSupply(address,uint,uint,uint,uint)";
amt_ = amt_ == type(uint).max ? tokenContract.balanceOf(address(this)) : amt_; _eventParam = abi.encode(
address(token_),
amt_,
itokenAmount_,
getId,
setId
);
}
(uint itokenAmount_ )= p1m2.supply(token_,amt_ ); function withdraw(
address token_,
setUint(setId, amt_ ); uint256 amount_,
uint256 getId,
_eventName = "LogSupply(address,uint,uint,uint,uint)"; uint256 setId
_eventParam = abi.encode(address(token_) , amt_ , itokenAmount_ , getId , setId); )
} public
payable
returns (string memory _eventName, bytes memory _eventParam)
function withdraw(address token_ , uint amount_, uint getId , uint setId) public payable returns (string memory _eventName , bytes memory _eventParam){ {
uint256 amt_ = getUint(getId, amount_);
uint amt_ = getUint(getId, amount_); TokenInterface tokenContract = TokenInterface(token_);
TokenInterface tokenContract = TokenInterface(token_); amt_ = amt_ == type(uint256).max
amt_ = amt_ == type(uint).max ? tokenContract.balanceOf(address(this)) : amt_; ? 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_);
}
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_
);
}
} }