Repository: solana-labs/solana-program-library
Pull request #6188 (2024-01-26 21:34:09)

token js: bump to 0.4.0


Patch:
diff --git a/Cargo.lock b/Cargo.lock
index 4b628d553..eb4bd6bee 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2192,7 +2192,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap 2.0.2",
+ "indexmap 2.2.1",
  "slab",
  "tokio",
  "tokio-util 0.7.1",
@@ -2575,9 +2575,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.0.2"
+version = "2.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
+checksum = "433de089bd45971eecf4668ee0ee8f4cec17db4f8bd8f7bc3197a6ce37aa7d9b"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.1",
@@ -4506,9 +4506,9 @@ checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
 
 [[package]]
 name = "serde"
-version = "1.0.195"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
+checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
 dependencies = [
  "serde_derive",
 ]
@@ -4524,9 +4524,9 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.195"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
+checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4535,9 +4535,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.111"
+version = "1.0.113"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
+checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
 dependencies = [
  "itoa",
  "ryu",
@@ -4576,7 +4576,7 @@ dependencies = [
  "chrono",
  "hex",
  "indexmap 1.9.3",
- "indexmap 2.0.2",
+ "indexmap 2.2.1",
  "serde",
  "serde_json",
  "serde_with_macros 3.5.1",
@@ -4609,11 +4609,11 @@ dependencies = [
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.30"
+version = "0.9.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38"
+checksum = "adf8a49373e98a4c5f0ceb5d05aa7c648d75f63774981ed95b7c7443bbd50c6e"
 dependencies = [
- "indexmap 2.0.2",
+ "indexmap 2.2.1",
  "itoa",
  "ryu",
  "serde",
@@ -5205,7 +5205,7 @@ dependencies = [
  "dashmap 4.0.2",
  "futures 0.3.30",
  "futures-util",
- "indexmap 2.0.2",
+ "indexmap 2.2.1",
  "indicatif",
  "log",
  "quinn",
@@ -5261,7 +5261,7 @@ dependencies = [
  "bincode",
  "crossbeam-channel",
  "futures-util",
- "indexmap 2.0.2",
+ "indexmap 2.2.1",
  "log",
  "rand 0.8.5",
  "rayon",
@@ -5510,7 +5510,7 @@ dependencies = [
  "clap 2.34.0",
  "crossbeam-channel",
  "flate2",
- "indexmap 2.0.2",
+ "indexmap 2.2.1",
  "itertools",
  "log",
  "lru",
@@ -6297,7 +6297,7 @@ dependencies = [
  "crossbeam-channel",
  "futures-util",
  "histogram",
- "indexmap 2.0.2",
+ "indexmap 2.2.1",
  "itertools",
  "libc",
  "log",
@@ -6388,7 +6388,7 @@ dependencies = [
  "async-trait",
  "bincode",
  "futures-util",
- "indexmap 2.0.2",
+ "indexmap 2.2.1",
  "indicatif",
  "log",
  "rayon",
@@ -6647,7 +6647,7 @@ dependencies = [
  "num-traits",
  "solana-program",
  "spl-token 4.0.0",
- "spl-token-2022 1.0.0",
+ "spl-token-2022 2.0.0",
  "thiserror",
 ]
 
@@ -6660,7 +6660,7 @@ dependencies = [
  "solana-sdk",
  "spl-associated-token-account 2.3.0",
  "spl-token 4.0.0",
- "spl-token-2022 1.0.0",
+ "spl-token-2022 2.0.0",
 ]
 
 [[package]]
@@ -7222,7 +7222,7 @@ dependencies = [
  "spl-math",
  "spl-pod 0.1.0",
  "spl-token 4.0.0",
- "spl-token-2022 1.0.0",
+ "spl-token-2022 2.0.0",
  "test-case",
  "thiserror",
 ]
@@ -7341,7 +7341,7 @@ dependencies = [
 
 [[package]]
 name = "spl-token-2022"
-version = "1.0.0"
+version = "2.0.0"
 dependencies = [
  "arrayref",
  "base64 0.21.7",
@@ -7386,7 +7386,7 @@ dependencies = [
  "spl-memo 4.0.0",
  "spl-pod 0.1.0",
  "spl-tlv-account-resolution 0.5.1",
- "spl-token-2022 1.0.0",
+ "spl-token-2022 2.0.0",
  "spl-token-client",
  "spl-token-group-interface",
  "spl-token-metadata-interface 0.2.0",
@@ -7423,12 +7423,12 @@ dependencies = [
  "spl-associated-token-account 2.3.0",
  "spl-memo 4.0.0",
  "spl-token 4.0.0",
- "spl-token-2022 1.0.0",
+ "spl-token-2022 2.0.0",
  "spl-token-client",
  "spl-token-group-interface",
  "spl-token-metadata-interface 0.2.0",
- "strum 0.25.0",
- "strum_macros 0.25.3",
+ "strum 0.26.1",
+ "strum_macros 0.26.1",
  "tempfile",
  "tokio",
  "walkdir",
@@ -7451,7 +7451,7 @@ dependencies = [
  "spl-associated-token-account 2.3.0",
  "spl-memo 4.0.0",
  "spl-token 4.0.0",
- "spl-token-2022 1.0.0",
+ "spl-token-2022 2.0.0",
  "spl-token-group-interface",
  "spl-token-metadata-interface 0.2.0",
  "spl-transfer-hook-interface 0.5.0",
@@ -7468,7 +7468,7 @@ dependencies = [
  "spl-discriminator 0.1.0",
  "spl-pod 0.1.0",
  "spl-program-error 0.3.0",
- "spl-token-2022 1.0.0",
+ "spl-token-2022 2.0.0",
  "spl-token-client",
  "spl-token-group-example",
  "spl-token-group-interface",
@@ -7485,7 +7485,7 @@ dependencies = [
  "solana-sdk",
  "spl-discriminator 0.1.0",
  "spl-pod 0.1.0",
- "spl-token-2022 1.0.0",
+ "spl-token-2022 2.0.0",
  "spl-token-client",
  "spl-token-group-interface",
  "spl-token-metadata-interface 0.2.0",
@@ -7545,7 +7545,7 @@ dependencies = [
  "solana-program-test",
  "solana-sdk",
  "spl-pod 0.1.0",
- "spl-token-2022 1.0.0",
+ "spl-token-2022 2.0.0",
  "spl-token-client",
  "spl-token-metadata-interface 0.2.0",
  "spl-type-length-value 0.3.0",
@@ -7595,7 +7595,7 @@ dependencies = [
  "solana-sdk",
  "spl-math",
  "spl-token 4.0.0",
- "spl-token-2022 1.0.0",
+ "spl-token-2022 2.0.0",
  "test-case",
  "thiserror",
 ]
@@ -7623,7 +7623,7 @@ dependencies = [
  "solana-program-test",
  "solana-sdk",
  "spl-token 4.0.0",
- "spl-token-2022 1.0.0",
+ "spl-token-2022 2.0.0",
  "spl-token-client",
  "test-case",
  "thiserror",
@@ -7644,7 +7644,7 @@ dependencies = [
  "solana-test-validator",
  "spl-associated-token-account 2.3.0",
  "spl-token 4.0.0",
- "spl-token-2022 1.0.0",
+ "spl-token-2022 2.0.0",
  "spl-token-client",
  "spl-token-upgrade",
  "tokio",
@@ -7660,7 +7660,7 @@ dependencies = [
  "solana-program",
  "spl-associated-token-account 2.3.0",
  "spl-token 4.0.0",
- "spl-token-2022 1.0.0",
+ "spl-token-2022 2.0.0",
  "thiserror",
 ]
 
@@ -7681,11 +7681,11 @@ dependencies = [
  "solana-sdk",
  "solana-test-validator",
  "spl-tlv-account-resolution 0.5.1",
- "spl-token-2022 1.0.0",
+ "spl-token-2022 2.0.0",
  "spl-token-client",
  "spl-transfer-hook-interface 0.5.0",
- "strum 0.25.0",
- "strum_macros 0.25.3",
+ "strum 0.26.1",
+ "strum_macros 0.26.1",
  "tokio",
 ]
 
@@ -7698,7 +7698,7 @@ dependencies = [
  "solana-program-test",
  "solana-sdk",
  "spl-tlv-account-resolution 0.5.1",
- "spl-token-2022 1.0.0",
+ "spl-token-2022 2.0.0",
  "spl-transfer-hook-interface 0.5.0",
  "spl-type-length-value 0.3.0",
 ]
@@ -7831,9 +7831,9 @@ dependencies = [
 
 [[package]]
 name = "strum"
-version = "0.25.0"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f"
 
 [[package]]
 name = "strum_macros"
@@ -7850,9 +7850,9 @@ dependencies = [
 
 [[package]]
 name = "strum_macros"
-version = "0.25.3"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
+checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18"
 dependencies = [
  "heck 0.4.1",
  "proc-macro2",
diff --git a/associated-token-account/program/Cargo.toml b/associated-token-account/program/Cargo.toml
index ee8be510b..40eb80c7c 100644
--- a/associated-token-account/program/Cargo.toml
+++ b/associated-token-account/program/Cargo.toml
@@ -18,7 +18,7 @@ num-derive = "0.4"
 num-traits = "0.2"
 solana-program = ">=1.17.13,<=2"
 spl-token = { version = "4.0", path = "../../token/program", features = ["no-entrypoint"] }
-spl-token-2022 = { version = "1.0", path = "../../token/program-2022", features = ["no-entrypoint"] }
+spl-token-2022 = { version = "2.0", path = "../../token/program-2022", features = ["no-entrypoint"] }
 thiserror = "1.0"
 
 [lib]
diff --git a/governance/addin-mock/program/Cargo.toml b/governance/addin-mock/program/Cargo.toml
index 9f3d279f5..3e6cf666f 100644
--- a/governance/addin-mock/program/Cargo.toml
+++ b/governance/addin-mock/program/Cargo.toml
@@ -17,7 +17,7 @@ bincode = "1.3.2"
 borsh = "0.10"
 num-derive = "0.4"
 num-traits = "0.2"
-serde = "1.0.195"
+serde = "1.0.196"
 serde_derive = "1.0.103"
 solana-program = ">=1.17.13,<=2"
 spl-token = { version = "4.0", path = "../../../token/program", features = [
diff --git a/governance/chat/program/Cargo.toml b/governance/chat/program/Cargo.toml
index 573267f38..45096bb5d 100644
--- a/governance/chat/program/Cargo.toml
+++ b/governance/chat/program/Cargo.toml
@@ -17,7 +17,7 @@ bincode = "1.3.2"
 borsh = "0.10"
 num-derive = "0.4"
 num-traits = "0.2"
-serde = "1.0.195"
+serde = "1.0.196"
 serde_derive = "1.0.103"
 solana-program = ">=1.17.13,<=2"
 spl-token = { version = "4.0", path = "../../../token/program", features = [
diff --git a/governance/program/Cargo.toml b/governance/program/Cargo.toml
index 71ff48c83..0244335ff 100644
--- a/governance/program/Cargo.toml
+++ b/governance/program/Cargo.toml
@@ -17,7 +17,7 @@ bincode = "1.3.2"
 borsh = "0.10"
 num-derive = "0.4"
 num-traits = "0.2"
-serde = "1.0.195"
+serde = "1.0.196"
 serde_derive = "1.0.103"
 solana-program = ">=1.17.13,<=2"
 spl-token = { version = "4.0", path = "../../token/program", features = [
diff --git a/governance/tools/Cargo.toml b/governance/tools/Cargo.toml
index 9c1306ac2..5e188a153 100644
--- a/governance/tools/Cargo.toml
+++ b/governance/tools/Cargo.toml
@@ -13,7 +13,7 @@ bincode = "1.3.2"
 borsh = "0.10"
 num-derive = "0.4"
 num-traits = "0.2"
-serde = "1.0.195"
+serde = "1.0.196"
 serde_derive = "1.0.103"
 solana-program = ">=1.17.13,<=2"
 spl-token = { version = "4.0", path = "../../token/program", features = [
diff --git a/libraries/pod/Cargo.toml b/libraries/pod/Cargo.toml
index b5223002b..cafb895e7 100644
--- a/libraries/pod/Cargo.toml
+++ b/libraries/pod/Cargo.toml
@@ -15,13 +15,13 @@ borsh = ["dep:borsh"]
 base64 = { version = "0.21.7", optional = true }
 borsh = { version = "0.10", optional = true }
 bytemuck = { version = "1.14.1" }
-serde = { version = "1.0.195", optional = true }
+serde = { version = "1.0.196", optional = true }
 solana-program = ">=1.17.13,<=2"
 solana-zk-token-sdk = ">=1.17.13,<=2"
 spl-program-error = { version = "0.3", path = "../program-error" }
 
 [dev-dependencies]
-serde_json = "1.0.111"
+serde_json = "1.0.113"
 
 [lib]
 crate-type = ["cdylib", "lib"]
diff --git a/libraries/tlv-account-resolution/Cargo.toml b/libraries/tlv-account-resolution/Cargo.toml
index fad2f81e5..f0d0001e8 100644
--- a/libraries/tlv-account-resolution/Cargo.toml
+++ b/libraries/tlv-account-resolution/Cargo.toml
@@ -13,7 +13,7 @@ test-sbf = []
 
 [dependencies]
 bytemuck = { version = "1.14.1", features = ["derive"] }
-serde = { version = "1.0.195", optional = true }
+serde = { version = "1.0.196", optional = true }
 solana-program = ">=1.17.13,<=2"
 spl-discriminator = { version = "0.1", path = "../discriminator" }
 spl-program-error = { version = "0.3", path = "../program-error" }
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 443dd7392..2730ad53a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,5 +1,9 @@
 lockfileVersion: '6.0'
 
+settings:
+  autoInstallPeers: true
+  excludeLinksFromLockfile: false
+
 importers:
 
   .:
@@ -392,7 +396,7 @@ importers:
         specifier: ^4.0.1
         version: 4.0.1
       '@solana/spl-token':
-        specifier: 0.3.11
+        specifier: 0.4.0
         version: link:../../token/js
       '@solana/web3.js':
         specifier: ^1.89.1
@@ -581,7 +585,7 @@ importers:
         specifier: ^11.1.6
         version: 11.1.6(rollup@4.9.6)(tslib@2.6.2)(typescript@5.3.3)
       '@solana/spl-token':
-        specifier: 0.3.11
+        specifier: 0.4.0
         version: link:../../token/js
       '@solana/web3.js':
         specifier: ^1.89.1
@@ -721,7 +725,7 @@ importers:
         version: 0.2.0
     devDependencies:
       '@solana/spl-token':
-        specifier: 0.3.11
+        specifier: 0.4.0
         version: link:../../token/js
       '@solana/web3.js':
         specifier: ^1.89.1
@@ -8116,7 +8120,3 @@ packages:
     resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
     engines: {node: '>=10'}
     dev: true
-
-settings:
-  autoInstallPeers: true
-  excludeLinksFromLockfile: false
diff --git a/single-pool/cli/Cargo.toml b/single-pool/cli/Cargo.toml
index 3736e9321..abb8b5988 100644
--- a/single-pool/cli/Cargo.toml
+++ b/single-pool/cli/Cargo.toml
@@ -13,9 +13,9 @@ clap = { version = "3.2.23", features = ["derive"] }
 console = "0.15.8"
 borsh = "0.10"
 bincode = "1.3.1"
-serde = "1.0.195"
+serde = "1.0.196"
 serde_derive = "1.0.103"
-serde_json = "1.0.111"
+serde_json = "1.0.113"
 serde_with = "3.5.1"
 solana-account-decoder = ">=1.17.13,<=2"
 solana-clap-v3-utils = ">=1.17.13,<=2"
diff --git a/stake-pool/cli/Cargo.toml b/stake-pool/cli/Cargo.toml
index 4e4f7aca5..925212480 100644
--- a/stake-pool/cli/Cargo.toml
+++ b/stake-pool/cli/Cargo.toml
@@ -11,9 +11,9 @@ version = "1.0.0"
 [dependencies]
 borsh = "0.10"
 clap = "2.33.3"
-serde = "1.0.195"
+serde = "1.0.196"
 serde_derive = "1.0.130"
-serde_json = "1.0.111"
+serde_json = "1.0.113"
 solana-account-decoder = ">=1.17.13,<=2"
 solana-clap-utils = ">=1.17.13,<=2"
 solana-cli-config = ">=1.17.13,<=2"
diff --git a/stake-pool/js/package.json b/stake-pool/js/package.json
index bcdb744f9..5dbd22d9e 100644
--- a/stake-pool/js/package.json
+++ b/stake-pool/js/package.json
@@ -45,7 +45,7 @@
   "dependencies": {
     "@coral-xyz/borsh": "^0.29.0",
     "@solana/buffer-layout": "^4.0.1",
-    "@solana/spl-token": "0.3.11",
+    "@solana/spl-token": "0.4.0",
     "@solana/web3.js": "^1.89.1",
     "bn.js": "^5.2.0",
     "buffer": "^6.0.3",
diff --git a/stake-pool/program/Cargo.toml b/stake-pool/program/Cargo.toml
index 27af4783a..865e2928e 100644
--- a/stake-pool/program/Cargo.toml
+++ b/stake-pool/program/Cargo.toml
@@ -18,13 +18,13 @@ bytemuck = "1.14"
 num-derive = "0.4"
 num-traits = "0.2"
 num_enum = "0.7.2"
-serde = "1.0.195"
+serde = "1.0.196"
 serde_derive = "1.0.103"
 solana-program = ">=1.17.13,<=2"
 solana-security-txt = "1.1.1"
 spl-math = { version = "0.2", path = "../../libraries/math", features = [ "no-entrypoint" ] }
 spl-pod = { version = "0.1", path = "../../libraries/pod", features = ["borsh"] }
-spl-token-2022 = { version = "1.0", path = "../../token/program-2022", features = [ "no-entrypoint" ] }
+spl-token-2022 = { version = "2.0", path = "../../token/program-2022", features = [ "no-entrypoint" ] }
 thiserror = "1.0"
 bincode = "1.3.1"
 
diff --git a/stake-pool/py/stake_pool/state.py b/stake-pool/py/stake_pool/state.py
index b963e7a28..36be8a11d 100644
--- a/stake-pool/py/stake_pool/state.py
+++ b/stake-pool/py/stake_pool/state.py
@@ -179,7 +179,6 @@ class ValidatorList(NamedTuple):
     def decode(cls, data: str, encoding: str):
         data_bytes = decode_byte_string(data, encoding)
         parsed = DECODE_VALIDATOR_LIST_LAYOUT.parse(data_bytes)
-        print(parsed)
         return ValidatorList(
             max_validators=parsed['max_validators'],
             validators=[ValidatorStakeInfo.decode_container(container) for container in parsed['validators']],
diff --git a/token-collection/program/Cargo.toml b/token-collection/program/Cargo.toml
index b6a9f9253..2fb4b454f 100644
--- a/token-collection/program/Cargo.toml
+++ b/token-collection/program/Cargo.toml
@@ -15,7 +15,7 @@ test-sbf = []
 solana-program = ">=1.17.13,<=2"
 spl-pod = { version = "0.1.0", path = "../../libraries/pod" }
 spl-program-error = { version = "0.3.0" , path = "../../libraries/program-error" }
-spl-token-2022 = { version = "1.0", path = "../../token/program-2022", features = ["no-entrypoint"] }
+spl-token-2022 = { version = "2.0", path = "../../token/program-2022", features = ["no-entrypoint"] }
 spl-token-group-example = { version = "0.1.0", path = "../../token-group/example", features = ["no-entrypoint"] }
 spl-token-group-interface = { version = "0.1.0", path = "../../token-group/interface" }
 spl-token-metadata-interface = { version = "0.2", path = "../../token-metadata/interface" }
diff --git a/token-group/example/Cargo.toml b/token-group/example/Cargo.toml
index aa7754dfd..d52560f18 100644
--- a/token-group/example/Cargo.toml
+++ b/token-group/example/Cargo.toml
@@ -14,7 +14,7 @@ test-sbf = []
 [dependencies]
 solana-program = ">=1.17.13,<=2"
 spl-pod = { version = "0.1.0", path = "../../libraries/pod" }
-spl-token-2022 = { version = "1.0", path = "../../token/program-2022", features = ["no-entrypoint"] }
+spl-token-2022 = { version = "2.0", path = "../../token/program-2022", features = ["no-entrypoint"] }
 spl-token-group-interface = { version = "0.1.0", path = "../interface" }
 spl-type-length-value = { version = "0.3.0", path = "../../libraries/type-length-value" }
 
diff --git a/token-lending/js/package.json b/token-lending/js/package.json
index 18e99e902..7a5b8313d 100644
--- a/token-lending/js/package.json
+++ b/token-lending/js/package.json
@@ -37,14 +37,14 @@
         "bignumber.js": "^9.0.1"
     },
     "peerDependencies": {
-        "@solana/spl-token": "0.3.11",
+        "@solana/spl-token": "0.4.0",
         "@solana/web3.js": "^1.20.0"
     },
     "devDependencies": {
         "@rollup/plugin-commonjs": "^25.0.0",
         "@rollup/plugin-node-resolve": "^15.0.2",
         "@rollup/plugin-typescript": "^11.1.6",
-        "@solana/spl-token": "0.3.11",
+        "@solana/spl-token": "0.4.0",
         "@solana/web3.js": "^1.89.1",
         "@types/eslint": "^8.56.2",
         "@types/eslint-plugin-prettier": "^3.1.0",
diff --git a/token-metadata/example/Cargo.toml b/token-metadata/example/Cargo.toml
index c689e8894..df87f2485 100644
--- a/token-metadata/example/Cargo.toml
+++ b/token-metadata/example/Cargo.toml
@@ -13,7 +13,7 @@ test-sbf = []
 
 [dependencies]
 solana-program = ">=1.17.13,<=2"
-spl-token-2022 = { version = "1.0", path = "../../token/program-2022", features = ["no-entrypoint"] }
+spl-token-2022 = { version = "2.0", path = "../../token/program-2022", features = ["no-entrypoint"] }
 spl-token-metadata-interface = { version = "0.2.0", path = "../interface" }
 spl-type-length-value = { version = "0.3.0" , path = "../../libraries/type-length-value" }
 spl-pod = { version = "0.1.0", path = "../../libraries/pod" }
diff --git a/token-metadata/interface/Cargo.toml b/token-metadata/interface/Cargo.toml
index d0fe6e128..816616bef 100644
--- a/token-metadata/interface/Cargo.toml
+++ b/token-metadata/interface/Cargo.toml
@@ -12,7 +12,7 @@ serde-traits = ["dep:serde", "spl-pod/serde-traits"]
 
 [dependencies]
 borsh = "0.10"
-serde = { version = "1.0.195", optional = true }
+serde = { version = "1.0.196", optional = true }
 solana-program = ">=1.17.13,<=2"
 spl-discriminator = { version = "0.1" , path = "../../libraries/discriminator" }
 spl-program-error = { version = "0.3" , path = "../../libraries/program-error" }
@@ -20,7 +20,7 @@ spl-type-length-value = { version = "0.3", path = "../../libraries/type-length-v
 spl-pod = { version = "0.1", path = "../../libraries/pod", features = ["borsh"] }
 
 [dev-dependencies]
-serde_json = "1.0.111"
+serde_json = "1.0.113"
 
 [lib]
 crate-type = ["cdylib", "lib"]
diff --git a/token-swap/js/package.json b/token-swap/js/package.json
index 0e1278f2a..ea52ad0a0 100644
--- a/token-swap/js/package.json
+++ b/token-swap/js/package.json
@@ -52,7 +52,7 @@
     "@solana/web3.js": "^1.89.1"
   },
   "devDependencies": {
-    "@solana/spl-token": "0.3.11",
+    "@solana/spl-token": "0.4.0",
     "@solana/web3.js": "^1.89.1",
     "@types/bn.js": "^5.1.0",
     "@types/chai-as-promised": "^7.1.4",
diff --git a/token-swap/program/Cargo.toml b/token-swap/program/Cargo.toml
index 908abf2c9..89f9e140b 100644
--- a/token-swap/program/Cargo.toml
+++ b/token-swap/program/Cargo.toml
@@ -20,7 +20,7 @@ num-traits = "0.2"
 solana-program = ">=1.17.13,<=2"
 spl-math = { version = "0.2", path = "../../libraries/math", features = [ "no-entrypoint" ] }
 spl-token = { version = "4.0", path = "../../token/program", features = [ "no-entrypoint" ] }
-spl-token-2022 = { version = "1.0", path = "../../token/program-2022", features = [ "no-entrypoint" ] }
+spl-token-2022 = { version = "2.0", path = "../../token/program-2022", features = [ "no-entrypoint" ] }
 thiserror = "1.0"
 arbitrary = { version = "1.3", features = ["derive"], optional = true }
 roots = { version = "0.0.8", optional = true }
diff --git a/token-upgrade/cli/Cargo.toml b/token-upgrade/cli/Cargo.toml
index fc6f6cc53..5f10a68f2 100644
--- a/token-upgrade/cli/Cargo.toml
+++ b/token-upgrade/cli/Cargo.toml
@@ -21,7 +21,7 @@ solana-remote-wallet = ">=1.17.13,<=2"
 solana-sdk = ">=1.17.13,<=2"
 spl-associated-token-account = { version = "2.0", path = "../../associated-token-account/program", features = ["no-entrypoint"] }
 spl-token = { version = "4.0", path = "../../token/program", features = ["no-entrypoint"] }
-spl-token-2022 = { version = "1.0", path = "../../token/program-2022", features = ["no-entrypoint"] }
+spl-token-2022 = { version = "2.0", path = "../../token/program-2022", features = ["no-entrypoint"] }
 spl-token-client = { version = "0.8", path = "../../token/client" }
 spl-token-upgrade = { version = "0.1", path = "../program", features = ["no-entrypoint"] }
 tokio = { version = "1", features = ["full"] }
diff --git a/token-upgrade/program/Cargo.toml b/token-upgrade/program/Cargo.toml
index 26e3f1e63..7ee5fcb16 100644
--- a/token-upgrade/program/Cargo.toml
+++ b/token-upgrade/program/Cargo.toml
@@ -16,7 +16,7 @@ num-derive = "0.4"
 num-traits = "0.2"
 num_enum = "0.7.2"
 solana-program = ">=1.17.13,<=2"
-spl-token-2022 = { version = "1.0", path = "../../token/program-2022", features = ["no-entrypoint"] }
+spl-token-2022 = { version = "2.0", path = "../../token/program-2022", features = ["no-entrypoint"] }
 thiserror = "1.0"
 
 [dev-dependencies]
diff --git a/token-wrap/program/Cargo.toml b/token-wrap/program/Cargo.toml
index 8f6a6587f..f72473bde 100644
--- a/token-wrap/program/Cargo.toml
+++ b/token-wrap/program/Cargo.toml
@@ -17,7 +17,7 @@ num_enum = "0.7"
 solana-program = ">=1.17.13,<=2"
 spl-associated-token-account = { version = "2.0", path = "../../associated-token-account/program", features = ["no-entrypoint"] }
 spl-token = { version = "4.0", path = "../../token/program", features = ["no-entrypoint"] }
-spl-token-2022 = { version = "1.0", path = "../../token/program-2022", features = ["no-entrypoint"] }
+spl-token-2022 = { version = "2.0", path = "../../token/program-2022", features = ["no-entrypoint"] }
 thiserror = "1.0"
 
 [lib]
diff --git a/token/cli/Cargo.toml b/token/cli/Cargo.toml
index 9ed987344..0583b4fa0 100644
--- a/token/cli/Cargo.toml
+++ b/token/cli/Cargo.toml
@@ -16,9 +16,9 @@ base64 = "0.21.7"
 clap = "2.33.3"
 console = "0.15.8"
 futures = "0.3"
-serde = "1.0.195"
+serde = "1.0.196"
 serde_derive = "1.0.103"
-serde_json = "1.0.111"
+serde_json = "1.0.113"
 solana-account-decoder = ">=1.17.13,<=2"
 solana-clap-utils = ">=1.17.13,<=2"
 solana-cli-config = ">=1.17.13,<=2"
@@ -31,7 +31,7 @@ solana-transaction-status = ">=1.17.13,<=2"
 spl-token = { version = "4.0", path = "../program", features = [
   "no-entrypoint",
 ] }
-spl-token-2022 = { version = "1.0", path = "../program-2022", features = [
+spl-token-2022 = { version = "2.0", path = "../program-2022", features = [
   "no-entrypoint",
 ] }
 spl-token-client = { version = "0.8", path = "../client" }
@@ -43,8 +43,8 @@ spl-associated-token-account = { version = "2.0", path = "../../associated-token
 spl-memo = { version = "4.0.0", path = "../../memo/program", features = [
   "no-entrypoint",
 ] }
-strum = "0.25"
-strum_macros = "0.25"
+strum = "0.26"
+strum_macros = "0.26"
 tokio = "1.35"
 
 [dev-dependencies]
diff --git a/token/client/Cargo.toml b/token/client/Cargo.toml
index 1cd9653cf..31ca0b806 100644
--- a/token/client/Cargo.toml
+++ b/token/client/Cargo.toml
@@ -23,7 +23,7 @@ solana-sdk = ">=1.17.13,<=2"
 spl-associated-token-account = { version = "2.0", path = "../../associated-token-account/program", features = ["no-entrypoint"] }
 spl-memo = { version = "4.0.0", path = "../../memo/program", features = ["no-entrypoint"] }
 spl-token = { version = "4.0", path="../program", features = [ "no-entrypoint" ] }
-spl-token-2022 = { version = "1.0", path="../program-2022" }
+spl-token-2022 = { version = "2.0", path="../program-2022" }
 spl-token-group-interface = { version = "0.1", path="../../token-group/interface" }
 spl-token-metadata-interface = { version = "0.2", path="../../token-metadata/interface" }
 spl-transfer-hook-interface = { version = "0.5", path="../transfer-hook/interface" }
diff --git a/token/js/package.json b/token/js/package.json
index 8edf5237a..0f05c94eb 100644
--- a/token/js/package.json
+++ b/token/js/package.json
@@ -1,7 +1,7 @@
 {
     "name": "@solana/spl-token",
     "description": "SPL Token Program JS API",
-    "version": "0.3.11",
+    "version": "0.4.0",
     "author": "Solana Labs Maintainers <maintainers@solanalabs.com>",
     "repository": "https://github.com/solana-labs/solana-program-library",
     "license": "Apache-2.0",
diff --git a/token/program-2022/Cargo.toml b/token/program-2022/Cargo.toml
index e2e9342f1..31f0366bc 100644
--- a/token/program-2022/Cargo.toml
+++ b/token/program-2022/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "spl-token-2022"
-version = "1.0.0"
+version = "2.0.0"
 description = "Solana Program Library Token 2022"
 authors = ["Solana Labs Maintainers <maintainers@solanalabs.com>"]
 repository = "https://github.com/solana-labs/solana-program-library"
@@ -37,7 +37,7 @@ spl-transfer-hook-interface = { version = "0.5.0", path = "../transfer-hook/inte
 spl-type-length-value = { version = "0.3.0", path = "../../libraries/type-length-value" }
 spl-pod = { version = "0.1.0", path = "../../libraries/pod" }
 thiserror = "1.0"
-serde = { version = "1.0.195", optional = true }
+serde = { version = "1.0.196", optional = true }
 serde_with = { version = "3.5.1", optional = true }
 base64 = { version = "0.21.7", optional = true }
 
@@ -48,7 +48,7 @@ serial_test = "3.0.0"
 solana-program-test = ">=1.17.13,<=2"
 solana-sdk = ">=1.17.13,<=2"
 spl-tlv-account-resolution = { version = "0.5.0", path = "../../libraries/tlv-account-resolution" }
-serde_json = "1.0.111"
+serde_json = "1.0.113"
 
 [lib]
 crate-type = ["cdylib", "lib"]
diff --git a/token/transfer-hook/cli/Cargo.toml b/token/transfer-hook/cli/Cargo.toml
index fb236712f..db0761d59 100644
--- a/token/transfer-hook/cli/Cargo.toml
+++ b/token/transfer-hook/cli/Cargo.toml
@@ -19,16 +19,16 @@ solana-remote-wallet = ">=1.17.13,<=2"
 solana-sdk = ">=1.17.13,<=2"
 spl-transfer-hook-interface = { version = "0.5", path = "../interface" }
 spl-tlv-account-resolution = { version = "0.5.1" , path = "../../../libraries/tlv-account-resolution", features = ["serde-traits"] }
-strum = "0.25"
-strum_macros = "0.25"
+strum = "0.26"
+strum_macros = "0.26"
 tokio = { version = "1", features = ["full"] }
-serde = { version = "1.0.195", features = ["derive"] }
-serde_json = "1.0.108"
-serde_yaml = "0.9.30"
+serde = { version = "1.0.196", features = ["derive"] }
+serde_json = "1.0.113"
+serde_yaml = "0.9.31"
 
 [dev-dependencies]
 solana-test-validator = ">=1.17.13,<=2"
-spl-token-2022 = { version = "1.0", path = "../../program-2022", features = ["no-entrypoint"] }
+spl-token-2022 = { version = "2.0", path = "../../program-2022", features = ["no-entrypoint"] }
 spl-token-client = { version = "0.8", path = "../../client" }
 
 [[bin]]
diff --git a/token/transfer-hook/example/Cargo.toml b/token/transfer-hook/example/Cargo.toml
index d52b89a65..49513f6ee 100644
--- a/token/transfer-hook/example/Cargo.toml
+++ b/token/transfer-hook/example/Cargo.toml
@@ -15,7 +15,7 @@ test-sbf = []
 arrayref = "0.3.7"
 solana-program = ">=1.17.13,<=2"
 spl-tlv-account-resolution = { version = "0.5" , path = "../../../libraries/tlv-account-resolution" }
-spl-token-2022 = { version = "1.0",  path = "../../program-2022", features = ["no-entrypoint"] }
+spl-token-2022 = { version = "2.0",  path = "../../program-2022", features = ["no-entrypoint"] }
 spl-transfer-hook-interface = { version = "0.5" , path = "../interface" }
 spl-type-length-value = { version = "0.3" , path = "../../../libraries/type-length-value" }
 


Test patch:
diff --git a/associated-token-account/program-test/Cargo.toml b/associated-token-account/program-test/Cargo.toml
index 99deced71..3f3aec5ed 100644
--- a/associated-token-account/program-test/Cargo.toml
+++ b/associated-token-account/program-test/Cargo.toml
@@ -16,4 +16,4 @@ solana-program-test = ">=1.17.13,<=2"
 solana-sdk = ">=1.17.13,<=2"
 spl-associated-token-account = { version = "2", path = "../program", features = ["no-entrypoint"] }
 spl-token = { version = "4.0", path = "../../token/program", features = ["no-entrypoint"] }
-spl-token-2022 = { version = "1.0", path = "../../token/program-2022", features = ["no-entrypoint"] }
+spl-token-2022 = { version = "2.0", path = "../../token/program-2022", features = ["no-entrypoint"] }
diff --git a/governance/test-sdk/Cargo.toml b/governance/test-sdk/Cargo.toml
index d76fe9c4b..32d864596 100644
--- a/governance/test-sdk/Cargo.toml
+++ b/governance/test-sdk/Cargo.toml
@@ -14,7 +14,7 @@ borsh = "0.10"
 lazy_static = "1.4.0"
 num-derive = "0.4"
 num-traits = "0.2"
-serde = "1.0.195"
+serde = "1.0.196"
 serde_derive = "1.0.103"
 solana-program = ">=1.17.13,<=2"
 solana-program-test = ">=1.17.13,<=2"
diff --git a/token/program-2022-test/Cargo.toml b/token/program-2022-test/Cargo.toml
index cae88874b..9f4c6d07c 100644
--- a/token/program-2022-test/Cargo.toml
+++ b/token/program-2022-test/Cargo.toml
@@ -25,7 +25,7 @@ solana-sdk = ">=1.17.13,<=2"
 spl-associated-token-account = { version = "2.0", path = "../../associated-token-account/program" }
 spl-memo = { version = "4.0.0", path = "../../memo/program", features = ["no-entrypoint"] }
 spl-pod = { version = "0.1.0", path = "../../libraries/pod" }
-spl-token-2022 = { version = "1.0", path="../program-2022", features = ["no-entrypoint"] }
+spl-token-2022 = { version = "2.0", path="../program-2022", features = ["no-entrypoint"] }
 spl-instruction-padding = { version = "0.1.0", path="../../instruction-padding/program", features = ["no-entrypoint"] }
 spl-tlv-account-resolution = { version = "0.5.0", path = "../../libraries/tlv-account-resolution" }
 spl-token-client = { version = "0.8", path = "../client" }