From 64ed1f87d36abe6a0b3d2870e8048a1938ec8f27 Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Mon, 2 Dec 2019 16:41:32 -0800 Subject: [PATCH] Rethrow custom error string if draw call fails --- .../contracts/src/bridges/ChaiBridge.sol | 13 ++++++++++++- .../asset-proxy/contracts/src/interfaces/IChai.sol | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) 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 +}