Ver código fonte

Upgrade Solana to 2.1.0 (#3339)

acheron 11 meses atrás
pai
commit
ebbad72fc4

+ 1 - 1
.github/workflows/no-caching-tests.yaml

@@ -11,7 +11,7 @@ jobs:
     uses: ./.github/workflows/reusable-tests.yaml
     with:
       cache: false
-      solana_cli_version: 2.0.8
+      solana_cli_version: 2.1.0
       node_version: 20.16.0
       cargo_profile: release
       anchor_binary_name: anchor-binary-no-caching

+ 1 - 1
.github/workflows/tests.yaml

@@ -14,7 +14,7 @@ jobs:
     uses: ./.github/workflows/reusable-tests.yaml
     with:
       cache: true
-      solana_cli_version: 2.0.8
+      solana_cli_version: 2.1.0
       node_version: 20.16.0
       cargo_profile: debug
       anchor_binary_name: anchor-binary

Diferenças do arquivo suprimidas por serem muito extensas
+ 313 - 163
Cargo.lock


+ 9 - 0
Cargo.toml

@@ -21,3 +21,12 @@ exclude = [
     "tests/cfo/deps/openbook-dex",
 ]
 resolver = "2"
+
+# TODO: Remove once there is a new compatible release on crates.io
+#
+# The latest version of this crate on crates.io depends on `curve25519-dalek ^3.2.1` which
+# conflicts with `solana-* ^2.1`.
+#
+# Details: https://github.com/solana-labs/solana-program-library/pull/7416#discussion_r1824643243
+[patch.crates-io]
+spl-token-confidential-transfer-proof-generation = { git = "https://github.com/solana-labs/solana-program-library", rev = "8e0ed0a" }

+ 3 - 2
bench/BINARY_SIZE.md

@@ -14,15 +14,16 @@ The programs and their tests are located in [/tests/bench](https://github.com/co
 
 ## [Unreleased]
 
-Solana version: 2.0.8
+Solana version: 2.1.0
 
 | Program | Binary Size | -                        |
 | ------- | ----------- | ------------------------ |
-| bench   | 1,097,424   | 🔴 **+306,416 (38.74%)** |
+| bench   | 1,042,424   | 🔴 **+251,416 (31.78%)** |
 
 ### Notable changes
 
 - lang: Use closures for `init` constraints to reduce the stack usage of `try_accounts`. Note that the binary size increase is exaggerated for the bench program because it uses unusual number of `init` constraints. Impact for normal programs will be a lot less severe. ([#2939](https://github.com/coral-xyz/anchor/pull/2939)).
+- Upgrade to Solana `2.1.0`. This upgrade decreased the binary size ~5% (55,000 bytes) ([#3339](https://github.com/coral-xyz/anchor/pull/3339)).
 
 ---
 

+ 91 - 91
bench/COMPUTE_UNITS.md

@@ -14,97 +14,97 @@ The programs and their tests are located in [/tests/bench](https://github.com/co
 
 ## [Unreleased]
 
-Solana version: 2.0.8
-
-| Instruction                 | Compute Units | -                     |
-| --------------------------- | ------------- | --------------------- |
-| accountInfo1                | 573           | 🟢 **-28 (4.66%)**    |
-| accountInfo2                | 899           | 🟢 **-24 (2.60%)**    |
-| accountInfo4                | 1,561         | 🟢 **-22 (1.39%)**    |
-| accountInfo8                | 2,957         | 🟢 **-18 (0.61%)**    |
-| accountEmptyInit1           | 5,014         | 🟢 **-20 (0.40%)**    |
-| accountEmpty1               | 649           | 🟢 **-3 (0.46%)**     |
-| accountEmptyInit2           | 9,155         | 🟢 **-532 (5.49%)**   |
-| accountEmpty2               | 1,015         | 🟢 **-1 (0.10%)**     |
-| accountEmptyInit4           | 17,465        | 🟢 **-1,036 (5.60%)** |
-| accountEmpty4               | 1,740         | 🔴 **+3 (0.17%)**     |
-| accountEmptyInit8           | 34,115        | 🟢 **-2,054 (5.68%)** |
-| accountEmpty8               | 3,193         | 🔴 **+7 (0.22%)**     |
-| accountSizedInit1           | 5,107         | 🔴 **+1 (0.02%)**     |
-| accountSized1               | 690           | 🔴 **+22 (3.29%)**    |
-| accountSizedInit2           | 9,313         | 🟢 **-515 (5.24%)**   |
-| accountSized2               | 1,069         | 🔴 **+23 (2.20%)**    |
-| accountSizedInit4           | 17,812        | 🟢 **-1,025 (5.44%)** |
-| accountSized4               | 1,834         | 🔴 **+27 (1.49%)**    |
-| accountSizedInit8           | 34,706        | 🟢 **-2,055 (5.59%)** |
-| accountSized8               | 3,357         | 🔴 **+31 (0.93%)**    |
-| accountUnsizedInit1         | 5,227         | 🔴 **+28 (0.54%)**    |
-| accountUnsized1             | 746           | 🔴 **+44 (6.27%)**    |
-| accountUnsizedInit2         | 9,599         | 🟢 **-479 (4.75%)**   |
-| accountUnsized2             | 1,163         | 🔴 **+47 (4.21%)**    |
-| accountUnsizedInit4         | 18,276        | 🟢 **-983 (5.10%)**   |
-| accountUnsized4             | 2,000         | 🔴 **+47 (2.41%)**    |
-| accountUnsizedInit8         | 35,328        | 🟢 **-2,003 (5.37%)** |
-| accountUnsized8             | 3,671         | 🔴 **+45 (1.24%)**    |
-| boxedAccountEmptyInit1      | 5,106         | 🔴 **+42 (0.83%)**    |
-| boxedAccountEmpty1          | 740           | 🔴 **+69 (10.28%)**   |
-| boxedAccountEmptyInit2      | 9,268         | 🟢 **-453 (4.66%)**   |
-| boxedAccountEmpty2          | 1,125         | 🔴 **+73 (6.94%)**    |
-| boxedAccountEmptyInit4      | 17,619        | 🟢 **-963 (5.18%)**   |
-| boxedAccountEmpty4          | 1,886         | 🔴 **+75 (4.14%)**    |
-| boxedAccountEmptyInit8      | 34,346        | 🟢 **-1,983 (5.46%)** |
-| boxedAccountEmpty8          | 3,435         | 🔴 **+78 (2.32%)**    |
-| boxedAccountSizedInit1      | 5,189         | 🔴 **+70 (1.37%)**    |
-| boxedAccountSized1          | 780           | 🔴 **+94 (13.70%)**   |
-| boxedAccountSizedInit2      | 9,411         | 🟢 **-434 (4.41%)**   |
-| boxedAccountSized2          | 1,180         | 🔴 **+95 (8.76%)**    |
-| boxedAccountSizedInit4      | 17,879        | 🟢 **-946 (5.03%)**   |
-| boxedAccountSized4          | 1,974         | 🔴 **+100 (5.34%)**   |
-| boxedAccountSizedInit8      | 34,842        | 🟢 **-1,982 (5.38%)** |
-| boxedAccountSized8          | 3,593         | 🔴 **+103 (2.95%)**   |
-| boxedAccountUnsizedInit1    | 5,300         | 🔴 **+93 (1.79%)**    |
-| boxedAccountUnsized1        | 838           | 🔴 **+117 (16.23%)**  |
-| boxedAccountUnsizedInit2    | 9,609         | 🟢 **-406 (4.05%)**   |
-| boxedAccountUnsized2        | 1,275         | 🔴 **+118 (10.20%)**  |
-| boxedAccountUnsizedInit4    | 18,251        | 🟢 **-909 (4.74%)**   |
-| boxedAccountUnsized4        | 2,138         | 🔴 **+119 (5.89%)**   |
-| boxedAccountUnsizedInit8    | 35,562        | 🟢 **-1,934 (5.16%)** |
-| boxedAccountUnsized8        | 3,895         | 🔴 **+119 (3.15%)**   |
-| boxedInterfaceAccountMint1  | 1,502         | 🔴 **+130 (9.48%)**   |
-| boxedInterfaceAccountMint2  | 2,423         | 🔴 **+130 (5.67%)**   |
-| boxedInterfaceAccountMint4  | 4,256         | 🔴 **+135 (3.28%)**   |
-| boxedInterfaceAccountMint8  | 7,950         | 🔴 **+139 (1.78%)**   |
-| boxedInterfaceAccountToken1 | 2,198         | 🔴 **+142 (6.91%)**   |
-| boxedInterfaceAccountToken2 | 3,803         | 🔴 **+143 (3.91%)**   |
-| boxedInterfaceAccountToken4 | 7,004         | 🔴 **+146 (2.13%)**   |
-| boxedInterfaceAccountToken8 | 13,434        | 🔴 **+150 (1.13%)**   |
-| interfaceAccountMint1       | 1,626         | 🔴 **+154 (10.46%)**  |
-| interfaceAccountMint2       | 2,788         | 🔴 **+157 (5.97%)**   |
-| interfaceAccountMint4       | 5,110         | 🔴 **+159 (3.21%)**   |
-| interfaceAccountMint8       | 9,749         | 🔴 **+161 (1.68%)**   |
-| interfaceAccountToken1      | 2,296         | 🔴 **+166 (7.79%)**   |
-| interfaceAccountToken2      | 4,096         | 🔴 **+168 (4.28%)**   |
-| interfaceAccountToken4      | 7,692         | 🔴 **+171 (2.27%)**   |
-| interface1                  | 774           | 🔴 **+174 (29.00%)**  |
-| interface2                  | 923           | 🔴 **+178 (23.89%)**  |
-| interface4                  | 1,214         | 🔴 **+181 (17.52%)**  |
-| interface8                  | 1,799         | 🔴 **+183 (11.32%)**  |
-| program1                    | 782           | 🔴 **+186 (31.21%)**  |
-| program2                    | 927           | 🔴 **+190 (25.78%)**  |
-| program4                    | 1,210         | 🔴 **+191 (18.74%)**  |
-| program8                    | 1,779         | 🔴 **+195 (12.31%)**  |
-| signer1                     | 779           | 🔴 **+199 (34.31%)**  |
-| signer2                     | 1,074         | 🔴 **+202 (23.17%)**  |
-| signer4                     | 1,657         | 🔴 **+203 (13.96%)**  |
-| signer8                     | 2,826         | 🔴 **+208 (7.94%)**   |
-| systemAccount1              | 802           | 🔴 **+210 (35.47%)**  |
-| systemAccount2              | 1,108         | 🔴 **+214 (23.94%)**  |
-| systemAccount4              | 1,713         | 🔴 **+216 (14.43%)**  |
-| systemAccount8              | 2,926         | 🔴 **+219 (8.09%)**   |
-| uncheckedAccount1           | 785           | 🔴 **+222 (39.43%)**  |
-| uncheckedAccount2           | 1,061         | 🔴 **+225 (26.91%)**  |
-| uncheckedAccount4           | 1,604         | 🔴 **+226 (16.40%)**  |
-| uncheckedAccount8           | 2,699         | 🔴 **+231 (9.36%)**   |
+Solana version: 2.1.0
+
+| Instruction                 | Compute Units | -                      |
+| --------------------------- | ------------- | ---------------------- |
+| accountInfo1                | 571           | 🟢 **-30 (4.99%)**     |
+| accountInfo2                | 895           | 🟢 **-28 (3.03%)**     |
+| accountInfo4                | 1,553         | 🟢 **-30 (1.90%)**     |
+| accountInfo8                | 2,923         | 🟢 **-52 (1.75%)**     |
+| accountEmptyInit1           | 5,016         | 🟢 **-18 (0.36%)**     |
+| accountEmpty1               | 645           | 🟢 **-7 (1.07%)**      |
+| accountEmptyInit2           | 9,167         | 🟢 **-520 (5.37%)**    |
+| accountEmpty2               | 1,007         | 🟢 **-9 (0.89%)**      |
+| accountEmptyInit4           | 17,496        | 🟢 **-1,005 (5.43%)**  |
+| accountEmpty4               | 1,724         | 🟢 **-13 (0.75%)**     |
+| accountEmptyInit8           | 34,187        | 🟢 **-1,982 (5.48%)**  |
+| accountEmpty8               | 3,163         | 🟢 **-23 (0.72%)**     |
+| accountSizedInit1           | 5,125         | 🔴 **+19 (0.37%)**     |
+| accountSized1               | 693           | 🔴 **+25 (3.74%)**     |
+| accountSizedInit2           | 9,355         | 🟢 **-473 (4.81%)**    |
+| accountSized2               | 1,075         | 🔴 **+29 (2.77%)**     |
+| accountSizedInit4           | 17,902        | 🟢 **-935 (4.96%)**    |
+| accountSized4               | 1,848         | 🔴 **+41 (2.27%)**     |
+| accountSizedInit8           | 34,897        | 🟢 **-1,864 (5.07%)**  |
+| accountSized8               | 3,387         | 🔴 **+61 (1.83%)**     |
+| accountUnsizedInit1         | 5,238         | 🔴 **+39 (0.75%)**     |
+| accountUnsized1             | 746           | 🔴 **+44 (6.27%)**     |
+| accountUnsizedInit2         | 9,625         | 🟢 **-453 (4.49%)**    |
+| accountUnsized2             | 1,163         | 🔴 **+47 (4.21%)**     |
+| accountUnsizedInit4         | 18,335        | 🟢 **-924 (4.80%)**    |
+| accountUnsized4             | 2,002         | 🔴 **+49 (2.51%)**     |
+| accountUnsizedInit8         | 35,457        | 🟢 **-1,874 (5.02%)**  |
+| accountUnsized8             | 3,673         | 🔴 **+47 (1.30%)**     |
+| boxedAccountEmptyInit1      | 5,108         | 🔴 **+44 (0.87%)**     |
+| boxedAccountEmpty1          | 734           | 🔴 **+63 (9.39%)**     |
+| boxedAccountEmptyInit2      | 9,280         | 🟢 **-441 (4.54%)**    |
+| boxedAccountEmpty2          | 1,116         | 🔴 **+64 (6.08%)**     |
+| boxedAccountEmptyInit4      | 17,650        | 🟢 **-932 (5.02%)**    |
+| boxedAccountEmpty4          | 1,872         | 🔴 **+61 (3.37%)**     |
+| boxedAccountEmptyInit8      | 34,417        | 🟢 **-1,912 (5.26%)**  |
+| boxedAccountEmpty8          | 3,401         | 🔴 **+44 (1.31%)**     |
+| boxedAccountSizedInit1      | 5,204         | 🔴 **+85 (1.66%)**     |
+| boxedAccountSized1          | 783           | 🔴 **+97 (14.14%)**    |
+| boxedAccountSizedInit2      | 9,449         | 🟢 **-396 (4.02%)**    |
+| boxedAccountSized2          | 1,190         | 🔴 **+105 (9.68%)**    |
+| boxedAccountSizedInit4      | 17,962        | 🟢 **-863 (4.58%)**    |
+| boxedAccountSized4          | 1,996         | 🔴 **+122 (6.51%)**    |
+| boxedAccountSizedInit8      | 35,017        | 🟢 **-1,807 (4.91%)**  |
+| boxedAccountSized8          | 3,628         | 🔴 **+138 (3.95%)**    |
+| boxedAccountUnsizedInit1    | 5,304         | 🔴 **+97 (1.86%)**     |
+| boxedAccountUnsized1        | 836           | 🔴 **+115 (15.95%)**   |
+| boxedAccountUnsizedInit2    | 9,625         | 🟢 **-390 (3.89%)**    |
+| boxedAccountUnsized2        | 1,270         | 🔴 **+113 (9.77%)**    |
+| boxedAccountUnsizedInit4    | 18,290        | 🟢 **-870 (4.54%)**    |
+| boxedAccountUnsized4        | 2,132         | 🔴 **+113 (5.60%)**    |
+| boxedAccountUnsizedInit8    | 35,649        | 🟢 **-1,847 (4.93%)**  |
+| boxedAccountUnsized8        | 3,881         | 🔴 **+105 (2.78%)**    |
+| boxedInterfaceAccountMint1  | 1,351         | 🟢 **-21 (1.53%)**     |
+| boxedInterfaceAccountMint2  | 2,123         | 🟢 **-170 (7.41%)**    |
+| boxedInterfaceAccountMint4  | 3,656         | 🟢 **-465 (11.28%)**   |
+| boxedInterfaceAccountMint8  | 6,738         | 🟢 **-1,073 (13.74%)** |
+| boxedInterfaceAccountToken1 | 2,011         | 🟢 **-45 (2.19%)**     |
+| boxedInterfaceAccountToken2 | 3,431         | 🟢 **-229 (6.26%)**    |
+| boxedInterfaceAccountToken4 | 6,260         | 🟢 **-598 (8.72%)**    |
+| boxedInterfaceAccountToken8 | 11,934        | 🟢 **-1,350 (10.16%)** |
+| interfaceAccountMint1       | 1,476         | 🔴 **+4 (0.27%)**      |
+| interfaceAccountMint2       | 2,489         | 🟢 **-142 (5.40%)**    |
+| interfaceAccountMint4       | 4,511         | 🟢 **-440 (8.89%)**    |
+| interfaceAccountMint8       | 8,550         | 🟢 **-1,038 (10.83%)** |
+| interfaceAccountToken1      | 2,111         | 🟢 **-19 (0.89%)**     |
+| interfaceAccountToken2      | 3,729         | 🟢 **-199 (5.07%)**    |
+| interfaceAccountToken4      | 6,955         | 🟢 **-566 (7.53%)**    |
+| interface1                  | 769           | 🔴 **+169 (28.17%)**   |
+| interface2                  | 912           | 🔴 **+167 (22.42%)**   |
+| interface4                  | 1,189         | 🔴 **+156 (15.10%)**   |
+| interface8                  | 1,748         | 🔴 **+132 (8.17%)**    |
+| program1                    | 779           | 🔴 **+183 (30.70%)**   |
+| program2                    | 920           | 🔴 **+183 (24.83%)**   |
+| program4                    | 1,193         | 🔴 **+174 (17.08%)**   |
+| program8                    | 1,744         | 🔴 **+160 (10.10%)**   |
+| signer1                     | 774           | 🔴 **+194 (33.45%)**   |
+| signer2                     | 1,064         | 🔴 **+192 (22.02%)**   |
+| signer4                     | 1,637         | 🔴 **+183 (12.59%)**   |
+| signer8                     | 2,788         | 🔴 **+170 (6.49%)**    |
+| systemAccount1              | 796           | 🔴 **+204 (34.46%)**   |
+| systemAccount2              | 1,096         | 🔴 **+202 (22.60%)**   |
+| systemAccount4              | 1,689         | 🔴 **+192 (12.83%)**   |
+| systemAccount8              | 2,880         | 🔴 **+173 (6.39%)**    |
+| uncheckedAccount1           | 783           | 🔴 **+220 (39.08%)**   |
+| uncheckedAccount2           | 1,056         | 🔴 **+220 (26.32%)**   |
+| uncheckedAccount4           | 1,594         | 🔴 **+216 (15.67%)**   |
+| uncheckedAccount8           | 2,679         | 🔴 **+211 (8.55%)**    |
 
 ### Notable changes
 

+ 91 - 91
bench/STACK_MEMORY.md

@@ -14,97 +14,97 @@ The programs and their tests are located in [/tests/bench](https://github.com/co
 
 ## [Unreleased]
 
-Solana version: 2.0.8
-
-| Instruction                    | Stack Memory | -   |
-| ------------------------------ | ------------ | --- |
-| account_info1                  | 144          | -   |
-| account_info2                  | 144          | -   |
-| account_info4                  | 144          | -   |
-| account_info8                  | 144          | -   |
-| account_empty_init1            | 144          | -   |
-| account_empty_init2            | 144          | -   |
-| account_empty_init4            | 192          | -   |
-| account_empty_init8            | 224          | -   |
-| account_empty1                 | 144          | -   |
-| account_empty2                 | 144          | -   |
-| account_empty4                 | 144          | -   |
-| account_empty8                 | 144          | -   |
-| account_sized_init1            | 176          | -   |
-| account_sized_init2            | 192          | -   |
-| account_sized_init4            | 224          | -   |
-| account_sized_init8            | 288          | -   |
-| account_sized1                 | 144          | -   |
-| account_sized2                 | 144          | -   |
-| account_sized4                 | 144          | -   |
-| account_sized8                 | 144          | -   |
-| account_unsized_init1          | 192          | -   |
-| account_unsized_init2          | 224          | -   |
-| account_unsized_init4          | 288          | -   |
-| account_unsized_init8          | 416          | -   |
-| account_unsized1               | 144          | -   |
-| account_unsized2               | 144          | -   |
-| account_unsized4               | 144          | -   |
-| account_unsized8               | 144          | -   |
-| boxed_account_empty_init1      | 144          | -   |
-| boxed_account_empty_init2      | 144          | -   |
-| boxed_account_empty_init4      | 192          | -   |
-| boxed_account_empty_init8      | 224          | -   |
-| boxed_account_empty1           | 144          | -   |
-| boxed_account_empty2           | 144          | -   |
-| boxed_account_empty4           | 144          | -   |
-| boxed_account_empty8           | 144          | -   |
-| boxed_account_sized_init1      | 144          | -   |
-| boxed_account_sized_init2      | 144          | -   |
-| boxed_account_sized_init4      | 192          | -   |
-| boxed_account_sized_init8      | 224          | -   |
-| boxed_account_sized1           | 144          | -   |
-| boxed_account_sized2           | 144          | -   |
-| boxed_account_sized4           | 144          | -   |
-| boxed_account_sized8           | 144          | -   |
-| boxed_account_unsized_init1    | 144          | -   |
-| boxed_account_unsized_init2    | 144          | -   |
-| boxed_account_unsized_init4    | 192          | -   |
-| boxed_account_unsized_init8    | 224          | -   |
-| boxed_account_unsized1         | 144          | -   |
-| boxed_account_unsized2         | 144          | -   |
-| boxed_account_unsized4         | 144          | -   |
-| boxed_account_unsized8         | 144          | -   |
-| boxed_interface_account_mint1  | 144          | -   |
-| boxed_interface_account_mint2  | 144          | -   |
-| boxed_interface_account_mint4  | 144          | -   |
-| boxed_interface_account_mint8  | 144          | -   |
-| boxed_interface_account_token1 | 144          | -   |
-| boxed_interface_account_token2 | 144          | -   |
-| boxed_interface_account_token4 | 144          | -   |
-| boxed_interface_account_token8 | 144          | -   |
-| interface_account_mint1        | 144          | -   |
-| interface_account_mint2        | 144          | -   |
-| interface_account_mint4        | 144          | -   |
-| interface_account_mint8        | 144          | -   |
-| interface_account_token1       | 144          | -   |
-| interface_account_token2       | 144          | -   |
-| interface_account_token4       | 144          | -   |
-| interface1                     | 144          | -   |
-| interface2                     | 144          | -   |
-| interface4                     | 144          | -   |
-| interface8                     | 144          | -   |
-| program1                       | 144          | -   |
-| program2                       | 144          | -   |
-| program4                       | 144          | -   |
-| program8                       | 144          | -   |
-| signer1                        | 144          | -   |
-| signer2                        | 144          | -   |
-| signer4                        | 144          | -   |
-| signer8                        | 144          | -   |
-| system_account1                | 144          | -   |
-| system_account2                | 144          | -   |
-| system_account4                | 144          | -   |
-| system_account8                | 144          | -   |
-| unchecked_account1             | 144          | -   |
-| unchecked_account2             | 144          | -   |
-| unchecked_account4             | 144          | -   |
-| unchecked_account8             | 144          | -   |
+Solana version: 2.1.0
+
+| Instruction                    | Stack Memory | -                    |
+| ------------------------------ | ------------ | -------------------- |
+| account_info1                  | 46           | 🟢 **-98 (68.06%)**  |
+| account_info2                  | 80           | 🟢 **-64 (44.44%)**  |
+| account_info4                  | 80           | 🟢 **-64 (44.44%)**  |
+| account_info8                  | 80           | 🟢 **-64 (44.44%)**  |
+| account_empty_init1            | 88           | 🟢 **-56 (38.89%)**  |
+| account_empty_init2            | 88           | 🟢 **-56 (38.89%)**  |
+| account_empty_init4            | 88           | 🟢 **-104 (54.17%)** |
+| account_empty_init8            | 88           | 🟢 **-136 (60.71%)** |
+| account_empty1                 | 88           | 🟢 **-56 (38.89%)**  |
+| account_empty2                 | 88           | 🟢 **-56 (38.89%)**  |
+| account_empty4                 | 88           | 🟢 **-56 (38.89%)**  |
+| account_empty8                 | 88           | 🟢 **-56 (38.89%)**  |
+| account_sized_init1            | 88           | 🟢 **-88 (50.00%)**  |
+| account_sized_init2            | 88           | 🟢 **-104 (54.17%)** |
+| account_sized_init4            | 88           | 🟢 **-136 (60.71%)** |
+| account_sized_init8            | 88           | 🟢 **-200 (69.44%)** |
+| account_sized1                 | 88           | 🟢 **-56 (38.89%)**  |
+| account_sized2                 | 88           | 🟢 **-56 (38.89%)**  |
+| account_sized4                 | 88           | 🟢 **-56 (38.89%)**  |
+| account_sized8                 | 88           | 🟢 **-56 (38.89%)**  |
+| account_unsized_init1          | 88           | 🟢 **-104 (54.17%)** |
+| account_unsized_init2          | 88           | 🟢 **-136 (60.71%)** |
+| account_unsized_init4          | 88           | 🟢 **-200 (69.44%)** |
+| account_unsized_init8          | 88           | 🟢 **-328 (78.85%)** |
+| account_unsized1               | 88           | 🟢 **-56 (38.89%)**  |
+| account_unsized2               | 88           | 🟢 **-56 (38.89%)**  |
+| account_unsized4               | 88           | 🟢 **-56 (38.89%)**  |
+| account_unsized8               | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_empty_init1      | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_empty_init2      | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_empty_init4      | 88           | 🟢 **-104 (54.17%)** |
+| boxed_account_empty_init8      | 88           | 🟢 **-136 (60.71%)** |
+| boxed_account_empty1           | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_empty2           | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_empty4           | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_empty8           | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_sized_init1      | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_sized_init2      | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_sized_init4      | 88           | 🟢 **-104 (54.17%)** |
+| boxed_account_sized_init8      | 88           | 🟢 **-136 (60.71%)** |
+| boxed_account_sized1           | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_sized2           | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_sized4           | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_sized8           | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_unsized_init1    | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_unsized_init2    | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_unsized_init4    | 88           | 🟢 **-104 (54.17%)** |
+| boxed_account_unsized_init8    | 88           | 🟢 **-136 (60.71%)** |
+| boxed_account_unsized1         | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_unsized2         | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_unsized4         | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_account_unsized8         | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_interface_account_mint1  | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_interface_account_mint2  | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_interface_account_mint4  | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_interface_account_mint8  | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_interface_account_token1 | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_interface_account_token2 | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_interface_account_token4 | 88           | 🟢 **-56 (38.89%)**  |
+| boxed_interface_account_token8 | 88           | 🟢 **-56 (38.89%)**  |
+| interface_account_mint1        | 88           | 🟢 **-56 (38.89%)**  |
+| interface_account_mint2        | 88           | 🟢 **-56 (38.89%)**  |
+| interface_account_mint4        | 88           | 🟢 **-56 (38.89%)**  |
+| interface_account_mint8        | 88           | 🟢 **-56 (38.89%)**  |
+| interface_account_token1       | 80           | 🟢 **-64 (44.44%)**  |
+| interface_account_token2       | 80           | 🟢 **-64 (44.44%)**  |
+| interface_account_token4       | 80           | 🟢 **-64 (44.44%)**  |
+| interface1                     | 88           | 🟢 **-56 (38.89%)**  |
+| interface2                     | 88           | 🟢 **-56 (38.89%)**  |
+| interface4                     | 88           | 🟢 **-56 (38.89%)**  |
+| interface8                     | 88           | 🟢 **-56 (38.89%)**  |
+| program1                       | 88           | 🟢 **-56 (38.89%)**  |
+| program2                       | 88           | 🟢 **-56 (38.89%)**  |
+| program4                       | 88           | 🟢 **-56 (38.89%)**  |
+| program8                       | 88           | 🟢 **-56 (38.89%)**  |
+| signer1                        | 88           | 🟢 **-56 (38.89%)**  |
+| signer2                        | 88           | 🟢 **-56 (38.89%)**  |
+| signer4                        | 88           | 🟢 **-56 (38.89%)**  |
+| signer8                        | 88           | 🟢 **-56 (38.89%)**  |
+| system_account1                | 88           | 🟢 **-56 (38.89%)**  |
+| system_account2                | 88           | 🟢 **-56 (38.89%)**  |
+| system_account4                | 88           | 🟢 **-56 (38.89%)**  |
+| system_account8                | 88           | 🟢 **-56 (38.89%)**  |
+| unchecked_account1             | 88           | 🟢 **-56 (38.89%)**  |
+| unchecked_account2             | 88           | 🟢 **-56 (38.89%)**  |
+| unchecked_account4             | 88           | 🟢 **-56 (38.89%)**  |
+| unchecked_account8             | 88           | 🟢 **-56 (38.89%)**  |
 
 ### Notable changes
 

+ 1 - 1
client/src/lib.rs

@@ -67,7 +67,7 @@
 //! This feature allows passing in a custom RPC client when creating program instances, which is
 //! useful for mocking RPC responses, e.g. via [`RpcClient::new_mock`].
 //!
-//! [`RpcClient::new_mock`]: https://docs.rs/solana-client/2.0.8/solana_client/rpc_client/struct.RpcClient.html#method.new_mock
+//! [`RpcClient::new_mock`]: https://docs.rs/solana-client/2.1.0/solana_client/rpc_client/struct.RpcClient.html#method.new_mock
 
 use anchor_lang::solana_program::program_error::ProgramError;
 use anchor_lang::solana_program::pubkey::Pubkey;

+ 2 - 2
setup-tests.sh

@@ -1,8 +1,8 @@
 #!/bin/bash
 
 active_version=$(solana -V | awk '{print $2}')
-if [ "$active_version" != "2.0.8" ]; then
-  agave-install init 2.0.8
+if [ "$active_version" != "2.1.0" ]; then
+  agave-install init 2.1.0
 fi
 
 git submodule update --init --recursive --depth 1

+ 174 - 174
tests/bench/bench.json

@@ -930,188 +930,188 @@
     }
   },
   "unreleased": {
-    "solanaVersion": "2.0.8",
+    "solanaVersion": "2.1.0",
     "result": {
       "binarySize": {
-        "bench": 1097424
+        "bench": 1042424
       },
       "computeUnits": {
-        "accountInfo1": 573,
-        "accountInfo2": 899,
-        "accountInfo4": 1561,
-        "accountInfo8": 2957,
-        "accountEmptyInit1": 5014,
-        "accountEmpty1": 649,
-        "accountEmptyInit2": 9155,
-        "accountEmpty2": 1015,
-        "accountEmptyInit4": 17465,
-        "accountEmpty4": 1740,
-        "accountEmptyInit8": 34115,
-        "accountEmpty8": 3193,
-        "accountSizedInit1": 5107,
-        "accountSized1": 690,
-        "accountSizedInit2": 9313,
-        "accountSized2": 1069,
-        "accountSizedInit4": 17812,
-        "accountSized4": 1834,
-        "accountSizedInit8": 34706,
-        "accountSized8": 3357,
-        "accountUnsizedInit1": 5227,
+        "accountInfo1": 571,
+        "accountInfo2": 895,
+        "accountInfo4": 1553,
+        "accountInfo8": 2923,
+        "accountEmptyInit1": 5016,
+        "accountEmpty1": 645,
+        "accountEmptyInit2": 9167,
+        "accountEmpty2": 1007,
+        "accountEmptyInit4": 17496,
+        "accountEmpty4": 1724,
+        "accountEmptyInit8": 34187,
+        "accountEmpty8": 3163,
+        "accountSizedInit1": 5125,
+        "accountSized1": 693,
+        "accountSizedInit2": 9355,
+        "accountSized2": 1075,
+        "accountSizedInit4": 17902,
+        "accountSized4": 1848,
+        "accountSizedInit8": 34897,
+        "accountSized8": 3387,
+        "accountUnsizedInit1": 5238,
         "accountUnsized1": 746,
-        "accountUnsizedInit2": 9599,
+        "accountUnsizedInit2": 9625,
         "accountUnsized2": 1163,
-        "accountUnsizedInit4": 18276,
-        "accountUnsized4": 2000,
-        "accountUnsizedInit8": 35328,
-        "accountUnsized8": 3671,
-        "boxedAccountEmptyInit1": 5106,
-        "boxedAccountEmpty1": 740,
-        "boxedAccountEmptyInit2": 9268,
-        "boxedAccountEmpty2": 1125,
-        "boxedAccountEmptyInit4": 17619,
-        "boxedAccountEmpty4": 1886,
-        "boxedAccountEmptyInit8": 34346,
-        "boxedAccountEmpty8": 3435,
-        "boxedAccountSizedInit1": 5189,
-        "boxedAccountSized1": 780,
-        "boxedAccountSizedInit2": 9411,
-        "boxedAccountSized2": 1180,
-        "boxedAccountSizedInit4": 17879,
-        "boxedAccountSized4": 1974,
-        "boxedAccountSizedInit8": 34842,
-        "boxedAccountSized8": 3593,
-        "boxedAccountUnsizedInit1": 5300,
-        "boxedAccountUnsized1": 838,
-        "boxedAccountUnsizedInit2": 9609,
-        "boxedAccountUnsized2": 1275,
-        "boxedAccountUnsizedInit4": 18251,
-        "boxedAccountUnsized4": 2138,
-        "boxedAccountUnsizedInit8": 35562,
-        "boxedAccountUnsized8": 3895,
-        "boxedInterfaceAccountMint1": 1502,
-        "boxedInterfaceAccountMint2": 2423,
-        "boxedInterfaceAccountMint4": 4256,
-        "boxedInterfaceAccountMint8": 7950,
-        "boxedInterfaceAccountToken1": 2198,
-        "boxedInterfaceAccountToken2": 3803,
-        "boxedInterfaceAccountToken4": 7004,
-        "boxedInterfaceAccountToken8": 13434,
-        "interfaceAccountMint1": 1626,
-        "interfaceAccountMint2": 2788,
-        "interfaceAccountMint4": 5110,
-        "interfaceAccountMint8": 9749,
-        "interfaceAccountToken1": 2296,
-        "interfaceAccountToken2": 4096,
-        "interfaceAccountToken4": 7692,
-        "interface1": 774,
-        "interface2": 923,
-        "interface4": 1214,
-        "interface8": 1799,
-        "program1": 782,
-        "program2": 927,
-        "program4": 1210,
-        "program8": 1779,
-        "signer1": 779,
-        "signer2": 1074,
-        "signer4": 1657,
-        "signer8": 2826,
-        "systemAccount1": 802,
-        "systemAccount2": 1108,
-        "systemAccount4": 1713,
-        "systemAccount8": 2926,
-        "uncheckedAccount1": 785,
-        "uncheckedAccount2": 1061,
-        "uncheckedAccount4": 1604,
-        "uncheckedAccount8": 2699
+        "accountUnsizedInit4": 18335,
+        "accountUnsized4": 2002,
+        "accountUnsizedInit8": 35457,
+        "accountUnsized8": 3673,
+        "boxedAccountEmptyInit1": 5108,
+        "boxedAccountEmpty1": 734,
+        "boxedAccountEmptyInit2": 9280,
+        "boxedAccountEmpty2": 1116,
+        "boxedAccountEmptyInit4": 17650,
+        "boxedAccountEmpty4": 1872,
+        "boxedAccountEmptyInit8": 34417,
+        "boxedAccountEmpty8": 3401,
+        "boxedAccountSizedInit1": 5204,
+        "boxedAccountSized1": 783,
+        "boxedAccountSizedInit2": 9449,
+        "boxedAccountSized2": 1190,
+        "boxedAccountSizedInit4": 17962,
+        "boxedAccountSized4": 1996,
+        "boxedAccountSizedInit8": 35017,
+        "boxedAccountSized8": 3628,
+        "boxedAccountUnsizedInit1": 5304,
+        "boxedAccountUnsized1": 836,
+        "boxedAccountUnsizedInit2": 9625,
+        "boxedAccountUnsized2": 1270,
+        "boxedAccountUnsizedInit4": 18290,
+        "boxedAccountUnsized4": 2132,
+        "boxedAccountUnsizedInit8": 35649,
+        "boxedAccountUnsized8": 3881,
+        "boxedInterfaceAccountMint1": 1351,
+        "boxedInterfaceAccountMint2": 2123,
+        "boxedInterfaceAccountMint4": 3656,
+        "boxedInterfaceAccountMint8": 6738,
+        "boxedInterfaceAccountToken1": 2011,
+        "boxedInterfaceAccountToken2": 3431,
+        "boxedInterfaceAccountToken4": 6260,
+        "boxedInterfaceAccountToken8": 11934,
+        "interfaceAccountMint1": 1476,
+        "interfaceAccountMint2": 2489,
+        "interfaceAccountMint4": 4511,
+        "interfaceAccountMint8": 8550,
+        "interfaceAccountToken1": 2111,
+        "interfaceAccountToken2": 3729,
+        "interfaceAccountToken4": 6955,
+        "interface1": 769,
+        "interface2": 912,
+        "interface4": 1189,
+        "interface8": 1748,
+        "program1": 779,
+        "program2": 920,
+        "program4": 1193,
+        "program8": 1744,
+        "signer1": 774,
+        "signer2": 1064,
+        "signer4": 1637,
+        "signer8": 2788,
+        "systemAccount1": 796,
+        "systemAccount2": 1096,
+        "systemAccount4": 1689,
+        "systemAccount8": 2880,
+        "uncheckedAccount1": 783,
+        "uncheckedAccount2": 1056,
+        "uncheckedAccount4": 1594,
+        "uncheckedAccount8": 2679
       },
       "stackMemory": {
-        "account_info1": 144,
-        "account_info2": 144,
-        "account_info4": 144,
-        "account_info8": 144,
-        "account_empty_init1": 144,
-        "account_empty_init2": 144,
-        "account_empty_init4": 192,
-        "account_empty_init8": 224,
-        "account_empty1": 144,
-        "account_empty2": 144,
-        "account_empty4": 144,
-        "account_empty8": 144,
-        "account_sized_init1": 176,
-        "account_sized_init2": 192,
-        "account_sized_init4": 224,
-        "account_sized_init8": 288,
-        "account_sized1": 144,
-        "account_sized2": 144,
-        "account_sized4": 144,
-        "account_sized8": 144,
-        "account_unsized_init1": 192,
-        "account_unsized_init2": 224,
-        "account_unsized_init4": 288,
-        "account_unsized_init8": 416,
-        "account_unsized1": 144,
-        "account_unsized2": 144,
-        "account_unsized4": 144,
-        "account_unsized8": 144,
-        "boxed_account_empty_init1": 144,
-        "boxed_account_empty_init2": 144,
-        "boxed_account_empty_init4": 192,
-        "boxed_account_empty_init8": 224,
-        "boxed_account_empty1": 144,
-        "boxed_account_empty2": 144,
-        "boxed_account_empty4": 144,
-        "boxed_account_empty8": 144,
-        "boxed_account_sized_init1": 144,
-        "boxed_account_sized_init2": 144,
-        "boxed_account_sized_init4": 192,
-        "boxed_account_sized_init8": 224,
-        "boxed_account_sized1": 144,
-        "boxed_account_sized2": 144,
-        "boxed_account_sized4": 144,
-        "boxed_account_sized8": 144,
-        "boxed_account_unsized_init1": 144,
-        "boxed_account_unsized_init2": 144,
-        "boxed_account_unsized_init4": 192,
-        "boxed_account_unsized_init8": 224,
-        "boxed_account_unsized1": 144,
-        "boxed_account_unsized2": 144,
-        "boxed_account_unsized4": 144,
-        "boxed_account_unsized8": 144,
-        "boxed_interface_account_mint1": 144,
-        "boxed_interface_account_mint2": 144,
-        "boxed_interface_account_mint4": 144,
-        "boxed_interface_account_mint8": 144,
-        "boxed_interface_account_token1": 144,
-        "boxed_interface_account_token2": 144,
-        "boxed_interface_account_token4": 144,
-        "boxed_interface_account_token8": 144,
-        "interface_account_mint1": 144,
-        "interface_account_mint2": 144,
-        "interface_account_mint4": 144,
-        "interface_account_mint8": 144,
-        "interface_account_token1": 144,
-        "interface_account_token2": 144,
-        "interface_account_token4": 144,
-        "interface1": 144,
-        "interface2": 144,
-        "interface4": 144,
-        "interface8": 144,
-        "program1": 144,
-        "program2": 144,
-        "program4": 144,
-        "program8": 144,
-        "signer1": 144,
-        "signer2": 144,
-        "signer4": 144,
-        "signer8": 144,
-        "system_account1": 144,
-        "system_account2": 144,
-        "system_account4": 144,
-        "system_account8": 144,
-        "unchecked_account1": 144,
-        "unchecked_account2": 144,
-        "unchecked_account4": 144,
-        "unchecked_account8": 144
+        "account_info1": 46,
+        "account_info2": 80,
+        "account_info4": 80,
+        "account_info8": 80,
+        "account_empty_init1": 88,
+        "account_empty_init2": 88,
+        "account_empty_init4": 88,
+        "account_empty_init8": 88,
+        "account_empty1": 88,
+        "account_empty2": 88,
+        "account_empty4": 88,
+        "account_empty8": 88,
+        "account_sized_init1": 88,
+        "account_sized_init2": 88,
+        "account_sized_init4": 88,
+        "account_sized_init8": 88,
+        "account_sized1": 88,
+        "account_sized2": 88,
+        "account_sized4": 88,
+        "account_sized8": 88,
+        "account_unsized_init1": 88,
+        "account_unsized_init2": 88,
+        "account_unsized_init4": 88,
+        "account_unsized_init8": 88,
+        "account_unsized1": 88,
+        "account_unsized2": 88,
+        "account_unsized4": 88,
+        "account_unsized8": 88,
+        "boxed_account_empty_init1": 88,
+        "boxed_account_empty_init2": 88,
+        "boxed_account_empty_init4": 88,
+        "boxed_account_empty_init8": 88,
+        "boxed_account_empty1": 88,
+        "boxed_account_empty2": 88,
+        "boxed_account_empty4": 88,
+        "boxed_account_empty8": 88,
+        "boxed_account_sized_init1": 88,
+        "boxed_account_sized_init2": 88,
+        "boxed_account_sized_init4": 88,
+        "boxed_account_sized_init8": 88,
+        "boxed_account_sized1": 88,
+        "boxed_account_sized2": 88,
+        "boxed_account_sized4": 88,
+        "boxed_account_sized8": 88,
+        "boxed_account_unsized_init1": 88,
+        "boxed_account_unsized_init2": 88,
+        "boxed_account_unsized_init4": 88,
+        "boxed_account_unsized_init8": 88,
+        "boxed_account_unsized1": 88,
+        "boxed_account_unsized2": 88,
+        "boxed_account_unsized4": 88,
+        "boxed_account_unsized8": 88,
+        "boxed_interface_account_mint1": 88,
+        "boxed_interface_account_mint2": 88,
+        "boxed_interface_account_mint4": 88,
+        "boxed_interface_account_mint8": 88,
+        "boxed_interface_account_token1": 88,
+        "boxed_interface_account_token2": 88,
+        "boxed_interface_account_token4": 88,
+        "boxed_interface_account_token8": 88,
+        "interface_account_mint1": 88,
+        "interface_account_mint2": 88,
+        "interface_account_mint4": 88,
+        "interface_account_mint8": 88,
+        "interface_account_token1": 80,
+        "interface_account_token2": 80,
+        "interface_account_token4": 80,
+        "interface1": 88,
+        "interface2": 88,
+        "interface4": 88,
+        "interface8": 88,
+        "program1": 88,
+        "program2": 88,
+        "program4": 88,
+        "program8": 88,
+        "signer1": 88,
+        "signer2": 88,
+        "signer4": 88,
+        "signer8": 88,
+        "system_account1": 88,
+        "system_account2": 88,
+        "system_account4": 88,
+        "system_account8": 88,
+        "unchecked_account1": 88,
+        "unchecked_account2": 88,
+        "unchecked_account4": 88,
+        "unchecked_account8": 88
       }
     }
   }

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff