diff --git a/services/identity/src/constants.rs b/services/identity/src/constants.rs --- a/services/identity/src/constants.rs +++ b/services/identity/src/constants.rs @@ -48,8 +48,7 @@ pub const USERS_TABLE_DEVICES_MAP_DEVICE_TYPE_ATTRIBUTE_NAME: &str = "deviceType"; pub const USERS_TABLE_WALLET_ADDRESS_ATTRIBUTE: &str = "walletAddress"; -pub const USERS_TABLE_DEVICES_MAP_SOCIAL_PROOF_ATTRIBUTE_NAME: &str = - "socialProof"; +pub const USERS_TABLE_SOCIAL_PROOF_ATTRIBUTE_NAME: &str = "socialProof"; pub const USERS_TABLE_DEVICELIST_TIMESTAMP_ATTRIBUTE_NAME: &str = "deviceListTimestamp"; pub const USERS_TABLE_USERNAME_INDEX: &str = "username-index"; diff --git a/services/identity/src/database.rs b/services/identity/src/database.rs --- a/services/identity/src/database.rs +++ b/services/identity/src/database.rs @@ -16,7 +16,10 @@ use std::str::FromStr; use std::sync::Arc; -use crate::reserved_users::UserDetail; +use crate::{ + constants::USERS_TABLE_SOCIAL_PROOF_ATTRIBUTE_NAME, + ddb_utils::EthereumIdentity, reserved_users::UserDetail, +}; use crate::{ ddb_utils::{ create_one_time_key_partition_key, into_one_time_put_requests, Identifier, @@ -192,12 +195,15 @@ code_version: u64, access_token_creation_time: DateTime, ) -> Result { - let social_proof = Some(social_proof); + let wallet_identity = EthereumIdentity { + wallet_address, + social_proof: social_proof.clone(), + }; let user_id = self .add_user_to_users_table( flattened_device_key_upload.clone(), None, - Some(wallet_address), + Some(wallet_identity), user_id, ) .await?; @@ -206,7 +212,7 @@ .add_device( &user_id, flattened_device_key_upload, - social_proof, + Some(social_proof), code_version, access_token_creation_time, ) @@ -219,7 +225,7 @@ &self, flattened_device_key_upload: FlattenedDeviceKeyUpload, username_and_password_file: Option<(String, Blob)>, - wallet_address: Option, + wallet_identity: Option, user_id: Option, ) -> Result { let user_id = user_id.unwrap_or_else(generate_uuid); @@ -239,10 +245,14 @@ ); } - if let Some(address) = wallet_address { + if let Some(eth_identity) = wallet_identity { user.insert( USERS_TABLE_WALLET_ADDRESS_ATTRIBUTE.to_string(), - AttributeValue::S(address), + AttributeValue::S(eth_identity.wallet_address), + ); + user.insert( + USERS_TABLE_SOCIAL_PROOF_ATTRIBUTE_NAME.to_string(), + AttributeValue::S(eth_identity.social_proof), ); } diff --git a/services/identity/src/ddb_utils.rs b/services/identity/src/ddb_utils.rs --- a/services/identity/src/ddb_utils.rs +++ b/services/identity/src/ddb_utils.rs @@ -7,8 +7,8 @@ use std::iter::IntoIterator; use crate::constants::{ - USERS_TABLE_DEVICES_MAP_SOCIAL_PROOF_ATTRIBUTE_NAME, - USERS_TABLE_USERNAME_ATTRIBUTE, USERS_TABLE_WALLET_ADDRESS_ATTRIBUTE, + USERS_TABLE_SOCIAL_PROOF_ATTRIBUTE_NAME, USERS_TABLE_USERNAME_ATTRIBUTE, + USERS_TABLE_WALLET_ADDRESS_ATTRIBUTE, }; #[derive(Copy, Clone, Debug)] @@ -100,7 +100,7 @@ let wallet_address_result = value.take_attr(USERS_TABLE_WALLET_ADDRESS_ATTRIBUTE); let social_proof_result = - value.take_attr(USERS_TABLE_DEVICES_MAP_SOCIAL_PROOF_ATTRIBUTE_NAME); + value.take_attr(USERS_TABLE_SOCIAL_PROOF_ATTRIBUTE_NAME); if let (Ok(wallet_address), Ok(social_proof)) = (wallet_address_result, social_proof_result)