updates events

This commit is contained in:
pradyuman-verma 2021-12-15 23:03:49 +05:30
parent 2a0a61f1e1
commit f511685a15
No known key found for this signature in database
GPG Key ID: E36FD6BC8923221F
2 changed files with 238 additions and 207 deletions

View File

@ -1,31 +1,41 @@
pragma solidity ^0.7.0; pragma solidity ^0.7.0;
contract Events { contract Events {
event LogDeposit( event LogDeposit(
uint256 indexed pid, address token1,
uint256 indexed version, address token2,
uint256 amount uint256 indexed pid,
); uint256 indexed version,
event LogWithdraw( uint256 amount
uint256 indexed pid, );
uint256 indexed version, event LogWithdraw(
uint256 amount address token1,
); address token2,
event LogEmergencyWithdraw( uint256 indexed pid,
uint256 indexed pid, uint256 indexed version,
uint256 indexed version, uint256 amount
uint256 lpAmount, );
uint256 rewardsAmount event LogEmergencyWithdraw(
); address token1,
event LogHarvest( address token2,
uint256 indexed pid, uint256 indexed pid,
uint256 indexed version, uint256 indexed version,
uint256 amount uint256 lpAmount,
); uint256 rewardsAmount
event LogWithdrawAndHarvest( );
uint256 indexed pid, event LogHarvest(
uint256 indexed version, address token1,
uint256 widrawAmount, address token2,
uint256 harvestAmount uint256 indexed pid,
); uint256 indexed version,
uint256 amount
);
event LogWithdrawAndHarvest(
address token1,
address token2,
uint256 indexed pid,
uint256 indexed version,
uint256 widrawAmount,
uint256 harvestAmount
);
} }

View File

@ -6,193 +6,214 @@ pragma experimental ABIEncoderV2;
* @dev Decentralized Exchange. * @dev Decentralized Exchange.
*/ */
import {TokenInterface} from "../../common/interfaces.sol"; import { TokenInterface } from "../../common/interfaces.sol";
import {Helpers} from "./helpers.sol"; import { Helpers } from "./helpers.sol";
import {Events} from "./events.sol"; import { Events } from "./events.sol";
abstract contract SushipswapIncentiveResolver is Helpers, Events { abstract contract SushipswapIncentiveResolver is Helpers, Events {
/** /**
* @dev deposit LP token to masterChef * @dev deposit LP token to masterChef
* @notice deposit LP token to masterChef * @notice deposit LP token to masterChef
* @param token1 token1 of LP token * @param token1 token1 of LP token
* @param token2 token2 of LP token * @param token2 token2 of LP token
* @param amount amount of LP token * @param amount amount of LP token
* @param getId ID to retrieve amount * @param getId ID to retrieve amount
* @param setId ID stores Pool ID * @param setId ID stores Pool ID
*/ */
function deposit( function deposit(
address token1, address token1,
address token2, address token2,
uint256 amount, uint256 amount,
uint256 getId, uint256 getId,
uint256 setId, uint256 setId,
Metadata memory data Metadata memory data
) )
external external
payable payable
returns (string memory _eventName, bytes memory _eventParam) returns (string memory _eventName, bytes memory _eventParam)
{ {
token1 = changeEthAddrToWethAddr(token1); token1 = changeEthAddrToWethAddr(token1);
token2 = changeEthAddrToWethAddr(token2); token2 = changeEthAddrToWethAddr(token2);
amount = getUint(getId, amount); amount = getUint(getId, amount);
if(data.poolId == uint256(-1)|| data.version <= 0 || data.lpToken == address(0)){ if (
data = _getPoolId( data.poolId == uint256(-1) ||
token1, data.version <= 0 ||
token2 data.lpToken == address(0)
); ) {
} data = _getPoolId(token1, token2);
setUint(setId, data.poolId); }
require(data.poolId != uint256(-1), "pool-does-not-exist"); setUint(setId, data.poolId);
TokenInterface lpToken = TokenInterface(data.lpToken); require(data.poolId != uint256(-1), "pool-does-not-exist");
lpToken.approve(address(masterChef), amount); TokenInterface lpToken = TokenInterface(data.lpToken);
_deposit(data, amount); lpToken.approve(address(masterChef), amount);
_eventName = "LogDeposit(uint256,uint256,uint256)"; _deposit(data, amount);
_eventParam = abi.encode(data.poolId, data.version, amount); _eventName = "LogDeposit(address,address,uint256,uint256,uint256)";
} _eventParam = abi.encode(
token1,
token2,
data.poolId,
data.version,
amount
);
}
/** /**
* @dev withdraw LP token from masterChef * @dev withdraw LP token from masterChef
* @notice withdraw LP token from masterChef * @notice withdraw LP token from masterChef
* @param token1 token1 of LP token * @param token1 token1 of LP token
* @param token2 token2 of LP token * @param token2 token2 of LP token
* @param amount amount of LP token * @param amount amount of LP token
* @param getId ID to retrieve amount * @param getId ID to retrieve amount
* @param setId ID stores Pool ID * @param setId ID stores Pool ID
*/ */
function withdraw( function withdraw(
address token1, address token1,
address token2, address token2,
uint256 amount, uint256 amount,
uint256 getId, uint256 getId,
uint256 setId, uint256 setId,
Metadata memory data Metadata memory data
) )
external external
payable payable
returns (string memory _eventName, bytes memory _eventParam) returns (string memory _eventName, bytes memory _eventParam)
{ {
token1 = changeEthAddrToWethAddr(token1); token1 = changeEthAddrToWethAddr(token1);
token2 = changeEthAddrToWethAddr(token2); token2 = changeEthAddrToWethAddr(token2);
amount = getUint(getId, amount); amount = getUint(getId, amount);
if(data.poolId == uint256(-1)|| data.version <= 0){ if (data.poolId == uint256(-1) || data.version <= 0) {
data = _getPoolId( data = _getPoolId(token1, token2);
token1, }
token2 setUint(setId, data.poolId);
); require(data.poolId != uint256(-1), "pool-does-not-exist");
} _withdraw(data, amount);
setUint(setId, data.poolId); _eventName = "LogDeposit(address,address,uint256,uint256,uint256)";
require(data.poolId != uint256(-1), "pool-does-not-exist"); _eventParam = abi.encode(
_withdraw(data, amount); token1,
_eventName = "LogWithdraw(uint256,uint256,uint256)"; token2,
_eventParam = abi.encode(data.poolId, data.version, amount); data.poolId,
} data.version,
amount
);
}
/** /**
* @dev harvest from masterChef * @dev harvest from masterChef
* @notice harvest from masterChef * @notice harvest from masterChef
* @param token1 token1 deposited of LP token * @param token1 token1 deposited of LP token
* @param token2 token2 deposited LP token * @param token2 token2 deposited LP token
* @param setId ID stores Pool ID * @param setId ID stores Pool ID
*/ */
function harvest( function harvest(
address token1, address token1,
address token2, address token2,
uint256 setId, uint256 setId,
Metadata memory data Metadata memory data
) )
external external
payable payable
returns (string memory _eventName, bytes memory _eventParam) returns (string memory _eventName, bytes memory _eventParam)
{ {
token1 = changeEthAddrToWethAddr(token1); token1 = changeEthAddrToWethAddr(token1);
token2 = changeEthAddrToWethAddr(token2); token2 = changeEthAddrToWethAddr(token2);
if(data.poolId == uint256(-1)|| data.version <= 0 ){ if (data.poolId == uint256(-1) || data.version <= 0) {
data = _getPoolId( data = _getPoolId(token1, token2);
token1, }
token2 setUint(setId, data.poolId);
); require(data.poolId != uint256(-1), "pool-does-not-exist");
} (, uint256 rewardsAmount) = _getUserInfo(data);
setUint(setId, data.poolId); if (data.version == 2) _harvest(data);
require(data.poolId != uint256(-1), "pool-does-not-exist"); else _withdraw(data, 0);
(, uint256 rewardsAmount) = _getUserInfo(data); _eventName = "LogDeposit(address,address,uint256,uint256,uint256)";
if (data.version == 2) _harvest(data); _eventParam = abi.encode(
else _withdraw(data, 0); token1,
_eventName = "LogHarvest(uint256,uint256,uint256)"; token2,
_eventParam = abi.encode(data.poolId, data.version, rewardsAmount); data.poolId,
} data.version,
rewardsAmount
);
}
/** /**
* @dev withdraw LP token and harvest from masterChef * @dev withdraw LP token and harvest from masterChef
* @notice withdraw LP token and harvest from masterChef * @notice withdraw LP token and harvest from masterChef
* @param token1 token1 of LP token * @param token1 token1 of LP token
* @param token2 token2 of LP token * @param token2 token2 of LP token
* @param amount amount of LP token * @param amount amount of LP token
* @param getId ID to retrieve amount * @param getId ID to retrieve amount
* @param setId ID stores Pool ID * @param setId ID stores Pool ID
*/ */
function withdrawAndHarvest( function withdrawAndHarvest(
address token1, address token1,
address token2, address token2,
uint256 amount, uint256 amount,
uint256 getId, uint256 getId,
uint256 setId, uint256 setId,
Metadata memory data Metadata memory data
) )
external external
payable payable
returns (string memory _eventName, bytes memory _eventParam) returns (string memory _eventName, bytes memory _eventParam)
{ {
token1 = changeEthAddrToWethAddr(token1); token1 = changeEthAddrToWethAddr(token1);
token2 = changeEthAddrToWethAddr(token2); token2 = changeEthAddrToWethAddr(token2);
amount = getUint(getId, amount); amount = getUint(getId, amount);
if(data.poolId == uint256(-1)|| data.version <= 0){ if (data.poolId == uint256(-1) || data.version <= 0) {
data = _getPoolId( data = _getPoolId(token1, token2);
token1, }
token2 setUint(setId, data.poolId);
); require(data.poolId != uint256(-1), "pool-does-not-exist");
} (, uint256 rewardsAmount) = _getUserInfo(data);
setUint(setId, data.poolId); _withdrawAndHarvest(data, amount);
require(data.poolId != uint256(-1), "pool-does-not-exist"); _eventName = "LogWithdrawAndHarvest(address,address,uint256,uint256,uint256,uint256)";
(, uint256 rewardsAmount) = _getUserInfo(data); _eventParam = abi.encode(
_withdrawAndHarvest(data, amount); token1,
_eventName = "LogWithdrawAndHarvest(uint256,uint256,uint256,uint256)"; token2,
_eventParam = abi.encode(data.poolId, data.version, amount, rewardsAmount); data.poolId,
} data.version,
amount,
rewardsAmount
);
}
/** /**
* @dev emergency withdraw from masterChef * @dev emergency withdraw from masterChef
* @notice emergency withdraw from masterChef * @notice emergency withdraw from masterChef
* @param token1 token1 deposited of LP token * @param token1 token1 deposited of LP token
* @param token2 token2 deposited LP token * @param token2 token2 deposited LP token
* @param setId ID stores Pool ID * @param setId ID stores Pool ID
*/ */
function emergencyWithdraw( function emergencyWithdraw(
address token1, address token1,
address token2, address token2,
uint256 setId, uint256 setId,
Metadata memory data Metadata memory data
) )
external external
payable payable
returns (string memory _eventName, bytes memory _eventParam) returns (string memory _eventName, bytes memory _eventParam)
{ {
token1 = changeEthAddrToWethAddr(token1); token1 = changeEthAddrToWethAddr(token1);
token2 = changeEthAddrToWethAddr(token2); token2 = changeEthAddrToWethAddr(token2);
if(data.poolId == uint256(-1)|| data.version <= 0 ){ if (data.poolId == uint256(-1) || data.version <= 0) {
data = _getPoolId( data = _getPoolId(token1, token2);
token1, }
token2 setUint(setId, data.poolId);
); require(data.poolId != uint256(-1), "pool-does-not-exist");
} (uint256 lpAmount, uint256 rewardsAmount) = _getUserInfo(data);
setUint(setId, data.poolId); _emergencyWithdraw(data);
require(data.poolId != uint256(-1), "pool-does-not-exist"); _eventName = "LogEmergencyWithdraw(address,addressuint256,uint256,uint256,uint256)";
(uint256 lpAmount, uint256 rewardsAmount) = _getUserInfo(data); _eventParam = abi.encode(
_emergencyWithdraw(data); token1,
_eventName = "LogEmergencyWithdraw(uint256,uint256,uint256,uint256)"; token2,
_eventParam = abi.encode(data.poolId, data.version, lpAmount, rewardsAmount); data.poolId,
} data.version,
lpAmount,
rewardsAmount
);
}
} }
contract ConnectV2SushiswapIncentive is SushipswapIncentiveResolver { contract ConnectV2SushiswapIncentive is SushipswapIncentiveResolver {
string public constant name = "SushipswapIncentive-v1.1"; string public constant name = "SushipswapIncentive-v1.1";
} }