mirror of
				https://github.com/Instadapp/InstaContract.git
				synced 2024-07-29 22:47:45 +00:00 
			
		
		
		
	Removed fees and tradeAdmin model.
This commit is contained in:
		
							parent
							
								
									8f6d79138b
								
							
						
					
					
						commit
						544c92dda6
					
				|  | @ -56,64 +56,9 @@ contract Trade is Registry { | ||||||
|         uint destAmt, |         uint destAmt, | ||||||
|         address beneficiary, |         address beneficiary, | ||||||
|         uint minConversionRate, |         uint minConversionRate, | ||||||
|         uint fees, |  | ||||||
|         address affiliate |         address affiliate | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|     // Market & Limit Order |  | ||||||
|     // tradeAdmin manages the orders on behalf of client |  | ||||||
|     // @param "client" is mainly for limit orders (and it can also be used for server-side market orders) |  | ||||||
|     function executeTrade( |  | ||||||
|         address src, |  | ||||||
|         address dest, |  | ||||||
|         uint srcAmt, |  | ||||||
|         uint minConversionRate, |  | ||||||
|         address client |  | ||||||
|     ) public payable returns (uint destAmt) |  | ||||||
|     { |  | ||||||
| 
 |  | ||||||
|         address trader = msg.sender; |  | ||||||
|         if (client != address(0x0)) { |  | ||||||
|             require(msg.sender == getAddress("tradeAdmin"), "Permission Denied"); |  | ||||||
|             trader = client; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         // transferring token from trader and deducting fee if applicable |  | ||||||
|         uint ethQty; |  | ||||||
|         uint srcAmtAfterFees; |  | ||||||
|         uint fees; |  | ||||||
|         (ethQty, srcAmtAfterFees, fees) = getToken( |  | ||||||
|             trader, |  | ||||||
|             src, |  | ||||||
|             srcAmt, |  | ||||||
|             client |  | ||||||
|         ); |  | ||||||
|          |  | ||||||
|         // Interacting with Kyber Proxy Contract |  | ||||||
|         Kyber kyberFunctions = Kyber(getAddress("kyber")); |  | ||||||
|         destAmt = kyberFunctions.trade.value(ethQty)( |  | ||||||
|             src, |  | ||||||
|             srcAmtAfterFees, |  | ||||||
|             dest, |  | ||||||
|             trader, |  | ||||||
|             2**256 - 1, |  | ||||||
|             minConversionRate, |  | ||||||
|             getAddress("admin") |  | ||||||
|         ); |  | ||||||
| 
 |  | ||||||
|         emit KyberTrade( |  | ||||||
|             src, |  | ||||||
|             srcAmtAfterFees, |  | ||||||
|             dest, |  | ||||||
|             destAmt, |  | ||||||
|             trader, |  | ||||||
|             minConversionRate, |  | ||||||
|             fees, |  | ||||||
|             getAddress("admin") |  | ||||||
|         ); |  | ||||||
| 
 |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     function getExpectedPrice( |     function getExpectedPrice( | ||||||
|         address src, |         address src, | ||||||
|         address dest, |         address dest, | ||||||
|  | @ -135,17 +80,41 @@ contract Trade is Registry { | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     function getToken( |     function executeTrade( | ||||||
|         address trader, |  | ||||||
|         address src, |         address src, | ||||||
|  |         address dest, | ||||||
|         uint srcAmt, |         uint srcAmt, | ||||||
|         address client |         uint minConversionRate | ||||||
|     ) internal returns ( |     ) public payable returns (uint destAmt) | ||||||
|         uint ethQty, |  | ||||||
|         uint srcAmtAfterFees, |  | ||||||
|         uint fees |  | ||||||
|     )  |  | ||||||
|     { |     { | ||||||
|  | 
 | ||||||
|  |         uint ethQty = getToken(msg.sender, src, srcAmt); | ||||||
|  |          | ||||||
|  |         // Interacting with Kyber Proxy Contract | ||||||
|  |         Kyber kyberFunctions = Kyber(getAddress("kyber")); | ||||||
|  |         destAmt = kyberFunctions.trade.value(ethQty)( | ||||||
|  |             src, | ||||||
|  |             srcAmt, | ||||||
|  |             dest, | ||||||
|  |             msg.sender, | ||||||
|  |             2**256 - 1, | ||||||
|  |             minConversionRate, | ||||||
|  |             getAddress("admin") | ||||||
|  |         ); | ||||||
|  | 
 | ||||||
|  |         emit KyberTrade( | ||||||
|  |             src, | ||||||
|  |             srcAmt, | ||||||
|  |             dest, | ||||||
|  |             destAmt, | ||||||
|  |             msg.sender, | ||||||
|  |             minConversionRate, | ||||||
|  |             getAddress("admin") | ||||||
|  |         ); | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     function getToken(address trader, address src, uint srcAmt) internal returns (uint ethQty) { | ||||||
|         if (src == getAddress("eth")) { |         if (src == getAddress("eth")) { | ||||||
|             require(msg.value == srcAmt, "Invalid Operation"); |             require(msg.value == srcAmt, "Invalid Operation"); | ||||||
|             ethQty = srcAmt; |             ethQty = srcAmt; | ||||||
|  | @ -154,15 +123,6 @@ contract Trade is Registry { | ||||||
|             tokenFunctions.transferFrom(trader, address(this), srcAmt); |             tokenFunctions.transferFrom(trader, address(this), srcAmt); | ||||||
|             ethQty = 0; |             ethQty = 0; | ||||||
|         } |         } | ||||||
| 
 |  | ||||||
|         srcAmtAfterFees = srcAmt; |  | ||||||
|         if (client != address(0x0)) { |  | ||||||
|             fees = srcAmt / 400; // 0.25% |  | ||||||
|             srcAmtAfterFees = srcAmt - fees; |  | ||||||
|             if (ethQty > 0) { |  | ||||||
|                 ethQty = srcAmtAfterFees; |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | @ -170,22 +130,8 @@ contract Trade is Registry { | ||||||
| 
 | 
 | ||||||
| contract InstaKyber is Trade { | contract InstaKyber is Trade { | ||||||
| 
 | 
 | ||||||
|     event FeesCollected(address tokenAddr, uint amount); |  | ||||||
| 
 |  | ||||||
|     constructor(address rAddr) public { |     constructor(address rAddr) public { | ||||||
|         addressRegistry = rAddr; |         addressRegistry = rAddr; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     function () public payable {} |  | ||||||
| 
 |  | ||||||
|     function collectFees(address tokenAddress, uint amount) public onlyAdmin { |  | ||||||
|         if (tokenAddress == getAddress("eth")) { |  | ||||||
|             msg.sender.transfer(amount); |  | ||||||
|         } else { |  | ||||||
|             IERC20 tokenFunctions = IERC20(tokenAddress); |  | ||||||
|             tokenFunctions.transfer(msg.sender, amount); |  | ||||||
|         } |  | ||||||
|         emit FeesCollected(tokenAddress, amount); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| } | } | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Sowmayjain
						Sowmayjain