@@ -551,12 +551,15 @@ package.
551551 <b >let</b > allowed_deps = <a href =" code.md#0x1_code_check_dependencies " >check_dependencies</a >(addr, &pack);
552552
553553 // Check package against conflicts
554+ // To avoid prover compiler <a href =" ../../aptos-stdlib/../move-stdlib/doc/error.md#0x1_error " >error</a > on <b >spec</b >
555+ // the package need <b >to</b > be an immutable variable
554556 <b >let</b > module_names = <a href =" code.md#0x1_code_get_module_names " >get_module_names</a >(&pack);
555- <b >let</b > packages = &<b >mut</ b > < b >borrow_global_mut </b >< ; <a href =" code.md#0x1_code_PackageRegistry " >PackageRegistry</a >> ; (addr).packages;
556- <b >let</b > len = <a href =" ../../aptos-stdlib/../move-stdlib/doc/vector.md#0x1_vector_length " >vector::length</a >(packages );
557+ <b >let</b > package_immutable = &<b >borrow_global </b >< ; <a href =" code.md#0x1_code_PackageRegistry " >PackageRegistry</a >> ; (addr).packages;
558+ <b >let</b > len = <a href =" ../../aptos-stdlib/../move-stdlib/doc/vector.md#0x1_vector_length " >vector::length</a >(package_immutable );
557559 <b >let</b > index = len;
558560 <b >let</b > upgrade_number = 0;
559- <a href =" ../../aptos-stdlib/../move-stdlib/doc/vector.md#0x1_vector_enumerate_ref " >vector::enumerate_ref</a >(packages, |i, <b >old</b >| {
561+ <a href =" ../../aptos-stdlib/../move-stdlib/doc/vector.md#0x1_vector_enumerate_ref " >vector::enumerate_ref</a >(package_immutable
562+ , |i, <b >old</b >| {
560563 <b >let</b > <b >old</b >: &<a href =" code.md#0x1_code_PackageMetadata " >PackageMetadata</a > = <b >old</b >;
561564 <b >if</b > (<b >old</b >.name == pack.name) {
562565 upgrade_number = <b >old</b >.upgrade_number + 1;
@@ -570,6 +573,7 @@ package.
570573 // Assign the upgrade counter.
571574 pack.upgrade_number = upgrade_number;
572575
576+ <b >let</b > packages = &<b >mut</b > <b >borrow_global_mut</b >< ; <a href =" code.md#0x1_code_PackageRegistry " >PackageRegistry</a >> ; (addr).packages;
573577 // Update registry
574578 <b >let</b > policy = pack.upgrade_policy;
575579 <b >if</b > (index < ; len) {
@@ -918,7 +922,10 @@ Native function to initiate module loading, including a list of allowed dependen
918922
919923
920924
921- <pre ><code ><b >pragma</b > verify = <b >false</b >;
925+ <pre ><code ><b >pragma</b > aborts_if_is_partial;
926+ <b >let</b > addr = <a href =" ../../aptos-stdlib/../move-stdlib/doc/signer.md#0x1_signer_address_of " >signer::address_of</a >(owner);
927+ <b >modifies</b > <b >global</b >< ; <a href =" code.md#0x1_code_PackageRegistry " >PackageRegistry</a >> ; (addr);
928+ <b >aborts_if</b > pack.upgrade_policy.policy < ; = <a href =" code.md#0x1_code_upgrade_policy_arbitrary " >upgrade_policy_arbitrary</a >().policy;
922929</code ></pre >
923930
924931
@@ -950,7 +957,9 @@ Native function to initiate module loading, including a list of allowed dependen
950957
951958
952959
953- <pre ><code ><b >pragma</b > verify = <b >false</b >;
960+ <pre ><code ><b >pragma</b > aborts_if_is_partial;
961+ <b >aborts_if</b > old_pack.upgrade_policy.policy > ; = <a href =" code.md#0x1_code_upgrade_policy_immutable " >upgrade_policy_immutable</a >().policy;
962+ <b >aborts_if</b > !<a href =" code.md#0x1_code_can_change_upgrade_policy_to " >can_change_upgrade_policy_to</a >(old_pack.upgrade_policy, new_pack.upgrade_policy);
954963</code ></pre >
955964
956965
0 commit comments