Return Ok(None) when the registrar contract returns empty slice (#11257)
This commit is contained in:
		
							parent
							
								
									eb565a7e2b
								
							
						
					
					
						commit
						93f700d961
					
				@ -44,12 +44,12 @@ impl ServiceTransactionChecker {
 | 
			
		||||
		client: &C,
 | 
			
		||||
		tx: &SignedTransaction
 | 
			
		||||
	) -> Result<bool, String> {
 | 
			
		||||
		let sender = tx.sender();
 | 
			
		||||
		// Skip checking the contract if the transaction does not have zero gas price
 | 
			
		||||
		if !tx.gas_price.is_zero() {
 | 
			
		||||
			return Ok(false)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		let sender = tx.sender();
 | 
			
		||||
		self.check_address(client, sender)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -42,9 +42,10 @@ pub trait RegistrarClient: CallContract + Send + Sync {
 | 
			
		||||
		let id = encode_input(hashed_key, DNS_A_RECORD);
 | 
			
		||||
 | 
			
		||||
		let address_bytes = self.call_contract(block, registrar_address, id)?;
 | 
			
		||||
 | 
			
		||||
		if address_bytes.is_empty() {
 | 
			
		||||
			return Ok(None)
 | 
			
		||||
		}
 | 
			
		||||
		let address = decode_output(&address_bytes).map_err(|e| e.to_string())?;
 | 
			
		||||
 | 
			
		||||
		if address.is_zero() {
 | 
			
		||||
			Ok(None)
 | 
			
		||||
		} else {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user