Skip to content

Commit 059850b

Browse files
authored
Add Link Token Metadata handling (NONEVM-4879) (#451)
Split link tests into separate Daml package
1 parent 19d5a20 commit 059850b

12 files changed

Lines changed: 114 additions & 16 deletions

File tree

bindings/generated/link/link.go

Lines changed: 18 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

contracts/dars/ccip-test-0.0.1.dar

-11.1 KB
Binary file not shown.
-11.1 KB
Binary file not shown.

contracts/dars/link-0.0.1.dar

-178 KB
Binary file not shown.

contracts/dars/link-current.dar

-178 KB
Binary file not shown.

contracts/dars/link-test-0.0.1.dar

823 KB
Binary file not shown.
823 KB
Binary file not shown.

contracts/link/daml.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,3 @@ data-dependencies:
1515
dependencies:
1616
- daml-prim
1717
- daml-stdlib
18-
- daml-script

contracts/link/daml/Link/Token.daml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

3536
template 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

contracts/link/test/daml.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
sdk-version: 3.4.10
2+
name: link-test
3+
version: 0.0.1
4+
source: daml
5+
build-options:
6+
- -Wno-upgrade-interfaces
7+
- -Wno-crypto-text-is-alpha
8+
- -Werror=unused-dependency
9+
- -Wno-template-interface-depends-on-daml-script
10+
data-dependencies:
11+
- ../../dependencies/splice-api-token-metadata-v1-1.0.0.dar
12+
- ../../dependencies/splice-api-token-holding-v1-1.0.0.dar
13+
- ../../dependencies/splice-api-token-burn-mint-v1-1.0.0.dar
14+
- ../../dependencies/splice-api-token-transfer-instruction-v1-1.0.0.dar
15+
dependencies:
16+
- daml-prim
17+
- daml-stdlib
18+
- daml-script
19+
- ../.daml/dist/link-0.0.1.dar

0 commit comments

Comments
 (0)