@@ -16,8 +16,9 @@ use crate::{
1616 } ,
1717} ;
1818use cardano_serialization_lib:: {
19- Address , AssetName , BigNum , MultiAsset , PlutusData , ScriptHash , Transaction ,
20- TransactionBuilder , TransactionOutputBuilder , TxInputsBuilder ,
19+ Address , AssetName , BigNum , JsError , MetadataMap , MultiAsset , PlutusData , ScriptHash ,
20+ Transaction , TransactionBuilder , TransactionMetadatum , TransactionOutputBuilder ,
21+ TxInputsBuilder ,
2122} ;
2223use ogmios_client:: {
2324 query_ledger_state:: { QueryLedgerState , QueryUtxoByUtxoId } ,
@@ -103,6 +104,7 @@ fn deposit_only_tx(
103104 . with_address ( ics_address)
104105 . with_plutus_data ( & to_user_transfer_datum ( pc_address) )
105106 . next ( ) ?;
107+ tx_builder. add_metadatum ( & 0u64 . into ( ) , & to_user_transfer_metadatum ( pc_address) ?) ;
106108 let ma = MultiAsset :: new ( ) . with_asset_amount ( & token_amount. token , token_amount. amount ) ?;
107109 let output = output_builder. with_minimum_ada_and_asset ( & ma, ctx) ?. build ( ) ?;
108110 tx_builder. add_output ( & output) ?;
@@ -240,3 +242,12 @@ fn deposit_tx(
240242fn to_user_transfer_datum ( pc_address : & [ u8 ] ) -> PlutusData {
241243 TokenTransferDatumV1 :: UserTransfer { receiver : ByteString ( pc_address. to_vec ( ) ) } . into ( )
242244}
245+
246+ fn to_user_transfer_metadatum ( pc_address : & [ u8 ] ) -> Result < TransactionMetadatum , JsError > {
247+ let mut map = MetadataMap :: new ( ) ;
248+ map. insert (
249+ & TransactionMetadatum :: new_text ( "receiver" . to_string ( ) ) ?,
250+ & TransactionMetadatum :: new_bytes ( pc_address. to_vec ( ) ) ?,
251+ ) ;
252+ Ok ( TransactionMetadatum :: new_map ( & map) )
253+ }
0 commit comments