From f2971c1253b17e3ae7d6a7f1addb44b177fb5a2a Mon Sep 17 00:00:00 2001
From: Ayush <ayush-15@live.com>
Date: Tue, 17 Dec 2024 18:57:18 +0530
Subject: [PATCH 1/3] update native programs to use 2.1

---
 .github/workflows/solana-native.yml           |  17 +-
 Cargo.lock                                    | 725 +++++++++++++++---
 basics/account-data/native/program/Cargo.toml |   2 +-
 .../native/program/Cargo.toml                 |   2 +-
 .../close-account/native/program/Cargo.toml   |   2 +-
 basics/counter/mpl-stack/Cargo.toml           |   2 +-
 basics/counter/native/program/Cargo.toml      |   2 +-
 .../create-account/native/program/Cargo.toml  |   2 +-
 .../native/programs/hand/Cargo.toml           |   2 +-
 .../native/programs/lever/Cargo.toml          |   2 +-
 basics/hello-solana/native/program/Cargo.toml |   2 +-
 basics/hello-solana/steel/Cargo.toml          |   5 +-
 .../pda-rent-payer/native/program/Cargo.toml  |   2 +-
 .../native/program/Cargo.toml                 |   2 +-
 .../native/program/Cargo.toml                 |   2 +-
 basics/realloc/native/program/Cargo.toml      |   2 +-
 basics/rent/native/program/Cargo.toml         |   2 +-
 .../native/program/Cargo.toml                 |   2 +-
 basics/transfer-sol/native/program/Cargo.toml |   2 +-
 tokens/create-token/native/program/Cargo.toml |   2 +-
 tokens/nft-minter/native/program/Cargo.toml   |   2 +-
 .../native/program/Cargo.toml                 |   2 +-
 .../native/program/Cargo.toml                 |   2 +-
 .../native/program/Cargo.toml                 |   2 +-
 .../native/program/Cargo.toml                 |   2 +-
 .../transfer-fee/native/program/Cargo.toml    |   2 +-
 .../transfer-tokens/native/program/Cargo.toml |   2 +-
 27 files changed, 658 insertions(+), 137 deletions(-)

diff --git a/.github/workflows/solana-native.yml b/.github/workflows/solana-native.yml
index c3462dd52..8982d11d1 100644
--- a/.github/workflows/solana-native.yml
+++ b/.github/workflows/solana-native.yml
@@ -179,26 +179,27 @@ jobs:
 
           # Install pnpm
           npm install --global pnpm
-      - name: Setup Solana stable
+      - name: Setup Solana Beta
         uses: heyAyushh/setup-solana@v5.5
         with:
-          solana-cli-version: stable
-      - name: Build and Test with Stable
+          solana-cli-version: beta
+      - name: Build and Test with Beta
         run: |
           source build_and_test.sh
           solana -V
           rustc -V
-          process_projects "stable"
-      - name: Setup Solana 1.18.17
+          process_projects "beta"
+      - name: Setup Solana Stable
         uses: heyAyushh/setup-solana@v5.5
         with:
-          solana-cli-version: 1.18.17
-      - name: Build and Test with 1.18.17
+          solana-cli-version: stable
+      - name: Build and Test with Stable
+        continue-on-error: true
         run: |
           source build_and_test.sh
           solana -V
           rustc -V
-          process_projects "1.18.17"
+          process_projects "stable"
 
       - name: Set failed projects output
         id: set-failed
diff --git a/Cargo.lock b/Cargo.lock
index f54b45b7b..e61f5bacf 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -15,7 +15,7 @@ version = "0.1.0"
 dependencies = [
  "borsh 0.9.3",
  "borsh-derive 0.9.3",
- "solana-program",
+ "solana-program 2.1.6",
 ]
 
 [[package]]
@@ -219,7 +219,7 @@ dependencies = [
  "borsh 0.10.3",
  "bytemuck",
  "getrandom 0.2.15",
- "solana-program",
+ "solana-program 1.18.17",
  "thiserror",
 ]
 
@@ -451,6 +451,12 @@ version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
+[[package]]
+name = "base64"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
+
 [[package]]
 name = "bincode"
 version = "1.3.3"
@@ -480,9 +486,9 @@ dependencies = [
 
 [[package]]
 name = "blake3"
-version = "1.5.1"
+version = "1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52"
+checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e"
 dependencies = [
  "arrayref",
  "arrayvec",
@@ -583,7 +589,7 @@ dependencies = [
  "proc-macro-crate 3.1.0",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
  "syn_derive",
 ]
 
@@ -664,22 +670,22 @@ dependencies = [
 
 [[package]]
 name = "bytemuck"
-version = "1.16.3"
+version = "1.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "102087e286b4677862ea56cf8fc58bb2cdfa8725c40ffb80fe3a008eb7f2fc83"
+checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a"
 dependencies = [
  "bytemuck_derive",
 ]
 
 [[package]]
 name = "bytemuck_derive"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ee891b04274a59bd38b412188e24b849617b2e45a0fd8d057deb63e7403761b"
+checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
 
 [[package]]
@@ -707,12 +713,13 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.1.7"
+version = "1.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc"
+checksum = "9157bbaa6b165880c27a4293a474c91cdcf265cc68cc829bf10be0964a391caf"
 dependencies = [
  "jobserver",
  "libc",
+ "shlex",
 ]
 
 [[package]]
@@ -738,7 +745,7 @@ dependencies = [
 name = "checking-accounts-program"
 version = "0.1.0"
 dependencies = [
- "solana-program",
+ "solana-program 2.1.6",
 ]
 
 [[package]]
@@ -765,7 +772,7 @@ version = "0.1.0"
 dependencies = [
  "borsh 0.9.3",
  "borsh-derive 0.9.3",
- "solana-program",
+ "solana-program 2.1.6",
 ]
 
 [[package]]
@@ -797,9 +804,9 @@ dependencies = [
 
 [[package]]
 name = "constant_time_eq"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2"
+checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"
 
 [[package]]
 name = "counter-mpl-stack"
@@ -807,7 +814,7 @@ version = "0.1.0"
 dependencies = [
  "borsh 0.9.3",
  "shank",
- "solana-program",
+ "solana-program 2.1.6",
 ]
 
 [[package]]
@@ -815,7 +822,7 @@ name = "counter-solana-native"
 version = "0.1.0"
 dependencies = [
  "borsh 0.9.3",
- "solana-program",
+ "solana-program 2.1.6",
 ]
 
 [[package]]
@@ -838,7 +845,7 @@ dependencies = [
 name = "create-account-program"
 version = "0.1.0"
 dependencies = [
- "solana-program",
+ "solana-program 2.1.6",
 ]
 
 [[package]]
@@ -922,6 +929,34 @@ dependencies = [
  "zeroize",
 ]
 
+[[package]]
+name = "curve25519-dalek"
+version = "4.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "curve25519-dalek-derive",
+ "digest 0.10.7",
+ "fiat-crypto",
+ "rand_core 0.6.4",
+ "rustc_version",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "curve25519-dalek-derive"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.90",
+]
+
 [[package]]
 name = "darling"
 version = "0.20.10"
@@ -943,7 +978,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
 
 [[package]]
@@ -954,7 +989,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
 
 [[package]]
@@ -1009,7 +1044,7 @@ version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"
 dependencies = [
- "curve25519-dalek",
+ "curve25519-dalek 3.2.1",
  "ed25519",
  "rand 0.7.3",
  "serde",
@@ -1060,6 +1095,27 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da"
 
+[[package]]
+name = "fiat-crypto"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d"
+
+[[package]]
+name = "five8_const"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b4f62f0f8ca357f93ae90c8c2dd1041a1f665fde2f889ea9b1787903829015"
+dependencies = [
+ "five8_core",
+]
+
+[[package]]
+name = "five8_core"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94474d15a76982be62ca8a39570dccce148d98c238ebb7408b0a21b2c4bdddc4"
+
 [[package]]
 name = "fnv"
 version = "1.0.7"
@@ -1154,7 +1210,7 @@ dependencies = [
 name = "hello-solana-program"
 version = "0.1.0"
 dependencies = [
- "solana-program",
+ "solana-program 2.1.6",
 ]
 
 [[package]]
@@ -1260,10 +1316,11 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.69"
+version = "0.3.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7"
 dependencies = [
+ "once_cell",
  "wasm-bindgen",
 ]
 
@@ -1436,7 +1493,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
 
 [[package]]
@@ -1484,7 +1541,7 @@ dependencies = [
  "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
 
 [[package]]
@@ -1496,7 +1553,7 @@ dependencies = [
  "proc-macro-crate 3.1.0",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
 
 [[package]]
@@ -1571,7 +1628,7 @@ version = "0.1.0"
 dependencies = [
  "borsh 0.9.3",
  "borsh-derive 0.9.3",
- "solana-program",
+ "solana-program 2.1.6",
 ]
 
 [[package]]
@@ -1654,9 +1711,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.86"
+version = "1.0.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
+checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
 dependencies = [
  "unicode-ident",
 ]
@@ -1674,7 +1731,7 @@ version = "0.1.0"
 dependencies = [
  "borsh 0.9.3",
  "borsh-derive 0.9.3",
- "solana-program",
+ "solana-program 2.1.6",
 ]
 
 [[package]]
@@ -1683,7 +1740,7 @@ version = "0.1.0"
 dependencies = [
  "borsh 0.9.3",
  "borsh-derive 0.9.3",
- "solana-program",
+ "solana-program 2.1.6",
 ]
 
 [[package]]
@@ -1692,7 +1749,7 @@ version = "0.1.0"
 dependencies = [
  "borsh 0.9.3",
  "borsh-derive 0.9.3",
- "solana-program",
+ "solana-program 2.1.6",
 ]
 
 [[package]]
@@ -1712,7 +1769,7 @@ checksum = "9e2e25ee72f5b24d773cae88422baddefff7714f97aab68d96fe2b6fc4a28fb2"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
 
 [[package]]
@@ -1830,7 +1887,7 @@ version = "0.1.0"
 dependencies = [
  "borsh 0.9.3",
  "borsh-derive 0.9.3",
- "solana-program",
+ "solana-program 2.1.6",
 ]
 
 [[package]]
@@ -1884,7 +1941,7 @@ version = "0.1.0"
 dependencies = [
  "borsh 0.9.3",
  "borsh-derive 0.9.3",
- "solana-program",
+ "solana-program 2.1.6",
 ]
 
 [[package]]
@@ -1928,9 +1985,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 
 [[package]]
 name = "serde"
-version = "1.0.204"
+version = "1.0.216"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12"
+checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e"
 dependencies = [
  "serde_derive",
 ]
@@ -1946,13 +2003,13 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.204"
+version = "1.0.216"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222"
+checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
 
 [[package]]
@@ -1995,7 +2052,7 @@ dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
 
 [[package]]
@@ -2078,6 +2135,12 @@ dependencies = [
  "syn 1.0.109",
 ]
 
+[[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
 [[package]]
 name = "signature"
 version = "1.6.4"
@@ -2106,6 +2169,113 @@ version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
+[[package]]
+name = "solana-account-info"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42051fa2def3a2d9123f0e33b62a983b25c13d153a30e707b14d3c3b79a91592"
+dependencies = [
+ "bincode",
+ "serde",
+ "solana-program-error",
+ "solana-program-memory",
+ "solana-pubkey",
+]
+
+[[package]]
+name = "solana-atomic-u64"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10dad9cf8527bbf74d3668505f563bd362e2e14d0fc77338d20973e881bbad0b"
+dependencies = [
+ "parking_lot",
+]
+
+[[package]]
+name = "solana-bincode"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e3b178d3783809a2480c542cd7c57c06e1bab2c0f21562fcb8cd13eabd0138e"
+dependencies = [
+ "bincode",
+ "serde",
+ "solana-instruction",
+]
+
+[[package]]
+name = "solana-borsh"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "870197ea4929500d8e6f624c3eb578912b5063bbd5c8bfbe87396cd5b4257465"
+dependencies = [
+ "borsh 0.10.3",
+ "borsh 1.5.1",
+]
+
+[[package]]
+name = "solana-clock"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b26a68f89972fddb370ba33a49340bd3419da529893d9ee851211588aee811fa"
+dependencies = [
+ "serde",
+ "serde_derive",
+ "solana-sdk-macro 2.1.6",
+ "solana-sysvar-id",
+]
+
+[[package]]
+name = "solana-cpi"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e3b62e1ca838f92b90c25ab68c297272cee8e2256dad18806a219b05cfcd247"
+dependencies = [
+ "solana-account-info",
+ "solana-define-syscall",
+ "solana-instruction",
+ "solana-program-error",
+ "solana-pubkey",
+ "solana-stable-layout",
+]
+
+[[package]]
+name = "solana-decode-error"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1323dbdb7c8ca717bcd7987a3f45619b5b6517dc3ee22a21342122a5516125c3"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "solana-define-syscall"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a23cf0144176f94019a27ce46372661f67007232eea16cae96cb985fc25131d5"
+
+[[package]]
+name = "solana-epoch-schedule"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c60dde3613fcd1af91c2033e67ffe8c8d2bcd58085c53c842fa7903fa839ad38"
+dependencies = [
+ "serde",
+ "serde_derive",
+ "solana-sdk-macro 2.1.6",
+ "solana-sysvar-id",
+]
+
+[[package]]
+name = "solana-fee-calculator"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c706f3d151d0abc197ca2fcecf877ace03d613be6fae766de12f5fb41c96b04"
+dependencies = [
+ "log",
+ "serde",
+ "serde_derive",
+]
+
 [[package]]
 name = "solana-frozen-abi"
 version = "1.18.17"
@@ -2140,7 +2310,55 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustc_version",
- "syn 2.0.72",
+ "syn 2.0.90",
+]
+
+[[package]]
+name = "solana-hash"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a86aabbd7ebf807689a0355f053d6dc31d2131c2d83613011a374a18cc5d61b7"
+dependencies = [
+ "borsh 1.5.1",
+ "bs58 0.5.1",
+ "bytemuck",
+ "bytemuck_derive",
+ "js-sys",
+ "serde",
+ "serde_derive",
+ "solana-atomic-u64",
+ "solana-sanitize",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "solana-instruction"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94ed5710c998efd09ffb596cf5e7266c11cd56e3a136c8a1f940e8525fd5be6e"
+dependencies = [
+ "bincode",
+ "borsh 1.5.1",
+ "getrandom 0.2.15",
+ "js-sys",
+ "num-traits",
+ "serde",
+ "serde_derive",
+ "solana-define-syscall",
+ "solana-pubkey",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "solana-last-restart-slot"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd5647af0980c796c942e33f1f7dbffca29b7747630b720e6975abb1d7c531f6"
+dependencies = [
+ "serde",
+ "serde_derive",
+ "solana-sdk-macro 2.1.6",
+ "solana-sysvar-id",
 ]
 
 [[package]]
@@ -2154,6 +2372,21 @@ dependencies = [
  "log",
 ]
 
+[[package]]
+name = "solana-msg"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d6a46fcbbaa38193b5b6aeec531395da8dac8dcd183ac6d80d94e6513fc4ad8"
+dependencies = [
+ "solana-define-syscall",
+]
+
+[[package]]
+name = "solana-native-token"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0aa3c5006bbea99b810ad8fc6ae168fc83891b607a13a9aa6be39db71a700f87"
+
 [[package]]
 name = "solana-program"
 version = "1.18.17"
@@ -2177,7 +2410,7 @@ dependencies = [
  "cc",
  "console_error_panic_hook",
  "console_log",
- "curve25519-dalek",
+ "curve25519-dalek 3.2.1",
  "getrandom 0.2.15",
  "itertools",
  "js-sys",
@@ -2202,13 +2435,183 @@ dependencies = [
  "sha3 0.10.8",
  "solana-frozen-abi",
  "solana-frozen-abi-macro",
- "solana-sdk-macro",
+ "solana-sdk-macro 1.18.17",
  "thiserror",
  "tiny-bip39",
  "wasm-bindgen",
  "zeroize",
 ]
 
+[[package]]
+name = "solana-program"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afc847b91b77c48113a55f7f492cc7e982e1778c6b954a05feb499f9b8c3cc4"
+dependencies = [
+ "base64 0.22.1",
+ "bincode",
+ "bitflags",
+ "blake3",
+ "borsh 0.10.3",
+ "borsh 1.5.1",
+ "bs58 0.5.1",
+ "bv",
+ "bytemuck",
+ "bytemuck_derive",
+ "console_error_panic_hook",
+ "console_log",
+ "curve25519-dalek 4.1.3",
+ "five8_const",
+ "getrandom 0.2.15",
+ "js-sys",
+ "lazy_static",
+ "log",
+ "memoffset",
+ "num-bigint",
+ "num-derive 0.4.2",
+ "num-traits",
+ "parking_lot",
+ "rand 0.8.5",
+ "serde",
+ "serde_bytes",
+ "serde_derive",
+ "sha2 0.10.8",
+ "sha3 0.10.8",
+ "solana-account-info",
+ "solana-atomic-u64",
+ "solana-bincode",
+ "solana-borsh",
+ "solana-clock",
+ "solana-cpi",
+ "solana-decode-error",
+ "solana-define-syscall",
+ "solana-epoch-schedule",
+ "solana-fee-calculator",
+ "solana-hash",
+ "solana-instruction",
+ "solana-last-restart-slot",
+ "solana-msg",
+ "solana-native-token",
+ "solana-program-entrypoint",
+ "solana-program-error",
+ "solana-program-memory",
+ "solana-program-option",
+ "solana-program-pack",
+ "solana-pubkey",
+ "solana-rent",
+ "solana-sanitize",
+ "solana-sdk-macro 2.1.6",
+ "solana-secp256k1-recover",
+ "solana-serde-varint",
+ "solana-serialize-utils",
+ "solana-sha256-hasher",
+ "solana-short-vec",
+ "solana-slot-hashes",
+ "solana-slot-history",
+ "solana-stable-layout",
+ "solana-sysvar-id",
+ "solana-transaction-error",
+ "thiserror",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "solana-program-entrypoint"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "988a49fb8231e95861d11b40931f49e06f0dea5a29241acf7cbca644c52abd6b"
+dependencies = [
+ "solana-account-info",
+ "solana-msg",
+ "solana-program-error",
+ "solana-pubkey",
+]
+
+[[package]]
+name = "solana-program-error"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2473773ee9cebf6ba3d7d1fe911938bc2a3a694e85bea33fd7a99d397cde1202"
+dependencies = [
+ "borsh 1.5.1",
+ "num-traits",
+ "serde",
+ "serde_derive",
+ "solana-decode-error",
+ "solana-instruction",
+ "solana-msg",
+ "solana-pubkey",
+]
+
+[[package]]
+name = "solana-program-memory"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d9e6ca90bbc3020b7b37091c05049f5de48e397545093ec303dc6eff3d4720c"
+dependencies = [
+ "num-traits",
+ "solana-define-syscall",
+]
+
+[[package]]
+name = "solana-program-option"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c2334c5f9adcc25c6390fbf87ac127adbfbd8943465726e5f389159677ceba2"
+
+[[package]]
+name = "solana-program-pack"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "305475eef9404539cce0c561ab9997b875cc5509f7c553859cd059fdf93b0ab2"
+dependencies = [
+ "solana-program-error",
+]
+
+[[package]]
+name = "solana-pubkey"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a954fba3af498201179981818b0ed61f95c32b4a3db5ea9cc042c971c84cdeae"
+dependencies = [
+ "borsh 0.10.3",
+ "borsh 1.5.1",
+ "bs58 0.5.1",
+ "bytemuck",
+ "bytemuck_derive",
+ "curve25519-dalek 4.1.3",
+ "five8_const",
+ "getrandom 0.2.15",
+ "js-sys",
+ "num-traits",
+ "serde",
+ "serde_derive",
+ "solana-atomic-u64",
+ "solana-decode-error",
+ "solana-define-syscall",
+ "solana-sanitize",
+ "solana-sha256-hasher",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "solana-rent"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ebcc59bff8b3c773214545d038b718a3e2e63c920b8172f85725463029f7f00"
+dependencies = [
+ "serde",
+ "serde_derive",
+ "solana-sdk-macro 2.1.6",
+ "solana-sysvar-id",
+]
+
+[[package]]
+name = "solana-sanitize"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d05ecd7ec442abf0561cbf06984484d6368e71a4882213bfa68b658b0f8d6a0e"
+
 [[package]]
 name = "solana-sdk"
 version = "1.18.17"
@@ -2257,8 +2660,8 @@ dependencies = [
  "solana-frozen-abi",
  "solana-frozen-abi-macro",
  "solana-logger",
- "solana-program",
- "solana-sdk-macro",
+ "solana-program 1.18.17",
+ "solana-sdk-macro 1.18.17",
  "thiserror",
  "uriparse",
  "wasm-bindgen",
@@ -2274,7 +2677,30 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.72",
+ "syn 2.0.90",
+]
+
+[[package]]
+name = "solana-sdk-macro"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85df4723291cfec8ffe9dadc59d565afcae12ea9a6460b7b28c4da21c2c4a887"
+dependencies = [
+ "bs58 0.5.1",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.90",
+]
+
+[[package]]
+name = "solana-secp256k1-recover"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41c38fc7bc33f78af99c4848c9a924b2b6e5d33d96f269d108777d982de72f73"
+dependencies = [
+ "libsecp256k1",
+ "solana-define-syscall",
+ "thiserror",
 ]
 
 [[package]]
@@ -2283,6 +2709,99 @@ version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "468aa43b7edb1f9b7b7b686d5c3aeb6630dc1708e86e31343499dd5c4d775183"
 
+[[package]]
+name = "solana-serde-varint"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e2fc696c10a2b02356584cbd45d83d42b01b10256cb36b5d0c3768e5adf9283"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "solana-serialize-utils"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b04c6fb71e4cdd10480bc8d306aca6d2a7494e6267e4f103085a89b2ec04e4c"
+dependencies = [
+ "solana-instruction",
+ "solana-pubkey",
+ "solana-sanitize",
+]
+
+[[package]]
+name = "solana-sha256-hasher"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb4c977c6c4d95c8b43a9f405844f29a73c9d8b0a7c561b91d4f6a44f290d35c"
+dependencies = [
+ "sha2 0.10.8",
+ "solana-define-syscall",
+ "solana-hash",
+]
+
+[[package]]
+name = "solana-short-vec"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ca5799b37642e4e273d7d848564739eab45df670edcc61b4696ef0d5ebe4a8c"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "solana-slot-hashes"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e596d3719b4c03987de87c8cc25b34b6afcf7464c82b4d9c9b114304d882c97"
+dependencies = [
+ "serde",
+ "serde_derive",
+ "solana-hash",
+ "solana-sysvar-id",
+]
+
+[[package]]
+name = "solana-slot-history"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4022b0e8a7f043bd61504fff79176c02b52f69a69299023884b194a1405c0f05"
+dependencies = [
+ "bv",
+ "serde",
+ "serde_derive",
+ "solana-sysvar-id",
+]
+
+[[package]]
+name = "solana-stable-layout"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e82f0665dfcfcb4433708abff54db5ee105fe1bb8db7fd409074bd0275582105"
+dependencies = [
+ "solana-instruction",
+ "solana-pubkey",
+]
+
+[[package]]
+name = "solana-sysvar-id"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bbed7acdd711e0d620c9b7f788d041d35731c2c675d1d687498745d73826ca4"
+dependencies = [
+ "solana-pubkey",
+]
+
+[[package]]
+name = "solana-transaction-error"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae45f064c8e6006a426b31a1182123ec4daf8cca50bd7aea6e796e6205a7911e"
+dependencies = [
+ "solana-instruction",
+ "solana-sanitize",
+]
+
 [[package]]
 name = "solana-zk-token-sdk"
 version = "1.18.17"
@@ -2294,7 +2813,7 @@ dependencies = [
  "bincode",
  "bytemuck",
  "byteorder",
- "curve25519-dalek",
+ "curve25519-dalek 3.2.1",
  "getrandom 0.1.16",
  "itertools",
  "lazy_static",
@@ -2305,7 +2824,7 @@ dependencies = [
  "serde",
  "serde_json",
  "sha3 0.9.1",
- "solana-program",
+ "solana-program 1.18.17",
  "solana-sdk",
  "subtle",
  "thiserror",
@@ -2322,7 +2841,7 @@ dependencies = [
  "borsh 0.10.3",
  "num-derive 0.4.2",
  "num-traits",
- "solana-program",
+ "solana-program 1.18.17",
  "spl-token",
  "spl-token-2022 1.0.0",
  "thiserror",
@@ -2335,7 +2854,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cce5d563b58ef1bb2cdbbfe0dfb9ffdc24903b10ae6a4df2d8f425ece375033f"
 dependencies = [
  "bytemuck",
- "solana-program",
+ "solana-program 1.18.17",
  "spl-discriminator-derive",
 ]
 
@@ -2347,7 +2866,7 @@ checksum = "07fd7858fc4ff8fb0e34090e41d7eb06a823e1057945c26d480bfc21d2338a93"
 dependencies = [
  "quote",
  "spl-discriminator-syn",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
 
 [[package]]
@@ -2359,7 +2878,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "sha2 0.10.8",
- "syn 2.0.72",
+ "syn 2.0.90",
  "thiserror",
 ]
 
@@ -2369,7 +2888,7 @@ version = "3.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bd0dc6f70db6bacea7ff25870b016a65ba1d1b6013536f08e4fd79a8f9005325"
 dependencies = [
- "solana-program",
+ "solana-program 1.18.17",
 ]
 
 [[package]]
@@ -2378,7 +2897,7 @@ version = "4.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a49f49f95f2d02111ded31696ab38a081fab623d4c76bd4cb074286db4560836"
 dependencies = [
- "solana-program",
+ "solana-program 1.18.17",
 ]
 
 [[package]]
@@ -2389,7 +2908,7 @@ checksum = "2881dddfca792737c0706fa0175345ab282b1b0879c7d877bad129645737c079"
 dependencies = [
  "borsh 0.10.3",
  "bytemuck",
- "solana-program",
+ "solana-program 1.18.17",
  "solana-zk-token-sdk",
  "spl-program-error 0.3.0",
 ]
@@ -2402,7 +2921,7 @@ checksum = "af92f74cd3b0fdfda59fef4b571a92123e4df0f67cc43f73163975d31118ef82"
 dependencies = [
  "num-derive 0.3.3",
  "num-traits",
- "solana-program",
+ "solana-program 1.18.17",
  "spl-program-error-derive 0.2.0",
  "thiserror",
 ]
@@ -2415,7 +2934,7 @@ checksum = "249e0318493b6bcf27ae9902600566c689b7dfba9f1bdff5893e92253374e78c"
 dependencies = [
  "num-derive 0.4.2",
  "num-traits",
- "solana-program",
+ "solana-program 1.18.17",
  "spl-program-error-derive 0.3.2",
  "thiserror",
 ]
@@ -2428,7 +2947,7 @@ checksum = "173f3cc506847882189b3a5b67299f617fed2f9730f122dd197b82e1e213dee5"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
 
 [[package]]
@@ -2440,7 +2959,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "sha2 0.10.8",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
 
 [[package]]
@@ -2450,7 +2969,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "82149a5a06b5f158d03904066375eaf0c8a2422557cc3d5a25d277260d9a3b16"
 dependencies = [
  "bytemuck",
- "solana-program",
+ "solana-program 1.18.17",
  "spl-discriminator",
  "spl-program-error 0.2.0",
  "spl-type-length-value 0.2.0",
@@ -2463,7 +2982,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "615d381f48ddd2bb3c57c7f7fb207591a2a05054639b18a62e785117dd7a8683"
 dependencies = [
  "bytemuck",
- "solana-program",
+ "solana-program 1.18.17",
  "spl-discriminator",
  "spl-pod",
  "spl-program-error 0.3.0",
@@ -2481,7 +3000,7 @@ dependencies = [
  "num-derive 0.4.2",
  "num-traits",
  "num_enum 0.7.3",
- "solana-program",
+ "solana-program 1.18.17",
  "thiserror",
 ]
 
@@ -2496,7 +3015,7 @@ dependencies = [
  "num-derive 0.3.3",
  "num-traits",
  "num_enum 0.6.1",
- "solana-program",
+ "solana-program 1.18.17",
  "solana-zk-token-sdk",
  "spl-memo 3.0.1",
  "spl-token",
@@ -2515,7 +3034,7 @@ dependencies = [
  "num-derive 0.4.2",
  "num-traits",
  "num_enum 0.7.3",
- "solana-program",
+ "solana-program 1.18.17",
  "solana-security-txt",
  "solana-zk-token-sdk",
  "spl-memo 4.0.4",
@@ -2535,7 +3054,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b889509d49fa74a4a033ca5dae6c2307e9e918122d97e58562f5c4ffa795c75d"
 dependencies = [
  "bytemuck",
- "solana-program",
+ "solana-program 1.18.17",
  "spl-discriminator",
  "spl-pod",
  "spl-program-error 0.3.0",
@@ -2548,7 +3067,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4c16ce3ba6979645fb7627aa1e435576172dd63088dc7848cb09aa331fa1fe4f"
 dependencies = [
  "borsh 0.10.3",
- "solana-program",
+ "solana-program 1.18.17",
  "spl-discriminator",
  "spl-pod",
  "spl-program-error 0.3.0",
@@ -2566,7 +3085,7 @@ dependencies = [
  "num-derive 0.3.3",
  "num-traits",
  "num_enum 0.6.1",
- "solana-program",
+ "solana-program 1.18.17",
  "spl-discriminator",
  "spl-tlv-account-resolution 0.2.0",
  "spl-type-length-value 0.2.0",
@@ -2581,7 +3100,7 @@ checksum = "7aabdb7c471566f6ddcee724beb8618449ea24b399e58d464d6b5bc7db550259"
 dependencies = [
  "arrayref",
  "bytemuck",
- "solana-program",
+ "solana-program 1.18.17",
  "spl-discriminator",
  "spl-pod",
  "spl-program-error 0.3.0",
@@ -2596,7 +3115,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f1d085f426b33b8365fb98383d1b8b3925e21bdfe579c851ceaa7f511dbec191"
 dependencies = [
  "bytemuck",
- "solana-program",
+ "solana-program 1.18.17",
  "spl-discriminator",
  "spl-program-error 0.2.0",
 ]
@@ -2608,7 +3127,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a468e6f6371f9c69aae760186ea9f1a01c2908351b06a5e0026d21cfc4d7ecac"
 dependencies = [
  "bytemuck",
- "solana-program",
+ "solana-program 1.18.17",
  "spl-discriminator",
  "spl-pod",
  "spl-program-error 0.3.0",
@@ -2639,9 +3158,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.72"
+version = "2.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af"
+checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2657,7 +3176,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
 
 [[package]]
@@ -2671,22 +3190,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.63"
+version = "1.0.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
+checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.63"
+version = "1.0.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
+checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
 
 [[package]]
@@ -2729,7 +3248,7 @@ version = "0.1.0"
 dependencies = [
  "borsh 0.9.3",
  "borsh-derive 0.9.3",
- "solana-program",
+ "solana-program 1.18.17",
  "spl-associated-token-account",
  "spl-token-2022 0.7.0",
 ]
@@ -2740,7 +3259,7 @@ version = "0.1.0"
 dependencies = [
  "borsh 0.9.3",
  "borsh-derive 0.9.3",
- "solana-program",
+ "solana-program 2.1.6",
  "spl-associated-token-account",
  "spl-token-2022 0.7.0",
 ]
@@ -2751,7 +3270,7 @@ version = "0.1.0"
 dependencies = [
  "borsh 0.9.3",
  "borsh-derive 0.9.3",
- "solana-program",
+ "solana-program 1.18.17",
  "spl-associated-token-account",
  "spl-token-2022 0.7.0",
 ]
@@ -2762,7 +3281,7 @@ version = "0.1.0"
 dependencies = [
  "borsh 0.9.3",
  "borsh-derive 0.9.3",
- "solana-program",
+ "solana-program 2.1.6",
  "spl-associated-token-account",
  "spl-token-2022 0.7.0",
 ]
@@ -2773,7 +3292,7 @@ version = "0.1.0"
 dependencies = [
  "borsh 0.10.3",
  "borsh-derive 0.9.3",
- "solana-program",
+ "solana-program 2.1.6",
  "spl-associated-token-account",
  "spl-token-2022 0.7.0",
 ]
@@ -2856,7 +3375,7 @@ version = "0.1.0"
 dependencies = [
  "borsh 0.9.3",
  "borsh-derive 0.9.3",
- "solana-program",
+ "solana-program 2.1.6",
 ]
 
 [[package]]
@@ -2926,34 +3445,34 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.92"
+version = "0.2.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396"
 dependencies = [
  "cfg-if",
+ "once_cell",
  "wasm-bindgen-macro",
 ]
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.92"
+version = "0.2.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79"
 dependencies = [
  "bumpalo",
  "log",
- "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.92"
+version = "0.2.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -2961,22 +3480,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.92"
+version = "0.2.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.92"
+version = "0.2.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6"
 
 [[package]]
 name = "web-sys"
@@ -3137,7 +3656,7 @@ checksum = "125139de3f6b9d625c39e2efdd73d41bdac468ccd556556440e322be0e1bbd91"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
 
 [[package]]
@@ -3148,7 +3667,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
 
 [[package]]
@@ -3168,5 +3687,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.90",
 ]
diff --git a/basics/account-data/native/program/Cargo.toml b/basics/account-data/native/program/Cargo.toml
index cfc0d193c..25023e8d4 100644
--- a/basics/account-data/native/program/Cargo.toml
+++ b/basics/account-data/native/program/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
 edition = "2021"
 
 [dependencies]
-solana-program = "=1.18.17"
+solana-program = "2.1"
 borsh = "0.9.3"
 borsh-derive = "0.9.1"
 
diff --git a/basics/checking-accounts/native/program/Cargo.toml b/basics/checking-accounts/native/program/Cargo.toml
index 8c3ba342f..bdd40da65 100644
--- a/basics/checking-accounts/native/program/Cargo.toml
+++ b/basics/checking-accounts/native/program/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
 edition = "2021"
 
 [dependencies]
-solana-program = "=1.18.17"
+solana-program = "2.1"
 
 [lib]
 crate-type = ["cdylib", "lib"]
diff --git a/basics/close-account/native/program/Cargo.toml b/basics/close-account/native/program/Cargo.toml
index 40fbc7c21..bf651f76e 100644
--- a/basics/close-account/native/program/Cargo.toml
+++ b/basics/close-account/native/program/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
 [dependencies]
 borsh = "0.9.3"
 borsh-derive = "0.9.1"
-solana-program = "=1.18.17"
+solana-program = "2.1"
 
 [lib]
 crate-type = ["cdylib", "lib"]
diff --git a/basics/counter/mpl-stack/Cargo.toml b/basics/counter/mpl-stack/Cargo.toml
index b3508072a..becdb0f9d 100644
--- a/basics/counter/mpl-stack/Cargo.toml
+++ b/basics/counter/mpl-stack/Cargo.toml
@@ -14,4 +14,4 @@ default = []
 [dependencies]
 borsh = "0.9"
 shank = "0.0.8"
-solana-program = "=1.18.17"
+solana-program = "2.1"
diff --git a/basics/counter/native/program/Cargo.toml b/basics/counter/native/program/Cargo.toml
index faa2ce501..3f1f51130 100644
--- a/basics/counter/native/program/Cargo.toml
+++ b/basics/counter/native/program/Cargo.toml
@@ -13,4 +13,4 @@ default = []
 
 [dependencies]
 borsh = "0.9.3"
-solana-program = "=1.18.17"
+solana-program = "2.1"
diff --git a/basics/create-account/native/program/Cargo.toml b/basics/create-account/native/program/Cargo.toml
index 4fdd7baaa..db6ea4956 100644
--- a/basics/create-account/native/program/Cargo.toml
+++ b/basics/create-account/native/program/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
 edition = "2021"
 
 [dependencies]
-solana-program = "=1.18.17"
+solana-program = "2.1"
 
 [lib]
 crate-type = ["cdylib", "lib"]
diff --git a/basics/cross-program-invocation/native/programs/hand/Cargo.toml b/basics/cross-program-invocation/native/programs/hand/Cargo.toml
index e3c6e17ac..9e66eac8e 100644
--- a/basics/cross-program-invocation/native/programs/hand/Cargo.toml
+++ b/basics/cross-program-invocation/native/programs/hand/Cargo.toml
@@ -10,7 +10,7 @@ cpi = ["no-entrypoint"]
 [dependencies]
 borsh = "0.10"
 borsh-derive = "0.10"
-solana-program = "=1.18.17"
+solana-program = "2.1"
 cross-program-invocatio-native-lever = { path = "../lever", features = ["cpi"] }
 
 [lib]
diff --git a/basics/cross-program-invocation/native/programs/lever/Cargo.toml b/basics/cross-program-invocation/native/programs/lever/Cargo.toml
index 2dbacf4e0..dcf63a467 100644
--- a/basics/cross-program-invocation/native/programs/lever/Cargo.toml
+++ b/basics/cross-program-invocation/native/programs/lever/Cargo.toml
@@ -10,7 +10,7 @@ cpi = ["no-entrypoint"]
 [dependencies]
 borsh = "0.10"
 borsh-derive = "0.10"
-solana-program = "=1.18.17"
+solana-program = "2.1"
 
 [lib]
 crate-type = ["cdylib", "lib"]
diff --git a/basics/hello-solana/native/program/Cargo.toml b/basics/hello-solana/native/program/Cargo.toml
index ba62538ed..d83fa9588 100644
--- a/basics/hello-solana/native/program/Cargo.toml
+++ b/basics/hello-solana/native/program/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
 edition = "2021"
 
 [dependencies]
-solana-program = "=1.18.17"
+solana-program = "2.1"
 
 [lib]
 crate-type = ["cdylib", "lib"]
diff --git a/basics/hello-solana/steel/Cargo.toml b/basics/hello-solana/steel/Cargo.toml
index 64649f8cb..0698b60ce 100644
--- a/basics/hello-solana/steel/Cargo.toml
+++ b/basics/hello-solana/steel/Cargo.toml
@@ -13,9 +13,10 @@ readme = "./README.md"
 keywords = ["solana"]
 
 [workspace.dependencies]
+hello-solana-api = { path = "./api", version = "0.1.0" }
 bytemuck = "1.14"
 num_enum = "0.7"
-solana-program = "=2.0.13"
-steel = "=2.1.1"
+solana-program = "2.1"
+steel = "2.0"
 thiserror = "1.0"
 solana-sdk = "1.18"
diff --git a/basics/pda-rent-payer/native/program/Cargo.toml b/basics/pda-rent-payer/native/program/Cargo.toml
index cfcae94de..c6950d080 100644
--- a/basics/pda-rent-payer/native/program/Cargo.toml
+++ b/basics/pda-rent-payer/native/program/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
 edition = "2021"
 
 [dependencies]
-solana-program = "=1.18.17"
+solana-program = "2.1"
 borsh = "0.9.3"
 borsh-derive = "0.9.1"
 
diff --git a/basics/processing-instructions/native/program/Cargo.toml b/basics/processing-instructions/native/program/Cargo.toml
index 8c692c2bd..fe2ad52a5 100644
--- a/basics/processing-instructions/native/program/Cargo.toml
+++ b/basics/processing-instructions/native/program/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
 [dependencies]
 borsh = "0.9.3"
 borsh-derive = "0.9.1"
-solana-program = "=1.18.17"
+solana-program = "2.1"
 
 [lib]
 crate-type = ["cdylib", "lib"]
diff --git a/basics/program-derived-addresses/native/program/Cargo.toml b/basics/program-derived-addresses/native/program/Cargo.toml
index e77d37e47..bc28f7408 100644
--- a/basics/program-derived-addresses/native/program/Cargo.toml
+++ b/basics/program-derived-addresses/native/program/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
 edition = "2021"
 
 [dependencies]
-solana-program = "=1.18.17"
+solana-program = "2.1"
 borsh = "0.9.3"
 borsh-derive = "0.9.1"
 
diff --git a/basics/realloc/native/program/Cargo.toml b/basics/realloc/native/program/Cargo.toml
index 02f008153..5966142f6 100644
--- a/basics/realloc/native/program/Cargo.toml
+++ b/basics/realloc/native/program/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
 [dependencies]
 borsh = "0.9.3"
 borsh-derive = "0.9.1"
-solana-program = "=1.18.17"
+solana-program = "2.1"
 
 [lib]
 crate-type = ["cdylib", "lib"]
diff --git a/basics/rent/native/program/Cargo.toml b/basics/rent/native/program/Cargo.toml
index b34b898df..3597297a1 100644
--- a/basics/rent/native/program/Cargo.toml
+++ b/basics/rent/native/program/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
 [dependencies]
 borsh = "0.9.3"
 borsh-derive = "0.9.1"
-solana-program = "=1.18.17"
+solana-program = "2.1"
 
 [lib]
 crate-type = ["cdylib", "lib"]
diff --git a/basics/repository-layout/native/program/Cargo.toml b/basics/repository-layout/native/program/Cargo.toml
index 3274e5568..4ea2ab0ec 100644
--- a/basics/repository-layout/native/program/Cargo.toml
+++ b/basics/repository-layout/native/program/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
 [dependencies]
 borsh = "0.9.3"
 borsh-derive = "0.9.1"
-solana-program = "=1.18.17"
+solana-program = "2.1"
 
 [lib]
 crate-type = ["cdylib", "lib"]
diff --git a/basics/transfer-sol/native/program/Cargo.toml b/basics/transfer-sol/native/program/Cargo.toml
index dff1138bb..01688927e 100644
--- a/basics/transfer-sol/native/program/Cargo.toml
+++ b/basics/transfer-sol/native/program/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
 [dependencies]
 borsh = "0.9.3"
 borsh-derive = "0.9.1"
-solana-program = "=1.18.17"
+solana-program = "2.1"
 
 [lib]
 crate-type = ["cdylib", "lib"]
diff --git a/tokens/create-token/native/program/Cargo.toml b/tokens/create-token/native/program/Cargo.toml
index 91e2212a8..d9ab7a4a6 100644
--- a/tokens/create-token/native/program/Cargo.toml
+++ b/tokens/create-token/native/program/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
 [dependencies]
 borsh = "0.9.3"
 borsh-derive = "0.9.1"
-solana-program = "1.16.10"
+solana-program = "2.1"
 spl-token = { version = "4.0.0", features = [ "no-entrypoint" ] }
 spl-associated-token-account = { version = "2.0.0", features = [ "no-entrypoint" ] }
 mpl-token-metadata = { version = "1.11", features = [ "no-entrypoint" ] }
diff --git a/tokens/nft-minter/native/program/Cargo.toml b/tokens/nft-minter/native/program/Cargo.toml
index 551217948..887cf52c4 100644
--- a/tokens/nft-minter/native/program/Cargo.toml
+++ b/tokens/nft-minter/native/program/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
 [dependencies]
 borsh = "0.9.3"
 borsh-derive = "0.9.1"
-solana-program = "1.16.10"
+solana-program = "2.1"
 spl-token = { version="4.0.0", features = [ "no-entrypoint" ] }
 spl-associated-token-account = { version="2.0.0", features = [ "no-entrypoint" ] }
 mpl-token-metadata = { version="1.11" }
diff --git a/tokens/pda-mint-authority/native/program/Cargo.toml b/tokens/pda-mint-authority/native/program/Cargo.toml
index 751bf055a..998d3dd47 100644
--- a/tokens/pda-mint-authority/native/program/Cargo.toml
+++ b/tokens/pda-mint-authority/native/program/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
 [dependencies]
 borsh = "0.9.3"
 borsh-derive = "0.9.1"
-solana-program = "1.16.10"
+solana-program = "2.1"
 spl-token = { version="4.0.0", features = [ "no-entrypoint" ] }
 spl-associated-token-account = { version="2.0.0", features = [ "no-entrypoint" ] }
 mpl-token-metadata = { version="1.11", features = [ "no-entrypoint" ] }
diff --git a/tokens/spl-token-minter/native/program/Cargo.toml b/tokens/spl-token-minter/native/program/Cargo.toml
index 99d312064..c9e30a9e7 100644
--- a/tokens/spl-token-minter/native/program/Cargo.toml
+++ b/tokens/spl-token-minter/native/program/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
 [dependencies]
 borsh = "0.9.3"
 borsh-derive = "0.9.1"
-solana-program = "1.16.10"
+solana-program = "2.1"
 spl-token = { version="4.0.0", features = [ "no-entrypoint" ] }
 spl-associated-token-account = { version="2.0.0", features = [ "no-entrypoint" ] }
 mpl-token-metadata = { version="1.11", features = [ "no-entrypoint" ] }
diff --git a/tokens/token-2022/mint-close-authority/native/program/Cargo.toml b/tokens/token-2022/mint-close-authority/native/program/Cargo.toml
index 58360f9d8..de40f4ee4 100644
--- a/tokens/token-2022/mint-close-authority/native/program/Cargo.toml
+++ b/tokens/token-2022/mint-close-authority/native/program/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
 [dependencies]
 borsh = "0.9.3"
 borsh-derive = "0.9.1"
-solana-program = "1.16.10"
+solana-program = "2.1"
 spl-associated-token-account = { version="2.0.0", features = [ "no-entrypoint" ] }
 spl-token-2022 = {version = "0.7.0", features = [ "no-entrypoint" ] }
 
diff --git a/tokens/token-2022/non-transferable/native/program/Cargo.toml b/tokens/token-2022/non-transferable/native/program/Cargo.toml
index d03cd5d4c..e98868f3e 100644
--- a/tokens/token-2022/non-transferable/native/program/Cargo.toml
+++ b/tokens/token-2022/non-transferable/native/program/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
 [dependencies]
 borsh = "0.9.3"
 borsh-derive = "0.9.1"
-solana-program = "=1.18.17"
+solana-program = "2.1"
 spl-associated-token-account = { version="2.0.0", features = [ "no-entrypoint" ] }
 spl-token-2022 = {version = "0.7.0", features = [ "no-entrypoint" ] }
 
diff --git a/tokens/token-2022/transfer-fee/native/program/Cargo.toml b/tokens/token-2022/transfer-fee/native/program/Cargo.toml
index f1c31c8f0..36b8c7b23 100644
--- a/tokens/token-2022/transfer-fee/native/program/Cargo.toml
+++ b/tokens/token-2022/transfer-fee/native/program/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
 [dependencies]
 borsh = "0.10.3"
 borsh-derive = "0.9.1"
-solana-program = "=1.18.17"
+solana-program = "2.1"
 spl-associated-token-account = { version="2.0.0", features = [ "no-entrypoint" ] }
 spl-token-2022 = {version = "0.7.0", features = [ "no-entrypoint" ] }
 
diff --git a/tokens/transfer-tokens/native/program/Cargo.toml b/tokens/transfer-tokens/native/program/Cargo.toml
index 8810f4f95..035b9c3e6 100644
--- a/tokens/transfer-tokens/native/program/Cargo.toml
+++ b/tokens/transfer-tokens/native/program/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
 [dependencies]
 borsh = "0.9.3"
 borsh-derive = "0.9.1"
-solana-program = "1.16.10"
+solana-program = "2.1"
 spl-token = { version="4.0.0", features = [ "no-entrypoint" ] }
 spl-associated-token-account = { version = "2.0.0", features = [ "no-entrypoint" ] }
 mpl-token-metadata = { version="1.11", features = ["no-entrypoint"] }

From b5c9b5e6ec215b8a4bc2a2491f9eb9d80b54c9f4 Mon Sep 17 00:00:00 2001
From: Ayush <ayush-15@live.com>
Date: Tue, 17 Dec 2024 19:05:18 +0530
Subject: [PATCH 2/3] add build and test status badges in Readme

---
 README.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/README.md b/README.md
index b4b59a85a..27125cda7 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,8 @@
 
 ## Onchain program examples for :anchor: Anchor :crab: Native Rust, [TS] TypeScript  and :snake: Python
 
+[![Native](https://github.com/solana-developers/program-examples/actions/workflows/solana-native.yml/badge.svg?event=schedule)](https://github.com/solana-developers/program-examples/actions/workflows/solana-native.yml) [![Anchor](https://github.com/solana-developers/program-examples/actions/workflows/anchor.yml/badge.svg?event=schedule)](https://github.com/solana-developers/program-examples/actions/workflows/anchor.yml) [![Steel](https://github.com/solana-developers/program-examples/actions/workflows/steel.yml/badge.svg?event=schedule)](https://github.com/solana-developers/program-examples/actions/workflows/steel.yml) [![Poseidon](https://github.com/solana-developers/program-examples/actions/workflows/poseidon.yml/badge.svg?event=schedule)](https://github.com/solana-developers/program-examples/actions/workflows/poseidon.yml)
+
 This repo contains Solana onchain programs (referred to as 'Smart Contracts' in other blockchains).
 
 > [!NOTE]

From b74293a140ebb68de420434df65372fa9fffb093 Mon Sep 17 00:00:00 2001
From: Ayush <ayush-15@live.com>
Date: Wed, 18 Dec 2024 17:20:15 +0530
Subject: [PATCH 3/3] update steel CI on 2.1

---
 .github/workflows/steel.yml | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/steel.yml b/.github/workflows/steel.yml
index 86da8c663..94d486cff 100644
--- a/.github/workflows/steel.yml
+++ b/.github/workflows/steel.yml
@@ -252,11 +252,11 @@ jobs:
           # Make the script executable
           chmod +x build_and_test.sh
 
-      - name: Setup Solana stable
+      - name: Setup Solana Beta
         uses: heyAyushh/setup-solana@v5.5
         with:
-          solana-cli-version: stable
-      - name: Build and Test with Stable
+          solana-cli-version: beta
+      - name: Build and Test with Beta
         env:
           SCCACHE_GHA_ENABLED: "true"
           RUSTC_WRAPPER: "sccache"
@@ -265,13 +265,13 @@ jobs:
           solana -V
           rustc -V
           solana-keygen new --no-bip39-passphrase
-          process_projects "stable"
+          process_projects "beta"
           sccache --show-stats
-      - name: Setup Solana 1.18.17
+      - name: Setup Solana Stable
         uses: heyAyushh/setup-solana@v5.5
         with:
-          solana-cli-version: 1.18.17
-      - name: Build and Test with 1.18.17
+          solana-cli-version: stable
+      - name: Build and Test with Stable
         env:
           SCCACHE_GHA_ENABLED: "true"
           RUSTC_WRAPPER: "sccache"
@@ -280,7 +280,7 @@ jobs:
           solana -V
           rustc -V
           solana-keygen new --no-bip39-passphrase --force
-          process_projects "1.18.17"
+          process_projects "stable"
           sccache --show-stats
 
       - name: Set failed projects output