Repository: solana-labs/solana-program-library
Pull request #5970 (2023-12-09 08:26:22)

transfer hook: bump
After #5894 we need to bump the versions for Transfer Hook interface & example, then push some new cratez!


Patch:
diff --git a/Cargo.lock b/Cargo.lock
index db464d88d..961795ced 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -7330,7 +7330,7 @@ dependencies = [
  "spl-pod 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "spl-token 4.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "spl-token-metadata-interface 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "spl-transfer-hook-interface 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "spl-transfer-hook-interface 0.3.0",
  "spl-type-length-value 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "thiserror",
 ]
@@ -7361,7 +7361,7 @@ dependencies = [
  "spl-token 4.0.0",
  "spl-token-group-interface",
  "spl-token-metadata-interface 0.2.0",
- "spl-transfer-hook-interface 0.3.0",
+ "spl-transfer-hook-interface 0.4.0",
  "spl-type-length-value 0.3.0",
  "thiserror",
 ]
@@ -7385,7 +7385,7 @@ dependencies = [
  "spl-token-group-interface",
  "spl-token-metadata-interface 0.2.0",
  "spl-transfer-hook-example",
- "spl-transfer-hook-interface 0.3.0",
+ "spl-transfer-hook-interface 0.4.0",
  "test-case",
  "walkdir",
 ]
@@ -7447,7 +7447,7 @@ dependencies = [
  "spl-token-2022 1.0.0",
  "spl-token-group-interface",
  "spl-token-metadata-interface 0.2.0",
- "spl-transfer-hook-interface 0.3.0",
+ "spl-transfer-hook-interface 0.4.0",
  "thiserror",
 ]
 
@@ -7673,7 +7673,7 @@ dependencies = [
  "spl-tlv-account-resolution 0.4.0",
  "spl-token-2022 1.0.0",
  "spl-token-client",
- "spl-transfer-hook-interface 0.3.0",
+ "spl-transfer-hook-interface 0.4.0",
  "strum 0.25.0",
  "strum_macros 0.25.3",
  "tokio",
@@ -7681,7 +7681,7 @@ dependencies = [
 
 [[package]]
 name = "spl-transfer-hook-example"
-version = "0.3.0"
+version = "0.4.0"
 dependencies = [
  "arrayref",
  "solana-program",
@@ -7689,38 +7689,38 @@ dependencies = [
  "solana-sdk",
  "spl-tlv-account-resolution 0.4.0",
  "spl-token-2022 1.0.0",
- "spl-transfer-hook-interface 0.3.0",
+ "spl-transfer-hook-interface 0.4.0",
  "spl-type-length-value 0.3.0",
 ]
 
 [[package]]
 name = "spl-transfer-hook-interface"
 version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "051d31803f873cabe71aec3c1b849f35248beae5d19a347d93a5c9cccc5d5a9b"
 dependencies = [
  "arrayref",
  "bytemuck",
  "solana-program",
- "spl-discriminator 0.1.0",
- "spl-pod 0.1.0",
- "spl-program-error 0.3.0",
- "spl-tlv-account-resolution 0.4.0",
- "spl-type-length-value 0.3.0",
+ "spl-discriminator 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "spl-pod 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "spl-program-error 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "spl-tlv-account-resolution 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "spl-type-length-value 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "spl-transfer-hook-interface"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "051d31803f873cabe71aec3c1b849f35248beae5d19a347d93a5c9cccc5d5a9b"
+version = "0.4.0"
 dependencies = [
  "arrayref",
  "bytemuck",
  "solana-program",
- "spl-discriminator 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "spl-pod 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "spl-program-error 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "spl-tlv-account-resolution 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "spl-type-length-value 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "spl-discriminator 0.1.0",
+ "spl-pod 0.1.0",
+ "spl-program-error 0.3.0",
+ "spl-tlv-account-resolution 0.4.0",
+ "spl-type-length-value 0.3.0",
 ]
 
 [[package]]
@@ -8181,9 +8181,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
 
 [[package]]
 name = "tokio"
-version = "1.34.0"
+version = "1.35.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9"
+checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c"
 dependencies = [
  "backtrace",
  "bytes",
diff --git a/account-compression/sdk/package.json b/account-compression/sdk/package.json
index 36d4ee3f8..93a10d57b 100644
--- a/account-compression/sdk/package.json
+++ b/account-compression/sdk/package.json
@@ -91,7 +91,7 @@
     "start-server-and-test": "^2.0.3",
     "ts-jest": "^29.0.0",
     "ts-jest-resolver": "^2.0.1",
-    "ts-node": "^10.9.1",
+    "ts-node": "^10.9.2",
     "typedoc": "^0.25.4",
     "typescript": "5.3.3"
   },
diff --git a/libraries/concurrent-merkle-tree/Cargo.toml b/libraries/concurrent-merkle-tree/Cargo.toml
index 619d78bea..fdc9ef31c 100644
--- a/libraries/concurrent-merkle-tree/Cargo.toml
+++ b/libraries/concurrent-merkle-tree/Cargo.toml
@@ -20,7 +20,7 @@ thiserror = "1.0.50"
 rand_distr = "0.4.3"
 rand = "0.8"
 spl-merkle-tree-reference = { version = "0.1.0", path = "../merkle-tree-reference" }
-tokio = { version = "1.34", features = ["full"] }
+tokio = { version = "1.35", features = ["full"] }
 
 [lib]
 crate-type = ["cdylib", "lib"]
diff --git a/libraries/type-length-value/js/package.json b/libraries/type-length-value/js/package.json
index 050db4dac..10f455b2a 100644
--- a/libraries/type-length-value/js/package.json
+++ b/libraries/type-length-value/js/package.json
@@ -57,9 +57,9 @@
         "eslint-plugin-require-extensions": "^0.1.1",
         "gh-pages": "^6.1.0",
         "mocha": "^10.1.0",
-        "prettier": "^3.1.0",
+        "prettier": "^3.1.1",
         "shx": "^0.3.4",
-        "ts-node": "^10.9.1",
+        "ts-node": "^10.9.2",
         "typescript": "^5.3.3"
     }
 }
diff --git a/memo/js/package.json b/memo/js/package.json
index 1b2d232e0..ad937203d 100644
--- a/memo/js/package.json
+++ b/memo/js/package.json
@@ -66,12 +66,12 @@
         "eslint-plugin-require-extensions": "^0.1.1",
         "gh-pages": "^6.1.0",
         "jest": "^29.0.0",
-        "prettier": "^3.1.0",
+        "prettier": "^3.1.1",
         "process": "^0.11.10",
         "shx": "^0.3.4",
         "start-server-and-test": "^2.0.3",
         "ts-jest": "^29.0.0",
-        "ts-node": "^10.9.1",
+        "ts-node": "^10.9.2",
         "typedoc": "^0.25.4",
         "typescript": "^5.3.3"
     }
diff --git a/name-service/js/package.json b/name-service/js/package.json
index 40e896dab..52b2d94d5 100644
--- a/name-service/js/package.json
+++ b/name-service/js/package.json
@@ -50,9 +50,9 @@
     "eslint-plugin-functional": "^6.0.0",
     "eslint-plugin-import": "^2.22.0",
     "mocha": "^10.2.0",
-    "prettier": "^3.1.0",
+    "prettier": "^3.1.1",
     "start-server-and-test": "^2.0.3",
-    "ts-node": "^10.9.1",
+    "ts-node": "^10.9.2",
     "typedoc": "^0.25.4",
     "typescript": "^5.3.3"
   },
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f8e692d10..df2f9506b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,9 +1,5 @@
 lockfileVersion: '6.0'
 
-settings:
-  autoInstallPeers: true
-  excludeLinksFromLockfile: false
-
 importers:
 
   .:
@@ -13,7 +9,7 @@ importers:
         version: 1.0.2(@typescript-eslint/eslint-plugin@6.13.2)(@typescript-eslint/parser@6.13.2)(eslint-plugin-jest@27.6.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-simple-import-sort@10.0.0)(eslint-plugin-sort-keys-fix@1.1.2)(eslint@8.55.0)(typescript@5.3.3)
       '@solana/prettier-config-solana':
         specifier: ^0.0.4
-        version: 0.0.4(prettier@3.1.0)
+        version: 0.0.4(prettier@3.1.1)
       eslint-config-turbo:
         specifier: ^1.11.1
         version: 1.11.1(eslint@8.55.0)
@@ -56,7 +52,7 @@ importers:
         version: 1.0.2(@typescript-eslint/eslint-plugin@6.13.2)(@typescript-eslint/parser@6.13.2)(eslint-plugin-jest@27.6.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-simple-import-sort@10.0.0)(eslint-plugin-sort-keys-fix@1.1.2)(eslint@8.55.0)(typescript@5.3.3)
       '@solana/prettier-config-solana':
         specifier: ^0.0.4
-        version: 0.0.4(prettier@3.1.0)
+        version: 0.0.4(prettier@3.1.1)
       '@types/bn.js':
         specifier: ^5.1.0
         version: 5.1.5
@@ -98,7 +94,7 @@ importers:
         version: 10.2.0(eslint@8.55.0)
       eslint-plugin-prettier:
         specifier: ^5.0.1
-        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.0)
+        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.1)
       eslint-plugin-simple-import-sort:
         specifier: ^10.0.0
         version: 10.0.0(eslint@8.55.0)
@@ -110,10 +106,10 @@ importers:
         version: 6.1.0
       jest:
         specifier: ^29.0.1
-        version: 29.7.0(@types/node@20.10.4)(ts-node@10.9.1)
+        version: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2)
       jest-config:
         specifier: ^29.0.1
-        version: 29.7.0(@types/node@20.10.4)(ts-node@10.9.1)
+        version: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2)
       start-server-and-test:
         specifier: ^2.0.3
         version: 2.0.3
@@ -124,8 +120,8 @@ importers:
         specifier: ^2.0.1
         version: 2.0.1
       ts-node:
-        specifier: ^10.9.1
-        version: 10.9.1(@types/node@20.10.4)(typescript@5.3.3)
+        specifier: ^10.9.2
+        version: 10.9.2(@types/node@20.10.4)(typescript@5.3.3)
       typedoc:
         specifier: ^0.25.4
         version: 0.25.4(typescript@5.3.3)
@@ -168,7 +164,7 @@ importers:
         version: 9.1.0(eslint@8.55.0)
       eslint-plugin-prettier:
         specifier: ^5.0.1
-        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.0)
+        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.1)
       eslint-plugin-require-extensions:
         specifier: ^0.1.1
         version: 0.1.3(eslint@8.55.0)
@@ -179,14 +175,14 @@ importers:
         specifier: ^10.1.0
         version: 10.2.0
       prettier:
-        specifier: ^3.1.0
-        version: 3.1.0
+        specifier: ^3.1.1
+        version: 3.1.1
       shx:
         specifier: ^0.3.4
         version: 0.3.4
       ts-node:
-        specifier: ^10.9.1
-        version: 10.9.1(@types/node@20.10.4)(typescript@5.3.3)
+        specifier: ^10.9.2
+        version: 10.9.2(@types/node@20.10.4)(typescript@5.3.3)
       typescript:
         specifier: ^5.3.3
         version: 5.3.3
@@ -229,7 +225,7 @@ importers:
         version: 9.1.0(eslint@8.55.0)
       eslint-plugin-prettier:
         specifier: ^5.0.1
-        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.0)
+        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.1)
       eslint-plugin-require-extensions:
         specifier: ^0.1.1
         version: 0.1.3(eslint@8.55.0)
@@ -238,10 +234,10 @@ importers:
         version: 6.1.0
       jest:
         specifier: ^29.0.0
-        version: 29.7.0(@types/node@20.10.4)(ts-node@10.9.1)
+        version: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2)
       prettier:
-        specifier: ^3.1.0
-        version: 3.1.0
+        specifier: ^3.1.1
+        version: 3.1.1
       process:
         specifier: ^0.11.10
         version: 0.11.10
@@ -255,8 +251,8 @@ importers:
         specifier: ^29.0.0
         version: 29.1.1(@babel/core@7.23.2)(jest@29.7.0)(typescript@5.3.3)
       ts-node:
-        specifier: ^10.9.1
-        version: 10.9.1(@types/node@20.10.4)(typescript@5.3.3)
+        specifier: ^10.9.2
+        version: 10.9.2(@types/node@20.10.4)(typescript@5.3.3)
       typedoc:
         specifier: ^0.25.4
         version: 0.25.4(typescript@5.3.3)
@@ -322,14 +318,14 @@ importers:
         specifier: ^10.2.0
         version: 10.2.0
       prettier:
-        specifier: ^3.1.0
-        version: 3.1.0
+        specifier: ^3.1.1
+        version: 3.1.1
       start-server-and-test:
         specifier: ^2.0.3
         version: 2.0.3
       ts-node:
-        specifier: ^10.9.1
-        version: 10.9.1(@types/node@20.10.4)(typescript@5.3.3)
+        specifier: ^10.9.2
+        version: 10.9.2(@types/node@20.10.4)(typescript@5.3.3)
       typedoc:
         specifier: ^0.25.4
         version: 0.25.4(typescript@5.3.3)
@@ -366,7 +362,7 @@ importers:
         version: 9.1.0(eslint@8.55.0)
       eslint-plugin-prettier:
         specifier: ^5.0.1
-        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.0)
+        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.1)
       solana-bankrun:
         specifier: ^0.2.0
         version: 0.2.0
@@ -397,7 +393,7 @@ importers:
         version: 9.1.0(eslint@8.55.0)
       eslint-plugin-prettier:
         specifier: ^5.0.1
-        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.0)
+        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.1)
       typescript:
         specifier: ^5.3.3
         version: 5.3.3
@@ -476,13 +472,13 @@ importers:
         version: 9.1.0(eslint@8.55.0)
       eslint-plugin-prettier:
         specifier: ^5.0.1
-        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.0)
+        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.1)
       jest:
         specifier: ^29.0.0
-        version: 29.7.0(@types/node@20.10.4)(ts-node@10.9.1)
+        version: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2)
       prettier:
-        specifier: ^3.1.0
-        version: 3.1.0
+        specifier: ^3.1.1
+        version: 3.1.1
       rimraf:
         specifier: ^5.0.0
         version: 5.0.5
@@ -552,19 +548,19 @@ importers:
         version: 9.1.0(eslint@8.55.0)
       eslint-plugin-prettier:
         specifier: ^5.0.1
-        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.0)
+        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.1)
       gh-pages:
         specifier: ^6.1.0
         version: 6.1.0
       prettier:
-        specifier: ^3.1.0
-        version: 3.1.0
+        specifier: ^3.1.1
+        version: 3.1.1
       rollup:
         specifier: ^4.7.0
         version: 4.7.0
       ts-node:
-        specifier: ^10.7.0
-        version: 10.9.1(@types/node@20.10.4)(typescript@5.3.3)
+        specifier: ^10.9.2
+        version: 10.9.2(@types/node@20.10.4)(typescript@5.3.3)
       tslib:
         specifier: ^2.3.0
         version: 2.6.2
@@ -581,8 +577,8 @@ importers:
         specifier: 2.0.0-experimental.8618508
         version: 2.0.0-experimental.8618508
       '@solana/codecs-data-structures':
-        specifier: 2.0.0-experimental.8618508
-        version: 2.0.0-experimental.8618508
+        specifier: 2.0.0-experimental.9741939
+        version: 2.0.0-experimental.9741939
       '@solana/codecs-numbers':
         specifier: 2.0.0-experimental.8618508
         version: 2.0.0-experimental.8618508
@@ -625,7 +621,7 @@ importers:
         version: 9.1.0(eslint@8.55.0)
       eslint-plugin-prettier:
         specifier: ^5.0.1
-        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.0)
+        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.1)
       eslint-plugin-require-extensions:
         specifier: ^0.1.1
         version: 0.1.3(eslint@8.55.0)
@@ -636,14 +632,14 @@ importers:
         specifier: ^10.1.0
         version: 10.2.0
       prettier:
-        specifier: ^3.1.0
-        version: 3.1.0
+        specifier: ^3.1.1
+        version: 3.1.1
       shx:
         specifier: ^0.3.4
         version: 0.3.4
       ts-node:
-        specifier: ^10.9.1
-        version: 10.9.1(@types/node@20.10.4)(typescript@5.3.3)
+        specifier: ^10.9.2
+        version: 10.9.2(@types/node@20.10.4)(typescript@5.3.3)
       tslib:
         specifier: ^2.3.1
         version: 2.6.2
@@ -698,7 +694,7 @@ importers:
         version: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)
       eslint-plugin-prettier:
         specifier: ^5.0.1
-        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.0)
+        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.1)
       eslint-plugin-require-extensions:
         specifier: ^0.1.1
         version: 0.1.3(eslint@8.55.0)
@@ -706,14 +702,14 @@ importers:
         specifier: ^10.1.0
         version: 10.2.0
       prettier:
-        specifier: ^3.1.0
-        version: 3.1.0
+        specifier: ^3.1.1
+        version: 3.1.1
       start-server-and-test:
         specifier: ^2.0.3
         version: 2.0.3
       ts-node:
-        specifier: ^10.0.0
-        version: 10.9.1(@types/node@20.10.4)(typescript@5.3.3)
+        specifier: ^10.9.2
+        version: 10.9.2(@types/node@20.10.4)(typescript@5.3.3)
       typescript:
         specifier: ^5.3.3
         version: 5.3.3
@@ -771,7 +767,7 @@ importers:
         version: 9.1.0(eslint@8.55.0)
       eslint-plugin-prettier:
         specifier: ^5.0.1
-        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.0)
+        version: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.1)
       eslint-plugin-require-extensions:
         specifier: ^0.1.1
         version: 0.1.3(eslint@8.55.0)
@@ -782,8 +778,8 @@ importers:
         specifier: ^10.1.0
         version: 10.2.0
       prettier:
-        specifier: ^3.1.0
-        version: 3.1.0
+        specifier: ^3.1.1
+        version: 3.1.1
       process:
         specifier: ^0.11.10
         version: 0.11.10
@@ -794,8 +790,8 @@ importers:
         specifier: ^2.0.3
         version: 2.0.3
       ts-node:
-        specifier: ^10.9.1
-        version: 10.9.1(@types/node@20.10.4)(typescript@5.3.3)
+        specifier: ^10.9.2
+        version: 10.9.2(@types/node@20.10.4)(typescript@5.3.3)
       tslib:
         specifier: ^2.3.1
         version: 2.6.2
@@ -1498,7 +1494,7 @@ packages:
       slash: 3.0.0
     dev: true
 
-  /@jest/core@29.7.0(ts-node@10.9.1):
+  /@jest/core@29.7.0(ts-node@10.9.2):
     resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     peerDependencies:
@@ -1519,7 +1515,7 @@ packages:
       exit: 0.1.2
       graceful-fs: 4.2.11
       jest-changed-files: 29.7.0
-      jest-config: 29.7.0(@types/node@20.10.4)(ts-node@10.9.1)
+      jest-config: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2)
       jest-haste-map: 29.7.0
       jest-message-util: 29.7.0
       jest-regex-util: 29.6.3
@@ -2262,11 +2258,15 @@ packages:
     resolution: {integrity: sha512-JCz7mKjVKtfZxkuDtwMAUgA7YvJcA2BwpZaA1NOLcted4OMC4Prwa3DUe3f3181ixPYaRyptbF0Ikq2MbDkYEA==}
     dev: false
 
-  /@solana/codecs-data-structures@2.0.0-experimental.8618508:
-    resolution: {integrity: sha512-sLpjL9sqzaDdkloBPV61Rht1tgaKq98BCtIKRuyscIrmVPu3wu0Bavk2n/QekmUzaTsj7K1pVSniM0YqCdnEBw==}
+  /@solana/codecs-core@2.0.0-experimental.9741939:
+    resolution: {integrity: sha512-7E51aEwLW+1ta6VWbEq0CbvwSUOcIwmaQCLpkOKsF6cwSNqE5GDv/jw9zKuiYOynlBFQO1Ws59a/hlb2wwwWKg==}
+    dev: false
+
+  /@solana/codecs-data-structures@2.0.0-experimental.9741939:
+    resolution: {integrity: sha512-Ghjx0pFEA22T/cpqg3zXHYlnxqKytjTr1QjgfhWvBrlVFkqr3ZQL4av9/V6sHKvpoi+JNkEwM1wE+tlpt/54CA==}
     dependencies:
-      '@solana/codecs-core': 2.0.0-experimental.8618508
-      '@solana/codecs-numbers': 2.0.0-experimental.8618508
+      '@solana/codecs-core': 2.0.0-experimental.9741939
+      '@solana/codecs-numbers': 2.0.0-experimental.9741939
     dev: false
 
   /@solana/codecs-numbers@2.0.0-experimental.8618508:
@@ -2275,6 +2275,12 @@ packages:
       '@solana/codecs-core': 2.0.0-experimental.8618508
     dev: false
 
+  /@solana/codecs-numbers@2.0.0-experimental.9741939:
+    resolution: {integrity: sha512-VXBvw8LZdGUJGuC33EFzvaUxCvgNtr9y9Td8zjK9wJDqKSzR0+G53CJv5K4AF25LUu8du8XHBK3VEz3YHl44nQ==}
+    dependencies:
+      '@solana/codecs-core': 2.0.0-experimental.9741939
+    dev: false
+
   /@solana/codecs-strings@2.0.0-experimental.8618508(fastestsmallesttextencoderdecoder@1.0.22):
     resolution: {integrity: sha512-b2yhinr1+oe+JDmnnsV0641KQqqDG8AQ16Z/x7GVWO+AWHMpRlHWVXOq8U1yhPMA4VXxl7i+D+C6ql0VGFp0GA==}
     peerDependencies:
@@ -2328,12 +2334,12 @@ packages:
       '@solana/codecs-numbers': 2.0.0-experimental.8618508
     dev: false
 
-  /@solana/prettier-config-solana@0.0.4(prettier@3.1.0):
+  /@solana/prettier-config-solana@0.0.4(prettier@3.1.1):
     resolution: {integrity: sha512-8kNkSb7h4DkJlDn4C8v0V2IJQhAswPE4kHE45xAp6eKDEJw7PlHsiYIm46A6owpr57W3KS/xnTVVGE4p/5PijA==}
     peerDependencies:
       prettier: ^3.1.0
     dependencies:
-      prettier: 3.1.0
+      prettier: 3.1.1
     dev: true
 
   /@solana/rpc-core@2.0.0-experimental.21e994f:
@@ -3691,7 +3697,7 @@ packages:
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
     dev: true
 
-  /create-jest@29.7.0(@types/node@20.10.4)(ts-node@10.9.1):
+  /create-jest@29.7.0(@types/node@20.10.4)(ts-node@10.9.2):
     resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     hasBin: true
@@ -3700,7 +3706,7 @@ packages:
       chalk: 4.1.2
       exit: 0.1.2
       graceful-fs: 4.2.11
-      jest-config: 29.7.0(@types/node@20.10.4)(ts-node@10.9.1)
+      jest-config: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2)
       jest-util: 29.7.0
       prompts: 2.4.2
     transitivePeerDependencies:
@@ -4245,7 +4251,7 @@ packages:
       '@typescript-eslint/eslint-plugin': 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3)
       '@typescript-eslint/utils': 5.62.0(eslint@8.55.0)(typescript@5.3.3)
       eslint: 8.55.0
-      jest: 29.7.0(@types/node@20.10.4)(ts-node@10.9.1)
+      jest: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2)
     transitivePeerDependencies:
       - supports-color
       - typescript
@@ -4262,7 +4268,7 @@ packages:
       rambda: 7.5.0
     dev: true
 
-  /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.0):
+  /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.1):
     resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==}
     engines: {node: ^14.18.0 || >=16.0.0}
     peerDependencies:
@@ -4279,7 +4285,7 @@ packages:
       '@types/eslint': 8.44.8
       eslint: 8.55.0
       eslint-config-prettier: 9.1.0(eslint@8.55.0)
-      prettier: 3.1.0
+      prettier: 3.1.1
       prettier-linter-helpers: 1.0.0
       synckit: 0.8.5
     dev: true
@@ -5501,7 +5507,7 @@ packages:
       - supports-color
     dev: true
 
-  /jest-cli@29.7.0(@types/node@20.10.4)(ts-node@10.9.1):
+  /jest-cli@29.7.0(@types/node@20.10.4)(ts-node@10.9.2):
     resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     hasBin: true
@@ -5511,14 +5517,14 @@ packages:
       node-notifier:
         optional: true
     dependencies:
-      '@jest/core': 29.7.0(ts-node@10.9.1)
+      '@jest/core': 29.7.0(ts-node@10.9.2)
       '@jest/test-result': 29.7.0
       '@jest/types': 29.6.3
       chalk: 4.1.2
-      create-jest: 29.7.0(@types/node@20.10.4)(ts-node@10.9.1)
+      create-jest: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2)
       exit: 0.1.2
       import-local: 3.1.0
-      jest-config: 29.7.0(@types/node@20.10.4)(ts-node@10.9.1)
+      jest-config: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2)
       jest-util: 29.7.0
       jest-validate: 29.7.0
       yargs: 17.7.2
@@ -5529,7 +5535,7 @@ packages:
       - ts-node
     dev: true
 
-  /jest-config@29.7.0(@types/node@20.10.4)(ts-node@10.9.1):
+  /jest-config@29.7.0(@types/node@20.10.4)(ts-node@10.9.2):
     resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     peerDependencies:
@@ -5564,7 +5570,7 @@ packages:
       pretty-format: 29.7.0
       slash: 3.0.0
       strip-json-comments: 3.1.1
-      ts-node: 10.9.1(@types/node@20.10.4)(typescript@5.3.3)
+      ts-node: 10.9.2(@types/node@20.10.4)(typescript@5.3.3)
     transitivePeerDependencies:
       - babel-plugin-macros
       - supports-color
@@ -5853,7 +5859,7 @@ packages:
       supports-color: 8.1.1
     dev: true
 
-  /jest@29.7.0(@types/node@20.10.4)(ts-node@10.9.1):
+  /jest@29.7.0(@types/node@20.10.4)(ts-node@10.9.2):
     resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     hasBin: true
@@ -5863,10 +5869,10 @@ packages:
       node-notifier:
         optional: true
     dependencies:
-      '@jest/core': 29.7.0(ts-node@10.9.1)
+      '@jest/core': 29.7.0(ts-node@10.9.2)
       '@jest/types': 29.6.3
       import-local: 3.1.0
-      jest-cli: 29.7.0(@types/node@20.10.4)(ts-node@10.9.1)
+      jest-cli: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2)
     transitivePeerDependencies:
       - '@types/node'
       - babel-plugin-macros
@@ -6653,8 +6659,8 @@ packages:
     hasBin: true
     dev: true
 
-  /prettier@3.1.0:
-    resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==}
+  /prettier@3.1.1:
+    resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==}
     engines: {node: '>=14'}
     hasBin: true
     dev: true
@@ -7486,7 +7492,7 @@ packages:
       '@babel/core': 7.23.2
       bs-logger: 0.2.6
       fast-json-stable-stringify: 2.1.0
-      jest: 29.7.0(@types/node@20.10.4)(ts-node@10.9.1)
+      jest: 29.7.0(@types/node@20.10.4)(ts-node@10.9.2)
       jest-util: 29.7.0
       json5: 2.2.3
       lodash.memoize: 4.1.2
@@ -7496,8 +7502,8 @@ packages:
       yargs-parser: 21.1.1
     dev: true
 
-  /ts-node@10.9.1(@types/node@20.10.4)(typescript@5.3.3):
-    resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
+  /ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3):
+    resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
     hasBin: true
     peerDependencies:
       '@swc/core': '>=1.2.50'
@@ -8000,3 +8006,7 @@ 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 1506deef0..30a06085f 100644
--- a/single-pool/cli/Cargo.toml
+++ b/single-pool/cli/Cargo.toml
@@ -8,7 +8,7 @@ license = "Apache-2.0"
 edition = "2021"
 
 [dependencies]
-tokio = "1.34"
+tokio = "1.35"
 clap = { version = "3.2.23", features = ["derive"] }
 console = "0.15.7"
 borsh = "0.10"
diff --git a/stake-pool/js/package.json b/stake-pool/js/package.json
index 5e94312d8..260975db0 100644
--- a/stake-pool/js/package.json
+++ b/stake-pool/js/package.json
@@ -70,7 +70,7 @@
     "eslint-config-prettier": "^9.1.0",
     "eslint-plugin-prettier": "^5.0.1",
     "jest": "^29.0.0",
-    "prettier": "^3.1.0",
+    "prettier": "^3.1.1",
     "rimraf": "^5.0.0",
     "rollup": "^4.7.0",
     "rollup-plugin-dts": "^6.1.0",
diff --git a/token-lending/js/package.json b/token-lending/js/package.json
index 3b26e8d03..9204c3f4b 100644
--- a/token-lending/js/package.json
+++ b/token-lending/js/package.json
@@ -55,9 +55,9 @@
         "eslint-config-prettier": "^9.1.0",
         "eslint-plugin-prettier": "^5.0.1",
         "gh-pages": "^6.1.0",
-        "prettier": "^3.1.0",
+        "prettier": "^3.1.1",
         "rollup": "^4.7.0",
-        "ts-node": "^10.7.0",
+        "ts-node": "^10.9.2",
         "tslib": "^2.3.0",
         "typedoc": "^0.25.4",
         "typescript": "^5.3.3"
diff --git a/token-metadata/js/package.json b/token-metadata/js/package.json
index e3928c7fd..0f20f2949 100644
--- a/token-metadata/js/package.json
+++ b/token-metadata/js/package.json
@@ -48,7 +48,7 @@
     },
     "dependencies": {
         "@solana/codecs-core": "2.0.0-experimental.8618508",
-        "@solana/codecs-data-structures": "2.0.0-experimental.8618508",
+        "@solana/codecs-data-structures": "2.0.0-experimental.9741939",
         "@solana/codecs-numbers": "2.0.0-experimental.8618508",
         "@solana/codecs-strings": "2.0.0-experimental.8618508",
         "@solana/options": "2.0.0-experimental.8618508",
@@ -68,9 +68,9 @@
         "eslint-plugin-require-extensions": "^0.1.1",
         "gh-pages": "^6.1.0",
         "mocha": "^10.1.0",
-        "prettier": "^3.1.0",
+        "prettier": "^3.1.1",
         "shx": "^0.3.4",
-        "ts-node": "^10.9.1",
+        "ts-node": "^10.9.2",
         "tslib": "^2.3.1",
         "typedoc": "^0.25.4",
         "typescript": "^5.3.3"
diff --git a/token-swap/js/package.json b/token-swap/js/package.json
index 742ddd29e..06ee95014 100644
--- a/token-swap/js/package.json
+++ b/token-swap/js/package.json
@@ -66,9 +66,9 @@
     "eslint-plugin-prettier": "^5.0.1",
     "eslint-plugin-require-extensions": "^0.1.1",
     "mocha": "^10.1.0",
-    "prettier": "^3.1.0",
+    "prettier": "^3.1.1",
     "start-server-and-test": "^2.0.3",
-    "ts-node": "^10.0.0",
+    "ts-node": "^10.9.2",
     "typescript": "^5.3.3"
   }
 }
diff --git a/token/cli/Cargo.toml b/token/cli/Cargo.toml
index 8748e6c7b..4bdfeb5c2 100644
--- a/token/cli/Cargo.toml
+++ b/token/cli/Cargo.toml
@@ -44,7 +44,7 @@ spl-memo = { version = "4.0.0", path = "../../memo/program", features = [
 ] }
 strum = "0.25"
 strum_macros = "0.25"
-tokio = "1.34"
+tokio = "1.35"
 
 [dev-dependencies]
 solana-test-validator = "=1.17.6"
diff --git a/token/client/Cargo.toml b/token/client/Cargo.toml
index 8e5a84e31..44c204ba9 100644
--- a/token/client/Cargo.toml
+++ b/token/client/Cargo.toml
@@ -26,7 +26,7 @@ spl-token = { version = "4.0", path="../program", features = [ "no-entrypoint" ]
 spl-token-2022 = { version = "1.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.3", path="../transfer-hook/interface" }
+spl-transfer-hook-interface = { version = "0.4", path="../transfer-hook/interface" }
 thiserror = "1.0"
 
 [features]
diff --git a/token/js/package.json b/token/js/package.json
index 4316b6c16..1e796bef5 100644
--- a/token/js/package.json
+++ b/token/js/package.json
@@ -76,12 +76,12 @@
         "eslint-plugin-require-extensions": "^0.1.1",
         "gh-pages": "^6.1.0",
         "mocha": "^10.1.0",
-        "prettier": "^3.1.0",
+        "prettier": "^3.1.1",
         "process": "^0.11.10",
         "shx": "^0.3.4",
         "start-server-and-test": "^2.0.3",
         "tslib": "^2.3.1",
-        "ts-node": "^10.9.1",
+        "ts-node": "^10.9.2",
         "typedoc": "^0.25.4",
         "typescript": "^5.3.3"
     }
diff --git a/token/program-2022/Cargo.toml b/token/program-2022/Cargo.toml
index e354673c5..7569e9acb 100644
--- a/token/program-2022/Cargo.toml
+++ b/token/program-2022/Cargo.toml
@@ -31,7 +31,7 @@ spl-memo = { version = "4.0.0", path = "../../memo/program", features = [ "no-en
 spl-token = { version = "4.0",  path = "../program", features = ["no-entrypoint"] }
 spl-token-group-interface = { version = "0.1.0", path = "../../token-group/interface" }
 spl-token-metadata-interface = { version = "0.2.0", path = "../../token-metadata/interface" }
-spl-transfer-hook-interface = { version = "0.3.0", path = "../transfer-hook/interface" }
+spl-transfer-hook-interface = { version = "0.4.0", path = "../transfer-hook/interface" }
 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"
diff --git a/token/transfer-hook/cli/Cargo.toml b/token/transfer-hook/cli/Cargo.toml
index 289ee7fc3..be8155fc7 100644
--- a/token/transfer-hook/cli/Cargo.toml
+++ b/token/transfer-hook/cli/Cargo.toml
@@ -17,7 +17,7 @@ solana-client = "=1.17.6"
 solana-logger = "=1.17.6"
 solana-remote-wallet = "=1.17.6"
 solana-sdk = "=1.17.6"
-spl-transfer-hook-interface = { version = "0.3", path = "../interface" }
+spl-transfer-hook-interface = { version = "0.4", path = "../interface" }
 spl-tlv-account-resolution = { version = "0.4" , path = "../../../libraries/tlv-account-resolution" }
 strum = "0.25"
 strum_macros = "0.25"
diff --git a/token/transfer-hook/example/Cargo.toml b/token/transfer-hook/example/Cargo.toml
index ff88c70d6..0d2e25adf 100644
--- a/token/transfer-hook/example/Cargo.toml
+++ b/token/transfer-hook/example/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "spl-transfer-hook-example"
-version = "0.3.0"
+version = "0.4.0"
 description = "Solana Program Library Transfer Hook Example Program"
 authors = ["Solana Labs Maintainers <maintainers@solanalabs.com>"]
 repository = "https://github.com/solana-labs/solana-program-library"
@@ -16,7 +16,7 @@ arrayref = "0.3.7"
 solana-program = "1.17.6"
 spl-tlv-account-resolution = { version = "0.4" , path = "../../../libraries/tlv-account-resolution" }
 spl-token-2022 = { version = "1.0",  path = "../../program-2022", features = ["no-entrypoint"] }
-spl-transfer-hook-interface = { version = "0.3" , path = "../interface" }
+spl-transfer-hook-interface = { version = "0.4" , path = "../interface" }
 spl-type-length-value = { version = "0.3" , path = "../../../libraries/type-length-value" }
 
 [dev-dependencies]
diff --git a/token/transfer-hook/interface/Cargo.toml b/token/transfer-hook/interface/Cargo.toml
index c0db5b18b..9c064f338 100644
--- a/token/transfer-hook/interface/Cargo.toml
+++ b/token/transfer-hook/interface/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "spl-transfer-hook-interface"
-version = "0.3.0"
+version = "0.4.0"
 description = "Solana Program Library Transfer Hook Interface"
 authors = ["Solana Labs Maintainers <maintainers@solanalabs.com>"]
 repository = "https://github.com/solana-labs/solana-program-library"


Test patch:
diff --git a/token/program-2022-test/Cargo.toml b/token/program-2022-test/Cargo.toml
index b4ef5b9bb..4e70388d2 100644
--- a/token/program-2022-test/Cargo.toml
+++ b/token/program-2022-test/Cargo.toml
@@ -30,6 +30,6 @@ spl-instruction-padding = { version = "0.1.0", path="../../instruction-padding/p
 spl-token-client = { version = "0.8", path = "../client" }
 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-example = { version = "0.3", path="../transfer-hook/example", features = ["no-entrypoint"] }
-spl-transfer-hook-interface = { version = "0.3", path="../transfer-hook/interface" }
+spl-transfer-hook-example = { version = "0.4", path="../transfer-hook/example", features = ["no-entrypoint"] }
+spl-transfer-hook-interface = { version = "0.4", path="../transfer-hook/interface" }
 test-case = "3.3"