updated compound with raw functions

This commit is contained in:
Samyak Jain 2021-03-29 03:25:46 +05:30
parent 88c8a689c2
commit 12652a2ca1
2 changed files with 83 additions and 35 deletions

View File

@ -11,7 +11,6 @@ contract Events {
event LogWithdraw( event LogWithdraw(
address indexed token, address indexed token,
string tokenId,
address cToken, address cToken,
uint256 tokenAmt, uint256 tokenAmt,
uint256 getId, uint256 getId,
@ -20,7 +19,6 @@ contract Events {
event LogBorrow( event LogBorrow(
address indexed token, address indexed token,
string tokenId,
address cToken, address cToken,
uint256 tokenAmt, uint256 tokenAmt,
uint256 getId, uint256 getId,
@ -29,7 +27,6 @@ contract Events {
event LogPayback( event LogPayback(
address indexed token, address indexed token,
string tokenId,
address cToken, address cToken,
uint256 tokenAmt, uint256 tokenAmt,
uint256 getId, uint256 getId,
@ -38,7 +35,6 @@ contract Events {
event LogDepositCToken( event LogDepositCToken(
address indexed token, address indexed token,
string tokenId,
address cToken, address cToken,
uint256 tokenAmt, uint256 tokenAmt,
uint256 cTokenAmt, uint256 cTokenAmt,
@ -48,7 +44,6 @@ contract Events {
event LogWithdrawCToken( event LogWithdrawCToken(
address indexed token, address indexed token,
string tokenId,
address cToken, address cToken,
uint256 tokenAmt, uint256 tokenAmt,
uint256 cTokenAmt, uint256 cTokenAmt,

View File

@ -59,15 +59,15 @@ abstract contract CompoundResolver is Events, Helpers {
* @param getId Get token amount at this ID from `InstaMemory` Contract. * @param getId Get token amount at this ID from `InstaMemory` Contract.
* @param setId Set token amount at this ID in `InstaMemory` Contract. * @param setId Set token amount at this ID in `InstaMemory` Contract.
*/ */
function withdraw( function withdrawRaw(
string calldata tokenId, address token,
address cToken,
uint256 amt, uint256 amt,
uint256 getId, uint256 getId,
uint256 setId uint256 setId
) external payable returns (string memory _eventName, bytes memory _eventParam) { ) public payable returns (string memory _eventName, bytes memory _eventParam) {
uint _amt = getUint(getId, amt); uint _amt = getUint(getId, amt);
(address token, address cToken) = compMapping.getMapping(tokenId);
require(token != address(0) && cToken != address(0), "ctoken mapping not found"); require(token != address(0) && cToken != address(0), "ctoken mapping not found");
CTokenInterface cTokenContract = CTokenInterface(cToken); CTokenInterface cTokenContract = CTokenInterface(cToken);
@ -82,8 +82,18 @@ abstract contract CompoundResolver is Events, Helpers {
} }
setUint(setId, _amt); setUint(setId, _amt);
_eventName = "LogWithdraw(address,string,address,uint256,uint256,uint256)"; _eventName = "LogWithdraw(address,address,uint256,uint256,uint256)";
_eventParam = abi.encode(token, tokenId, cToken, _amt, getId, setId); _eventParam = abi.encode(token, cToken, _amt, getId, setId);
}
function withdraw(
string calldata tokenId,
uint256 amt,
uint256 getId,
uint256 setId
) external payable returns (string memory _eventName, bytes memory _eventParam) {
(address token, address cToken) = compMapping.getMapping(tokenId);
(_eventName, _eventParam) = withdrawRaw(token, cToken, amt, getId, setId);
} }
/** /**
@ -93,22 +103,33 @@ abstract contract CompoundResolver is Events, Helpers {
* @param getId Get token amount at this ID from `InstaMemory` Contract. * @param getId Get token amount at this ID from `InstaMemory` Contract.
* @param setId Set token amount at this ID in `InstaMemory` Contract. * @param setId Set token amount at this ID in `InstaMemory` Contract.
*/ */
function borrow( function borrowRaw(
string calldata tokenId, address token,
address cToken,
uint256 amt, uint256 amt,
uint256 getId, uint256 getId,
uint256 setId uint256 setId
) external payable returns (string memory _eventName, bytes memory _eventParam) { ) public payable returns (string memory _eventName, bytes memory _eventParam) {
uint _amt = getUint(getId, amt); uint _amt = getUint(getId, amt);
(address token, address cToken) = compMapping.getMapping(tokenId);
require(token != address(0) && cToken != address(0), "ctoken mapping not found"); require(token != address(0) && cToken != address(0), "ctoken mapping not found");
enterMarket(cToken); enterMarket(cToken);
require(CTokenInterface(cToken).borrow(_amt) == 0, "borrow-failed"); require(CTokenInterface(cToken).borrow(_amt) == 0, "borrow-failed");
setUint(setId, _amt); setUint(setId, _amt);
_eventName = "LogBorrow(address,string,address,uint256,uint256,uint256)"; _eventName = "LogBorrow(address,address,uint256,uint256,uint256)";
_eventParam = abi.encode(token, tokenId, cToken, _amt, getId, setId); _eventParam = abi.encode(token, cToken, _amt, getId, setId);
}
function borrow(
string calldata tokenId,
uint256 amt,
uint256 getId,
uint256 setId
) external payable returns (string memory _eventName, bytes memory _eventParam) {
(address token, address cToken) = compMapping.getMapping(tokenId);
(_eventName, _eventParam) = borrowRaw(token, cToken, amt, getId, setId);
} }
/** /**
@ -118,14 +139,15 @@ abstract contract CompoundResolver is Events, Helpers {
* @param getId Get token amount at this ID from `InstaMemory` Contract. * @param getId Get token amount at this ID from `InstaMemory` Contract.
* @param setId Set token amount at this ID in `InstaMemory` Contract. * @param setId Set token amount at this ID in `InstaMemory` Contract.
*/ */
function payback( function paybackRaw(
string calldata tokenId, address token,
address cToken,
uint256 amt, uint256 amt,
uint256 getId, uint256 getId,
uint256 setId uint256 setId
) external payable returns (string memory _eventName, bytes memory _eventParam) { ) public payable returns (string memory _eventName, bytes memory _eventParam) {
uint _amt = getUint(getId, amt); uint _amt = getUint(getId, amt);
(address token, address cToken) = compMapping.getMapping(tokenId);
require(token != address(0) && cToken != address(0), "ctoken mapping not found"); require(token != address(0) && cToken != address(0), "ctoken mapping not found");
CTokenInterface cTokenContract = CTokenInterface(cToken); CTokenInterface cTokenContract = CTokenInterface(cToken);
@ -142,8 +164,18 @@ abstract contract CompoundResolver is Events, Helpers {
} }
setUint(setId, _amt); setUint(setId, _amt);
_eventName = "LogPayback(address,string,address,uint256,uint256,uint256)"; _eventName = "LogPayback(address,address,uint256,uint256,uint256)";
_eventParam = abi.encode(token, tokenId, cToken, _amt, getId, setId); _eventParam = abi.encode(token, cToken, _amt, getId, setId);
}
function payback(
string calldata tokenId,
uint256 amt,
uint256 getId,
uint256 setId
) external payable returns (string memory _eventName, bytes memory _eventParam) {
(address token, address cToken) = compMapping.getMapping(tokenId);
(_eventName, _eventParam) = paybackRaw(token, cToken, amt, getId, setId);
} }
/** /**
@ -153,14 +185,15 @@ abstract contract CompoundResolver is Events, Helpers {
* @param getId Get token amount at this ID from `InstaMemory` Contract. * @param getId Get token amount at this ID from `InstaMemory` Contract.
* @param setId Set ctoken amount at this ID in `InstaMemory` Contract. * @param setId Set ctoken amount at this ID in `InstaMemory` Contract.
*/ */
function depositCToken( function depositCTokenRaw(
string calldata tokenId, address token,
address cToken,
uint256 amt, uint256 amt,
uint256 getId, uint256 getId,
uint256 setId uint256 setId
) external payable returns (string memory _eventName, bytes memory _eventParam) { ) public payable returns (string memory _eventName, bytes memory _eventParam) {
uint _amt = getUint(getId, amt); uint _amt = getUint(getId, amt);
(address token, address cToken) = compMapping.getMapping(tokenId);
require(token != address(0) && cToken != address(0), "ctoken mapping not found"); require(token != address(0) && cToken != address(0), "ctoken mapping not found");
enterMarket(cToken); enterMarket(cToken);
@ -186,8 +219,18 @@ abstract contract CompoundResolver is Events, Helpers {
setUint(setId, _cAmt); setUint(setId, _cAmt);
} }
_eventName = "LogDepositCToken(address,string,address,uint256,uint256,uint256,uint256)"; _eventName = "LogDepositCToken(address,address,uint256,uint256,uint256,uint256)";
_eventParam = abi.encode(token, tokenId, cToken, _amt, _cAmt, getId, setId); _eventParam = abi.encode(token, cToken, _amt, _cAmt, getId, setId);
}
function depositCToken(
string calldata tokenId,
uint256 amt,
uint256 getId,
uint256 setId
) external payable returns (string memory _eventName, bytes memory _eventParam) {
(address token, address cToken) = compMapping.getMapping(tokenId);
(_eventName, _eventParam) = depositCTokenRaw(token, cToken, amt, getId, setId);
} }
/** /**
@ -197,14 +240,14 @@ abstract contract CompoundResolver is Events, Helpers {
* @param getId Get ctoken amount at this ID from `InstaMemory` Contract. * @param getId Get ctoken amount at this ID from `InstaMemory` Contract.
* @param setId Set token amount at this ID in `InstaMemory` Contract. * @param setId Set token amount at this ID in `InstaMemory` Contract.
*/ */
function withdrawCToken( function withdrawCTokenRaw(
string calldata tokenId, address token,
address cToken,
uint cTokenAmt, uint cTokenAmt,
uint getId, uint getId,
uint setId uint setId
) external payable returns (string memory _eventName, bytes memory _eventParam) { ) public payable returns (string memory _eventName, bytes memory _eventParam) {
uint _cAmt = getUint(getId, cTokenAmt); uint _cAmt = getUint(getId, cTokenAmt);
(address token, address cToken) = compMapping.getMapping(tokenId);
require(token != address(0) && cToken != address(0), "ctoken mapping not found"); require(token != address(0) && cToken != address(0), "ctoken mapping not found");
CTokenInterface cTokenContract = CTokenInterface(cToken); CTokenInterface cTokenContract = CTokenInterface(cToken);
@ -222,8 +265,18 @@ abstract contract CompoundResolver is Events, Helpers {
setUint(setId, withdrawAmt); setUint(setId, withdrawAmt);
_eventName = "LogWithdrawCToken(address,string,address,uint256,uint256,uint256,uint256)"; _eventName = "LogWithdrawCToken(address,address,uint256,uint256,uint256,uint256)";
_eventParam = abi.encode(token, tokenId, cToken, withdrawAmt, _cAmt, getId, setId); _eventParam = abi.encode(token, cToken, withdrawAmt, _cAmt, getId, setId);
}
function withdrawCToken(
string calldata tokenId,
uint cTokenAmt,
uint getId,
uint setId
) external payable returns (string memory _eventName, bytes memory _eventParam) {
(address token, address cToken) = compMapping.getMapping(tokenId);
(_eventName, _eventParam) = withdrawCTokenRaw(token, cToken, amt, getId, setId);
} }
/** /**