BitmessageAddress implements Serializable { @Override public String toString() { return alias == null ? address : alias; } BitmessageAddress(long version, long stream, byte[] ripe);  BitmessageAddress(Pubkey publicKey);  BitmessageAddress(String address, String passphrase);  BitmessageAddress(PrivateKey privateKey);  BitmessageAddress(String address); static BitmessageAddress chan(String address, String passphrase); static BitmessageAddress chan(long stream, String passphrase); static List<BitmessageAddress> deterministic(String passphrase, int numberOfAddresses,
                                                        long version, long stream, boolean shorter); static byte[] calculateTag(long version, long stream, byte[] ripe); long getStream(); long getVersion(); Pubkey getPubkey(); void setPubkey(Pubkey pubkey); byte[] getPublicDecryptionKey(); PrivateKey getPrivateKey(); String getAddress(); String getAlias(); void setAlias(String alias); @Override String toString(); byte[] getRipe(); byte[] getTag(); @Override boolean equals(Object o); @Override int hashCode(); boolean isSubscribed(); void setSubscribed(boolean subscribed); boolean isChan(); void setChan(boolean chan); boolean has(Feature feature);  }
@Test public void ensureAddressStaysSame() { String address = "BM-2D9Vc5rFxxR5vTi53T9gkLfemViHRMVLQZ"; assertEquals(address, new BitmessageAddress(address).toString()); }