func: function __callback(bytes32 myid, string result) {
          if (msg.sender != oraclize.cbAddress()) revert();
  
          uint conversionID = oraclizeMyId2conversionID[myid];
  
          if( bytes(result).length == 0 ) {
              ConversionAborted(conversionID, "Oraclize return value was invalid, this is probably due to incorrect convert() argments");
              recoverable[conversions[conversionID].returnAddress] += conversions[conversionID].amount;
              conversions[conversionID].amount = 0;
          }
          else {
              address depositAddress = parseAddr(result);
              require(depositAddress != msg.sender); 
              uint sendAmount = conversions[conversionID].amount;
              conversions[conversionID].amount = 0;
              if (depositAddress.send(sendAmount)) {
                  ConversionSentToShapeShift(conversionID, conversions[conversionID].returnAddress, depositAddress, sendAmount);
              }
              else {
                  ConversionAborted(conversionID, "deposit to address returned by Oraclize failed");
                  recoverable[conversions[conversionID].returnAddress] += sendAmount;
              }
          }
      }