diff --git a/book.toml b/book.toml index c0c5bad..61c4683 100644 --- a/book.toml +++ b/book.toml @@ -1,5 +1,5 @@ [book] -title = "The Anchor Book v0.23.0" +title = "The Anchor Book v0.24.0" authors = [] language = "en" multilingual = false diff --git a/programs/tic-tac-toe/Cargo.lock b/programs/tic-tac-toe/Cargo.lock index 7210149..19b124b 100644 --- a/programs/tic-tac-toe/Cargo.lock +++ b/programs/tic-tac-toe/Cargo.lock @@ -24,9 +24,9 @@ dependencies = [ [[package]] name = "anchor-attribute-access-control" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb917e636aa85cbb0d908e948cf7646c78a3e2fb06f396522d01fa55ec93412f" +checksum = "d5be76607b9625327c7491daedb99706d8eb68cec67e3c2fe4bdbbe303a0d6c3" dependencies = [ "anchor-syn", "anyhow", @@ -38,9 +38,9 @@ dependencies = [ [[package]] name = "anchor-attribute-account" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40132c6a9ecf26f6a1d0480824d4e7327bade791d6afe2e003546f58b450e760" +checksum = "b2ba761139de778852b0bf86e3857d988cd135c15fb4d8ee75b925b9646b5a84" dependencies = [ "anchor-syn", "anyhow", @@ -53,9 +53,9 @@ dependencies = [ [[package]] name = "anchor-attribute-constant" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90b229e8eb84adf4c282b45bf03354a265f629cb657323728570d994ca0f8ef0" +checksum = "11e59bb75c94133e1ffeb688144456b572c9ff08120c0c03235c02d7048ca294" dependencies = [ "anchor-syn", "proc-macro2", @@ -64,9 +64,9 @@ dependencies = [ [[package]] name = "anchor-attribute-error" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc0aaf2dae975810ee9f09135cb91b4df66d3834c9bbb789f0930fde2b2a49c" +checksum = "51537dfabe3b50d56c412ff01a3ed9bc76dccd7d6d3991a8ee298258fd37f2ee" dependencies = [ "anchor-syn", "proc-macro2", @@ -76,9 +76,9 @@ dependencies = [ [[package]] name = "anchor-attribute-event" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aefe4f159ae2ccaa908ad7625639294be02602543c5ea8e7b6c8c6126640a8e" +checksum = "9260684556a09bca3dc8c3b5388c322707ee56b34846498d219979d013fedfa6" dependencies = [ "anchor-syn", "anyhow", @@ -89,9 +89,9 @@ dependencies = [ [[package]] name = "anchor-attribute-interface" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7885efaa71230455a55f2078c130c8168ba58a01271d769a9e3e7753041b023b" +checksum = "70262c877203f2716f10cc36d88b777425c0bc8953629934fe729f9cad707d09" dependencies = [ "anchor-syn", "anyhow", @@ -103,9 +103,9 @@ dependencies = [ [[package]] name = "anchor-attribute-program" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962fa82552a2d36ac0a72410a7a63dce16ff84d5921f3195cf1427c89d3848d" +checksum = "3291238f560a2d51c255df4e10269be99c64d4e611d53428b33abbeb642b9db8" dependencies = [ "anchor-syn", "anyhow", @@ -116,9 +116,9 @@ dependencies = [ [[package]] name = "anchor-attribute-state" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbb91124f1e49d5d84b4c812f47442830ddf8e5b25e7e7fbbe8027ea9a55f4e" +checksum = "5c51579b76c0ec6f03f0f581dd32fd52698f065da3d8c5176d84730164c1e2f0" dependencies = [ "anchor-syn", "anyhow", @@ -129,9 +129,9 @@ dependencies = [ [[package]] name = "anchor-derive-accounts" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acbc8ab9e4305ae5fdfecc0e40f1254db28747d0bb4a4adf0d63dd09366bac6" +checksum = "18c6cceba2f29b42b0fd8d84f9a27bbc732749c4c49d2b25fcecb89be9fd2d8e" dependencies = [ "anchor-syn", "anyhow", @@ -142,9 +142,9 @@ dependencies = [ [[package]] name = "anchor-lang" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "720b81290f0323ab655380fe80d6aeb678c77500e07e5d75e7693b611895b5a4" +checksum = "a524cf43a3859d0715bca53fdfbcb75b0b0028952499bbafd52deaef9df271f4" dependencies = [ "anchor-attribute-access-control", "anchor-attribute-account", @@ -166,9 +166,9 @@ dependencies = [ [[package]] name = "anchor-syn" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b18fdb2a5bba16db5d2121935284d3fe226cf35ef1c549162abcb2c50c5b7e21" +checksum = "1f501db049fbf4e6284413f5b97dddd647f9e8581dd6a31114516b5c8d49b3a1" dependencies = [ "anyhow", "bs58 0.3.1", @@ -197,9 +197,9 @@ checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" [[package]] name = "arrayvec" -version = "0.5.2" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" [[package]] name = "atty" @@ -240,18 +240,23 @@ dependencies = [ ] [[package]] -name = "blake3" -version = "0.3.8" +name = "bitflags" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "blake3" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" dependencies = [ "arrayref", "arrayvec", "cc", - "cfg-if 0.1.10", + "cfg-if", "constant_time_eq", - "crypto-mac", - "digest 0.9.0", + "digest 0.10.3", ] [[package]] @@ -261,7 +266,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ "block-padding", - "generic-array 0.14.5", + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +dependencies = [ + "generic-array", ] [[package]] @@ -327,6 +341,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +[[package]] +name = "bumpalo" +version = "3.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" + [[package]] name = "bv" version = "0.11.1" @@ -369,18 +389,32 @@ version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "console_error_panic_hook" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +dependencies = [ + "cfg-if", + "wasm-bindgen", +] + +[[package]] +name = "console_log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501a375961cef1a0d44767200e66e4a559283097e91d0730b1d75dfb2f8a1494" +dependencies = [ + "log", + "web-sys", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -402,45 +436,57 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +[[package]] +name = "crypto-common" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +dependencies = [ + "generic-array", + "typenum", +] + [[package]] name = "crypto-mac" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array 0.14.5", + "generic-array", "subtle", ] [[package]] name = "curve25519-dalek" -version = "2.1.3" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" +checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0" dependencies = [ "byteorder", - "digest 0.8.1", + "digest 0.9.0", "rand_core", "subtle", "zeroize", ] -[[package]] -name = "digest" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -dependencies = [ - "generic-array 0.12.4", -] - [[package]] name = "digest" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.5", + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +dependencies = [ + "block-buffer 0.10.2", + "crypto-common", + "subtle", ] [[package]] @@ -451,9 +497,9 @@ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] name = "env_logger" -version = "0.8.4" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" +checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" dependencies = [ "atty", "humantime", @@ -468,15 +514,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" -[[package]] -name = "generic-array" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" -dependencies = [ - "typenum", -] - [[package]] name = "generic-array" version = "0.14.5" @@ -494,9 +531,11 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", + "js-sys", "libc", "wasi 0.9.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] @@ -505,7 +544,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "wasi 0.10.2+wasi-snapshot-preview1", ] @@ -537,12 +576,6 @@ dependencies = [ "libc", ] -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - [[package]] name = "hmac" version = "0.8.1" @@ -560,7 +593,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" dependencies = [ "digest 0.9.0", - "generic-array 0.14.5", + "generic-array", "hmac", ] @@ -571,10 +604,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] -name = "itertools" -version = "0.9.0" +name = "instant" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "itertools" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" dependencies = [ "either", ] @@ -585,6 +627,15 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" +[[package]] +name = "js-sys" +version = "0.3.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397" +dependencies = [ + "wasm-bindgen", +] + [[package]] name = "keccak" version = "0.1.0" @@ -605,9 +656,9 @@ checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f" [[package]] name = "libsecp256k1" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd1137239ab33b41aa9637a88a28249e5e70c40a42ccc92db7f12cc356c1fcd7" +checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73" dependencies = [ "arrayref", "base64 0.12.3", @@ -651,13 +702,23 @@ dependencies = [ "libsecp256k1-core", ] +[[package]] +name = "lock_api" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +dependencies = [ + "autocfg", + "scopeguard", +] + [[package]] name = "log" version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -668,9 +729,9 @@ checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" [[package]] name = "memmap2" -version = "0.1.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b70ca2a6103ac8b665dc150b142ef0e4e89df640c9e6cf295d189c3caebe5a" +checksum = "057a3db23999c867821a7a59feb06a578fcb03685e983dff90daf9e7d24ac08f" dependencies = [ "libc", ] @@ -707,6 +768,31 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall", + "smallvec", + "winapi", +] + [[package]] name = "ppv-lite86" version = "0.2.16" @@ -794,6 +880,15 @@ dependencies = [ "rand_core", ] +[[package]] +name = "redox_syscall" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +dependencies = [ + "bitflags", +] + [[package]] name = "regex" version = "1.5.5" @@ -813,9 +908,9 @@ checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" [[package]] name = "rustc_version" -version = "0.2.3" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ "semver", ] @@ -833,19 +928,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" [[package]] -name = "semver" -version = "0.9.0" +name = "scopeguard" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", -] +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] -name = "semver-parser" -version = "0.7.0" +name = "semver" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +checksum = "d65bd28f48be7196d222d95b9243287f48d27aca604e08497513019ff0502cc4" [[package]] name = "serde" @@ -893,8 +985,8 @@ version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ - "block-buffer", - "cfg-if 1.0.0", + "block-buffer 0.9.0", + "cfg-if", "cpufeatures", "digest 0.9.0", "opaque-debug", @@ -906,21 +998,27 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" dependencies = [ - "block-buffer", + "block-buffer 0.9.0", "digest 0.9.0", "keccak", "opaque-debug", ] [[package]] -name = "solana-frozen-abi" -version = "1.8.16" +name = "smallvec" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "425be155319bda665dc3483f0c0267ac0fc89017812d0c5d9816b1c7a26c1532" +checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" + +[[package]] +name = "solana-frozen-abi" +version = "1.9.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0a9783aac947e789852cbd6f4650521f8f6f744cba5fc0524a8bc104fa11e01" dependencies = [ - "bs58 0.3.1", + "bs58 0.4.0", "bv", - "generic-array 0.14.5", + "generic-array", "log", "memmap2", "rustc_version", @@ -934,9 +1032,9 @@ dependencies = [ [[package]] name = "solana-frozen-abi-macro" -version = "1.8.16" +version = "1.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d97737c34380c42c9b3e060cf68d1929ad81fea5a3c00887bb82314b788ba13" +checksum = "f32ebf882f69105e64e283966d9ce0dd22696aec8b8de9bb6b61ea26c7fc896a" dependencies = [ "proc-macro2", "quote", @@ -946,9 +1044,9 @@ dependencies = [ [[package]] name = "solana-logger" -version = "1.8.16" +version = "1.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "659d836ac49f5a53481ead26f4ea78b688a91dedcbe6c51454169491e1648ceb" +checksum = "aa8b0587f360598ef3a9444e05dce63e701a5c008c54101f54707b5f5852ec09" dependencies = [ "env_logger", "lazy_static", @@ -957,26 +1055,31 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.8.16" +version = "1.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b2b6d99b5c662975ead69a60ead75b820f2eaa42eb4512c79a919e91807d43" +checksum = "252118d7b708b0bec7e1ec5aeb3397843c8d9dbe8946f04fcebed06c5d3a32c7" dependencies = [ "base64 0.13.0", "bincode", + "bitflags", "blake3", "borsh", "borsh-derive", - "bs58 0.3.1", + "bs58 0.4.0", "bv", "bytemuck", + "console_error_panic_hook", + "console_log", "curve25519-dalek", - "hex", + "getrandom 0.1.16", "itertools", + "js-sys", "lazy_static", "libsecp256k1", "log", "num-derive", "num-traits", + "parking_lot", "rand", "rustc_version", "rustversion", @@ -990,15 +1093,16 @@ dependencies = [ "solana-logger", "solana-sdk-macro", "thiserror", + "wasm-bindgen", ] [[package]] name = "solana-sdk-macro" -version = "1.8.16" +version = "1.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a122a01e936f3b69064f0800e0488617833fc6a4dd86294cf7cc75f34511d6b5" +checksum = "6340ca326c8a919575e594a3ca71a380c233ae2615f62acd15c7af4f2aafb21d" dependencies = [ - "bs58 0.3.1", + "bs58 0.4.0", "proc-macro2", "quote", "rustversion", @@ -1105,6 +1209,70 @@ version = "0.10.2+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" +[[package]] +name = "wasm-bindgen" +version = "0.2.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4" +dependencies = [ + "bumpalo", + "lazy_static", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" + +[[package]] +name = "web-sys" +version = "0.3.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "winapi" version = "0.3.9" @@ -1144,6 +1312,6 @@ checksum = "9fc79f4a1e39857fc00c3f662cbf2651c771f00e9c15fe2abc341806bd46bd71" [[package]] name = "zeroize" -version = "1.5.4" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb5728b8afd3f280a869ce1d4c554ffaed35f45c231fc41bfbd0381bef50317" +checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" diff --git a/programs/tic-tac-toe/package.json b/programs/tic-tac-toe/package.json index 24d7c1a..80a6b53 100644 --- a/programs/tic-tac-toe/package.json +++ b/programs/tic-tac-toe/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "@project-serum/anchor": "0.23.0" + "@project-serum/anchor": "0.24.1" }, "devDependencies": { "@types/mocha": "^9.0.0", diff --git a/programs/tic-tac-toe/programs/tic-tac-toe/Cargo.toml b/programs/tic-tac-toe/programs/tic-tac-toe/Cargo.toml index 98a82b9..3a0b821 100644 --- a/programs/tic-tac-toe/programs/tic-tac-toe/Cargo.toml +++ b/programs/tic-tac-toe/programs/tic-tac-toe/Cargo.toml @@ -16,6 +16,6 @@ cpi = ["no-entrypoint"] default = [] [dependencies] -anchor-lang = "=0.23.0" +anchor-lang = "=0.24.1" num-traits = "0.2" num-derive = "0.3" diff --git a/programs/tic-tac-toe/tests/tic-tac-toe.ts b/programs/tic-tac-toe/tests/tic-tac-toe.ts index e2f65e7..5d3c379 100644 --- a/programs/tic-tac-toe/tests/tic-tac-toe.ts +++ b/programs/tic-tac-toe/tests/tic-tac-toe.ts @@ -26,13 +26,14 @@ async function play(program: Program, game, player, tile, expectedTur describe('tic-tac-toe', () => { // Configure the client to use the local cluster. - anchor.setProvider(anchor.Provider.env()); + anchor.setProvider(anchor.AnchorProvider.env()); const program = anchor.workspace.TicTacToe as Program; + const programProvider = program.provider as anchor.AnchorProvider; it('setup game!', async() => { const gameKeypair = anchor.web3.Keypair.generate(); - const playerOne = program.provider.wallet; + const playerOne = programProvider.wallet; const playerTwo = anchor.web3.Keypair.generate(); await program.methods .setupGame(playerTwo.publicKey) @@ -56,7 +57,7 @@ describe('tic-tac-toe', () => { it('player one wins!', async () => { const gameKeypair = anchor.web3.Keypair.generate(); - const playerOne = program.provider.wallet; + const playerOne = programProvider.wallet; const playerTwo = anchor.web3.Keypair.generate(); await program.methods .setupGame(playerTwo.publicKey) @@ -242,7 +243,7 @@ describe('tic-tac-toe', () => { it('tie', async () => { const gameKeypair = anchor.web3.Keypair.generate(); - const playerOne = program.provider.wallet; + const playerOne = programProvider.wallet; const playerTwo = anchor.web3.Keypair.generate(); await program.methods .setupGame(playerTwo.publicKey) diff --git a/programs/tic-tac-toe/yarn.lock b/programs/tic-tac-toe/yarn.lock index b992265..05869c0 100644 --- a/programs/tic-tac-toe/yarn.lock +++ b/programs/tic-tac-toe/yarn.lock @@ -30,10 +30,10 @@ "@ethersproject/logger" "^5.5.0" hash.js "1.1.7" -"@project-serum/anchor@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@project-serum/anchor/-/anchor-0.23.0.tgz#2b2eb6b51601b073e8db26663aa2d6c2f2841771" - integrity sha512-LV2/ifZOJVFTZ4GbEloXln3iVfCvO1YM8i7BBCrUm4tehP7irMx4nr4/IabHWOzrQcQElsxSP/lb1tBp+2ff8A== +"@project-serum/anchor@0.24.1": + version "0.24.1" + resolved "https://registry.yarnpkg.com/@project-serum/anchor/-/anchor-0.24.1.tgz#521c3d610d3db7e24f143736e9c945b54fb8ef85" + integrity sha512-Oab6rPKsoBKf7/m/AyZcx3ahzcRiOFbqYRoDX6Gnxiqeu2zLKS+LyV6v/2XEVnwhIhOtwETtsgSZAwbqjM5Ywg== dependencies: "@project-serum/borsh" "^0.2.5" "@solana/web3.js" "^1.36.0" @@ -45,7 +45,6 @@ cross-fetch "^3.1.5" crypto-hash "^1.3.0" eventemitter3 "^4.0.7" - find "^0.3.0" js-sha256 "^0.9.0" pako "^2.0.3" snake-case "^3.0.4" @@ -535,13 +534,6 @@ find-up@5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -find@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/find/-/find-0.3.0.tgz#4082e8fc8d8320f1a382b5e4f521b9bc50775cb8" - integrity sha512-iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw== - dependencies: - traverse-chain "~0.1.0" - flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" @@ -1079,11 +1071,6 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= -traverse-chain@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/traverse-chain/-/traverse-chain-0.1.0.tgz#61dbc2d53b69ff6091a12a168fd7d433107e40f1" - integrity sha1-YdvC1Ttp/2CRoSoWj9fUMxB+QPE= - ts-mocha@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-8.0.0.tgz#962d0fa12eeb6468aa1a6b594bb3bbc818da3ef0" diff --git a/src/chapter_2/installation.md b/src/chapter_2/installation.md index 17af399..9b6e74c 100644 --- a/src/chapter_2/installation.md +++ b/src/chapter_2/installation.md @@ -46,7 +46,7 @@ Anchor binaries are available via an NPM package [`@project-serum/anchor-cli`](h We can also use Cargo to install the CLI directly. Make sure that the `--tag` argument uses the version you want (the version here is just an example). ``` -cargo install --git https://github.com/project-serum/anchor --tag v0.22.0 anchor-cli --locked +cargo install --git https://github.com/project-serum/anchor --tag v0.24.1 anchor-cli --locked ``` On Linux systems you may need to install additional dependencies if cargo install fails. On Ubuntu, diff --git a/src/chapter_3/CPIs.md b/src/chapter_3/CPIs.md index 04ab48c..d732810 100644 --- a/src/chapter_3/CPIs.md +++ b/src/chapter_3/CPIs.md @@ -138,13 +138,14 @@ We can verify that everything works as expected by replacing the contents of the ```ts import * as anchor from '@project-serum/anchor'; import { Program } from '@project-serum/anchor'; -import { Keypair, SystemProgram } from '@solana/web3.js'; +import { Keypair } from '@solana/web3.js'; import { expect } from 'chai'; import { Puppet } from '../target/types/puppet'; import { PuppetMaster } from '../target/types/puppet_master'; describe('puppet', () => { - anchor.setProvider(anchor.Provider.env()); + const provider = anchor.AnchorProvider.env(); + anchor.setProvider(provider); const puppetProgram = anchor.workspace.Puppet as Program; const puppetMasterProgram = anchor.workspace.PuppetMaster as Program; @@ -156,7 +157,7 @@ describe('puppet', () => { .initialize() .accounts({ puppet: puppetKeypair.publicKey, - user: anchor.getProvider().wallet.publicKey, + user: provider.wallet.publicKey, }) .signers([puppetKeypair]) .rpc(); @@ -267,13 +268,14 @@ Finally, change the test: ```ts import * as anchor from '@project-serum/anchor'; import { Program } from '@project-serum/anchor'; -import { Keypair, SystemProgram } from '@solana/web3.js'; +import { Keypair } from '@solana/web3.js'; import { Puppet } from '../target/types/puppet'; import { PuppetMaster } from '../target/types/puppet_master'; import { expect } from 'chai'; describe('puppet', () => { - anchor.setProvider(anchor.Provider.env()); + const provider = anchor.AnchorProvider.env(); + anchor.setProvider(provider); const puppetProgram = anchor.workspace.Puppet as Program; const puppetMasterProgram = anchor.workspace.PuppetMaster as Program; @@ -286,7 +288,7 @@ describe('puppet', () => { .initialize(authorityKeypair.publicKey) .accounts({ puppet: puppetKeypair.publicKey, - user: anchor.getProvider().wallet.publicKey, + user: provider.wallet.publicKey, }) .signers([puppetKeypair]) .rpc(); diff --git a/src/chapter_3/PDAs.md b/src/chapter_3/PDAs.md index 3b22c18..7f78c03 100644 --- a/src/chapter_3/PDAs.md +++ b/src/chapter_3/PDAs.md @@ -178,13 +178,13 @@ Finally, let's add a test. Copy this into `game.ts` ```ts import * as anchor from '@project-serum/anchor'; import { Program } from '@project-serum/anchor'; -import { PublicKey, SystemProgram } from '@solana/web3.js'; +import { PublicKey } from '@solana/web3.js'; import { Game } from '../target/types/game'; import { expect } from 'chai'; describe('game', async() => { - -anchor.setProvider(anchor.Provider.env()); + const provider = anchor.AnchorProvider.env(); + anchor.setProvider(provider); const program = anchor.workspace.Game as Program; @@ -193,7 +193,7 @@ anchor.setProvider(anchor.Provider.env()); .findProgramAddress( [ anchor.utils.bytes.utf8.encode("user-stats"), - anchor.getProvider().wallet.publicKey.toBuffer() + provider.wallet.publicKey.toBuffer() ], program.programId ); @@ -201,7 +201,7 @@ anchor.setProvider(anchor.Provider.env()); await program.methods .createUserStats("brian") .accounts({ - user: anchor.getProvider().wallet.publicKey, + user: provider.wallet.publicKey, userStats: userStatsPDA, }) .rpc(); @@ -211,7 +211,7 @@ anchor.setProvider(anchor.Provider.env()); await program.methods .changeUserName("tom") .accounts({ - user: anchor.getProvider().wallet.publicKey, + user: provider.wallet.publicKey, userStats: userStatsPDA }) .rpc(); @@ -289,13 +289,14 @@ Finally, this is the new `puppet.ts`: ```ts import * as anchor from '@project-serum/anchor'; import { Program } from '@project-serum/anchor'; -import { Keypair, PublicKey, SystemProgram } from '@solana/web3.js'; +import { Keypair, PublicKey } from '@solana/web3.js'; import { Puppet } from '../target/types/puppet'; import { PuppetMaster } from '../target/types/puppet_master'; import { expect } from 'chai'; describe('puppet', () => { - anchor.setProvider(anchor.Provider.env()); + const provider = anchor.AnchorProvider.env(); + anchor.setProvider(provider); const puppetProgram = anchor.workspace.Puppet as Program; const puppetMasterProgram = anchor.workspace.PuppetMaster as Program; @@ -310,7 +311,7 @@ describe('puppet', () => { .initialize(puppetMasterPDA) .accounts({ puppet: puppetKeypair.publicKey, - user: anchor.getProvider().wallet.publicKey, + user: provider.wallet.publicKey, }) .signers([puppetKeypair]) .rpc();