def data_from_base58(string)
      raise ArgumentError, "String is missing" if !string
      int = int_from_base58(string)
      bytes = []
      while int > 0
        remainder = int % 256
        int = int / 256
        bytes.unshift(remainder)
      end
      data = BTC::Data.data_from_bytes(bytes)
      byte_for_1 = "1".bytes.first
      BTC::Data.ensure_ascii_compatible_encoding(string).bytes.each do |byte|
        break if byte != byte_for_1
        data = "\x00" + data
      end
      data
    end
def data_from_base58(string)
      raise ArgumentError, "String is missing" if !string
      int = int_from_base58(string)
      bytes = []
      while int > 0
        remainder = int % 256
        int = int / 256
        bytes.unshift(remainder)
      end
      data = BTC::Data.data_from_bytes(bytes)
      byte_for_1 = "1".bytes.first
      BTC::Data.ensure_ascii_compatible_encoding(string).bytes.each do |byte|
        break if byte != byte_for_1
        data = "\x00" + data
      end
      data
    end
Converts binary string into its Base58 representation.
 If string is empty returns an empty string.
 If string is nil raises ArgumentError.