diff --git a/crates/gem_aptos/src/provider/transactions_mapper.rs b/crates/gem_aptos/src/provider/transactions_mapper.rs index 95299ddd4..35340e158 100644 --- a/crates/gem_aptos/src/provider/transactions_mapper.rs +++ b/crates/gem_aptos/src/provider/transactions_mapper.rs @@ -98,10 +98,11 @@ fn map_swap_transaction(transaction: Transaction, events: Vec, chain: Cha ]; let swap = SwapMapper::map_swap(&balance_diffs, &BigUint::from(0u8), &chain.as_asset_id(), Some(SwapProvider::Panora.id().to_owned()))?; + let asset_id = swap.from_asset.clone(); let metadata = serde_json::to_value(&swap).ok(); let to = meta.sender.clone(); - return Some(build_transaction(meta, chain.as_asset_id(), to, swap.from_value, TransactionType::Swap, metadata)); + return Some(build_transaction(meta, asset_id, chain.as_asset_id(), to, swap.from_value, TransactionType::Swap, metadata)); } let withdraw_event = events.iter().find(|e| e.event_type == FUNGIBLE_ASSET_WITHDRAW_EVENT)?; @@ -149,15 +150,17 @@ fn map_swap_transaction(transaction: Transaction, events: Vec, chain: Cha }); let swap = SwapMapper::map_swap(&balance_diffs, &BigUint::from(0u8), &chain.as_asset_id(), provider)?; + let asset_id = swap.from_asset.clone(); let metadata = serde_json::to_value(&swap).ok(); let to = meta.sender.clone(); - Some(build_transaction(meta, chain.as_asset_id(), to, swap.from_value, TransactionType::Swap, metadata)) + Some(build_transaction(meta, asset_id, chain.as_asset_id(), to, swap.from_value, TransactionType::Swap, metadata)) } fn build_transaction( meta: TransactionMeta, asset_id: AssetId, + fee_asset_id: AssetId, to: String, value: String, transaction_type: TransactionType, @@ -165,14 +168,14 @@ fn build_transaction( ) -> PrimitivesTransaction { PrimitivesTransaction::new( meta.hash, - asset_id.clone(), + asset_id, meta.sender, to, None, transaction_type, meta.state, meta.fee, - asset_id, + fee_asset_id, value, None, metadata, @@ -196,6 +199,7 @@ pub fn map_transaction(transaction: Transaction) -> Option Option Option return None, }; let owner = owner.clone()?; + let asset_id = swap.from_asset.clone(); return Some(( - chain.as_asset_id(), + asset_id, owner.clone(), owner, TransactionType::Swap, @@ -366,6 +367,7 @@ mod tests { .unwrap(); assert_eq!(swap.transaction_type, TransactionType::Swap); + assert_eq!(swap.asset_id, AssetId::from_token(Chain::Sui, TOKEN_A)); assert_eq!(swap.value, "200"); let metadata: TransactionSwapMetadata = serde_json::from_value(swap.metadata.unwrap()).unwrap(); assert_eq!(metadata.from_asset, AssetId::from_token(Chain::Sui, TOKEN_A));