@@ -21,6 +21,7 @@ template LinkHolding
2121 holdingAdmin : Party
2222 holdingInstrumentId : HoldingV1.InstrumentId
2323 holdingAmount : Decimal
24+ meta : MetadataV1.Metadata
2425 where
2526 signatory holdingOwner, holdingAdmin
2627
@@ -30,7 +31,7 @@ template LinkHolding
3031 instrumentId = holdingInstrumentId
3132 amount = holdingAmount
3233 lock = None
33- meta = MetadataV1.emptyMetadata
34+ meta = meta
3435
3536template LinkTransferPreapproval
3637 with
@@ -45,6 +46,7 @@ template LinkTransferPreapproval
4546 amount : Decimal
4647 instrumentId : HoldingV1.InstrumentId
4748 inputHoldingCids : [ContractId HoldingV1.Holding]
49+ meta : MetadataV1.Metadata
4850 controller sender
4951 do
5052 inputTotal <- sumAndArchiveInputs sender instrumentId inputHoldingCids
@@ -56,6 +58,7 @@ template LinkTransferPreapproval
5658 holdingAdmin = preapprovalAdmin
5759 holdingInstrumentId = instrumentId
5860 holdingAmount = amount
61+ meta = meta
5962
6063 senderChangeCids <- createChangeIfNeeded preapprovalAdmin sender instrumentId (inputTotal - amount)
6164
@@ -98,6 +101,7 @@ template LinkTransferInstruction
98101 holdingAdmin = instructionAdmin
99102 holdingInstrumentId = instructionTransfer.instrumentId
100103 holdingAmount = lockedHolding.lockedAmount
104+ meta = lockedHolding.meta
101105
102106 pure TransferV1.TransferInstructionResult with
103107 senderChangeCids = []
@@ -121,6 +125,7 @@ template LockedLinkHolding
121125 lockedReceiver : Party
122126 lockedInstrumentId : HoldingV1.InstrumentId
123127 lockedAmount : Decimal
128+ meta : MetadataV1.Metadata
124129 where
125130 signatory lockedAdmin, lockedSender
126131 observer lockedReceiver
@@ -160,6 +165,7 @@ template LinkRegistry
160165 amount = transfer.amount
161166 instrumentId = transfer.instrumentId
162167 inputHoldingCids = transfer.inputHoldingCids
168+ meta = transfer.meta
163169 (False, None) -> createPendingTransfer registryAdmin transfer
164170
165171 transferFactory_publicFetchImpl _self arg = do
@@ -197,6 +203,7 @@ template LinkRegistry
197203 holdingAdmin = registryAdmin
198204 holdingInstrumentId = registryInstrumentId
199205 holdingAmount = output.amount
206+ meta = arg.extraArgs.meta
200207
201208 pure BurnMintV1.BurnMintFactory_BurnMintResult with
202209 outputCids
@@ -260,6 +267,7 @@ createChangeIfNeeded admin owner instrumentId change =
260267 holdingAdmin = admin
261268 holdingInstrumentId = instrumentId
262269 holdingAmount = change
270+ meta = MetadataV1.emptyMetadata
263271 pure [toInterfaceContractId changeCid]
264272 else pure []
265273
@@ -277,6 +285,7 @@ returnLockedFunds admin transfer lockedHoldingCid = do
277285 holdingAdmin = admin
278286 holdingInstrumentId = transfer.instrumentId
279287 holdingAmount = lockedHolding.lockedAmount
288+ meta = lockedHolding.meta
280289
281290 pure TransferV1.TransferInstructionResult with
282291 senderChangeCids = [toInterfaceContractId senderCid]
@@ -294,6 +303,7 @@ executeDirectTransfer admin transfer = do
294303 holdingAdmin = admin
295304 holdingInstrumentId = transfer.instrumentId
296305 holdingAmount = transfer.amount
306+ meta = transfer.meta
297307
298308 senderChangeCids <- createChangeIfNeeded admin transfer.sender transfer.instrumentId (inputTotal - transfer.amount)
299309
@@ -315,6 +325,7 @@ createPendingTransfer admin transfer = do
315325 lockedReceiver = transfer.receiver
316326 lockedInstrumentId = transfer.instrumentId
317327 lockedAmount = transfer.amount
328+ meta = transfer.meta
318329
319330 senderChangeCids <- createChangeIfNeeded admin transfer.sender transfer.instrumentId (inputTotal - transfer.amount)
320331 instructionCid <- create LinkTransferInstruction with
0 commit comments