From a4c7e94fcd1bf934b4ffb189a2115a5f8e99b57a Mon Sep 17 00:00:00 2001 From: Thrilok Kumar Date: Fri, 24 Jul 2020 13:39:02 +0530 Subject: [PATCH] Updated sbtc resolver --- contracts/protocols/curve_sbtc.sol | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/contracts/protocols/curve_sbtc.sol b/contracts/protocols/curve_sbtc.sol index af6177c..fe59b51 100644 --- a/contracts/protocols/curve_sbtc.sol +++ b/contracts/protocols/curve_sbtc.sol @@ -3,12 +3,10 @@ pragma experimental ABIEncoderV2; interface ICurve { function get_virtual_price() external view returns (uint256 out); - function coins(int128 tokenId) external view returns (address token); - function calc_token_amount(uint256[3] calldata amounts, bool deposit) external view returns (uint256 amount); - function get_dy(int128 sellTokenId, int128 buyTokenId, uint256 sellTokenAmt) external view returns (uint256 buyTokenAmt); + function calc_withdraw_one_coin(uint256 _token_amount, int128 i) external view returns (uint256 amount); } interface TokenInterface { @@ -160,6 +158,17 @@ contract Resolver is CurveHelpers { unitAmt = getWithdrawtUnitAmt(token, withdrawAmt, curveAmt, slippage); } + function getWithdrawTokenAmount(address token, uint curveAmt, uint slippage) + public + view + returns (uint tokenAmt, uint unitAmt, uint virtualPrice) + { + ICurve curve = ICurve(getCurveSwapAddr()); + tokenAmt = curve.calc_withdraw_one_coin(curveAmt, getTokenI(token)); + virtualPrice = curve.get_virtual_price(); + unitAmt = getWithdrawtUnitAmt(token, tokenAmt, curveAmt, slippage); + } + function getPosition( address user ) public view returns ( @@ -184,6 +193,6 @@ contract Resolver is CurveHelpers { } -contract InstaCurveResolver is Resolver { - string public constant name = "Curve-sBTC-Resolver-v1"; +contract InstaCurveSBTCResolver is Resolver { + string public constant name = "Curve-sBTC-Resolver-v1.1"; } \ No newline at end of file