diff --git a/contracts/asset-proxy/contracts/src/bridges/ChaiBridge.sol b/contracts/asset-proxy/contracts/src/bridges/ChaiBridge.sol index 703a4bba8f..93ff9f9ec8 100644 --- a/contracts/asset-proxy/contracts/src/bridges/ChaiBridge.sol +++ b/contracts/asset-proxy/contracts/src/bridges/ChaiBridge.sol @@ -54,9 +54,20 @@ contract ChaiBridge is // Withdraw `from` address's Dai. // NOTE: This contract must be approved to spend Chai on behalf of `from`. - IChai(_getChaiAddress()).draw(from, amount); + bytes memory drawCalldata = abi.encodeWithSelector( + IChai(address(0)).draw.selector, + from, + amount + ); + + (bool success,) = _getChaiAddress().call(drawCalldata); + require( + success, + "ChaiBridge/DRAW_DAI_FAILED" + ); // Transfer Dai to `to` + // This will never fail if the `draw` call was successful IERC20Token(_getDaiAddress()).transfer(to, amount); return BRIDGE_SUCCESS; diff --git a/contracts/asset-proxy/contracts/src/interfaces/IChai.sol b/contracts/asset-proxy/contracts/src/interfaces/IChai.sol index f99d2ad7a0..d99bab27b5 100644 --- a/contracts/asset-proxy/contracts/src/interfaces/IChai.sol +++ b/contracts/asset-proxy/contracts/src/interfaces/IChai.sol @@ -29,4 +29,4 @@ contract IChai { uint256 wad ) external; -} \ No newline at end of file +}