mirror of
				https://github.com/Instadapp/dsa-connectors.git
				synced 2024-07-29 22:37:00 +00:00 
			
		
		
		
	Merge pull request #48 from Instadapp/fix/approve-fix
Fix approve issue for token like USDT
This commit is contained in:
		
						commit
						1666a3823e
					
				| 
						 | 
				
			
			@ -27,6 +27,15 @@ abstract contract Basic is DSMath, Stores {
 | 
			
		|||
        return abi.encode(eventName, eventParam);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function approve(TokenInterface token, address spender, uint256 amount) internal {
 | 
			
		||||
        try token.approve(spender, amount) {
 | 
			
		||||
 | 
			
		||||
        } catch {
 | 
			
		||||
            token.approve(spender, 0);
 | 
			
		||||
            token.approve(spender, amount);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function changeEthAddress(address buy, address sell) internal pure returns(TokenInterface _buy, TokenInterface _sell){
 | 
			
		||||
        _buy = buy == ethAddr ? TokenInterface(wethAddr) : TokenInterface(buy);
 | 
			
		||||
        _sell = sell == ethAddr ? TokenInterface(wethAddr) : TokenInterface(sell);
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +47,7 @@ abstract contract Basic is DSMath, Stores {
 | 
			
		|||
 | 
			
		||||
    function convertWethToEth(bool isEth, TokenInterface token, uint amount) internal {
 | 
			
		||||
       if(isEth) {
 | 
			
		||||
            token.approve(address(token), amount);
 | 
			
		||||
            approve(token, address(token), amount);
 | 
			
		||||
            token.withdraw(amount);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -74,7 +74,7 @@ abstract contract OneInchResolverHelpers is OneInchResolver {
 | 
			
		|||
        if (address(_sellAddr) == ethAddr) {
 | 
			
		||||
            ethAmt = oneInchData._sellAmt;
 | 
			
		||||
        } else {
 | 
			
		||||
            TokenInterface(_sellAddr).approve(oneInchAddr, oneInchData._sellAmt);
 | 
			
		||||
            approve(TokenInterface(_sellAddr), oneInchAddr, oneInchData._sellAmt);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        require(checkOneInchSig(oneInchData.callData), "Not-swap-function");
 | 
			
		||||
| 
						 | 
				
			
			@ -124,5 +124,5 @@ abstract contract OneInch is OneInchResolverHelpers {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
contract ConnectV2OneInch is OneInch {
 | 
			
		||||
    string public name = "1Inch-v1.1";
 | 
			
		||||
    string public name = "1Inch-v1.2";
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@ pragma solidity ^0.7.0;
 | 
			
		|||
pragma experimental ABIEncoderV2;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @title 1Proto.
 | 
			
		||||
 * @title 1Inch(On-chain).
 | 
			
		||||
 * @dev On-chain and off-chian DEX Aggregator.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -30,7 +30,7 @@ abstract contract OneProtoResolver is Helpers, Events {
 | 
			
		|||
        if (address(_sellAddr) == ethAddr) {
 | 
			
		||||
            ethAmt = _sellAmt;
 | 
			
		||||
        } else {
 | 
			
		||||
            _sellAddr.approve(address(oneProto), _sellAmt);
 | 
			
		||||
            approve(_sellAddr, address(oneProto), _sellAmt);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -64,7 +64,7 @@ abstract contract OneProtoResolver is Helpers, Events {
 | 
			
		|||
        if (address(_sellAddr) == ethAddr) {
 | 
			
		||||
            ethAmt = _sellAmt;
 | 
			
		||||
        } else {
 | 
			
		||||
            _sellAddr.approve(address(oneProto), _sellAmt);
 | 
			
		||||
            approve(_sellAddr, address(oneProto), _sellAmt);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        uint initalBal = getTokenBal(_buyAddr);
 | 
			
		||||
| 
						 | 
				
			
			@ -221,5 +221,5 @@ abstract contract OneProto is OneProtoResolverHelpers {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
contract ConnectV2OneProto is OneProto {
 | 
			
		||||
    string public name = "1proto-v1";
 | 
			
		||||
    string public name = "1Proto-v1.1";
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,7 +37,7 @@ abstract contract AaveResolver is Events, Helpers {
 | 
			
		|||
        } else {
 | 
			
		||||
            TokenInterface tokenContract = TokenInterface(token);
 | 
			
		||||
            _amt = _amt == uint(-1) ? tokenContract.balanceOf(address(this)) : _amt;
 | 
			
		||||
            tokenContract.approve(aaveProvider.getLendingPoolCore(), _amt);
 | 
			
		||||
            approve(tokenContract, aaveProvider.getLendingPoolCore(), _amt);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        aave.deposit{value: ethAmt}(token, _amt, referralCode);
 | 
			
		||||
| 
						 | 
				
			
			@ -129,7 +129,7 @@ abstract contract AaveResolver is Events, Helpers {
 | 
			
		|||
        if (token == ethAddr) {
 | 
			
		||||
            ethAmt = _amt;
 | 
			
		||||
        } else {
 | 
			
		||||
            TokenInterface(token).approve(aaveProvider.getLendingPoolCore(), _amt);
 | 
			
		||||
            approve(TokenInterface(token), aaveProvider.getLendingPoolCore(), _amt);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        aave.repay{value: ethAmt}(token, _amt, payable(address(this)));
 | 
			
		||||
| 
						 | 
				
			
			@ -166,5 +166,5 @@ abstract contract AaveResolver is Events, Helpers {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
contract ConnectV2AaveV1 is AaveResolver {
 | 
			
		||||
    string constant public name = "AaveV1-v1";
 | 
			
		||||
    string constant public name = "AaveV1-v1.1";
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -42,7 +42,7 @@ abstract contract AaveResolver is Events, Helpers {
 | 
			
		|||
            _amt = _amt == uint(-1) ? tokenContract.balanceOf(address(this)) : _amt;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        tokenContract.approve(address(aave), _amt);
 | 
			
		||||
        approve(tokenContract, address(aave), _amt);
 | 
			
		||||
 | 
			
		||||
        aave.deposit(_token, _amt, address(this), referralCode);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -153,7 +153,7 @@ abstract contract AaveResolver is Events, Helpers {
 | 
			
		|||
 | 
			
		||||
        if (isEth) convertEthToWeth(isEth, tokenContract, _amt);
 | 
			
		||||
 | 
			
		||||
        tokenContract.approve(address(aave), _amt);
 | 
			
		||||
        approve(tokenContract, address(aave), _amt);
 | 
			
		||||
 | 
			
		||||
        aave.repay(_token, _amt, rateMode, address(this));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -42,7 +42,7 @@ abstract contract AaveResolver is Events, Helpers {
 | 
			
		|||
            _amt = _amt == uint(-1) ? tokenContract.balanceOf(address(this)) : _amt;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        tokenContract.approve(address(aave), _amt);
 | 
			
		||||
        approve(tokenContract, address(aave), _amt);
 | 
			
		||||
 | 
			
		||||
        aave.deposit(_token, _amt, address(this), referralCode);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -153,7 +153,7 @@ abstract contract AaveResolver is Events, Helpers {
 | 
			
		|||
 | 
			
		||||
        if (isEth) convertEthToWeth(isEth, tokenContract, _amt);
 | 
			
		||||
 | 
			
		||||
        tokenContract.approve(address(aave), _amt);
 | 
			
		||||
        approve(tokenContract, address(aave), _amt);
 | 
			
		||||
 | 
			
		||||
        aave.repay(_token, _amt, rateMode, address(this));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -211,5 +211,5 @@ abstract contract AaveResolver is Events, Helpers {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
contract ConnectV2AaveV2 is AaveResolver {
 | 
			
		||||
    string constant public name = "AaveV2-v1";
 | 
			
		||||
    string constant public name = "AaveV2-v1.1";
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,7 +40,7 @@ abstract contract CompoundResolver is Events, Helpers {
 | 
			
		|||
        } else {
 | 
			
		||||
            TokenInterface tokenContract = TokenInterface(token);
 | 
			
		||||
            _amt = _amt == uint(-1) ? tokenContract.balanceOf(address(this)) : _amt;
 | 
			
		||||
            tokenContract.approve(cToken, _amt);
 | 
			
		||||
            approve(tokenContract, cToken, _amt);
 | 
			
		||||
            require(CTokenInterface(cToken).mint(_amt) == 0, "deposit-failed");
 | 
			
		||||
        }
 | 
			
		||||
        setUint(setId, _amt);
 | 
			
		||||
| 
						 | 
				
			
			@ -196,7 +196,7 @@ abstract contract CompoundResolver is Events, Helpers {
 | 
			
		|||
        } else {
 | 
			
		||||
            TokenInterface tokenContract = TokenInterface(token);
 | 
			
		||||
            require(tokenContract.balanceOf(address(this)) >= _amt, "not-enough-token");
 | 
			
		||||
            tokenContract.approve(cToken, _amt);
 | 
			
		||||
            approve(tokenContract, cToken, _amt);
 | 
			
		||||
            require(cTokenContract.repayBorrow(_amt) == 0, "repay-failed.");
 | 
			
		||||
        }
 | 
			
		||||
        setUint(setId, _amt);
 | 
			
		||||
| 
						 | 
				
			
			@ -254,7 +254,7 @@ abstract contract CompoundResolver is Events, Helpers {
 | 
			
		|||
        } else {
 | 
			
		||||
            TokenInterface tokenContract = TokenInterface(token);
 | 
			
		||||
            _amt = _amt == uint(-1) ? tokenContract.balanceOf(address(this)) : _amt;
 | 
			
		||||
            tokenContract.approve(cToken, _amt);
 | 
			
		||||
            approve(tokenContract, cToken, _amt);
 | 
			
		||||
            require(ctokenContract.mint(_amt) == 0, "deposit-ctoken-failed.");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -385,7 +385,7 @@ abstract contract CompoundResolver is Events, Helpers {
 | 
			
		|||
        } else {
 | 
			
		||||
            TokenInterface tokenContract = TokenInterface(tokenToPay);
 | 
			
		||||
            require(tokenContract.balanceOf(address(this)) >= _amt, "not-enough-token");
 | 
			
		||||
            tokenContract.approve(cTokenPay, _amt);
 | 
			
		||||
            approve(tokenContract, cTokenPay, _amt);
 | 
			
		||||
            require(cTokenContract.liquidateBorrow(borrower, _amt, cTokenColl) == 0, "liquidate-failed");
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
| 
						 | 
				
			
			@ -437,5 +437,5 @@ abstract contract CompoundResolver is Events, Helpers {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
contract ConnectV2Compound is CompoundResolver {
 | 
			
		||||
    string public name = "Compound-v1";
 | 
			
		||||
    string public name = "Compound-v1.1";
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,7 +40,7 @@ abstract contract CreamResolver is Events, Helpers {
 | 
			
		|||
        } else {
 | 
			
		||||
            TokenInterface tokenContract = TokenInterface(token);
 | 
			
		||||
            _amt = _amt == uint(-1) ? tokenContract.balanceOf(address(this)) : _amt;
 | 
			
		||||
            tokenContract.approve(cToken, _amt);
 | 
			
		||||
            approve(tokenContract, cToken, _amt);
 | 
			
		||||
            require(CTokenInterface(cToken).mint(_amt) == 0, "deposit-failed");
 | 
			
		||||
        }
 | 
			
		||||
        setUint(setId, _amt);
 | 
			
		||||
| 
						 | 
				
			
			@ -196,7 +196,7 @@ abstract contract CreamResolver is Events, Helpers {
 | 
			
		|||
        } else {
 | 
			
		||||
            TokenInterface tokenContract = TokenInterface(token);
 | 
			
		||||
            require(tokenContract.balanceOf(address(this)) >= _amt, "not-enough-token");
 | 
			
		||||
            tokenContract.approve(cToken, _amt);
 | 
			
		||||
            approve(tokenContract, cToken, _amt);
 | 
			
		||||
            require(cTokenContract.repayBorrow(_amt) == 0, "repay-failed.");
 | 
			
		||||
        }
 | 
			
		||||
        setUint(setId, _amt);
 | 
			
		||||
| 
						 | 
				
			
			@ -254,7 +254,7 @@ abstract contract CreamResolver is Events, Helpers {
 | 
			
		|||
        } else {
 | 
			
		||||
            TokenInterface tokenContract = TokenInterface(token);
 | 
			
		||||
            _amt = _amt == uint(-1) ? tokenContract.balanceOf(address(this)) : _amt;
 | 
			
		||||
            tokenContract.approve(cToken, _amt);
 | 
			
		||||
            approve(tokenContract, cToken, _amt);
 | 
			
		||||
            require(ctokenContract.mint(_amt) == 0, "deposit-ctoken-failed.");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -384,7 +384,7 @@ abstract contract CreamResolver is Events, Helpers {
 | 
			
		|||
        } else {
 | 
			
		||||
            TokenInterface tokenContract = TokenInterface(tokenToPay);
 | 
			
		||||
            require(tokenContract.balanceOf(address(this)) >= _amt, "not-enough-token");
 | 
			
		||||
            tokenContract.approve(cTokenPay, _amt);
 | 
			
		||||
            approve(tokenContract, cTokenPay, _amt);
 | 
			
		||||
            require(cTokenContract.liquidateBorrow(borrower, _amt, cTokenColl) == 0, "liquidate-failed");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,11 +36,11 @@ abstract contract DyDxResolver is Events, Helpers {
 | 
			
		|||
            TokenInterface tokenContract = TokenInterface(wethAddr);
 | 
			
		||||
            _amt = _amt == uint(-1) ? address(this).balance : _amt;
 | 
			
		||||
            tokenContract.deposit{value: _amt}();
 | 
			
		||||
            tokenContract.approve(address(solo), _amt);
 | 
			
		||||
            approve(tokenContract, address(solo), _amt);
 | 
			
		||||
        } else {
 | 
			
		||||
            TokenInterface tokenContract = TokenInterface(token);
 | 
			
		||||
            _amt = _amt == uint(-1) ? tokenContract.balanceOf(address(this)) : _amt;
 | 
			
		||||
            tokenContract.approve(address(solo), _amt);
 | 
			
		||||
            approve(tokenContract, address(solo), _amt);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        solo.operate(getAccountArgs(), getActionsArgs(_marketId, _amt, true));
 | 
			
		||||
| 
						 | 
				
			
			@ -77,7 +77,7 @@ abstract contract DyDxResolver is Events, Helpers {
 | 
			
		|||
 | 
			
		||||
        if (token == ethAddr) {
 | 
			
		||||
            TokenInterface tokenContract = TokenInterface(wethAddr);
 | 
			
		||||
            tokenContract.approve(address(tokenContract), _amt);
 | 
			
		||||
            approve(tokenContract, address(tokenContract), _amt);
 | 
			
		||||
            tokenContract.withdraw(_amt);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -111,7 +111,7 @@ abstract contract DyDxResolver is Events, Helpers {
 | 
			
		|||
 | 
			
		||||
        if (token == ethAddr) {
 | 
			
		||||
            TokenInterface tokenContract = TokenInterface(wethAddr);
 | 
			
		||||
            tokenContract.approve(address(tokenContract), _amt);
 | 
			
		||||
            approve(tokenContract, address(tokenContract), _amt);
 | 
			
		||||
            tokenContract.withdraw(_amt);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -148,11 +148,11 @@ abstract contract DyDxResolver is Events, Helpers {
 | 
			
		|||
            TokenInterface tokenContract = TokenInterface(wethAddr);
 | 
			
		||||
            require(address(this).balance >= _amt, "not-enough-eth");
 | 
			
		||||
            tokenContract.deposit{value: _amt}();
 | 
			
		||||
            tokenContract.approve(address(solo), _amt);
 | 
			
		||||
            approve(tokenContract, address(solo), _amt);
 | 
			
		||||
        } else {
 | 
			
		||||
            TokenInterface tokenContract = TokenInterface(token);
 | 
			
		||||
            require(tokenContract.balanceOf(address(this)) >= _amt, "not-enough-token");
 | 
			
		||||
            tokenContract.approve(address(solo), _amt);
 | 
			
		||||
            approve(tokenContract, address(solo), _amt);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        solo.operate(getAccountArgs(), getActionsArgs(_marketId, _amt, true));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,7 +38,7 @@ contract Main is Helpers, Events {
 | 
			
		|||
 | 
			
		||||
    _amt = _amt == uint(-1) ? stakingToken.balanceOf(address(this)) : _amt;
 | 
			
		||||
 | 
			
		||||
    stakingToken.approve(address(stakingContract), _amt);
 | 
			
		||||
    approve(stakingToken, address(stakingContract), _amt);
 | 
			
		||||
    stakingContract.stake(_amt);
 | 
			
		||||
 | 
			
		||||
    setUint(setId, _amt);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -54,12 +54,12 @@ abstract contract UniswapV3Resolver is Events, Helpers {
 | 
			
		|||
        if (depositData.amount0In > 0) {
 | 
			
		||||
            IERC20 _token0 = depositData.poolContract.token0();
 | 
			
		||||
            convertEthToWeth(address(_token0) == wethAddr, TokenInterface(address(_token0)), depositData.amount0In);
 | 
			
		||||
            _token0.safeApprove(address(pool), depositData.amount0In);
 | 
			
		||||
            approve(TokenInterface(address(_token0)), address(pool), depositData.amount0In);
 | 
			
		||||
        }
 | 
			
		||||
        if (depositData.amount1In > 0) {
 | 
			
		||||
            IERC20 _token1 = depositData.poolContract.token1();
 | 
			
		||||
            convertEthToWeth(address(_token1) == wethAddr, TokenInterface(address(_token1)), depositData.amount1In);
 | 
			
		||||
            _token1.safeApprove(address(pool), depositData.amount1In);
 | 
			
		||||
            approve(TokenInterface(address(_token1)), address(pool), depositData.amount1In);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        (uint amount0, uint amount1,) = depositData.poolContract.mint(depositData.mintAmount, address(this));
 | 
			
		||||
| 
						 | 
				
			
			@ -151,7 +151,7 @@ abstract contract UniswapV3Resolver is Events, Helpers {
 | 
			
		|||
        depositAndSwap.mintAmount;
 | 
			
		||||
 | 
			
		||||
        if (address(depositAndSwap._token0) == wethAddr) {
 | 
			
		||||
            depositAndSwap._token1.approve(address(gUniRouter), amount1In);
 | 
			
		||||
            approve(TokenInterface(address(depositAndSwap._token1)), address(gUniRouter), amount1In);
 | 
			
		||||
    
 | 
			
		||||
            (depositAndSwap.amount0, depositAndSwap.amount1, depositAndSwap.mintAmount) = 
 | 
			
		||||
                gUniRouter.rebalanceAndAddLiquidityETH{value: amount0In}(
 | 
			
		||||
| 
						 | 
				
			
			@ -166,7 +166,7 @@ abstract contract UniswapV3Resolver is Events, Helpers {
 | 
			
		|||
                    address(this)
 | 
			
		||||
                );
 | 
			
		||||
        } else if (address(depositAndSwap._token1) == wethAddr) {
 | 
			
		||||
            depositAndSwap._token0.approve(address(gUniRouter), amount0In);
 | 
			
		||||
            approve(TokenInterface(address(depositAndSwap._token0)), address(gUniRouter), amount0In);
 | 
			
		||||
 | 
			
		||||
            (depositAndSwap.amount0, depositAndSwap.amount1,depositAndSwap. mintAmount) = 
 | 
			
		||||
                gUniRouter.rebalanceAndAddLiquidityETH{value: amount1In}(
 | 
			
		||||
| 
						 | 
				
			
			@ -181,8 +181,8 @@ abstract contract UniswapV3Resolver is Events, Helpers {
 | 
			
		|||
                    address(this)
 | 
			
		||||
                );
 | 
			
		||||
        } else {
 | 
			
		||||
            depositAndSwap._token0.approve(address(gUniRouter), amount0In);
 | 
			
		||||
            depositAndSwap._token1.approve(address(gUniRouter), amount1In);
 | 
			
		||||
            approve(TokenInterface(address(depositAndSwap._token0)), address(gUniRouter), amount0In);
 | 
			
		||||
            approve(TokenInterface(address(depositAndSwap._token1)), address(gUniRouter), amount1In);
 | 
			
		||||
            (depositAndSwap.amount0, depositAndSwap.amount1, depositAndSwap.mintAmount) = 
 | 
			
		||||
                gUniRouter.rebalanceAndAddLiquidity(
 | 
			
		||||
                    depositAndSwap.poolContract,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,7 +35,7 @@ contract Main is Helpers, Events {
 | 
			
		|||
 | 
			
		||||
    _amt = _amt == uint(-1) ? stakingTokenContract.balanceOf(address(this)) : _amt;
 | 
			
		||||
 | 
			
		||||
    stakingTokenContract.approve(address(stakingContract), _amt);
 | 
			
		||||
    approve(stakingTokenContract, address(stakingContract), _amt);
 | 
			
		||||
    stakingContract.stake(_amt);
 | 
			
		||||
 | 
			
		||||
    setUint(setId, _amt);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,7 +37,7 @@ abstract contract KyberResolver is Helpers, Events {
 | 
			
		|||
        } else {
 | 
			
		||||
            TokenInterface sellContract = TokenInterface(sellAddr);
 | 
			
		||||
            _sellAmt = _sellAmt == uint(-1) ? sellContract.balanceOf(address(this)) : _sellAmt;
 | 
			
		||||
            sellContract.approve(address(kyber), _sellAmt);
 | 
			
		||||
            approve(sellContract, address(kyber), _sellAmt);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        uint _buyAmt = kyber.trade{value: ethAmt}(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -96,7 +96,7 @@ abstract contract MakerResolver is Helpers, Events {
 | 
			
		|||
            _amt = _amt == uint(-1) ?  tokenContract.balanceOf(address(this)) : _amt;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        tokenContract.approve(address(colAddr), _amt);
 | 
			
		||||
        approve(tokenContract, address(colAddr), _amt);
 | 
			
		||||
        tokenJoinContract.join(address(this), _amt);
 | 
			
		||||
 | 
			
		||||
        VatLike(managerContract.vat()).frob(
 | 
			
		||||
| 
						 | 
				
			
			@ -245,7 +245,7 @@ abstract contract MakerResolver is Helpers, Events {
 | 
			
		|||
 | 
			
		||||
        require(_maxDebt >= _amt, "paying-excess-debt");
 | 
			
		||||
 | 
			
		||||
        daiJoinContract.dai().approve(address(daiJoinContract), _amt);
 | 
			
		||||
        approve(daiJoinContract.dai(), address(daiJoinContract), _amt);
 | 
			
		||||
        daiJoinContract.join(urn, _amt);
 | 
			
		||||
 | 
			
		||||
        managerContract.frob(
 | 
			
		||||
| 
						 | 
				
			
			@ -357,7 +357,7 @@ abstract contract MakerResolver is Helpers, Events {
 | 
			
		|||
            _amtDeposit = _amtDeposit == uint(-1) ?  makerData.tokenContract.balanceOf(address(this)) : _amtDeposit;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        makerData.tokenContract.approve(address(makerData.colAddr), _amtDeposit);
 | 
			
		||||
        approve(makerData.tokenContract, address(makerData.colAddr), _amtDeposit);
 | 
			
		||||
        makerData.tokenJoinContract.join(urn, _amtDeposit);
 | 
			
		||||
 | 
			
		||||
        managerContract.frob(
 | 
			
		||||
| 
						 | 
				
			
			@ -462,7 +462,7 @@ abstract contract MakerResolver is Helpers, Events {
 | 
			
		|||
        VatLike vat = daiJoinContract.vat();
 | 
			
		||||
        uint chi = potContract.drip();
 | 
			
		||||
 | 
			
		||||
        daiJoinContract.dai().approve(address(daiJoinContract), _amt);
 | 
			
		||||
        approve(daiJoinContract.dai(), address(daiJoinContract), _amt);
 | 
			
		||||
        daiJoinContract.join(address(this), _amt);
 | 
			
		||||
        if (vat.can(address(this), address(potContract)) == 0) {
 | 
			
		||||
            vat.hope(address(potContract));
 | 
			
		||||
| 
						 | 
				
			
			@ -519,5 +519,5 @@ abstract contract MakerResolver is Helpers, Events {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
contract ConnectV2MakerDAO is MakerResolver {
 | 
			
		||||
    string public constant name = "MakerDAO-v1.1";
 | 
			
		||||
    string public constant name = "MakerDAO-v1.2";
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -49,7 +49,7 @@ contract OasisResolver is DSMath, Basic, Events {
 | 
			
		|||
        bool isEth = address(_sellAddr) == wethAddr;
 | 
			
		||||
 | 
			
		||||
        convertEthToWeth(isEth, _sellAddr, _expectedAmt);
 | 
			
		||||
        _sellAddr.approve(address(oasis), _expectedAmt);
 | 
			
		||||
        approve(_sellAddr, address(oasis), _expectedAmt);
 | 
			
		||||
 | 
			
		||||
        uint _sellAmt = oasis.buyAllAmount(
 | 
			
		||||
            address(_buyAddr),
 | 
			
		||||
| 
						 | 
				
			
			@ -104,7 +104,7 @@ contract OasisResolver is DSMath, Basic, Events {
 | 
			
		|||
        bool isEth = address(_sellAddr) == wethAddr;
 | 
			
		||||
 | 
			
		||||
        convertEthToWeth(isEth, _sellAddr, _sellAmt);
 | 
			
		||||
        _sellAddr.approve(address(oasis), _sellAmt);
 | 
			
		||||
        approve(_sellAddr, address(oasis), _sellAmt);
 | 
			
		||||
 | 
			
		||||
        uint _buyAmt = oasis.sellAllAmount(
 | 
			
		||||
            address(_sellAddr),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,10 +36,10 @@ abstract contract PolygonBridgeResolver is Events, Helpers {
 | 
			
		|||
            TokenInterface _token = TokenInterface(token);
 | 
			
		||||
            _amt = _amt == uint(-1) ? _token.balanceOf(address(this)) : _amt;
 | 
			
		||||
            if (migrator.rootToChildToken(token) != address(0)) {
 | 
			
		||||
                _token.approve(erc20Predicate, _amt);
 | 
			
		||||
                approve(_token, erc20Predicate, _amt);
 | 
			
		||||
                migrator.depositFor(targetDsa, token, abi.encode(_amt));
 | 
			
		||||
            } else {
 | 
			
		||||
                _token.approve(address(migratorPlasma), _amt);
 | 
			
		||||
                approve(_token, address(migratorPlasma), _amt);
 | 
			
		||||
                migratorPlasma.depositERC20ForUser(token, targetDsa, _amt);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -102,7 +102,7 @@ contract AaveV1Helpers is protocolHelpers {
 | 
			
		|||
            if (isEth) {
 | 
			
		||||
                ethAmt = _amt;
 | 
			
		||||
            } else {
 | 
			
		||||
                token.approve(address(aaveCore), _amt);
 | 
			
		||||
                approve(token, address(aaveCore), _amt);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            transferFees(_token, feeAmt);
 | 
			
		||||
| 
						 | 
				
			
			@ -180,7 +180,7 @@ contract AaveV1Helpers is protocolHelpers {
 | 
			
		|||
            if (isEth) {
 | 
			
		||||
                ethAmt = amt;
 | 
			
		||||
            } else {
 | 
			
		||||
                token.approve(address(aaveCore), amt);
 | 
			
		||||
                approve(token, address(aaveCore), amt);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            aave.repay{value:ethAmt}(_token, amt, payable(address(this)));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -109,7 +109,7 @@ contract AaveV2Helpers is protocolHelpers {
 | 
			
		|||
 | 
			
		||||
            convertEthToWeth(isEth, token, _amt);
 | 
			
		||||
 | 
			
		||||
            token.approve(address(aave), _amt);
 | 
			
		||||
            approve(token, address(aave), _amt);
 | 
			
		||||
 | 
			
		||||
            aave.deposit(address(token), _amt, address(this), getReferralCode);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -178,7 +178,7 @@ contract AaveV2Helpers is protocolHelpers {
 | 
			
		|||
 | 
			
		||||
            convertEthToWeth(isEth, token, _amt);
 | 
			
		||||
 | 
			
		||||
            token.approve(address(aave), _amt);
 | 
			
		||||
            approve(token, address(aave), _amt);
 | 
			
		||||
 | 
			
		||||
            aave.repay(address(token), _amt, rateMode, address(this));
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -83,7 +83,7 @@ contract CompoundHelpers is protocolHelpers {
 | 
			
		|||
            (uint feeAmt, uint _amt) = calculateFee(amt, fee, false);
 | 
			
		||||
 | 
			
		||||
            if (_token != ethAddr) {
 | 
			
		||||
                token.approve(address(ctoken), _amt);
 | 
			
		||||
                approve(token, address(ctoken), _amt);
 | 
			
		||||
                require(ctoken.mint(_amt) == 0, "deposit-failed");
 | 
			
		||||
            } else {
 | 
			
		||||
                CETHInterface(address(ctoken)).mint{value:_amt}();
 | 
			
		||||
| 
						 | 
				
			
			@ -138,7 +138,7 @@ contract CompoundHelpers is protocolHelpers {
 | 
			
		|||
                amt = ctoken.borrowBalanceCurrent(address(this));
 | 
			
		||||
            }
 | 
			
		||||
            if (address(token) != wethAddr) {
 | 
			
		||||
                token.approve(address(ctoken), amt);
 | 
			
		||||
                approve(token, address(ctoken), amt);
 | 
			
		||||
                require(ctoken.repayBorrow(amt) == 0, "repay-failed.");
 | 
			
		||||
            } else {
 | 
			
		||||
                CETHInterface(address(ctoken)).repayBorrow{value:amt}();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -73,7 +73,7 @@ abstract contract GebResolver is Helpers, Events {
 | 
			
		|||
            _amt = _amt == uint(-1) ?  tokenContract.balanceOf(address(this)) : _amt;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        tokenContract.approve(address(colAddr), _amt);
 | 
			
		||||
        approve(tokenContract, address(colAddr), _amt);
 | 
			
		||||
        tokenJoinContract.join(address(this), _amt);
 | 
			
		||||
 | 
			
		||||
        SafeEngineLike(managerContract.safeEngine()).modifySAFECollateralization(
 | 
			
		||||
| 
						 | 
				
			
			@ -222,7 +222,7 @@ abstract contract GebResolver is Helpers, Events {
 | 
			
		|||
 | 
			
		||||
        require(_maxDebt >= _amt, "paying-excess-debt");
 | 
			
		||||
 | 
			
		||||
        coinJoinContract.systemCoin().approve(address(coinJoinContract), _amt);
 | 
			
		||||
        approve(coinJoinContract.systemCoin(), address(coinJoinContract), _amt);
 | 
			
		||||
        coinJoinContract.join(handler, _amt);
 | 
			
		||||
 | 
			
		||||
        managerContract.modifySAFECollateralization(
 | 
			
		||||
| 
						 | 
				
			
			@ -335,7 +335,7 @@ abstract contract GebResolver is Helpers, Events {
 | 
			
		|||
            _amtDeposit = _amtDeposit == uint(-1) ?  gebData.tokenContract.balanceOf(address(this)) : _amtDeposit;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        gebData.tokenContract.approve(address(gebData.colAddr), _amtDeposit);
 | 
			
		||||
        approve(gebData.tokenContract, address(gebData.colAddr), _amtDeposit);
 | 
			
		||||
        gebData.tokenJoinContract.join(handler, _amtDeposit);
 | 
			
		||||
 | 
			
		||||
        managerContract.modifySAFECollateralization(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -78,8 +78,8 @@ abstract contract Helpers is DSMath, Basic {
 | 
			
		|||
        isEth = address(_tokenB) == wethAddr;
 | 
			
		||||
        convertEthToWeth(isEth, _tokenB, _amtB);
 | 
			
		||||
 | 
			
		||||
        _tokenA.approve(address(router), _amtA);
 | 
			
		||||
        _tokenB.approve(address(router), _amtB);
 | 
			
		||||
        approve(_tokenA, address(router), _amtA);
 | 
			
		||||
        approve(_tokenB, address(router), _amtB);
 | 
			
		||||
 | 
			
		||||
       uint minAmtA = getMinAmount(_tokenA, _amtA, slippage);
 | 
			
		||||
        uint minAmtB = getMinAmount(_tokenB, _amtB, slippage);
 | 
			
		||||
| 
						 | 
				
			
			@ -141,6 +141,6 @@ abstract contract Helpers is DSMath, Basic {
 | 
			
		|||
 | 
			
		||||
        TokenInterface uniToken = TokenInterface(exchangeAddr);
 | 
			
		||||
        _uniAmt = _amt == uint(-1) ? uniToken.balanceOf(address(this)) : _amt;
 | 
			
		||||
        uniToken.approve(address(router), _uniAmt);
 | 
			
		||||
        approve(uniToken, address(router), _uniAmt);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -114,7 +114,7 @@ abstract contract UniswapResolver is Helpers, Events {
 | 
			
		|||
 | 
			
		||||
        bool isEth = address(_sellAddr) == wethAddr;
 | 
			
		||||
        convertEthToWeth(isEth, _sellAddr, _expectedAmt);
 | 
			
		||||
        _sellAddr.approve(address(router), _expectedAmt);
 | 
			
		||||
        approve(_sellAddr, address(router), _expectedAmt);
 | 
			
		||||
 | 
			
		||||
        uint _sellAmt = router.swapTokensForExactTokens(
 | 
			
		||||
            _buyAmt,
 | 
			
		||||
| 
						 | 
				
			
			@ -171,7 +171,7 @@ abstract contract UniswapResolver is Helpers, Events {
 | 
			
		|||
 | 
			
		||||
        bool isEth = address(_sellAddr) == wethAddr;
 | 
			
		||||
        convertEthToWeth(isEth, _sellAddr, _sellAmt);
 | 
			
		||||
        _sellAddr.approve(address(router), _sellAmt);
 | 
			
		||||
        approve(_sellAddr, address(router), _sellAmt);
 | 
			
		||||
 | 
			
		||||
        uint _buyAmt = router.swapExactTokensForTokens(
 | 
			
		||||
            _sellAmt,
 | 
			
		||||
| 
						 | 
				
			
			@ -192,5 +192,5 @@ abstract contract UniswapResolver is Helpers, Events {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
contract ConnectV2UniswapV2 is UniswapResolver {
 | 
			
		||||
    string public constant name = "UniswapV2-v1";
 | 
			
		||||
    string public constant name = "UniswapV2-v1.1";
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -50,7 +50,7 @@ abstract contract Resolver is Events, DSMath, Basic, Helpers {
 | 
			
		|||
        uint _amt = getUint(getId, amt);
 | 
			
		||||
 | 
			
		||||
        _amt = _amt == uint(-1) ? wethContract.balanceOf(address(this)) : _amt;
 | 
			
		||||
        wethContract.approve(wethAddr, _amt);
 | 
			
		||||
        approve(wethContract, wethAddr, _amt);
 | 
			
		||||
        wethContract.withdraw(_amt);
 | 
			
		||||
 | 
			
		||||
        setUint(setId, _amt);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,13 +32,22 @@ abstract contract Basic is DSMath, Stores {
 | 
			
		|||
        _sell = sell == maticAddr ? TokenInterface(wmaticAddr) : TokenInterface(sell);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function approve(TokenInterface token, address spender, uint256 amount) internal {
 | 
			
		||||
        try token.approve(spender, amount) {
 | 
			
		||||
 | 
			
		||||
        } catch {
 | 
			
		||||
            token.approve(spender, 0);
 | 
			
		||||
            token.approve(spender, amount);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function convertMaticToWmatic(bool isMatic, TokenInterface token, uint amount) internal {
 | 
			
		||||
        if(isMatic) token.deposit{value: amount}();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function convertWmaticToMatic(bool isMatic, TokenInterface token, uint amount) internal {
 | 
			
		||||
        if(isMatic) {
 | 
			
		||||
            token.approve(address(token), amount);
 | 
			
		||||
            approve(token, address(token), amount);
 | 
			
		||||
            token.withdraw(amount);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,7 +43,7 @@ abstract contract AaveResolver is Events, Helpers {
 | 
			
		|||
            _amt = _amt == uint(-1) ? tokenContract.balanceOf(address(this)) : _amt;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        tokenContract.approve(address(aave), _amt);
 | 
			
		||||
        approve(tokenContract, address(aave), _amt);
 | 
			
		||||
 | 
			
		||||
        aave.deposit(_token, _amt, address(this), referralCode);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -154,7 +154,7 @@ abstract contract AaveResolver is Events, Helpers {
 | 
			
		|||
 | 
			
		||||
        if (isEth) convertMaticToWmatic(isEth, tokenContract, _amt);
 | 
			
		||||
 | 
			
		||||
        tokenContract.approve(address(aave), _amt);
 | 
			
		||||
        approve(tokenContract, address(aave), _amt);
 | 
			
		||||
 | 
			
		||||
        aave.repay(_token, _amt, rateMode, address(this));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -211,6 +211,6 @@ abstract contract AaveResolver is Events, Helpers {
 | 
			
		|||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
contract ConnectV2AaveV2 is AaveResolver {
 | 
			
		||||
contract ConnectV2AaveV2Polygon is AaveResolver {
 | 
			
		||||
    string constant public name = "AaveV2-v1";
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,7 +45,7 @@ abstract contract Helpers is DSMath, Basic {
 | 
			
		|||
            maticAmt = swapData._sellAmt;
 | 
			
		||||
        } else {
 | 
			
		||||
            address tokenProxy = AugustusSwapperInterface(paraswap).getTokenTransferProxy();
 | 
			
		||||
            TokenInterface(_sellAddr).approve(tokenProxy, swapData._sellAmt);
 | 
			
		||||
            approve(TokenInterface(_sellAddr), tokenProxy, swapData._sellAmt);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        swapData._buyAmt = _swapHelper(swapData, maticAmt);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,14 +1,15 @@
 | 
			
		|||
{ 
 | 
			
		||||
  "1" : {
 | 
			
		||||
    "1INCH-A": "0x2A6d6d4EE84015F7D64B4d1F66a409bA3f2BAC00",
 | 
			
		||||
    "1INCH-B": "0x36880391afb430e99d43fe94217446b56d4f2c5b",
 | 
			
		||||
    "AAVE-V1-A": "0x127d8cD0E2b2E0366D522DeA53A787bfE9002C14",
 | 
			
		||||
    "AAVE-V2-A": "0x497Bc53507DF17e60F731e9534cff74E8BC9DBb8",
 | 
			
		||||
    "AUTHORITY-A": "0x351Bb32e90C35647Df7a584f3c1a3A0c38F31c68",
 | 
			
		||||
    "BASIC-A": "0x9926955e0Dd681Dc303370C52f4Ad0a4dd061687",
 | 
			
		||||
    "1INCH-A": "0x235fca310ac7be45c7ad45f111203468743e4b7c",
 | 
			
		||||
    "1INCH-B": "0xaBac3dCf164eD827EAfda8e05eCc8208D6bc5E04",
 | 
			
		||||
    "COMPOUND-A": "0xbb153cf09a123746e0eb3b3a436c544a7eeb24b6",
 | 
			
		||||
    "AAVE-V1-A": "0x612c5CA43230D9F97a0ac87E4420F66b8DF97e9D",
 | 
			
		||||
    "AAVE-V2-A": "0x68b27A84101ac5120bBAb7Ce8d6b096C961df52C",
 | 
			
		||||
    "MAKERDAO-A": "0x4049db23c605b197f764072569b8db2464653ef6",
 | 
			
		||||
    "UNISWAP-V2-A": "0x1E5CE41BdB653734445FeC3553b61FebDdaFC43c",
 | 
			
		||||
    "COMP-A": "0xB446e325D44C52b93eC122Bf76301f235f90B9c9",
 | 
			
		||||
    "COMPOUND-A": "0x911F4e4e762AeFA6F2Fc1b24e6B1A928200a88a8",
 | 
			
		||||
    "MAKERDAO-A": "0x29AA7b765008b5dDbD687413B7F0D6E9d349F765",
 | 
			
		||||
    "UNISWAP-A": "0xA4BF319968986D2352FA1c550D781bBFCCE3FcaB",
 | 
			
		||||
    "POLYGON-BRIDGE-A": "0x1b79B302132370B434fb7807b36CB72FB0510aD5",
 | 
			
		||||
    "AAVE-CLAIM-A": "0x611C1FA59Aa1d6352c4C8bD44882063c6aEE85E0",
 | 
			
		||||
| 
						 | 
				
			
			@ -20,7 +21,7 @@
 | 
			
		|||
    "INSTAPOOL-A": "0x5806Af7AB22E2916fA582Ff05731Bf7C682387B2",
 | 
			
		||||
    "MAKERDAO-CLAIM-A": "0x2f8cBE650af98602a215b6482F2aD60893C5A4E8",
 | 
			
		||||
    "WETH-A": "0x22075fa719eFb02Ca3cF298AFa9C974B7465E5D3",
 | 
			
		||||
    "REFINANCE-A": "0x9eA34bE6dA51aa9F6408FeA79c946FDCFA424442"
 | 
			
		||||
    "REFINANCE-A": "0x9eA34bE6dA51aa9F6408FeA79c946FDCFA424442",
 | 
			
		||||
    "INST-A": "0x52C2C4a0db049255fF345EB9D3Fb1f555b7a924A"
 | 
			
		||||
  },
 | 
			
		||||
  "137" : {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,7 +24,13 @@ module.exports = {
 | 
			
		|||
  solidity: {
 | 
			
		||||
    compilers: [
 | 
			
		||||
      {
 | 
			
		||||
        version: "0.7.6"
 | 
			
		||||
        version: "0.7.6",
 | 
			
		||||
        settings: {
 | 
			
		||||
          optimizer: {
 | 
			
		||||
            enabled: false,
 | 
			
		||||
            runs: 200
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        version: "0.6.0"
 | 
			
		||||
| 
						 | 
				
			
			@ -47,7 +53,7 @@ module.exports = {
 | 
			
		|||
      url: `https://eth-mainnet.alchemyapi.io/v2/${ALCHEMY_ID}`,
 | 
			
		||||
      accounts: [`0x${PRIVATE_KEY}`],
 | 
			
		||||
      timeout: 150000,
 | 
			
		||||
      gasPrice: parseInt(utils.parseUnits("34", "gwei"))
 | 
			
		||||
      gasPrice: parseInt(utils.parseUnits("30", "gwei"))
 | 
			
		||||
    },
 | 
			
		||||
    hardhat: {
 | 
			
		||||
      forking: {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,6 +9,7 @@ async function main() {
 | 
			
		|||
    
 | 
			
		||||
    const connectMapping = {
 | 
			
		||||
        '1INCH-A': 'ConnectV2OneInch',
 | 
			
		||||
        '1INCH-B': 'ConnectV2OneProto',
 | 
			
		||||
        'AAVE-V1-A': 'ConnectV2AaveV1',
 | 
			
		||||
        'AAVE-V2-A': 'ConnectV2AaveV2',
 | 
			
		||||
        'AUTHORITY-A': 'ConnectV2Auth',
 | 
			
		||||
| 
						 | 
				
			
			@ -27,15 +28,6 @@ async function main() {
 | 
			
		|||
    for (const key in connectMapping) {
 | 
			
		||||
        addressMapping[key] = await deployConnector(connectMapping[key])
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    const connectorsAbi = [
 | 
			
		||||
        "function addConnectors(string[] _connectorNames, address[] _connectors)"
 | 
			
		||||
    ]
 | 
			
		||||
    
 | 
			
		||||
    // Replace the address with correct v2 connectors registry address
 | 
			
		||||
    const connectorsContract = new ethers.Contract("0x84b457c6D31025d56449D5A01F0c34bF78636f67", connectorsAbi, wallet)
 | 
			
		||||
    
 | 
			
		||||
    await connectorsContract.addConnectors(Object.keys(addressMapping), Object.values(addressMapping))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user