Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
SWvheerden committed May 24, 2024
1 parent 2430ce9 commit 86c0079
Show file tree
Hide file tree
Showing 12 changed files with 209 additions and 124 deletions.
2 changes: 1 addition & 1 deletion base_layer/chat_ffi/src/contacts_liveness_data.rs
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ mod test {
unsafe {
let address_ptr = read_liveness_data_address(liveness_ptr, error_out);

assert_eq!(address.to_vec(), (*address_ptr).to_bytes());
assert_eq!(address.to_vec(), (*address_ptr).to_vec());

destroy_contacts_liveness_data(liveness_ptr);
destroy_tari_address(address_ptr);
Expand Down
2 changes: 1 addition & 1 deletion base_layer/chat_ffi/src/conversationalists.rs
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ mod test {
#[test]
fn test_retrieving_conversationalists_from_vector() {
let (_, pk) = PublicKey::random_keypair(&mut OsRng);
let a = TariAddress::from_public_key(&pk, Network::LocalNet);
let a = TariAddress::new_single_address_with_default_features(pk, Network::LocalNet);
let conversationalists =
ConversationalistsVector(vec![TariAddress::default(), TariAddress::default(), a.clone()]);

Expand Down
2 changes: 1 addition & 1 deletion base_layer/chat_ffi/src/message.rs
Original file line number Diff line number Diff line change
Expand Up @@ -523,7 +523,7 @@ mod test {
unsafe {
let address_ptr = read_chat_message_address(message_ptr, error_out);

assert_eq!(address.to_bytes(), (*address_ptr).to_bytes());
assert_eq!(address.to_vec(), (*address_ptr).to_vec());

destroy_chat_message(message_ptr);
destroy_tari_address(address_ptr);
Expand Down
46 changes: 34 additions & 12 deletions base_layer/common_types/src/tari_address/dual_address.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,12 @@ pub struct DualAddress {

impl DualAddress {
/// Creates a new Tari Address from the provided public keys, network and features
pub fn new(view_key: PublicKey, spend_key: PublicKey, network: Network, features: TariAddressFeatures) -> Self {
pub fn new(
view_key: PublicKey,
spend_key: PublicKey,
network: Network,
features: TariAddressFeatures,
) -> DualAddress {
Self {
network,
features,
Expand All @@ -54,7 +59,7 @@ impl DualAddress {
}

/// Creates a new Tari Address from the provided public keys and network while using the default features
pub fn new_with_default_features(view_key: PublicKey, spend_key: PublicKey, network: Network) -> Self {
pub fn new_with_default_features(view_key: PublicKey, spend_key: PublicKey, network: Network) -> DualAddress {
Self {
network,
features: TariAddressFeatures::default(),
Expand Down Expand Up @@ -166,7 +171,7 @@ impl DualAddress {

#[cfg(test)]
mod test {
use tari_crypto::keys::{PublicKey, SecretKey};
use tari_crypto::keys::{PublicKey as pk, SecretKey};

use super::*;
use crate::types::PrivateKey;
Expand All @@ -180,7 +185,8 @@ mod test {
let spend_key = PublicKey::from_secret_key(&PrivateKey::random(&mut rng));

// Generate an emoji ID from the public key and ensure we recover it
let emoji_id_from_public_key = DualAddress::new_with_default_features(view_key.clone(), spend_key.clone(), Network::Esmeralda);
let emoji_id_from_public_key =
DualAddress::new_with_default_features(view_key.clone(), spend_key.clone(), Network::Esmeralda);
assert_eq!(emoji_id_from_public_key.public_spend_key(), &spend_key);
assert_eq!(emoji_id_from_public_key.public_view_key(), &view_key);

Expand All @@ -199,13 +205,17 @@ mod test {
assert_eq!(emoji_id_from_public_key.public_spend_key(), &spend_key);
assert_eq!(emoji_id_from_public_key.public_view_key(), &view_key);


// Generate random public key
let view_key = PublicKey::from_secret_key(&PrivateKey::random(&mut rng));
let spend_key = PublicKey::from_secret_key(&PrivateKey::random(&mut rng));

// Generate an emoji ID from the public key and ensure we recover it
let emoji_id_from_public_key = DualAddress::new(view_key.clone(), spend_key.clone(), Network::Esmeralda, TariAddressFeatures::create_interactive_only());
let emoji_id_from_public_key = DualAddress::new(
view_key.clone(),
spend_key.clone(),
Network::Esmeralda,
TariAddressFeatures::create_interactive_only(),
);
assert_eq!(emoji_id_from_public_key.public_spend_key(), &spend_key);
assert_eq!(emoji_id_from_public_key.public_view_key(), &view_key);

Expand All @@ -224,13 +234,17 @@ mod test {
assert_eq!(emoji_id_from_public_key.public_spend_key(), &spend_key);
assert_eq!(emoji_id_from_public_key.public_view_key(), &view_key);


// Generate random public key
let view_key = PublicKey::from_secret_key(&PrivateKey::random(&mut rng));
let spend_key = PublicKey::from_secret_key(&PrivateKey::random(&mut rng));

// Generate an emoji ID from the public key and ensure we recover it
let emoji_id_from_public_key = DualAddress::new(view_key.clone(), spend_key.clone(), Network::Esmeralda, TariAddressFeatures::create_one_sided_only());
let emoji_id_from_public_key = DualAddress::new(
view_key.clone(),
spend_key.clone(),
Network::Esmeralda,
TariAddressFeatures::create_one_sided_only(),
);
assert_eq!(emoji_id_from_public_key.public_spend_key(), &spend_key);
assert_eq!(emoji_id_from_public_key.public_view_key(), &view_key);

Expand Down Expand Up @@ -276,12 +290,16 @@ mod test {
assert_eq!(address_hex.network(), address.network());
assert_eq!(address_hex.features(), address.features());


let view_key = PublicKey::from_secret_key(&PrivateKey::random(&mut rng));
let spend_key = PublicKey::from_secret_key(&PrivateKey::random(&mut rng));

// Generate an emoji ID from the public key and ensure we recover it
let address = DualAddress::new(view_key.clone(), spend_key.clone(), Network::Esmeralda, TariAddressFeatures::create_interactive_only());
let address = DualAddress::new(
view_key.clone(),
spend_key.clone(),
Network::Esmeralda,
TariAddressFeatures::create_interactive_only(),
);

let buff = address.to_bytes();
let hex = address.to_hex();
Expand All @@ -298,12 +316,16 @@ mod test {
assert_eq!(address_hex.network(), address.network());
assert_eq!(address_hex.features(), address.features());


let view_key = PublicKey::from_secret_key(&PrivateKey::random(&mut rng));
let spend_key = PublicKey::from_secret_key(&PrivateKey::random(&mut rng));

// Generate an emoji ID from the public key and ensure we recover it
let address = DualAddress::new(view_key.clone(), spend_key.clone(), Network::Esmeralda, TariAddressFeatures::create_one_sided_only());
let address = DualAddress::new(
view_key.clone(),
spend_key.clone(),
Network::Esmeralda,
TariAddressFeatures::create_one_sided_only(),
);

let buff = address.to_bytes();
let hex = address.to_hex();
Expand Down
Loading

0 comments on commit 86c0079

Please sign in to comment.