diff --git a/docusaurus/package-lock.json b/docusaurus/package-lock.json index 56db89a9..f48909f1 100644 --- a/docusaurus/package-lock.json +++ b/docusaurus/package-lock.json @@ -7667,9 +7667,9 @@ } }, "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", + "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", diff --git a/spec/index.md b/spec/index.md index b91bb849..e234584d 100644 --- a/spec/index.md +++ b/spec/index.md @@ -931,6 +931,8 @@ It must be contained in the canister ranges of a subnet, otherwise the correspon - If the call is to the `provisional_create_canister_with_cycles` method, then any principal can be used as the effective canister id for this call. + - If the call is to the `install_chunked_code` method and the `arg` is a Candid-encoded record with a `target_canister` field of type `principal`, then the effective canister id must be that principal. + - Otherwise, if the `arg` is a Candid-encoded record with a `canister_id` field of type `principal`, then the effective canister id must be that principal. - Otherwise, the call is rejected by the system independently of the effective canister id. @@ -3624,6 +3626,7 @@ delegation_targets(D) A `Request` has an effective canister id according to the rules in [Effective canister id](#http-effective-canister-id): ``` is_effective_canister_id(Request {canister_id = ic_principal, method = provisional_create_canister_with_cycles, …}, p) +is_effective_canister_id(Request {canister_id = ic_principal, method = install_chunked_code, arg = candid({target_canister = p, …}), …}, p) is_effective_canister_id(Request {canister_id = ic_principal, arg = candid({canister_id = p, …}), …}, p) is_effective_canister_id(Request {canister_id = p, …}, p), if p ≠ ic_principal ```