Skip to content
This repository was archived by the owner on Jun 1, 2026. It is now read-only.

Commit 86da343

Browse files
committed
Refactor UniFFI remote enum declarations
1 parent 9e6ad31 commit 86da343

3 files changed

Lines changed: 17 additions & 17 deletions

File tree

apps/daemon/src/pusher/pusher.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::error::Error;
33
use localizer::LanguageLocalizer;
44
use number_formatter::{ValueFormatter, ValueStyle};
55
use primitives::{
6-
AddressFormatStyle, AddressFormatter, Asset, AssetVecExt, Chain, DeviceSubscription, FiatQuoteType, GorushNotification, NFTAssetId, PushNotification,
6+
AddressFormatStyle, AddressFormatter, Asset, AssetVecExt, Chain, DeviceSubscription, FiatQuoteType, GorushNotification, PushNotification,
77
PushNotificationTransaction, PushNotificationTypes, Transaction, TransactionNFTTransferMetadata, TransactionPerpetualMetadata, TransactionSwapMetadata, TransactionType,
88
};
99
use storage::{Database, ScanAddressesRepository};
@@ -67,7 +67,7 @@ impl Pusher {
6767
TransactionType::TransferNFT => {
6868
let metadata = transaction.metadata.clone().ok_or("Missing metadata")?;
6969
let metadata: TransactionNFTTransferMetadata = serde_json::from_value(metadata)?;
70-
let nft_asset_id: NFTAssetId = metadata.asset_id.parse().map_err(|_| "Missing nft asset id")?;
70+
let nft_asset_id = metadata.asset_id;
7171
let name = if let Some(name) = metadata.name {
7272
name
7373
} else if nft_asset_id.token_id.len() < 6 {

crates/primitives/src/testkit/nft_mock.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ use crate::{
44
nft::{NFTAsset, NFTAssetId, NFTImages, NFTResource},
55
};
66

7+
impl NFTAssetId {
8+
pub fn mock() -> Self {
9+
NFTAssetId::new(Chain::Ethereum, ETHEREUM_USDT_TOKEN_ID, "1")
10+
}
11+
}
12+
713
impl NFTAsset {
814
pub fn mock() -> Self {
915
Self::mock_with_type(NFTType::ERC721)

crates/primitives/src/transaction_metadata_types.rs

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,18 @@ pub struct TransactionSwapMetadata {
3030
#[typeshare(swift = "Sendable")]
3131
#[serde(rename_all = "camelCase")]
3232
pub struct TransactionNFTTransferMetadata {
33-
pub asset_id: String,
33+
pub asset_id: NFTAssetId,
3434
#[serde(skip_serializing_if = "Option::is_none")]
3535
pub name: Option<String>,
3636
}
3737

3838
impl TransactionNFTTransferMetadata {
39-
pub fn new(asset_id: String, name: Option<String>) -> Self {
39+
pub fn new(asset_id: NFTAssetId, name: Option<String>) -> Self {
4040
Self { asset_id, name }
4141
}
4242

4343
pub fn from_asset_id(asset_id: NFTAssetId) -> Self {
44-
Self {
45-
asset_id: asset_id.to_string(),
46-
name: None,
47-
}
44+
Self { asset_id, name: None }
4845
}
4946
}
5047

@@ -74,18 +71,15 @@ mod tests {
7471

7572
#[test]
7673
fn test_nft_transfer_metadata_serialization() {
74+
let asset_id = NFTAssetId::mock();
75+
let serialized = asset_id.to_string();
7776
assert_eq!(
78-
serde_json::to_value(TransactionNFTTransferMetadata::new("ethereum_0xabc::1".to_string(), None)).unwrap(),
79-
serde_json::json!({
80-
"assetId": "ethereum_0xabc::1"
81-
})
77+
serde_json::to_value(TransactionNFTTransferMetadata::new(asset_id.clone(), None)).unwrap(),
78+
serde_json::json!({ "assetId": serialized })
8279
);
8380
assert_eq!(
84-
serde_json::to_value(TransactionNFTTransferMetadata::new("ethereum_0xabc::1".to_string(), Some("NFT".to_string()))).unwrap(),
85-
serde_json::json!({
86-
"assetId": "ethereum_0xabc::1",
87-
"name": "NFT"
88-
})
81+
serde_json::to_value(TransactionNFTTransferMetadata::new(asset_id, Some("NFT".to_string()))).unwrap(),
82+
serde_json::json!({ "assetId": serialized, "name": "NFT" })
8983
);
9084
}
9185
}

0 commit comments

Comments
 (0)