@@ -98,10 +98,11 @@ fn map_swap_transaction(transaction: Transaction, events: Vec<Event>, chain: Cha
9898 ] ;
9999
100100 let swap = SwapMapper :: map_swap ( & balance_diffs, & BigUint :: from ( 0u8 ) , & chain. as_asset_id ( ) , Some ( SwapProvider :: Panora . id ( ) . to_owned ( ) ) ) ?;
101+ let asset_id = swap. from_asset . clone ( ) ;
101102 let metadata = serde_json:: to_value ( & swap) . ok ( ) ;
102103 let to = meta. sender . clone ( ) ;
103104
104- return Some ( build_transaction ( meta, chain. as_asset_id ( ) , to, swap. from_value , TransactionType :: Swap , metadata) ) ;
105+ return Some ( build_transaction ( meta, asset_id , chain. as_asset_id ( ) , to, swap. from_value , TransactionType :: Swap , metadata) ) ;
105106 }
106107
107108 let withdraw_event = events. iter ( ) . find ( |e| e. event_type == FUNGIBLE_ASSET_WITHDRAW_EVENT ) ?;
@@ -149,30 +150,32 @@ fn map_swap_transaction(transaction: Transaction, events: Vec<Event>, chain: Cha
149150 } ) ;
150151
151152 let swap = SwapMapper :: map_swap ( & balance_diffs, & BigUint :: from ( 0u8 ) , & chain. as_asset_id ( ) , provider) ?;
153+ let asset_id = swap. from_asset . clone ( ) ;
152154 let metadata = serde_json:: to_value ( & swap) . ok ( ) ;
153155 let to = meta. sender . clone ( ) ;
154156
155- Some ( build_transaction ( meta, chain. as_asset_id ( ) , to, swap. from_value , TransactionType :: Swap , metadata) )
157+ Some ( build_transaction ( meta, asset_id , chain. as_asset_id ( ) , to, swap. from_value , TransactionType :: Swap , metadata) )
156158}
157159
158160fn build_transaction (
159161 meta : TransactionMeta ,
160162 asset_id : AssetId ,
163+ fee_asset_id : AssetId ,
161164 to : String ,
162165 value : String ,
163166 transaction_type : TransactionType ,
164167 metadata : Option < serde_json:: Value > ,
165168) -> PrimitivesTransaction {
166169 PrimitivesTransaction :: new (
167170 meta. hash ,
168- asset_id. clone ( ) ,
171+ asset_id,
169172 meta. sender ,
170173 to,
171174 None ,
172175 transaction_type,
173176 meta. state ,
174177 meta. fee ,
175- asset_id ,
178+ fee_asset_id ,
176179 value,
177180 None ,
178181 metadata,
@@ -196,6 +199,7 @@ pub fn map_transaction(transaction: Transaction) -> Option<PrimitivesTransaction
196199 let data: DelegationPoolAddStakeData = serde_json:: from_value ( event. data . clone ( ) ?) . ok ( ) ?;
197200 return Some ( build_transaction (
198201 meta,
202+ asset_id. clone ( ) ,
199203 asset_id,
200204 data. pool_address ,
201205 data. amount_added ,
@@ -207,6 +211,7 @@ pub fn map_transaction(transaction: Transaction) -> Option<PrimitivesTransaction
207211 let data: DelegationPoolUnlockStakeData = serde_json:: from_value ( event. data . clone ( ) ?) . ok ( ) ?;
208212 return Some ( build_transaction (
209213 meta,
214+ asset_id. clone ( ) ,
210215 asset_id,
211216 data. pool_address ,
212217 data. amount_unlocked ,
@@ -231,7 +236,7 @@ pub fn map_transaction(transaction: Transaction) -> Option<PrimitivesTransaction
231236
232237 let value = deposit_event. get_amount ( ) ?;
233238
234- return Some ( build_transaction ( meta, asset_id, to, value, TransactionType :: Transfer , None ) ) ;
239+ return Some ( build_transaction ( meta, asset_id. clone ( ) , asset_id , to, value, TransactionType :: Transfer , None ) ) ;
235240 }
236241 None
237242}
@@ -315,6 +320,8 @@ mod tests {
315320 assert_eq ! ( tx. to, "0x4eb20e735591a85bb58921ef2e6b55c385bba10e817ffe1e02e50deb6c594aef" ) ;
316321 assert_eq ! ( tx. state, TransactionState :: Confirmed ) ;
317322 assert_eq ! ( tx. transaction_type, TransactionType :: Swap ) ;
323+ assert_eq ! ( tx. asset_id, AssetId :: from_token( Chain :: Aptos , APTOS_USDT_TOKEN_ID ) ) ;
324+ assert_eq ! ( tx. fee_asset_id, Chain :: Aptos . as_asset_id( ) ) ;
318325 assert_eq ! ( tx. fee, "142600" ) ;
319326 assert ! ( tx. metadata. is_some( ) ) ;
320327
0 commit comments