diff --git a/bindings/generated/latest/ccip/factory/factory.go b/bindings/generated/latest/ccip/factory/factory.go
index 850c213ca..cb15f5554 100644
--- a/bindings/generated/latest/ccip/factory/factory.go
+++ b/bindings/generated/latest/ccip/factory/factory.go
@@ -36,7 +36,7 @@ var (
const (
PackageName = "ccip-factory-v2"
- PackageID = "5cff0009063a47b7c9c8fd8951b93ca1e89544724e3fd6f22c37349ee7a9389a"
+ PackageID = "3a262bd6f3ad98e715057434c052d56cea01494ea290776c2c6ebdf3c7c67a28"
SDKVersion = "3.4.11"
)
diff --git a/bindings/generated/latest/link/link.go b/bindings/generated/latest/link/link.go
index 03c5a65ac..0774ecce4 100644
--- a/bindings/generated/latest/link/link.go
+++ b/bindings/generated/latest/link/link.go
@@ -27,7 +27,7 @@ var (
const (
PackageName = "link"
- PackageID = "f83b5db150d68564a63d9a5760a8a49323424f58ebbea0e089fe79643a8f29c2"
+ PackageID = "fc1fcb7dbfd1959cafbd54bfa6f6cc88c1678607b0f95ee3f6ee8e9ee8eb2b60"
SDKVersion = "3.4.11"
)
diff --git a/contracts/ccip/factory/daml.yaml b/contracts/ccip/factory/daml.yaml
index 72a9e2f4a..738f2d42a 100644
--- a/contracts/ccip/factory/daml.yaml
+++ b/contracts/ccip/factory/daml.yaml
@@ -1,7 +1,7 @@
sdk-version: 3.4.11
name: ccip-factory-v2
source: daml
-version: 2.1.0
+version: 2.1.1
upgrades: ../../dars/released/ccip-factory-v2-2.0.0.dar
build-options:
- "-Wno-crypto-text-is-alpha"
@@ -14,7 +14,7 @@ data-dependencies:
- ../../mcms/api/.daml/dist/mcms-api-1.0.0.dar
- ../../chainlink/api/.daml/dist/chainlink-api-2.0.0.dar
- - ../../link/.daml/dist/link-2.0.0.dar
+ - ../../link/.daml/dist/link-2.1.0.dar
- ../codec/.daml/dist/ccip-codec-v2-2.0.0.dar
- ../api/.daml/dist/ccip-api-v2-2.0.0.dar
diff --git a/contracts/ccip/test/daml.yaml b/contracts/ccip/test/daml.yaml
index 0036c44cc..a350a674c 100644
--- a/contracts/ccip/test/daml.yaml
+++ b/contracts/ccip/test/daml.yaml
@@ -14,7 +14,7 @@ data-dependencies:
- ../../mcms/api/.daml/dist/mcms-api-1.0.0.dar
- ../../chainlink/api/.daml/dist/chainlink-api-2.0.0.dar
- - ../../link/.daml/dist/link-2.0.0.dar
+ - ../../link/.daml/dist/link-2.1.0.dar
- ../codec/.daml/dist/ccip-codec-v2-2.0.0.dar
- ../api/.daml/dist/ccip-api-v2-2.0.0.dar
@@ -34,7 +34,7 @@ data-dependencies:
- ../sender/.daml/dist/ccip-sender-v2-2.1.0.dar
- ../receiver/.daml/dist/ccip-receiver-v2-2.1.0.dar
- - ../factory/.daml/dist/ccip-factory-v2-2.1.0.dar
+ - ../factory/.daml/dist/ccip-factory-v2-2.1.1.dar
dependencies:
- daml-prim
- daml-stdlib
diff --git a/contracts/dars/dev/PACKAGE_INFO.md b/contracts/dars/dev/PACKAGE_INFO.md
index 7a4a8142c..60302695d 100644
--- a/contracts/dars/dev/PACKAGE_INFO.md
+++ b/contracts/dars/dev/PACKAGE_INFO.md
@@ -162,10 +162,10 @@
| `splice-api-token-metadata-v1` | `1.0.0` | [`4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f`](#4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f) |
| `splice-api-token-transfer-instruction-v1` | `1.0.0` | [`55ba4deb0ad4662c4168b39859738a0e91388d252286480c7331b3f71a517281`](#55ba4deb0ad4662c4168b39859738a0e91388d252286480c7331b3f71a517281) |
-## ccip-factory-v2-dev.dar
+## ccip-factory-v2-dev.dar
- Name: `ccip-factory-v2`
-- Version: `2.1.0`
-- Package ID: `5cff0009063a47b7c9c8fd8951b93ca1e89544724e3fd6f22c37349ee7a9389a`
+- Version: `2.1.1`
+- Package ID: `3a262bd6f3ad98e715057434c052d56cea01494ea290776c2c6ebdf3c7c67a28`
### Dependencies:
| PACKAGE NAME | VERSION | PACKAGE ID |
|--------------------------------------------|---------|-----------------------------------------------------------------------------------------------------------------------------------------|
@@ -178,14 +178,14 @@
| `ccip-events-v2` | `2.0.0` | [`bfe1045f369796e1f8320e3c3d3b43142009ce1e8a6773b57b12f49c357c2f3f`](#bfe1045f369796e1f8320e3c3d3b43142009ce1e8a6773b57b12f49c357c2f3f) |
| `ccip-executor-v2` | `2.0.0` | [`f0fa05643b29b791f7928bcfb91f7bbf6c33622e91859fc3ef69c85482b4a688`](#f0fa05643b29b791f7928bcfb91f7bbf6c33622e91859fc3ef69c85482b4a688) |
| `ccip-extension-api-v2` | `2.0.0` | [`289011bdbefe42c7dbea0a4f101127095e8b5f5281d45c84f6eca06de11689a4`](#289011bdbefe42c7dbea0a4f101127095e8b5f5281d45c84f6eca06de11689a4) |
-| `ccip-factory-v2` | `2.1.0` | [`5cff0009063a47b7c9c8fd8951b93ca1e89544724e3fd6f22c37349ee7a9389a`](#5cff0009063a47b7c9c8fd8951b93ca1e89544724e3fd6f22c37349ee7a9389a) |
+| `ccip-factory-v2` | `2.1.1` | [`3a262bd6f3ad98e715057434c052d56cea01494ea290776c2c6ebdf3c7c67a28`](#3a262bd6f3ad98e715057434c052d56cea01494ea290776c2c6ebdf3c7c67a28) |
| `ccip-lock-release-token-pool-v2` | `2.1.0` | [`7a9aef5d7e6c613c2c57365e732554f049e66f96a6f1d29ca190f5d767580a5a`](#7a9aef5d7e6c613c2c57365e732554f049e66f96a6f1d29ca190f5d767580a5a) |
| `ccip-rate-limiter-v2` | `2.0.0` | [`62e9c12c62db5de2138722340d7ff597f9a07678aeba1e1fbf9ad121a9e89d40`](#62e9c12c62db5de2138722340d7ff597f9a07678aeba1e1fbf9ad121a9e89d40) |
| `ccip-runtime-v2` | `2.1.0` | [`b43a9896a3d6753fa23d25f42b6021a20984d807ca73f0dc08be71b582451e1c`](#b43a9896a3d6753fa23d25f42b6021a20984d807ca73f0dc08be71b582451e1c) |
| `ccip-tickets-v2` | `2.0.0` | [`506234a38fffe1945e3b5ff3a5e444a237fa9592b249b0f7444c194207df2c2d`](#506234a38fffe1945e3b5ff3a5e444a237fa9592b249b0f7444c194207df2c2d) |
| `ccip-utils-v2` | `2.1.0` | [`e135acbb9955708adb809001c5c7de738b486cc0c54769719c2849f3e081238e`](#e135acbb9955708adb809001c5c7de738b486cc0c54769719c2849f3e081238e) |
| `chainlink-api` | `2.0.0` | [`b9f630bb75179b06f350030282a2276259016da59ba60677b3a8280d854dc2d8`](#b9f630bb75179b06f350030282a2276259016da59ba60677b3a8280d854dc2d8) |
-| `link` | `2.0.0` | [`f83b5db150d68564a63d9a5760a8a49323424f58ebbea0e089fe79643a8f29c2`](#f83b5db150d68564a63d9a5760a8a49323424f58ebbea0e089fe79643a8f29c2) |
+| `link` | `2.1.0` | [`fc1fcb7dbfd1959cafbd54bfa6f6cc88c1678607b0f95ee3f6ee8e9ee8eb2b60`](#fc1fcb7dbfd1959cafbd54bfa6f6cc88c1678607b0f95ee3f6ee8e9ee8eb2b60) |
| `mcms-api` | `1.0.0` | [`674d8f60de56afd32698ae19516260217c73dd9ed082680fa840ede4b7665240`](#674d8f60de56afd32698ae19516260217c73dd9ed082680fa840ede4b7665240) |
| `splice-api-token-burn-mint-v1` | `1.0.0` | [`9cc2cbc838ef38dc2c7f34014c9c452bcf71b8e2a4f939235fc0b5d0924b185e`](#9cc2cbc838ef38dc2c7f34014c9c452bcf71b8e2a4f939235fc0b5d0924b185e) |
| `splice-api-token-holding-v1` | `1.0.0` | [`718a0f77e505a8de22f188bd4c87fe74101274e9d4cb1bfac7d09aec7158d35b`](#718a0f77e505a8de22f188bd4c87fe74101274e9d4cb1bfac7d09aec7158d35b) |
@@ -289,10 +289,10 @@
| `splice-api-token-metadata-v1` | `1.0.0` | [`4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f`](#4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f) |
| `splice-api-token-transfer-instruction-v1` | `1.0.0` | [`55ba4deb0ad4662c4168b39859738a0e91388d252286480c7331b3f71a517281`](#55ba4deb0ad4662c4168b39859738a0e91388d252286480c7331b3f71a517281) |
-## ccip-test-v2-dev.dar
+## ccip-test-v2-dev.dar
- Name: `ccip-test-v2`
- Version: `2.1.0`
-- Package ID: `503c4faa48e3140a19b85e8be4bcc4b9f595a9a796ea245130ea4e87ccaee16e`
+- Package ID: `2ccb639c3422d8c07ec610e324bf249272cc220740bab546475c9dcfe230c1de`
### Dependencies:
| PACKAGE NAME | VERSION | PACKAGE ID |
|--------------------------------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------|
@@ -305,18 +305,18 @@
| `ccip-events-v2` | `2.0.0` | [`bfe1045f369796e1f8320e3c3d3b43142009ce1e8a6773b57b12f49c357c2f3f`](#bfe1045f369796e1f8320e3c3d3b43142009ce1e8a6773b57b12f49c357c2f3f) |
| `ccip-executor-v2` | `2.0.0` | [`f0fa05643b29b791f7928bcfb91f7bbf6c33622e91859fc3ef69c85482b4a688`](#f0fa05643b29b791f7928bcfb91f7bbf6c33622e91859fc3ef69c85482b4a688) |
| `ccip-extension-api-v2` | `2.0.0` | [`289011bdbefe42c7dbea0a4f101127095e8b5f5281d45c84f6eca06de11689a4`](#289011bdbefe42c7dbea0a4f101127095e8b5f5281d45c84f6eca06de11689a4) |
-| `ccip-factory-v2` | `2.1.0` | [`5cff0009063a47b7c9c8fd8951b93ca1e89544724e3fd6f22c37349ee7a9389a`](#5cff0009063a47b7c9c8fd8951b93ca1e89544724e3fd6f22c37349ee7a9389a) |
+| `ccip-factory-v2` | `2.1.1` | [`3a262bd6f3ad98e715057434c052d56cea01494ea290776c2c6ebdf3c7c67a28`](#3a262bd6f3ad98e715057434c052d56cea01494ea290776c2c6ebdf3c7c67a28) |
| `ccip-lock-release-token-pool-v2` | `2.1.0` | [`7a9aef5d7e6c613c2c57365e732554f049e66f96a6f1d29ca190f5d767580a5a`](#7a9aef5d7e6c613c2c57365e732554f049e66f96a6f1d29ca190f5d767580a5a) |
| `ccip-rate-limiter-v2` | `2.0.0` | [`62e9c12c62db5de2138722340d7ff597f9a07678aeba1e1fbf9ad121a9e89d40`](#62e9c12c62db5de2138722340d7ff597f9a07678aeba1e1fbf9ad121a9e89d40) |
| `ccip-receiver-v2` | `2.1.0` | [`95c3cdc53c172c7202f5b2711ad01d591c84e0aa00cbce4fd0d9ad8f75c11552`](#95c3cdc53c172c7202f5b2711ad01d591c84e0aa00cbce4fd0d9ad8f75c11552) |
| `ccip-runtime-v2` | `2.1.0` | [`b43a9896a3d6753fa23d25f42b6021a20984d807ca73f0dc08be71b582451e1c`](#b43a9896a3d6753fa23d25f42b6021a20984d807ca73f0dc08be71b582451e1c) |
| `ccip-sender-v2` | `2.1.0` | [`7ffa2b979e063523780a09ae70c71166410b177abb98094e448c658869335af3`](#7ffa2b979e063523780a09ae70c71166410b177abb98094e448c658869335af3) |
-| `ccip-test-v2` | `2.1.0` | [`503c4faa48e3140a19b85e8be4bcc4b9f595a9a796ea245130ea4e87ccaee16e`](#503c4faa48e3140a19b85e8be4bcc4b9f595a9a796ea245130ea4e87ccaee16e) |
+| `ccip-test-v2` | `2.1.0` | [`2ccb639c3422d8c07ec610e324bf249272cc220740bab546475c9dcfe230c1de`](#2ccb639c3422d8c07ec610e324bf249272cc220740bab546475c9dcfe230c1de) |
| `ccip-tickets-v2` | `2.0.0` | [`506234a38fffe1945e3b5ff3a5e444a237fa9592b249b0f7444c194207df2c2d`](#506234a38fffe1945e3b5ff3a5e444a237fa9592b249b0f7444c194207df2c2d) |
| `ccip-utils-v2` | `2.1.0` | [`e135acbb9955708adb809001c5c7de738b486cc0c54769719c2849f3e081238e`](#e135acbb9955708adb809001c5c7de738b486cc0c54769719c2849f3e081238e) |
| `chainlink-api` | `2.0.0` | [`b9f630bb75179b06f350030282a2276259016da59ba60677b3a8280d854dc2d8`](#b9f630bb75179b06f350030282a2276259016da59ba60677b3a8280d854dc2d8) |
| `daml-script` | `3.4.11` | [`fe2e0175af21ba46d48cda3614edb9e30f2bc6972c20eb1d09666fa81703aa2e`](#fe2e0175af21ba46d48cda3614edb9e30f2bc6972c20eb1d09666fa81703aa2e) |
-| `link` | `2.0.0` | [`f83b5db150d68564a63d9a5760a8a49323424f58ebbea0e089fe79643a8f29c2`](#f83b5db150d68564a63d9a5760a8a49323424f58ebbea0e089fe79643a8f29c2) |
+| `link` | `2.1.0` | [`fc1fcb7dbfd1959cafbd54bfa6f6cc88c1678607b0f95ee3f6ee8e9ee8eb2b60`](#fc1fcb7dbfd1959cafbd54bfa6f6cc88c1678607b0f95ee3f6ee8e9ee8eb2b60) |
| `mcms-api` | `1.0.0` | [`674d8f60de56afd32698ae19516260217c73dd9ed082680fa840ede4b7665240`](#674d8f60de56afd32698ae19516260217c73dd9ed082680fa840ede4b7665240) |
| `splice-api-token-burn-mint-v1` | `1.0.0` | [`9cc2cbc838ef38dc2c7f34014c9c452bcf71b8e2a4f939235fc0b5d0924b185e`](#9cc2cbc838ef38dc2c7f34014c9c452bcf71b8e2a4f939235fc0b5d0924b185e) |
| `splice-api-token-holding-v1` | `1.0.0` | [`718a0f77e505a8de22f188bd4c87fe74101274e9d4cb1bfac7d09aec7158d35b`](#718a0f77e505a8de22f188bd4c87fe74101274e9d4cb1bfac7d09aec7158d35b) |
@@ -386,29 +386,29 @@
| `globalconfig` | `2.0.0` | [`3c1ea44ffb0da044c9c3c1c1f00210c5bf02514d5265a1b91d26c4139688f5d4`](#3c1ea44ffb0da044c9c3c1c1f00210c5bf02514d5265a1b91d26c4139688f5d4) |
| `mcms-api` | `1.0.0` | [`674d8f60de56afd32698ae19516260217c73dd9ed082680fa840ede4b7665240`](#674d8f60de56afd32698ae19516260217c73dd9ed082680fa840ede4b7665240) |
-## link-dev.dar
+## link-dev.dar
- Name: `link`
-- Version: `2.0.0`
-- Package ID: `f83b5db150d68564a63d9a5760a8a49323424f58ebbea0e089fe79643a8f29c2`
+- Version: `2.1.0`
+- Package ID: `fc1fcb7dbfd1959cafbd54bfa6f6cc88c1678607b0f95ee3f6ee8e9ee8eb2b60`
### Dependencies:
| PACKAGE NAME | VERSION | PACKAGE ID |
|--------------------------------------------|---------|-----------------------------------------------------------------------------------------------------------------------------------------|
-| `link` | `2.0.0` | [`f83b5db150d68564a63d9a5760a8a49323424f58ebbea0e089fe79643a8f29c2`](#f83b5db150d68564a63d9a5760a8a49323424f58ebbea0e089fe79643a8f29c2) |
+| `link` | `2.1.0` | [`fc1fcb7dbfd1959cafbd54bfa6f6cc88c1678607b0f95ee3f6ee8e9ee8eb2b60`](#fc1fcb7dbfd1959cafbd54bfa6f6cc88c1678607b0f95ee3f6ee8e9ee8eb2b60) |
| `splice-api-token-burn-mint-v1` | `1.0.0` | [`9cc2cbc838ef38dc2c7f34014c9c452bcf71b8e2a4f939235fc0b5d0924b185e`](#9cc2cbc838ef38dc2c7f34014c9c452bcf71b8e2a4f939235fc0b5d0924b185e) |
| `splice-api-token-holding-v1` | `1.0.0` | [`718a0f77e505a8de22f188bd4c87fe74101274e9d4cb1bfac7d09aec7158d35b`](#718a0f77e505a8de22f188bd4c87fe74101274e9d4cb1bfac7d09aec7158d35b) |
| `splice-api-token-metadata-v1` | `1.0.0` | [`4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f`](#4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f) |
| `splice-api-token-transfer-instruction-v1` | `1.0.0` | [`55ba4deb0ad4662c4168b39859738a0e91388d252286480c7331b3f71a517281`](#55ba4deb0ad4662c4168b39859738a0e91388d252286480c7331b3f71a517281) |
-## link-test-dev.dar
+## link-test-dev.dar
- Name: `link-test`
- Version: `0.0.1`
-- Package ID: `144bcaba6bd110fe15ab37ba43d33125fe6c1c777f14fe825368e5b44e4241a1`
+- Package ID: `e9689cf061700e272e666b154522d7b4b51b760bfe975d01a66190df7b86210b`
### Dependencies:
| PACKAGE NAME | VERSION | PACKAGE ID |
|--------------------------------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------|
| `daml-script` | `3.4.11` | [`fe2e0175af21ba46d48cda3614edb9e30f2bc6972c20eb1d09666fa81703aa2e`](#fe2e0175af21ba46d48cda3614edb9e30f2bc6972c20eb1d09666fa81703aa2e) |
-| `link` | `2.0.0` | [`f83b5db150d68564a63d9a5760a8a49323424f58ebbea0e089fe79643a8f29c2`](#f83b5db150d68564a63d9a5760a8a49323424f58ebbea0e089fe79643a8f29c2) |
-| `link-test` | `0.0.1` | [`144bcaba6bd110fe15ab37ba43d33125fe6c1c777f14fe825368e5b44e4241a1`](#144bcaba6bd110fe15ab37ba43d33125fe6c1c777f14fe825368e5b44e4241a1) |
+| `link` | `2.1.0` | [`fc1fcb7dbfd1959cafbd54bfa6f6cc88c1678607b0f95ee3f6ee8e9ee8eb2b60`](#fc1fcb7dbfd1959cafbd54bfa6f6cc88c1678607b0f95ee3f6ee8e9ee8eb2b60) |
+| `link-test` | `0.0.1` | [`e9689cf061700e272e666b154522d7b4b51b760bfe975d01a66190df7b86210b`](#e9689cf061700e272e666b154522d7b4b51b760bfe975d01a66190df7b86210b) |
| `splice-api-token-burn-mint-v1` | `1.0.0` | [`9cc2cbc838ef38dc2c7f34014c9c452bcf71b8e2a4f939235fc0b5d0924b185e`](#9cc2cbc838ef38dc2c7f34014c9c452bcf71b8e2a4f939235fc0b5d0924b185e) |
| `splice-api-token-holding-v1` | `1.0.0` | [`718a0f77e505a8de22f188bd4c87fe74101274e9d4cb1bfac7d09aec7158d35b`](#718a0f77e505a8de22f188bd4c87fe74101274e9d4cb1bfac7d09aec7158d35b) |
| `splice-api-token-metadata-v1` | `1.0.0` | [`4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f`](#4ded6b668cb3b64f7a88a30874cd41c75829f5e064b3fbbadf41ec7e8363354f) |
diff --git a/contracts/dars/dev/ccip-factory-v2-dev.dar b/contracts/dars/dev/ccip-factory-v2-dev.dar
index f4e75f205..2066e22d2 100644
Binary files a/contracts/dars/dev/ccip-factory-v2-dev.dar and b/contracts/dars/dev/ccip-factory-v2-dev.dar differ
diff --git a/contracts/dars/dev/ccip-test-v2-dev.dar b/contracts/dars/dev/ccip-test-v2-dev.dar
index 4096cfd80..4f54d4268 100644
Binary files a/contracts/dars/dev/ccip-test-v2-dev.dar and b/contracts/dars/dev/ccip-test-v2-dev.dar differ
diff --git a/contracts/dars/dev/link-dev.dar b/contracts/dars/dev/link-dev.dar
index e353eade9..e1fdd906e 100644
Binary files a/contracts/dars/dev/link-dev.dar and b/contracts/dars/dev/link-dev.dar differ
diff --git a/contracts/dars/dev/link-test-dev.dar b/contracts/dars/dev/link-test-dev.dar
index 5e338008e..3c65e1ff1 100644
Binary files a/contracts/dars/dev/link-test-dev.dar and b/contracts/dars/dev/link-test-dev.dar differ
diff --git a/contracts/link/daml.yaml b/contracts/link/daml.yaml
index 550525eae..1bda90a10 100644
--- a/contracts/link/daml.yaml
+++ b/contracts/link/daml.yaml
@@ -2,10 +2,12 @@ sdk-version: 3.4.11
name: link
source: daml
init-script: Main:runAll
-version: 2.0.0
+version: 2.1.0
+upgrades: ../dars/released/link-2.0.0.dar
build-options:
- "-Wno-crypto-text-is-alpha"
- "-Werror=unused-dependency"
+ - "-Wno-upgraded-template-expression-changed"
data-dependencies:
- ../dependencies/splice/splice-api-token-metadata-v1-1.0.0.dar
- ../dependencies/splice/splice-api-token-holding-v1-1.0.0.dar
diff --git a/contracts/link/daml/Link/Token.daml b/contracts/link/daml/Link/Token.daml
index 74ba159a3..b39a4ca80 100644
--- a/contracts/link/daml/Link/Token.daml
+++ b/contracts/link/daml/Link/Token.daml
@@ -23,6 +23,7 @@ template LinkHolding
meta : MetadataV1.Metadata
where
signatory holdingOwner, holdingAdmin
+ ensure holdingInstrumentId.admin == holdingAdmin
interface instance HoldingV1.Holding for LinkHolding where
view = HoldingV1.HoldingView with
@@ -83,6 +84,7 @@ template LinkTransferInstruction
where
signatory instructionAdmin, instructionTransfer.sender
observer instructionTransfer.receiver
+ ensure instructionTransfer.instrumentId.admin == instructionAdmin
interface instance TransferV1.TransferInstruction for LinkTransferInstruction where
view = TransferV1.TransferInstructionView with
@@ -96,6 +98,8 @@ template LinkTransferInstruction
assertMsg "LinkTransferInstruction.TransferInstruction_Accept: transfer instruction expired"
(instructionTransfer.executeBefore > now)
lockedHolding <- fetch instructionLockedHoldingCid
+ assertMsg "LinkTransferInstruction.TransferInstruction_Accept: locked holding admin mismatch"
+ (lockedHolding.lockedAdmin == instructionAdmin)
archive instructionLockedHoldingCid
let mergedMeta = mergeAcceptMeta arg.extraArgs.meta lockedHolding.meta
@@ -132,6 +136,7 @@ template LockedLinkHolding
where
signatory lockedAdmin, lockedSender
observer lockedReceiver
+ ensure lockedInstrumentId.admin == lockedAdmin
template LinkRegistry
with
@@ -192,6 +197,8 @@ template LinkRegistry
holding <- fetch linkHoldingCid
assertMsg "LinkRegistry.BurnMintFactory_BurnMint: input instrumentId mismatch"
(holding.holdingInstrumentId == registryInstrumentId)
+ assertMsg "LinkRegistry.BurnMintFactory_BurnMint: input holding admin mismatch"
+ (holding.holdingAdmin == registryAdmin)
assertAuthorizedOwner registryAdmin arg.extraActors holding.holdingOwner
archive linkHoldingCid
@@ -245,6 +252,7 @@ sumAndArchiveInputs sender instrumentId cids =
let linkHoldingCid = coerceContractId cid : ContractId LinkHolding
holding <- fetch linkHoldingCid
assertMsg "Link: input instrumentId mismatch" (holding.holdingInstrumentId == instrumentId)
+ assertMsg "Link: input instrumentId admin mismatch" (holding.holdingInstrumentId.admin == holding.holdingAdmin)
assertMsg "Link: input owner mismatch" (holding.holdingOwner == sender)
archive linkHoldingCid
pure (acc + holding.holdingAmount))
@@ -349,6 +357,8 @@ validateTransferFactoryCall admin instrumentId arg = do
(arg.expectedAdmin == admin)
assertMsg "LinkRegistry.TransferFactory_Transfer: instrumentId mismatch"
(transfer.instrumentId == instrumentId)
+ assertMsg "LinkRegistry.TransferFactory_Transfer: instrumentId admin mismatch"
+ (transfer.instrumentId.admin == admin)
assertMsg "LinkRegistry.TransferFactory_Transfer: amount must be positive"
(transfer.amount > 0.0)
assertMsg "LinkRegistry.TransferFactory_Transfer: requestedAt must not be in the future"
diff --git a/contracts/link/test/daml.yaml b/contracts/link/test/daml.yaml
index c5fc56592..82c8b287b 100644
--- a/contracts/link/test/daml.yaml
+++ b/contracts/link/test/daml.yaml
@@ -16,4 +16,4 @@ dependencies:
- daml-prim
- daml-stdlib
- daml-script
- - ../.daml/dist/link-2.0.0.dar
+ - ../.daml/dist/link-2.1.0.dar