From f3aaea677b59321d5251229733fcbda48c03bdc5 Mon Sep 17 00:00:00 2001 From: Richa-iitr Date: Wed, 15 Jun 2022 14:44:49 +0530 Subject: [PATCH] code refactor --- contracts/avalanche/common/interfaces.sol | 3 ++- contracts/avalanche/connectors/swap/helpers.sol | 9 ++++++--- contracts/mainnet/common/interfaces.sol | 5 +++-- contracts/mainnet/connectors/swap/helpers.sol | 9 ++++++--- contracts/polygon/common/interfaces.sol | 4 +++- contracts/polygon/connectors/swap/helpers.sol | 9 ++++++--- 6 files changed, 26 insertions(+), 13 deletions(-) diff --git a/contracts/avalanche/common/interfaces.sol b/contracts/avalanche/common/interfaces.sol index e9a3b0c1..912e57b1 100644 --- a/contracts/avalanche/common/interfaces.sol +++ b/contracts/avalanche/common/interfaces.sol @@ -1,5 +1,6 @@ //SPDX-License-Identifier: MIT pragma solidity ^0.7.0; +pragma abicoder v2; interface TokenInterface { function approve(address, uint256) external; @@ -23,5 +24,5 @@ interface AccountInterface { } interface InstaConnectors { - function connectors(string memory) external returns (address); + function isConnectors(string[] calldata) external returns (bool, address[] memory); } diff --git a/contracts/avalanche/connectors/swap/helpers.sol b/contracts/avalanche/connectors/swap/helpers.sol index dabc32d7..b9207a26 100644 --- a/contracts/avalanche/connectors/swap/helpers.sol +++ b/contracts/avalanche/connectors/swap/helpers.sol @@ -28,10 +28,13 @@ contract SwapHelpers { require(_length > 0, "zero-length-not-allowed"); require(_datas.length == _length, "calldata-length-invalid"); + (bool isOk, address[] memory connectors) = instaConnectors.isConnectors( + _connectors + ); + require(isOk, "connector-names-invalid"); + for (uint256 i = 0; i < _length; i++) { - (success, returnData) = instaConnectors - .connectors(_connectors[i]) - .delegatecall(_datas[i]); + (success, returnData) = connectors[i].delegatecall(_datas[i]); if (success) { connector = _connectors[i]; break; diff --git a/contracts/mainnet/common/interfaces.sol b/contracts/mainnet/common/interfaces.sol index e1ed2ca2..29f60e4b 100644 --- a/contracts/mainnet/common/interfaces.sol +++ b/contracts/mainnet/common/interfaces.sol @@ -1,5 +1,6 @@ //SPDX-License-Identifier: MIT pragma solidity ^0.7.0; +pragma abicoder v2; interface TokenInterface { function approve(address, uint256) external; @@ -29,5 +30,5 @@ interface AccountInterface { } interface InstaConnectors { - function connectors(string memory) external returns (address); -} \ No newline at end of file + function isConnectors(string[] calldata) external returns (bool, address[] memory); +} diff --git a/contracts/mainnet/connectors/swap/helpers.sol b/contracts/mainnet/connectors/swap/helpers.sol index edf49e1f..1405be37 100644 --- a/contracts/mainnet/connectors/swap/helpers.sol +++ b/contracts/mainnet/connectors/swap/helpers.sol @@ -28,10 +28,13 @@ contract SwapHelpers { require(_length > 0, "zero-length-not-allowed"); require(_datas.length == _length, "calldata-length-invalid"); + (bool isOk, address[] memory connectors) = instaConnectors.isConnectors( + _connectors + ); + require(isOk, "connector-names-invalid"); + for (uint256 i = 0; i < _length; i++) { - (success, returnData) = instaConnectors - .connectors(_connectors[i]) - .delegatecall(_datas[i]); + (success, returnData) = connectors[i].delegatecall(_datas[i]); if (success) { connector = _connectors[i]; break; diff --git a/contracts/polygon/common/interfaces.sol b/contracts/polygon/common/interfaces.sol index e395b83c..94f054e1 100644 --- a/contracts/polygon/common/interfaces.sol +++ b/contracts/polygon/common/interfaces.sol @@ -1,5 +1,6 @@ //SPDX-License-Identifier: MIT pragma solidity ^0.7.0; +pragma abicoder v2; interface TokenInterface { function approve(address, uint256) external; @@ -28,5 +29,6 @@ interface AccountInterface { } interface InstaConnectors { - function connectors(string memory) external returns (address); + function isConnectors(string[] calldata) external returns (bool, address[] memory); } + diff --git a/contracts/polygon/connectors/swap/helpers.sol b/contracts/polygon/connectors/swap/helpers.sol index acecb5b5..b1badc57 100644 --- a/contracts/polygon/connectors/swap/helpers.sol +++ b/contracts/polygon/connectors/swap/helpers.sol @@ -28,10 +28,13 @@ contract SwapHelpers { require(_length > 0, "zero-length-not-allowed"); require(_datas.length == _length, "calldata-length-invalid"); + (bool isOk, address[] memory connectors) = instaConnectors.isConnectors( + _connectors + ); + require(isOk, "connector-names-invalid"); + for (uint256 i = 0; i < _length; i++) { - (success, returnData) = instaConnectors - .connectors(_connectors[i]) - .delegatecall(_datas[i]); + (success, returnData) = connectors[i].delegatecall(_datas[i]); if (success) { connector = _connectors[i]; break;