updated code

This commit is contained in:
Richa-iitr 2022-06-04 17:54:25 +05:30
parent 6316cbe46e
commit 59334b7b72
2 changed files with 25 additions and 21 deletions

View File

@ -45,9 +45,9 @@ contract SwapHelpers is Helper {
"callDatas-length-invalid" "callDatas-length-invalid"
); );
// require _connectors[i] == "1INCH-A" || "ZEROX-A" || "PARASWAP-A" || similar connectors
for (uint256 i = 0; i < _connectors.length; i++) { for (uint256 i = 0; i < _connectors.length; i++) {
string[] memory _target = new string[](1);
bytes[] memory _data = new bytes[](1);
bytes4 swapData = bytes4( bytes4 swapData = bytes4(
keccak256("swap(address,address,uint256,uint256,bytes,uint256)") keccak256("swap(address,address,uint256,uint256,bytes,uint256)")
); );
@ -61,8 +61,7 @@ contract SwapHelpers is Helper {
); );
} }
_target[0] = _connectors[i]; bytes memory _data = abi.encodeWithSelector(
_data[0] = abi.encodeWithSelector(
swapData, swapData,
_inputData.buyAddr, _inputData.buyAddr,
_inputData.sellAddr, _inputData.sellAddr,
@ -72,19 +71,9 @@ contract SwapHelpers is Helper {
_inputData.setId _inputData.setId
); );
bytes4 _castData = bytes4(
keccak256("cast(string[],bytes[],address)")
);
bytes memory castData = abi.encodeWithSelector(
_castData,
_target,
_data,
address(0)
);
(success, returnData) = instaConnectors (success, returnData) = instaConnectors
.connectors(_connectors[i]) .connectors(_connectors[i])
.delegatecall(castData); .delegatecall(_data);
if (success) { if (success) {
_connector = _connectors[i]; _connector = _connectors[i];
@ -92,4 +81,23 @@ contract SwapHelpers is Helper {
} }
} }
} }
function decodeEvents(string memory _connector, bytes memory returnData)
internal
view
returns (uint256 _buyAmt, uint256 _sellAmt)
{
(, bytes memory _eventParam) = abi.decode(returnData, (string, bytes));
if (keccak256(bytes(_connector)) == keccak256(bytes("PARASWAP-A"))) {
(, , _buyAmt, _sellAmt, ) = abi.decode(
_eventParam,
(address, address, uint256, uint256, uint256)
);
} else {
(, , _buyAmt, _sellAmt, , ) = abi.decode(
_eventParam,
(address, address, uint256, uint256, uint256, uint256)
);
}
}
} }

View File

@ -57,11 +57,7 @@ abstract contract Swap is SwapHelpers, Events {
if (!success) { if (!success) {
revert("swap-failed"); revert("swap-failed");
} else { } else {
(, _eventParam) = abi.decode(returnData, (string, bytes)); (_buyAmt, _sellAmt) = decodeEvents(_connector, returnData);
(, , _buyAmt, _sellAmt, , ) = abi.decode(
_eventParam,
(address, address, uint256, uint256, uint256, uint256)
);
} }
_eventName = "LogSwap(string,address,address,uint256,uint256,uint256,uint256)"; _eventName = "LogSwap(string,address,address,uint256,uint256,uint256,uint256)";
@ -77,6 +73,6 @@ abstract contract Swap is SwapHelpers, Events {
} }
} }
contract ConnectV2Swap is Swap { contract ConnectV2SwapPolygon is Swap {
string public name = "Swap-v1"; string public name = "Swap-v1";
} }