diff --git a/data/address-book/src/test/kotlin/com/tangem/data/addressbook/DefaultAddressBookRepositoryTest.kt b/data/address-book/src/test/kotlin/com/tangem/data/addressbook/DefaultAddressBookRepositoryTest.kt index d43ca1707f..307b7cec1c 100644 --- a/data/address-book/src/test/kotlin/com/tangem/data/addressbook/DefaultAddressBookRepositoryTest.kt +++ b/data/address-book/src/test/kotlin/com/tangem/data/addressbook/DefaultAddressBookRepositoryTest.kt @@ -8,7 +8,6 @@ import com.tangem.data.common.cache.etag.ETagsStore import com.tangem.datasource.api.addressbook.AddressBookApi import com.tangem.datasource.api.addressbook.models.SyncAddressBooksRequest import com.tangem.datasource.api.addressbook.models.SyncAddressBooksResponse -import com.tangem.datasource.api.addressbook.models.UpdateAddressBookRequest import com.tangem.datasource.api.addressbook.models.UpdateAddressBookResponse import com.tangem.datasource.api.common.response.ApiResponse import com.tangem.datasource.api.common.response.ApiResponseError @@ -391,7 +390,7 @@ internal class DefaultAddressBookRepositoryTest { iconColor = iconColor, createdAt = TIMESTAMP, updatedAt = TIMESTAMP, - addressEntries = emptyList(), + addresses = emptyList(), ) private fun createBlob(): AddressBookBlob = AddressBookBlob( diff --git a/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/interactor/GetVerifiedContactsInteractor.kt b/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/interactor/GetVerifiedContactsInteractor.kt index e008d841e5..0c298b3b38 100644 --- a/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/interactor/GetVerifiedContactsInteractor.kt +++ b/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/interactor/GetVerifiedContactsInteractor.kt @@ -29,7 +29,7 @@ class GetVerifiedContactsInteractor( val userWallet = walletsById[contact.walletId] ?: return@mapNotNull null val verification = verify(userWallet, contact).getOrNull() ?: return@mapNotNull null VerifiedContact( - contact = contact.copy(addressEntries = verification.valid), + contact = contact.copy(addresses = verification.valid), invalidEntries = verification.invalid, ) } @@ -40,7 +40,7 @@ class GetVerifiedContactsInteractor( userWallet: UserWallet, contact: Contact, ): Either { - val entries = contact.addressEntries + val entries = contact.addresses if (entries.isEmpty()) return AddressEntriesVerification(valid = emptyList(), invalid = emptyList()).right() // Entries with a malformed (non-hex) signature can't be verified — they are invalid by format. diff --git a/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/interactor/SaveContactInteractor.kt b/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/interactor/SaveContactInteractor.kt index d189e45b01..fae60dbb42 100644 --- a/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/interactor/SaveContactInteractor.kt +++ b/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/interactor/SaveContactInteractor.kt @@ -31,7 +31,7 @@ class SaveContactInteractor( userWallet: UserWallet, name: String, iconColor: String, - addressEntries: List, + addresses: List, ): Either = either { val userWalletId = userWallet.walletId val validName = validateContactName(userWalletId, name) @@ -47,9 +47,9 @@ class SaveContactInteractor( iconColor = iconColor, createdAt = now, updatedAt = now, - addressEntries = addressEntries, + addresses = addresses, ) - val signed = signAddressEntries(userWallet, contact) + val signed = signAddresses(userWallet, contact) .mapLeft(SaveContactError::Signing) .bind() repository.saveContact(signed) @@ -63,7 +63,7 @@ class SaveContactInteractor( contact: Contact, name: String, iconColor: String, - addressEntries: List, + addresses: List, ): Either = either { val validName = ContactName(name) .mapLeft { SaveContactError.Name(ContactNameValidationError.Format(it)) } @@ -72,10 +72,10 @@ class SaveContactInteractor( val updated = contact.copy( name = validName, iconColor = iconColor, - addressEntries = addressEntries, + addresses = addresses, updatedAt = timestampProvider.now(), ) - val signed = signAddressEntries(userWallet, updated) + val signed = signAddresses(userWallet, updated) .mapLeft(SaveContactError::Signing) .bind() repository.saveContact(signed) @@ -84,22 +84,20 @@ class SaveContactInteractor( signed } - private suspend fun signAddressEntries( - userWallet: UserWallet, - contact: Contact, - ): Either = either { - val entries = contact.addressEntries - if (entries.isEmpty()) return@either contact + private suspend fun signAddresses(userWallet: UserWallet, contact: Contact): Either = + either { + val entries = contact.addresses + if (entries.isEmpty()) return@either contact - val publicKey = userWallet.primarySecp256k1PublicKey() ?: raise(SignHashesError.NoSigningKey) - val hashes = entries.map { entry -> hashEntry(contact, entry) } - val signatures = signUseCase(hashes = hashes, publicKey = publicKey, userWallet = userWallet).bind() + val publicKey = userWallet.primarySecp256k1PublicKey() ?: raise(SignHashesError.NoSigningKey) + val hashes = entries.map { entry -> hashEntry(contact, entry) } + val signatures = signUseCase(hashes = hashes, publicKey = publicKey, userWallet = userWallet).bind() - val signedEntries = entries.mapIndexed { index, entry -> - entry.copy(signature = signatures[index].toHexString()) + val signedEntries = entries.mapIndexed { index, entry -> + entry.copy(signature = signatures[index].toHexString()) + } + contact.copy(addresses = signedEntries) } - contact.copy(addressEntries = signedEntries) - } private fun hashEntry(contact: Contact, entry: AddressEntry): ByteArray { val payload = buildAddressEntryPayload(contact, entry) diff --git a/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/model/Contact.kt b/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/model/Contact.kt index 8697b62900..4ec824d5ef 100644 --- a/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/model/Contact.kt +++ b/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/model/Contact.kt @@ -19,5 +19,5 @@ data class Contact( val iconColor: String, val createdAt: String, val updatedAt: String, - val addressEntries: List, + val addresses: List, ) \ No newline at end of file diff --git a/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/usecase/CheckAddressDuplicateUseCase.kt b/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/usecase/CheckAddressDuplicateUseCase.kt index 2ef945fcfc..5cebef3fe4 100644 --- a/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/usecase/CheckAddressDuplicateUseCase.kt +++ b/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/usecase/CheckAddressDuplicateUseCase.kt @@ -29,7 +29,7 @@ class CheckAddressDuplicateUseCase( val contacts = repository.getContactsSync(userWalletId) return contacts .firstOrNull { contact -> - contact.id != excludeContactId && contact.addressEntries.any { entry -> + contact.id != excludeContactId && contact.addresses.any { entry -> entry.networkId.value == networkId && entry.address == address } } diff --git a/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/usecase/GetContactsUseCase.kt b/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/usecase/GetContactsUseCase.kt index 381a49a114..417a18b3d6 100644 --- a/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/usecase/GetContactsUseCase.kt +++ b/domain/address-book/src/main/kotlin/com/tangem/domain/addressbook/usecase/GetContactsUseCase.kt @@ -29,7 +29,7 @@ class GetContactsUseCase( private fun Contact.matches(query: String): Boolean { val isNameContaining = name.value.contains(other = query, ignoreCase = true) - val isAddressContaining = addressEntries.any { addressEntry -> + val isAddressContaining = addresses.any { addressEntry -> addressEntry.address.contains(other = query, ignoreCase = true) } return isNameContaining || isAddressContaining diff --git a/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/crypto/AddressBookCipherTest.kt b/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/crypto/AddressBookCipherTest.kt index 078caec724..5264862d12 100644 --- a/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/crypto/AddressBookCipherTest.kt +++ b/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/crypto/AddressBookCipherTest.kt @@ -272,7 +272,7 @@ internal class AddressBookCipherTest { iconColor = iconColor, createdAt = "2026-01-01T00:00:00.000Z", updatedAt = "2026-05-22T09:00:00.000Z", - addressEntries = entries.toList(), + addresses = entries.toList(), ) private fun entry(id: String, address: String, memo: String?): AddressEntry = AddressEntry( diff --git a/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/interactor/GetVerifiedContactsInteractorTest.kt b/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/interactor/GetVerifiedContactsInteractorTest.kt index f0d6b4524f..2b8c783929 100644 --- a/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/interactor/GetVerifiedContactsInteractorTest.kt +++ b/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/interactor/GetVerifiedContactsInteractorTest.kt @@ -67,7 +67,7 @@ class GetVerifiedContactsInteractorTest { // Assert assertThat(result).containsExactly( VerifiedContact( - contact = contact.copy(addressEntries = listOf(valid)), + contact = contact.copy(addresses = listOf(valid)), invalidEntries = listOf(invalid), ), ) @@ -93,8 +93,8 @@ class GetVerifiedContactsInteractorTest { // Assert assertThat(messagesSlot.captured.map { String(it) }) .containsExactly( - expectedPayload(contact, contact.addressEntries[0]), - expectedPayload(contact, contact.addressEntries[1]), + expectedPayload(contact, contact.addresses[0]), + expectedPayload(contact, contact.addresses[1]), ) .inOrder() assertThat(signaturesSlot.captured.map { it.toHexString() }).containsExactly("AABB", "CCDD").inOrder() @@ -114,7 +114,7 @@ class GetVerifiedContactsInteractorTest { val result = interactor(query = "").first().single() // Assert - assertThat(result.contact.addressEntries).containsExactly(valid1, valid2).inOrder() + assertThat(result.contact.addresses).containsExactly(valid1, valid2).inOrder() assertThat(result.invalidEntries).containsExactly(invalid) } @@ -135,7 +135,7 @@ class GetVerifiedContactsInteractorTest { // Assert assertThat(signaturesSlot.captured.map { it.toHexString() }).containsExactly("AABB") - assertThat(result.contact.addressEntries).containsExactly(signed) + assertThat(result.contact.addresses).containsExactly(signed) assertThat(result.invalidEntries).containsExactly(malformed) } @@ -149,7 +149,7 @@ class GetVerifiedContactsInteractorTest { val result = interactor(query = "").first().single() // Assert - assertThat(result.contact.addressEntries).isEmpty() + assertThat(result.contact.addresses).isEmpty() assertThat(result.invalidEntries).isEmpty() verify(exactly = 0) { verifyMessages(any(), any(), any()) } } @@ -192,7 +192,7 @@ class GetVerifiedContactsInteractorTest { iconColor = "KekColor", createdAt = "2026-01-01T00:00:00.000Z", updatedAt = "2026-01-01T00:00:00.000Z", - addressEntries = entries.toList(), + addresses = entries.toList(), ) private fun entry(id: String, address: String, memo: String?, signature: String): AddressEntry = AddressEntry( diff --git a/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/interactor/SaveContactInteractorTest.kt b/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/interactor/SaveContactInteractorTest.kt index 6e90eb258f..15d13523f4 100644 --- a/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/interactor/SaveContactInteractorTest.kt +++ b/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/interactor/SaveContactInteractorTest.kt @@ -87,7 +87,7 @@ internal class SaveContactInteractorTest { assertThat(contact.id.value).isNotEmpty() assertThat(contact.createdAt).isEqualTo(NEW_TIMESTAMP) assertThat(contact.updatedAt).isEqualTo(NEW_TIMESTAMP) - assertThat(contact.addressEntries.map { it.signature }) + assertThat(contact.addresses.map { it.signature }) .containsExactly(signatures[0].toHexString()) } @@ -121,7 +121,7 @@ internal class SaveContactInteractorTest { expectedHash(persisted, twoEntries[1]).toHexString(), ) .inOrder() - assertThat(persisted.addressEntries.map { it.signature }) + assertThat(persisted.addresses.map { it.signature }) .containsExactly(signatures[0].toHexString(), signatures[1].toHexString()) .inOrder() } @@ -138,7 +138,7 @@ internal class SaveContactInteractorTest { // Assert assertThat(result.getOrNull()).isEqualTo(saved.captured) - assertThat(saved.captured.addressEntries).isEmpty() + assertThat(saved.captured.addresses).isEmpty() coVerify(exactly = 0) { signUseCase(any>(), any(), any()) } } @@ -249,7 +249,7 @@ internal class SaveContactInteractorTest { contact = existing, name = "Bob", iconColor = "TestColor", - addressEntries = updatedEntries, + addresses = updatedEntries, ) // Assert @@ -259,7 +259,7 @@ internal class SaveContactInteractorTest { assertThat(contact.name.value).isEqualTo("Bob") assertThat(contact.createdAt).isEqualTo(ORIGINAL_TIMESTAMP) assertThat(contact.updatedAt).isEqualTo(NEW_TIMESTAMP) - assertThat(contact.addressEntries.map { it.signature }) + assertThat(contact.addresses.map { it.signature }) .containsExactly(signatures[0].toHexString()) coVerify(exactly = 0) { repository.getContacts(any()) } } @@ -276,7 +276,7 @@ internal class SaveContactInteractorTest { contact = contact(name = "Alice"), name = "Bob", iconColor = "TestColor", - addressEntries = updatedEntries, + addresses = updatedEntries, ) // Assert @@ -292,7 +292,7 @@ internal class SaveContactInteractorTest { contact = contact(name = "Alice"), name = "", iconColor = "TestColor", - addressEntries = updatedEntries, + addresses = updatedEntries, ) // Assert @@ -310,7 +310,7 @@ internal class SaveContactInteractorTest { iconColor = "TestColor", createdAt = ORIGINAL_TIMESTAMP, updatedAt = ORIGINAL_TIMESTAMP, - addressEntries = listOf(entry(id = "addr-$name", address = "0xabc", memo = null)), + addresses = listOf(entry(id = "addr-$name", address = "0xabc", memo = null)), ) private fun entry(id: String, address: String, memo: String?): AddressEntry = AddressEntry( diff --git a/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/usecase/CheckAddressDuplicateUseCaseTest.kt b/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/usecase/CheckAddressDuplicateUseCaseTest.kt index 8357f40415..f7560f26a9 100644 --- a/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/usecase/CheckAddressDuplicateUseCaseTest.kt +++ b/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/usecase/CheckAddressDuplicateUseCaseTest.kt @@ -83,7 +83,7 @@ class CheckAddressDuplicateUseCaseTest { iconColor = "Azure", createdAt = "2026-01-01T00:00:00.000Z", updatedAt = "2026-01-01T00:00:00.000Z", - addressEntries = listOf( + addresses = listOf( AddressEntry( id = AddressEntryId("addr-$name"), address = address, diff --git a/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/usecase/GetContactByIdUseCaseTest.kt b/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/usecase/GetContactByIdUseCaseTest.kt index 9ee2b31931..2c6ab84e6a 100644 --- a/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/usecase/GetContactByIdUseCaseTest.kt +++ b/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/usecase/GetContactByIdUseCaseTest.kt @@ -60,6 +60,6 @@ class GetContactByIdUseCaseTest { iconColor = "Azure", createdAt = "2026-01-01T00:00:00.000Z", updatedAt = "2026-01-01T00:00:00.000Z", - addressEntries = emptyList(), + addresses = emptyList(), ) } \ No newline at end of file diff --git a/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/usecase/GetContactsUseCaseTest.kt b/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/usecase/GetContactsUseCaseTest.kt index 0d0e80cfb5..1f340d06b4 100644 --- a/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/usecase/GetContactsUseCaseTest.kt +++ b/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/usecase/GetContactsUseCaseTest.kt @@ -112,7 +112,7 @@ class GetContactsUseCaseTest { iconColor = "KekColor", createdAt = createdAt, updatedAt = "2026-01-01T00:00:00.000Z", - addressEntries = listOf( + addresses = listOf( AddressEntry( id = AddressEntryId("addr-$name"), address = address, diff --git a/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/usecase/ValidateContactNameUseCaseTest.kt b/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/usecase/ValidateContactNameUseCaseTest.kt index bcc412f11e..3de511c5ad 100644 --- a/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/usecase/ValidateContactNameUseCaseTest.kt +++ b/domain/address-book/src/test/kotlin/com/tangem/domain/addressbook/usecase/ValidateContactNameUseCaseTest.kt @@ -68,7 +68,7 @@ class ValidateContactNameUseCaseTest { iconColor = "KekColor", createdAt = "2026-01-01T00:00:00.000Z", updatedAt = "2026-01-01T00:00:00.000Z", - addressEntries = listOf( + addresses = listOf( AddressEntry( id = AddressEntryId("addr-$name"), address = "0xabc", diff --git a/features/address-book/impl/src/main/kotlin/com/tangem/features/addressbook/common/ContactMatcher.kt b/features/address-book/impl/src/main/kotlin/com/tangem/features/addressbook/common/ContactMatcher.kt index b2579dec4e..1ee320ff34 100644 --- a/features/address-book/impl/src/main/kotlin/com/tangem/features/addressbook/common/ContactMatcher.kt +++ b/features/address-book/impl/src/main/kotlin/com/tangem/features/addressbook/common/ContactMatcher.kt @@ -14,7 +14,7 @@ internal object ContactMatcher { fun match(contacts: List, networkId: String): List { return contacts.mapNotNull { contact -> - val entries = contact.addressEntries.filter { it.networkId.value == networkId } + val entries = contact.addresses.filter { it.networkId.value == networkId } if (entries.isEmpty()) return@mapNotNull null MatchedContact( diff --git a/features/address-book/impl/src/main/kotlin/com/tangem/features/addressbook/editcontact/model/EditContactModel.kt b/features/address-book/impl/src/main/kotlin/com/tangem/features/addressbook/editcontact/model/EditContactModel.kt index aeb0a66b54..18b75b8a77 100644 --- a/features/address-book/impl/src/main/kotlin/com/tangem/features/addressbook/editcontact/model/EditContactModel.kt +++ b/features/address-book/impl/src/main/kotlin/com/tangem/features/addressbook/editcontact/model/EditContactModel.kt @@ -180,7 +180,7 @@ internal class EditContactModel @Inject constructor( stateController.update(UpdateContactNameTransformer(name = contact.name.value)) CryptoPortfolioIcon.Color.entries.firstOrNull { it.name == contact.iconColor } ?.let { stateController.update(SelectContactColorTransformer(color = it)) } - val addresses = ContactAddressEntriesConverter().toValidatedAddresses(contact.addressEntries) + val addresses = ContactAddressEntriesConverter().toValidatedAddresses(contact.addresses) stateController.update(SetValidatedAddressesTransformer(addresses = addresses, maxAddresses = MAX_ADDRESSES)) } @@ -298,7 +298,7 @@ internal class EditContactModel @Inject constructor( if (saveJob?.isActive == true) return val userWallet = selectedWallet.value ?: return val ui = stateController.uiState.value - val addressEntries = ContactAddressEntriesConverter().convert(ui.addresses) + val addresses = ContactAddressEntriesConverter().convert(ui.addresses) val existing = loadedContact.value saveJob = modelScope.launch { @@ -308,14 +308,14 @@ internal class EditContactModel @Inject constructor( contact = existing, name = ui.name, iconColor = ui.colors.selected.name, - addressEntries = addressEntries, + addresses = addresses, ) } else { saveContactInteractor.createContact( userWallet = userWallet, name = ui.name, iconColor = ui.colors.selected.name, - addressEntries = addressEntries, + addresses = addresses, ) } result.fold( @@ -514,7 +514,7 @@ internal class EditContactModel @Inject constructor( private fun Contact.toSnapshot(): EditSnapshot = EditSnapshot( name = name.value, colorName = iconColor, - addresses = ContactAddressEntriesConverter().toValidatedAddresses(addressEntries) + addresses = ContactAddressEntriesConverter().toValidatedAddresses(addresses) .map { it.address to it.networkIds.toSet() }, ) diff --git a/features/address-book/impl/src/main/kotlin/com/tangem/features/addressbook/list/state/transformers/converter/DefaultContactConverter.kt b/features/address-book/impl/src/main/kotlin/com/tangem/features/addressbook/list/state/transformers/converter/DefaultContactConverter.kt index 5ce1adc36a..c29e57df86 100644 --- a/features/address-book/impl/src/main/kotlin/com/tangem/features/addressbook/list/state/transformers/converter/DefaultContactConverter.kt +++ b/features/address-book/impl/src/main/kotlin/com/tangem/features/addressbook/list/state/transformers/converter/DefaultContactConverter.kt @@ -23,7 +23,7 @@ internal class DefaultContactConverter( color = CryptoPortfolioIcon.Color.entries.firstOrNull { it.name == contact.iconColor } ?: CryptoPortfolioIcon.Color.Azure, ), - networkAddressCount = contact.addressEntries.size, + networkAddressCount = contact.addresses.size, onClick = { onContactClick(contact.id.value) }, ) } diff --git a/features/address-book/impl/src/test/kotlin/com/tangem/features/addressbook/common/ContactMatcherTest.kt b/features/address-book/impl/src/test/kotlin/com/tangem/features/addressbook/common/ContactMatcherTest.kt index 2f9974771e..7d9ec53b6b 100644 --- a/features/address-book/impl/src/test/kotlin/com/tangem/features/addressbook/common/ContactMatcherTest.kt +++ b/features/address-book/impl/src/test/kotlin/com/tangem/features/addressbook/common/ContactMatcherTest.kt @@ -81,7 +81,7 @@ internal class ContactMatcherTest { iconColor = iconColor, createdAt = "2026-06-10T14:30:00.000Z", updatedAt = "2026-06-10T14:30:00.000Z", - addressEntries = entries.toList(), + addresses = entries.toList(), ) private fun entry(address: String, networkId: String, memo: String? = null): AddressEntry = AddressEntry( diff --git a/features/address-book/impl/src/test/kotlin/com/tangem/features/addressbook/editcontact/model/EditContactModelTest.kt b/features/address-book/impl/src/test/kotlin/com/tangem/features/addressbook/editcontact/model/EditContactModelTest.kt index 0147a72235..7374878263 100644 --- a/features/address-book/impl/src/test/kotlin/com/tangem/features/addressbook/editcontact/model/EditContactModelTest.kt +++ b/features/address-book/impl/src/test/kotlin/com/tangem/features/addressbook/editcontact/model/EditContactModelTest.kt @@ -526,7 +526,7 @@ internal class EditContactModelTest { userWallet = walletA, name = "Satoshi", iconColor = any(), - addressEntries = any(), + addresses = any(), ) } verify(exactly = 1) { @@ -830,7 +830,7 @@ internal class EditContactModelTest { val walletA = createWallet(id = "aa", name = "Wallet A") setupWallets(wallets = listOf(walletA), selected = walletA) val contact = existingContact(walletId = "aa", name = "Alice", address = "0xAAA").copy( - addressEntries = listOf( + addresses = listOf( AddressEntry( id = AddressEntryId("e-1"), address = "0xAAA", @@ -891,7 +891,7 @@ internal class EditContactModelTest { iconColor = CryptoPortfolioIcon.Color.Azure.name, createdAt = "2026-01-01T00:00:00.000Z", updatedAt = "2026-01-01T00:00:00.000Z", - addressEntries = listOf( + addresses = listOf( AddressEntry( id = AddressEntryId("e-1"), address = address, diff --git a/features/address-book/impl/src/test/kotlin/com/tangem/features/addressbook/list/model/AddressBookListModelTest.kt b/features/address-book/impl/src/test/kotlin/com/tangem/features/addressbook/list/model/AddressBookListModelTest.kt index b51e0e9832..d76a4df0b9 100644 --- a/features/address-book/impl/src/test/kotlin/com/tangem/features/addressbook/list/model/AddressBookListModelTest.kt +++ b/features/address-book/impl/src/test/kotlin/com/tangem/features/addressbook/list/model/AddressBookListModelTest.kt @@ -2,7 +2,6 @@ package com.tangem.features.addressbook.list.model import com.google.common.truth.Truth.assertThat import com.tangem.core.decompose.model.MutableParamsContainer -import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.navigation.Router import com.tangem.domain.addressbook.interactor.GetVerifiedContactsInteractor import com.tangem.domain.addressbook.model.AddressEntry @@ -129,7 +128,7 @@ internal class AddressBookListModelTest { iconColor = CryptoPortfolioIcon.Color.Azure.name, createdAt = TIMESTAMP, updatedAt = TIMESTAMP, - addressEntries = listOf( + addresses = listOf( AddressEntry( id = AddressEntryId("e-$id"), address = "0xABC", diff --git a/features/address-book/impl/src/test/kotlin/com/tangem/features/addressbook/list/state/transformers/UpdateAddressBookListContentTransformerTest.kt b/features/address-book/impl/src/test/kotlin/com/tangem/features/addressbook/list/state/transformers/UpdateAddressBookListContentTransformerTest.kt index fefa1bde60..7242a5cd38 100644 --- a/features/address-book/impl/src/test/kotlin/com/tangem/features/addressbook/list/state/transformers/UpdateAddressBookListContentTransformerTest.kt +++ b/features/address-book/impl/src/test/kotlin/com/tangem/features/addressbook/list/state/transformers/UpdateAddressBookListContentTransformerTest.kt @@ -165,7 +165,7 @@ internal class UpdateAddressBookListContentTransformerTest { iconColor = "Azure", createdAt = "2026-06-10T14:30:00.000Z", updatedAt = "2026-06-10T14:30:00.000Z", - addressEntries = listOf( + addresses = listOf( AddressEntry( id = AddressEntryId(name), address = "addr-$name", diff --git a/features/send/impl/src/main/java/com/tangem/features/send/subcomponents/destination/model/SendDestinationModel.kt b/features/send/impl/src/main/java/com/tangem/features/send/subcomponents/destination/model/SendDestinationModel.kt index d493255dca..4189f2876d 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/subcomponents/destination/model/SendDestinationModel.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/subcomponents/destination/model/SendDestinationModel.kt @@ -124,7 +124,7 @@ internal class SendDestinationModel @Inject constructor( if (address.contactName != null) return@combine false // sent via a contact val networkId = cryptoCurrency.network.rawId contactList.none { contact -> - contact.addressEntries.any { + contact.addresses.any { it.networkId.value == networkId && it.address.equals(address.actualAddress, ignoreCase = true) } } @@ -481,7 +481,7 @@ internal class SendDestinationModel @Inject constructor( private fun findContactByAddress(address: String): Contact? { val networkId = cryptoCurrency.network.rawId return contacts.value.firstOrNull { contact -> - contact.addressEntries.any { entry -> + contact.addresses.any { entry -> entry.networkId.value == networkId && entry.address.equals(address, ignoreCase = true) } } diff --git a/features/send/impl/src/test/java/com/tangem/features/send/subcomponents/destination/model/SendDestinationModelTest.kt b/features/send/impl/src/test/java/com/tangem/features/send/subcomponents/destination/model/SendDestinationModelTest.kt index e1017e7b10..f32e43acaa 100644 --- a/features/send/impl/src/test/java/com/tangem/features/send/subcomponents/destination/model/SendDestinationModelTest.kt +++ b/features/send/impl/src/test/java/com/tangem/features/send/subcomponents/destination/model/SendDestinationModelTest.kt @@ -489,7 +489,7 @@ internal class SendDestinationModelTest { iconColor = "#FFFFFF", createdAt = "2026-01-01T00:00:00.000Z", updatedAt = "2026-01-01T00:00:00.000Z", - addressEntries = listOf( + addresses = listOf( AddressEntry( id = AddressEntryId("e1"), address = address,