From fe223b909a732777011d09331ea59afac9f70e7e Mon Sep 17 00:00:00 2001 From: dankelleher Date: Mon, 18 Dec 2023 17:17:14 +0100 Subject: [PATCH] Update rust, solana, anchor, metaplex versions. Note, due to compatibility issues between solana program test 1.17.* and anchor 0.29.0, solana-program-test is currently on a fork. --- .cargo/audit.toml | 5 +- .github/workflows/audit.yml | 2 +- .github/workflows/lint-test.yaml | 12 +- Anchor.toml | 2 +- Cargo.lock | 3508 ++++++++++------- programs/gateway/Cargo.toml | 31 +- .../gateway/tests/fixtures/solana_gateway.so | Bin 0 -> 126984 bytes .../tests/fixtures/solana_gateway_program.so | Bin 161600 -> 0 bytes .../tests/program_test/gateway_voter_test.rs | 22 +- .../tests/program_test/governance_test.rs | 8 +- .../program_test/predecessor_plugin_test.rs | 8 +- programs/nft-voter/Cargo.toml | 28 +- .../src/instructions/cast_nft_vote.rs | 6 +- .../update_voter_weight_record.rs | 2 +- programs/nft-voter/src/lib.rs | 4 +- .../nft-voter/src/tools/token_metadata.rs | 7 +- .../tests/program_test/token_metadata_test.rs | 113 +- programs/realm-voter/Cargo.toml | 19 +- rust-toolchain.toml | 2 +- 19 files changed, 2247 insertions(+), 1532 deletions(-) create mode 100755 programs/gateway/tests/fixtures/solana_gateway.so delete mode 100755 programs/gateway/tests/fixtures/solana_gateway_program.so diff --git a/.cargo/audit.toml b/.cargo/audit.toml index ac55a4c4..5702f9ae 100644 --- a/.cargo/audit.toml +++ b/.cargo/audit.toml @@ -1,8 +1,7 @@ -# RUSTSEC-2020-0159 ignore as no upgrade path -# RUSTSEC-2020-0071 as dependency in RUSTSEC-2020-0159 +# RUSTSEC-2022-0093 ed25519-dalek imported by latest version of solana [advisories] -ignore = ["RUSTSEC-2020-0159", "RUSTSEC-2020-0071"] # advisory IDs to ignore e.g. ["RUSTSEC-2019-0001", ...] +ignore = ["RUSTSEC-2022-0093"] # advisory IDs to ignore e.g. ["RUSTSEC-2019-0001", ...] informational_warnings = ["unmaintained"] # warn for categories of informational advisories severity_threshold = "medium" # CVSS severity ("none", "low", "medium", "high", "critical") diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml index 63057740..1087837e 100644 --- a/.github/workflows/audit.yml +++ b/.github/workflows/audit.yml @@ -10,7 +10,7 @@ on: env: CARGO_TERM_COLOR: always - SOLANA_VERSION: '1.14.16' + SOLANA_VERSION: '1.17.12' jobs: build: diff --git a/.github/workflows/lint-test.yaml b/.github/workflows/lint-test.yaml index 90831885..e8fd9afe 100644 --- a/.github/workflows/lint-test.yaml +++ b/.github/workflows/lint-test.yaml @@ -8,7 +8,7 @@ on: env: CARGO_TERM_COLOR: always - SOLANA_VERSION: '1.14.16' + SOLANA_VERSION: '1.17.12' RUST_TOOLCHAIN: stable jobs: @@ -72,12 +72,12 @@ jobs: solana-keygen new -o "$HOME/.config/solana/id.json" --no-passphrase --silent - name: Install BPF tools - # Note: as a workaround for cargo build-bpf issue run it and ignore errors to install the BPF tools + # Note: as a workaround for cargo build-sbf issue run it and ignore errors to install the BPF tools # https://github.com/solana-labs/solana/issues/26583 - run: cargo build-bpf || true + run: cargo build-sbf || true - name: Build dependencies - run: cargo +bpf build-bpf + run: cargo build-sbf - - name: Run bpf tests - run: cargo +bpf test-bpf + - name: Run sbf tests + run: cargo test-sbf diff --git a/Anchor.toml b/Anchor.toml index 95d18c01..b3cd859b 100644 --- a/Anchor.toml +++ b/Anchor.toml @@ -7,7 +7,7 @@ seeds = false [programs.localnet] nft_voter = "GnftV5kLjd67tvHpNGyodwWveEKivz3ZWvvE3Z4xi2iw" gateway = "GgathUhdrCWRHowoRKACjgWhYHfxCEdBi5ViqYN6HVxk" -solana-gateway-program = "gatem74V238djXdzWnJf94Wo1DcnuGkfijbf3AuBhfs" +solana-gateway = "gatem74V238djXdzWnJf94Wo1DcnuGkfijbf3AuBhfs" [registry] url = "https://anchor.projectserum.com" diff --git a/Cargo.lock b/Cargo.lock index 78e5a9d5..bc5dc5f6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,6 +12,15 @@ dependencies = [ "regex", ] +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + [[package]] name = "adler" version = "1.0.2" @@ -34,7 +43,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if", - "cipher 0.3.0", + "cipher", "cpufeatures", "opaque-debug", ] @@ -47,7 +56,7 @@ checksum = "589c637f0e68c877bbd59a4599bbe849cac8e5f3e4b5a3ebae8f528cd218dcdc" dependencies = [ "aead", "aes", - "cipher 0.3.0", + "cipher", "ctr", "polyval", "subtle", @@ -56,20 +65,33 @@ dependencies = [ [[package]] name = "ahash" -version = "0.7.6" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" +dependencies = [ + "getrandom 0.2.11", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ - "getrandom 0.2.5", + "cfg-if", + "getrandom 0.2.11", "once_cell", "version_check", + "zerocopy", ] [[package]] name = "aho-corasick" -version = "0.7.18" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] @@ -97,177 +119,180 @@ dependencies = [ [[package]] name = "anchor-attribute-access-control" -version = "0.26.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf7d535e1381be3de2c0716c0a1c1e32ad9df1042cddcf7bc18d743569e53319" +checksum = "e5f619f1d04f53621925ba8a2e633ba5a6081f2ae14758cbb67f38fd823e0a3e" dependencies = [ "anchor-syn", - "anyhow", - "proc-macro2 1.0.59", - "quote 1.0.28", - "regex", + "proc-macro2", + "quote", "syn 1.0.109", ] [[package]] name = "anchor-attribute-account" -version = "0.26.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3bcd731f21048a032be27c7791701120e44f3f6371358fc4261a7f716283d29" +checksum = "e7f2a3e1df4685f18d12a943a9f2a7456305401af21a07c9fe076ef9ecd6e400" dependencies = [ "anchor-syn", - "anyhow", - "bs58 0.4.0", - "proc-macro2 1.0.59", - "quote 1.0.28", - "rustversion", + "bs58 0.5.0", + "proc-macro2", + "quote", "syn 1.0.109", ] [[package]] name = "anchor-attribute-constant" -version = "0.26.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1be64a48e395fe00b8217287f226078be2cf32dae42fdf8a885b997945c3d28" +checksum = "9423945cb55627f0b30903288e78baf6f62c6c8ab28fb344b6b25f1ffee3dca7" dependencies = [ "anchor-syn", - "proc-macro2 1.0.59", + "quote", "syn 1.0.109", ] [[package]] name = "anchor-attribute-error" -version = "0.26.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ea6713d1938c0da03656ff8a693b17dc0396da66d1ba320557f07e86eca0d4" +checksum = "93ed12720033cc3c3bf3cfa293349c2275cd5ab99936e33dd4bf283aaad3e241" dependencies = [ "anchor-syn", - "proc-macro2 1.0.59", - "quote 1.0.28", + "quote", "syn 1.0.109", ] [[package]] name = "anchor-attribute-event" -version = "0.26.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d401f11efb3644285685f8339829a9786d43ed7490bb1699f33c478d04d5a582" +checksum = "eef4dc0371eba2d8c8b54794b0b0eb786a234a559b77593d6f80825b6d2c77a2" dependencies = [ "anchor-syn", - "anyhow", - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "syn 1.0.109", ] [[package]] -name = "anchor-attribute-interface" -version = "0.26.0" +name = "anchor-attribute-program" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6700a6f5c888a9c33fe8afc0c64fd8575fa28d05446037306d0f96102ae4480" +checksum = "b18c4f191331e078d4a6a080954d1576241c29c56638783322a18d308ab27e4f" dependencies = [ "anchor-syn", - "anyhow", - "heck 0.3.3", - "proc-macro2 1.0.59", - "quote 1.0.28", + "quote", "syn 1.0.109", ] [[package]] -name = "anchor-attribute-program" -version = "0.26.0" +name = "anchor-derive-accounts" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ad769993b5266714e8939e47fbdede90e5c030333c7522d99a4d4748cf26712" +checksum = "5de10d6e9620d3bcea56c56151cad83c5992f50d5960b3a9bebc4a50390ddc3c" dependencies = [ "anchor-syn", - "anyhow", - "proc-macro2 1.0.59", - "quote 1.0.28", + "quote", "syn 1.0.109", ] [[package]] -name = "anchor-attribute-state" -version = "0.26.0" +name = "anchor-derive-serde" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e677fae4a016a554acdd0e3b7f178d3acafaa7e7ffac6b8690cf4e171f1c116" +checksum = "f4e2e5be518ec6053d90a2a7f26843dbee607583c779e6c8395951b9739bdfbe" dependencies = [ "anchor-syn", - "anyhow", - "proc-macro2 1.0.59", - "quote 1.0.28", + "borsh-derive-internal 0.10.3", + "proc-macro2", + "quote", "syn 1.0.109", ] [[package]] -name = "anchor-derive-accounts" -version = "0.26.0" +name = "anchor-derive-space" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "340beef6809d1c3fcc7ae219153d981e95a8a277ff31985bd7050e32645dc9a8" +checksum = "1ecc31d19fa54840e74b7a979d44bcea49d70459de846088a1d71e87ba53c419" dependencies = [ - "anchor-syn", - "anyhow", - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "syn 1.0.109", ] [[package]] name = "anchor-lang" -version = "0.26.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "662ceafe667448ee4199a4be2ee83b6bb76da28566eee5cea05f96ab38255af8" +checksum = "35da4785497388af0553586d55ebdc08054a8b1724720ef2749d313494f2b8ad" dependencies = [ "anchor-attribute-access-control", "anchor-attribute-account", "anchor-attribute-constant", "anchor-attribute-error", "anchor-attribute-event", - "anchor-attribute-interface", "anchor-attribute-program", - "anchor-attribute-state", "anchor-derive-accounts", + "anchor-derive-serde", + "anchor-derive-space", "arrayref", - "base64 0.13.0", + "base64 0.13.1", "bincode", - "borsh", + "borsh 0.10.3", "bytemuck", + "getrandom 0.2.11", "solana-program", "thiserror", ] [[package]] name = "anchor-spl" -version = "0.26.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f32390ce8356f54c0f0245ea156f8190717e37285b8bf4f406a613dc4b954cde" +checksum = "6c4fd6e43b2ca6220d2ef1641539e678bfc31b6cc393cf892b373b5997b6a39a" dependencies = [ "anchor-lang", "solana-program", "spl-associated-token-account", - "spl-token", + "spl-token 4.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "spl-token-2022", ] [[package]] name = "anchor-syn" -version = "0.26.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0418bcb5daac3b8cb1b60d8fdb1d468ca36f5509f31fb51179326fae1028fdcc" +checksum = "d9101b84702fed2ea57bd22992f75065da5648017135b844283a2f6d74f27825" dependencies = [ "anyhow", - "bs58 0.3.1", + "bs58 0.5.0", "heck 0.3.3", - "proc-macro2 1.0.59", - "proc-macro2-diagnostics", - "quote 1.0.28", + "proc-macro2", + "quote", "serde", "serde_json", - "sha2 0.9.9", + "sha2 0.10.8", "syn 1.0.109", "thiserror", ] +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "ansi_term" version = "0.12.1" @@ -279,9 +304,126 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.56" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.4", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.4", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint 0.4.4", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-std" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", +] [[package]] name = "arrayref" @@ -291,9 +433,9 @@ checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" [[package]] name = "arrayvec" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "ascii" @@ -314,7 +456,7 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.21", + "time", ] [[package]] @@ -323,8 +465,8 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "syn 1.0.109", "synstructure", ] @@ -335,8 +477,8 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "syn 1.0.109", ] @@ -346,11 +488,22 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + [[package]] name = "async-compression" -version = "0.3.15" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" +checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5" dependencies = [ "brotli", "flate2", @@ -371,13 +524,13 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.68" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 2.0.18", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] @@ -397,6 +550,21 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + [[package]] name = "base64" version = "0.12.3" @@ -405,15 +573,15 @@ checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" [[package]] name = "base64" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.2" +version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" [[package]] name = "base64ct" @@ -436,6 +604,15 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] + [[package]] name = "bitmaps" version = "2.1.0" @@ -447,9 +624,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.3.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" +checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" dependencies = [ "arrayref", "arrayvec", @@ -471,9 +648,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.2" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] @@ -490,20 +667,43 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" dependencies = [ - "borsh-derive", + "borsh-derive 0.9.3", "hashbrown 0.11.2", ] +[[package]] +name = "borsh" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" +dependencies = [ + "borsh-derive 0.10.3", + "hashbrown 0.13.2", +] + [[package]] name = "borsh-derive" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" dependencies = [ - "borsh-derive-internal", - "borsh-schema-derive-internal", + "borsh-derive-internal 0.9.3", + "borsh-schema-derive-internal 0.9.3", + "proc-macro-crate 0.1.5", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" +dependencies = [ + "borsh-derive-internal 0.10.3", + "borsh-schema-derive-internal 0.10.3", "proc-macro-crate 0.1.5", - "proc-macro2 1.0.59", + "proc-macro2", "syn 1.0.109", ] @@ -513,8 +713,19 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb" +dependencies = [ + "proc-macro2", + "quote", "syn 1.0.109", ] @@ -524,16 +735,27 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "borsh-schema-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd" +dependencies = [ + "proc-macro2", + "quote", "syn 1.0.109", ] [[package]] name = "brotli" -version = "3.3.4" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" +checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -542,9 +764,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "2.3.4" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744" +checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -552,21 +774,24 @@ dependencies = [ [[package]] name = "bs58" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bs58" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +dependencies = [ + "tinyvec", +] [[package]] name = "bumpalo" -version = "3.9.1" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "bv" @@ -580,35 +805,35 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192" +checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 2.0.18", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.1.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "bzip2" @@ -643,11 +868,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.73" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", + "libc", ] [[package]] @@ -658,23 +884,24 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.19" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ - "libc", - "num-integer", + "android-tzdata", + "iana-time-zone", + "js-sys", "num-traits", "serde", - "time 0.1.43", - "winapi", + "wasm-bindgen", + "windows-targets 0.48.5", ] [[package]] name = "chrono-humanize" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eddc119501d583fd930cb92144e605f44e0252c38dd89d9247fffa1993375cb" +checksum = "799627e6b4d27827a814e837b9d8a504832086081806d45b1afa34dc982b023b" dependencies = [ "chrono", ] @@ -688,16 +915,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "cipher" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" -dependencies = [ - "crypto-common", - "inout", -] - [[package]] name = "clap" version = "2.34.0" @@ -706,7 +923,7 @@ checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" dependencies = [ "ansi_term", "atty", - "bitflags", + "bitflags 1.3.2", "strsim 0.8.0", "textwrap 0.11.0", "unicode-width", @@ -720,9 +937,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" dependencies = [ "atty", - "bitflags", + "bitflags 1.3.2", "clap_lex", - "indexmap", + "indexmap 1.9.3", "once_cell", "strsim 0.10.0", "termcolor", @@ -751,6 +968,15 @@ dependencies = [ "unreachable", ] +[[package]] +name = "concurrent-queue" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "console" version = "0.15.7" @@ -776,9 +1002,9 @@ dependencies = [ [[package]] name = "console_log" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501a375961cef1a0d44767200e66e4a559283097e91d0730b1d75dfb2f8a1494" +checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f" dependencies = [ "log", "web-sys", @@ -792,15 +1018,15 @@ checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" [[package]] name = "constant_time_eq" -version = "0.1.5" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -808,15 +1034,15 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" -version = "0.2.1" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" dependencies = [ "libc", ] @@ -832,9 +1058,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.2" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa" +checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" dependencies = [ "cfg-if", "crossbeam-utils", @@ -842,9 +1068,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.1" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -853,25 +1079,23 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.7" +version = "0.9.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" +checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" dependencies = [ + "autocfg", "cfg-if", "crossbeam-utils", - "lazy_static", - "memoffset", - "scopeguard", + "memoffset 0.9.0", ] [[package]] name = "crossbeam-utils" -version = "0.8.7" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" +checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" dependencies = [ "cfg-if", - "lazy_static", ] [[package]] @@ -882,9 +1106,9 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-common" -version = "0.1.3" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", "typenum", @@ -906,7 +1130,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" dependencies = [ - "cipher 0.3.0", + "cipher", ] [[package]] @@ -923,6 +1147,41 @@ dependencies = [ "zeroize", ] +[[package]] +name = "darling" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 2.0.41", +] + +[[package]] +name = "darling_macro" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.41", +] + [[package]] name = "dashmap" version = "4.0.2" @@ -936,9 +1195,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] name = "der" @@ -958,16 +1217,36 @@ dependencies = [ "asn1-rs", "displaydoc", "nom", - "num-bigint 0.4.3", + "num-bigint 0.4.4", "num-traits", "rusticata-macros", ] [[package]] -name = "derivation-path" -version = "0.2.0" +name = "deranged" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "derivation-path" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] [[package]] name = "dialoguer" @@ -996,7 +1275,7 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.2", + "block-buffer 0.10.4", "crypto-common", "subtle", ] @@ -1010,59 +1289,38 @@ dependencies = [ "walkdir", ] -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - [[package]] name = "displaydoc" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 2.0.18", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] -name = "dlopen" -version = "0.1.8" +name = "dlopen2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e80ad39f814a9abe68583cd50a2d45c8a67561c3361ab8da240587dda80937" +checksum = "09b4f5f101177ff01b8ec4ecc81eead416a8aa42819a2869311b3420fa114ffa" dependencies = [ - "dlopen_derive", - "lazy_static", + "dlopen2_derive", "libc", + "once_cell", "winapi", ] [[package]] -name = "dlopen_derive" -version = "0.1.4" +name = "dlopen2_derive" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f236d9e1b1fbd81cea0f9cbdc8dcc7e8ebcd80e6659cd7cb2ad5f6c05946c581" +checksum = "a6cbae11b3de8fce2a456e8ea3dada226b35fe791f0dc1d360c0941f0bb681f3" dependencies = [ - "libc", - "quote 0.6.13", - "syn 0.15.44", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] @@ -1073,9 +1331,9 @@ checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" [[package]] name = "ed25519" -version = "1.4.0" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed12bbf7b5312f8da1c2722bc06d8c6b12c2d86a7fb35a194c7f3e6fc2bbe39" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" dependencies = [ "signature", ] @@ -1103,26 +1361,26 @@ dependencies = [ "derivation-path", "ed25519-dalek", "hmac 0.12.1", - "sha2 0.10.6", + "sha2 0.10.8", ] [[package]] name = "educe" -version = "0.4.19" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c07b7cc9cd8c08d10db74fca3b20949b9b6199725c04a0cce6d543496098fcac" +checksum = "0f0042ff8246a363dbe77d2ceedb073339e85a804b9a47636c6e016a9a32c05f" dependencies = [ "enum-ordinalize", - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "syn 1.0.109", ] [[package]] name = "either" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "encode_unicode" @@ -1132,64 +1390,63 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "encoding_rs" -version = "0.8.30" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dc8abb250ffdda33912550faa54c88ec8b998dec0b2c55ab224921ce11df" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" dependencies = [ "cfg-if", ] [[package]] name = "enum-iterator" -version = "0.8.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2953d1df47ac0eb70086ccabf0275aa8da8591a28bd358ee2b52bd9f9e3ff9e9" +checksum = "7add3873b5dd076766ee79c8e406ad1a472c385476b9e38849f8eec24f1be689" dependencies = [ "enum-iterator-derive", ] [[package]] name = "enum-iterator-derive" -version = "0.8.1" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8958699f9359f0b04e691a13850d48b7de329138023876d07cbd024c2c820598" +checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 1.0.109", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] name = "enum-ordinalize" -version = "3.1.11" +version = "3.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2170fc0efee383079a8bdd05d6ea2a184d2a0f07a1c1dcabdb2fd5e9f24bc36c" +checksum = "1bf1fa3f06bbff1ea5b1a9c7b14aa992a39657db60a2759457328d7e058f49ee" dependencies = [ - "num-bigint 0.4.3", + "num-bigint 0.4.4", "num-traits", - "proc-macro2 1.0.59", - "quote 1.0.28", - "rustc_version", - "syn 1.0.109", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] name = "enum_dispatch" -version = "0.3.8" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eb359f1476bf611266ac1f5355bc14aeca37b299d0ebccc038ee7058891c9cb" +checksum = "8f33313078bb8d4d05a2733a94ac4c2d8a0df9a2b84424ebf4f33bfc224a890e" dependencies = [ "once_cell", - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 1.0.109", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] name = "env_logger" -version = "0.9.0" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" +checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" dependencies = [ "atty", "humantime", @@ -1199,24 +1456,19 @@ dependencies = [ ] [[package]] -name = "errno" -version = "0.3.1" +name = "equivalent" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" -dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys 0.48.0", -] +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] -name = "errno-dragonfly" -version = "0.1.2" +name = "errno" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ - "cc", "libc", + "windows-sys 0.52.0", ] [[package]] @@ -1227,12 +1479,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "fastrand" -version = "1.7.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" -dependencies = [ - "instant", -] +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "feature-probe" @@ -1242,21 +1491,21 @@ checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" [[package]] name = "filetime" -version = "0.2.15" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.2.11", - "winapi", + "redox_syscall", + "windows-sys 0.52.0", ] [[package]] name = "flate2" -version = "1.0.26" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" dependencies = [ "crc32fast", "miniz_oxide", @@ -1270,19 +1519,27 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.0.1" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ - "matches", "percent-encoding", ] +[[package]] +name = "fs-err" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" +dependencies = [ + "autocfg", +] + [[package]] name = "futures" -version = "0.3.21" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" dependencies = [ "futures-channel", "futures-core", @@ -1295,9 +1552,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.21" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" dependencies = [ "futures-core", "futures-sink", @@ -1305,15 +1562,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.21" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" [[package]] name = "futures-executor" -version = "0.3.21" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" dependencies = [ "futures-core", "futures-task", @@ -1322,38 +1579,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.21" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" [[package]] name = "futures-macro" -version = "0.3.21" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 1.0.109", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] name = "futures-sink" -version = "0.3.21" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" [[package]] name = "futures-task" -version = "0.3.21" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" [[package]] name = "futures-util" -version = "0.3.21" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" dependencies = [ "futures-channel", "futures-core", @@ -1367,20 +1624,11 @@ dependencies = [ "slab", ] -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "generic-array" -version = "0.14.5" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "serde", "typenum", @@ -1412,17 +1660,23 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.5" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.10.2+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", "wasm-bindgen", ] +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + [[package]] name = "goblin" version = "0.5.4" @@ -1441,11 +1695,11 @@ dependencies = [ "anchor-lang", "anchor-spl", "arrayref", - "borsh", + "borsh 0.10.3", "enum_dispatch", - "itertools", - "num 0.4.0", - "num-derive", + "itertools 0.12.0", + "num 0.4.1", + "num-derive 0.4.1", "num-traits", "solana-gateway", "solana-program", @@ -1455,7 +1709,7 @@ dependencies = [ "spl-governance-addin-api", "spl-governance-addin-mock", "spl-governance-tools", - "spl-token", + "spl-token 4.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1465,17 +1719,15 @@ dependencies = [ "anchor-lang", "anchor-spl", "arrayref", - "borsh", - "itertools", + "borsh 0.10.3", + "itertools 0.12.0", "mpl-token-metadata", "solana-program", "solana-program-test", "solana-sdk", "spl-governance", "spl-governance-tools", - "spl-token", - "toml_datetime", - "winnow", + "spl-token 4.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1485,20 +1737,20 @@ dependencies = [ "anchor-lang", "anchor-spl", "arrayref", - "borsh", + "borsh 0.10.3", "solana-program", "solana-program-test", "solana-sdk", "spl-governance", "spl-governance-tools", - "spl-token", + "spl-token 4.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "h2" -version = "0.3.12" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62eeb471aa3e3c9197aa4bfeabfe02982f6dc96f750486c0bb0009ac58b26d2b" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" dependencies = [ "bytes", "fnv", @@ -1506,10 +1758,10 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 2.1.0", "slab", "tokio", - "tokio-util 0.6.9", + "tokio-util 0.7.10", "tracing", ] @@ -1528,7 +1780,7 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" dependencies = [ - "ahash", + "ahash 0.7.7", ] [[package]] @@ -1537,9 +1789,24 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash", + "ahash 0.7.7", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.6", ] +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + [[package]] name = "heck" version = "0.3.3" @@ -1566,9 +1833,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "histogram" @@ -1608,9 +1875,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.6" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" dependencies = [ "bytes", "fnv", @@ -1619,9 +1886,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", @@ -1636,9 +1903,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" @@ -1648,9 +1915,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.22" +version = "0.14.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abfba89e19b959ca163c7752ba59d737c1ceea53a5d31a149c805446fc958064" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" dependencies = [ "bytes", "futures-channel", @@ -1672,10 +1939,11 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.23.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ + "futures-util", "http", "hyper", "rustls", @@ -1683,13 +1951,41 @@ dependencies = [ "tokio-rustls", ] +[[package]] +name = "iana-time-zone" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "idna" -version = "0.2.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ - "matches", "unicode-bidi", "unicode-normalization", ] @@ -1701,7 +1997,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" dependencies = [ "bitmaps", - "rand_core 0.6.3", + "rand_core 0.6.4", "rand_xoshiro", "rayon", "serde", @@ -1712,9 +2008,9 @@ dependencies = [ [[package]] name = "index_list" -version = "0.2.7" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9d968042a4902e08810946fc7cd5851eb75e80301342305af755ca06cb82ce" +checksum = "70891286cb8e844fdfcf1178b47569699f9e20b5ecc4b45a6240a64771444638" [[package]] name = "indexmap" @@ -1727,24 +2023,26 @@ dependencies = [ ] [[package]] -name = "indicatif" -version = "0.16.2" +name = "indexmap" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d207dc617c7a380ab07ff572a6e52fa202a2a8f355860ac9c38e23f8196be1b" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ - "console", - "lazy_static", - "number_prefix", - "regex", + "equivalent", + "hashbrown 0.14.3", ] [[package]] -name = "inout" -version = "0.1.3" +name = "indicatif" +version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" dependencies = [ - "generic-array", + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", ] [[package]] @@ -1757,51 +2055,49 @@ dependencies = [ ] [[package]] -name = "io-lifetimes" -version = "1.0.11" +name = "ipnet" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi 0.3.1", - "libc", - "windows-sys 0.48.0", -] +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] -name = "ipnet" -version = "2.4.0" +name = "itertools" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e70ee094dc02fd9c13fdad4940090f22dbd6ac7c9e7094a46cf0232a50bc7c" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] [[package]] name = "itertools" -version = "0.10.3" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.1" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "jobserver" -version = "0.1.24" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.63" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] @@ -1823,9 +2119,12 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.0" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +dependencies = [ + "cpufeatures", +] [[package]] name = "lazy_static" @@ -1835,19 +2134,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.144" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" - -[[package]] -name = "libloading" -version = "0.7.3" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" -dependencies = [ - "cfg-if", - "winapi", -] +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" [[package]] name = "libsecp256k1" @@ -1898,31 +2187,38 @@ dependencies = [ ] [[package]] -name = "linked-hash-map" -version = "0.5.6" +name = "light-poseidon" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" +checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" +dependencies = [ + "ark-bn254", + "ark-ff", + "num-bigint 0.4.4", + "thiserror", +] [[package]] name = "linux-raw-sys" -version = "0.3.8" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "lock_api" -version = "0.4.6" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ + "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.18" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518ef76f2f87365916b142844c16d8fefd85039bc5699050210a7778ee1cd1de" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "lru" @@ -1953,32 +2249,35 @@ dependencies = [ "libc", ] -[[package]] -name = "matches" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" - [[package]] name = "memchr" -version = "2.4.1" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memmap2" -version = "0.5.3" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057a3db23999c867821a7a59feb06a578fcb03685e983dff90daf9e7d24ac08f" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" dependencies = [ "libc", ] [[package]] name = "memoffset" -version = "0.6.5" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] @@ -1991,15 +2290,15 @@ checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" dependencies = [ "byteorder", "keccak", - "rand_core 0.6.3", + "rand_core 0.6.4", "zeroize", ] [[package]] name = "mime" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "minimal-lexical" @@ -2018,24 +2317,13 @@ dependencies = [ [[package]] name = "mio" -version = "0.7.14" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", - "log", - "miow", - "ntapi", - "winapi", -] - -[[package]] -name = "miow" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", ] [[package]] @@ -2054,81 +2342,35 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "syn 1.0.109", ] -[[package]] -name = "mpl-token-auth-rules" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24dcb2b0ec0e9246f6f035e0336ba3359c21f6928dfd90281999e2c8e8ab53eb" -dependencies = [ - "borsh", - "mpl-token-metadata-context-derive", - "num-derive", - "num-traits", - "rmp-serde", - "serde", - "shank", - "solana-program", - "solana-zk-token-sdk", - "thiserror", -] - [[package]] name = "mpl-token-metadata" -version = "1.12.0" +version = "3.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f661ff8c1d64c48cf207c0d259783d411a4249058c1b861fabd8bb6ce30ae4d8" +checksum = "ba8ee05284d79b367ae8966d558e1a305a781fc80c9df51f37775169117ba64f" dependencies = [ - "arrayref", - "borsh", - "mpl-token-auth-rules", - "mpl-token-metadata-context-derive", - "mpl-utils", - "num-derive", + "borsh 0.10.3", + "num-derive 0.3.3", "num-traits", - "shank", "solana-program", - "spl-associated-token-account", - "spl-token", "thiserror", ] -[[package]] -name = "mpl-token-metadata-context-derive" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12989bc45715b0ee91944855130131479f9c772e198a910c3eb0ea327d5bffc3" -dependencies = [ - "quote 1.0.28", - "syn 1.0.109", -] - -[[package]] -name = "mpl-utils" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822133b6cba8f9a43e5e0e189813be63dd795858f54155c729833be472ffdb51" -dependencies = [ - "arrayref", - "borsh", - "solana-program", - "spl-token", -] - [[package]] name = "nix" -version = "0.24.3" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", - "memoffset", + "memoffset 0.7.1", + "pin-utils", ] [[package]] @@ -2141,15 +2383,6 @@ dependencies = [ "minimal-lexical", ] -[[package]] -name = "ntapi" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" -dependencies = [ - "winapi", -] - [[package]] name = "num" version = "0.2.1" @@ -2166,15 +2399,15 @@ dependencies = [ [[package]] name = "num" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" dependencies = [ - "num-bigint 0.4.3", - "num-complex 0.4.1", + "num-bigint 0.4.4", + "num-complex 0.4.4", "num-integer", "num-iter", - "num-rational 0.4.0", + "num-rational 0.4.1", "num-traits", ] @@ -2191,9 +2424,9 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", @@ -2212,9 +2445,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.1" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fbc387afefefd5e9e39493299f3069e14a140dd34dc19b4c1c1a8fddb6a790" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", ] @@ -2225,16 +2458,27 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "syn 1.0.109", ] +[[package]] +name = "num-derive" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfb77679af88f8b125209d354a202862602672222e7f2313fdd6dc349bad4712" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + [[package]] name = "num-integer" -version = "0.1.44" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ "autocfg", "num-traits", @@ -2265,54 +2509,75 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ "autocfg", - "num-bigint 0.4.3", + "num-bigint 0.4.4", "num-integer", "num-traits", ] [[package]] name = "num-traits" -version = "0.2.14" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", ] [[package]] name = "num_cpus" -version = "1.13.1" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.1.19", + "hermit-abi 0.3.3", "libc", ] [[package]] name = "num_enum" -version = "0.5.11" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", +] + +[[package]] +name = "num_enum" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +checksum = "683751d591e6d81200c39fb0d1032608b77724f34114db54f571ff1317b337c0" dependencies = [ - "num_enum_derive", + "num_enum_derive 0.7.1", ] [[package]] name = "num_enum_derive" -version = "0.5.11" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" dependencies = [ - "proc-macro-crate 1.1.3", - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 1.0.109", + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c11e44798ad209ccdd91fc192f0526a369a01234f7373e1b141c96d7cee4f0e" +dependencies = [ + "proc-macro-crate 2.0.1", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] @@ -2321,6 +2586,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" +[[package]] +name = "object" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + [[package]] name = "oid-registry" version = "0.6.1" @@ -2332,9 +2606,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.2" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" @@ -2369,9 +2643,9 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.5.0" +version = "6.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" [[package]] name = "ouroboros" @@ -2391,64 +2665,39 @@ checksum = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7" dependencies = [ "Inflector", "proc-macro-error", - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "syn 1.0.109", ] [[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 0.8.5", -] - -[[package]] -name = "parking_lot" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.1", -] - -[[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 0.2.11", - "smallvec", - "winapi", + "parking_lot_core", ] [[package]] name = "parking_lot_core" -version = "0.9.1" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28141e0cc4143da2443301914478dc976a61ffdb3f043058310c70df2fed8954" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.2.11", + "redox_syscall", "smallvec", - "windows-sys 0.32.0", + "windows-targets 0.48.5", ] [[package]] name = "paste" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pbkdf2" @@ -2474,14 +2723,14 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" dependencies = [ - "base64 0.13.0", + "base64 0.13.1", ] [[package]] name = "percent-encoding" -version = "2.1.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "percentage" @@ -2494,29 +2743,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.0.10" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.10" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 1.0.109", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] name = "pin-project-lite" -version = "0.2.8" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -2537,9 +2786,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.24" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "plain" @@ -2559,11 +2808,23 @@ dependencies = [ "universal-hash", ] +[[package]] +name = "portable-atomic" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro-crate" @@ -2576,12 +2837,22 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.1.3" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ - "thiserror", - "toml", + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" +dependencies = [ + "toml_datetime", + "toml_edit 0.20.2", ] [[package]] @@ -2591,8 +2862,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "syn 1.0.109", "version_check", ] @@ -2603,120 +2874,95 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "version_check", ] [[package]] name = "proc-macro2" -version = "0.4.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -dependencies = [ - "unicode-xid 0.1.0", -] - -[[package]] -name = "proc-macro2" -version = "1.0.59" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] [[package]] -name = "proc-macro2-diagnostics" -version = "0.9.1" +name = "qstring" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bf29726d67464d49fa6224a1d07936a8c08bb3fba727c7493f6cf1616fdaada" +checksum = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 1.0.109", - "version_check", - "yansi", + "percent-encoding", ] [[package]] -name = "qstring" -version = "0.7.2" +name = "qualifier_attr" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e" +checksum = "9e2e25ee72f5b24d773cae88422baddefff7714f97aab68d96fe2b6fc4a28fb2" dependencies = [ - "percent-encoding", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] name = "quinn" -version = "0.8.5" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b435e71d9bfa0d8889927231970c51fb89c58fa63bffcab117c9c7a41e5ef8f" +checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75" dependencies = [ "bytes", - "futures-channel", - "futures-util", - "fxhash", + "pin-project-lite", "quinn-proto", "quinn-udp", + "rustc-hash", "rustls", "thiserror", "tokio", "tracing", - "webpki", ] [[package]] name = "quinn-proto" -version = "0.8.4" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fce546b9688f767a57530652488420d419a8b1f44a478b451c3d1ab6d992a55" +checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a" dependencies = [ "bytes", - "fxhash", "rand 0.8.5", - "ring", + "ring 0.16.20", + "rustc-hash", "rustls", "rustls-native-certs", - "rustls-pemfile 0.2.1", "slab", "thiserror", "tinyvec", "tracing", - "webpki", ] [[package]] name = "quinn-udp" -version = "0.1.4" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b07946277141531aea269befd949ed16b2c85a780ba1043244eda0969e538e54" +checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" dependencies = [ - "futures-util", + "bytes", "libc", - "quinn-proto", "socket2", - "tokio", "tracing", + "windows-sys 0.48.0", ] [[package]] name = "quote" -version = "0.6.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" -dependencies = [ - "proc-macro2 0.4.30", -] - -[[package]] -name = "quote" -version = "1.0.28" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ - "proc-macro2 1.0.59", + "proc-macro2", ] [[package]] @@ -2740,7 +2986,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha 0.3.1", - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -2760,7 +3006,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -2774,11 +3020,11 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.5", + "getrandom 0.2.11", ] [[package]] @@ -2796,14 +3042,14 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" dependencies = [ - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] name = "rayon" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ "either", "rayon-core", @@ -2811,62 +3057,52 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", ] [[package]] name = "rcgen" -version = "0.9.3" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" dependencies = [ "pem", - "ring", - "time 0.3.21", + "ring 0.16.20", + "time", "yasna", ] [[package]] name = "redox_syscall" -version = "0.2.11" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] -name = "redox_syscall" -version = "0.3.5" +name = "regex" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ - "bitflags", + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", ] [[package]] -name = "redox_users" +name = "regex-automata" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" -dependencies = [ - "getrandom 0.2.5", - "redox_syscall 0.2.11", - "thiserror", -] - -[[package]] -name = "regex" -version = "1.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", @@ -2875,18 +3111,18 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.29" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" -version = "0.11.17" +version = "0.11.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91" +checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" dependencies = [ "async-compression", - "base64 0.21.2", + "base64 0.21.5", "bytes", "encoding_rs", "futures-core", @@ -2904,19 +3140,20 @@ dependencies = [ "percent-encoding", "pin-project-lite", "rustls", - "rustls-pemfile 1.0.2", + "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", + "system-configuration", "tokio", "tokio-rustls", - "tokio-util 0.7.2", + "tokio-util 0.7.10", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots", + "webpki-roots 0.25.3", "winreg", ] @@ -2929,51 +3166,52 @@ dependencies = [ "cc", "libc", "once_cell", - "spin", - "untrusted", + "spin 0.5.2", + "untrusted 0.7.1", "web-sys", "winapi", ] [[package]] -name = "rmp" -version = "0.8.11" +name = "ring" +version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" dependencies = [ - "byteorder", - "num-traits", - "paste", + "cc", + "getrandom 0.2.11", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.48.0", ] [[package]] -name = "rmp-serde" -version = "1.1.1" +name = "rpassword" +version = "7.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b13be192e0220b8afb7222aa5813cb62cc269ebb5cac346ca6487681d2913e" +checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" dependencies = [ - "byteorder", - "rmp", - "serde", + "libc", + "rtoolbox", + "windows-sys 0.48.0", ] [[package]] -name = "rpassword" -version = "6.0.1" +name = "rtoolbox" +version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bf099a1888612545b683d2661a1940089f6c2e5a8e38979b2159da876bfd956" +checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" dependencies = [ "libc", - "serde", - "serde_json", - "winapi", + "windows-sys 0.48.0", ] [[package]] name = "rustc-demangle" -version = "0.1.21" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustc-hash" @@ -3001,71 +3239,71 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.19" +version = "0.38.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" dependencies = [ - "bitflags", + "bitflags 2.4.1", "errno", - "io-lifetimes", "libc", "linux-raw-sys", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "rustls" -version = "0.20.8" +version = "0.21.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", - "ring", + "ring 0.17.7", + "rustls-webpki", "sct", - "webpki", ] [[package]] name = "rustls-native-certs" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile 1.0.2", + "rustls-pemfile", "schannel", "security-framework", ] [[package]] name = "rustls-pemfile" -version = "0.2.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64 0.13.0", + "base64 0.21.5", ] [[package]] -name = "rustls-pemfile" -version = "1.0.2" +name = "rustls-webpki" +version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "base64 0.21.2", + "ring 0.17.7", + "untrusted 0.9.0", ] [[package]] name = "rustversion" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.9" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "same-file" @@ -3078,18 +3316,18 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] name = "scopeguard" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll" @@ -3102,32 +3340,32 @@ dependencies = [ [[package]] name = "scroll_derive" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdbda6ac5cd1321e724fa9cee216f3a61885889b896f073b8f82322789c5250e" +checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 1.0.109", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] name = "sct" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring", - "untrusted", + "ring 0.17.7", + "untrusted 0.9.0", ] [[package]] name = "security-framework" -version = "2.9.1" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -3136,9 +3374,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" dependencies = [ "core-foundation-sys", "libc", @@ -3146,44 +3384,44 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.17" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.163" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] [[package]] name = "serde_bytes" -version = "0.11.5" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16ae07dd2f88a366f15bd0632ba725227018c69a1c8550a927324f8eb8368bb9" +checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.163" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 2.0.18", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] name = "serde_json" -version = "1.0.96" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -3203,22 +3441,32 @@ dependencies = [ ] [[package]] -name = "serde_yaml" -version = "0.8.26" +name = "serde_with" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" dependencies = [ - "indexmap", - "ryu", "serde", - "yaml-rust", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] -name = "sha-1" -version = "0.10.1" +name = "sha1" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures", @@ -3240,9 +3488,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -3263,53 +3511,19 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ "digest 0.10.7", "keccak", ] -[[package]] -name = "shank" -version = "0.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b63e565b5e95ad88ab38f312e89444c749360641c509ef2de0093b49f55974a5" -dependencies = [ - "shank_macro", -] - -[[package]] -name = "shank_macro" -version = "0.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63927d22a1e8b74bda98cc6e151fcdf178b7abb0dc6c4f81e0bbf5ffe2fc4ec8" -dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", - "shank_macro_impl", - "syn 1.0.109", -] - -[[package]] -name = "shank_macro_impl" -version = "0.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ce03403df682f80f4dc1efafa87a4d0cb89b03726d0565e6364bdca5b9a441" -dependencies = [ - "anyhow", - "proc-macro2 1.0.59", - "quote 1.0.28", - "serde", - "syn 1.0.109", -] - [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] @@ -3322,18 +3536,24 @@ checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" [[package]] name = "signal-hook-registry" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ "libc", ] [[package]] name = "signature" -version = "1.5.0" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" + +[[package]] +name = "siphasher" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f054c6c1a6e95179d6f23ed974060dcefb2d9388bb7256900badad682c499de4" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "sized-chunks" @@ -3347,47 +3567,37 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.5" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] [[package]] name = "smallvec" -version = "1.8.0" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" [[package]] name = "socket2" -version = "0.4.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", - "winapi", -] - -[[package]] -name = "sol-did" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2546d424d6898908c205d99d3af07ad42e2e8aec8f0d459235dc0bd4e9866fe" -dependencies = [ - "borsh", - "num-derive", - "num-traits", - "solana-program", - "thiserror", + "windows-sys 0.48.0", ] [[package]] name = "solana-account-decoder" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05a799348a70a5885cf428f1921e851cec204b58de1aeb0ca4409b5973d6d59d" +checksum = "f47a1bf5f7d91a60b073f5d2b58993a9f44258d4df3304ed11a1e21ba23804a1" dependencies = [ "Inflector", - "base64 0.13.0", + "base64 0.21.5", "bincode", "bs58 0.4.0", "bv", @@ -3395,26 +3605,84 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "solana-address-lookup-table-program", "solana-config-program", "solana-sdk", - "solana-vote-program", - "spl-token", + "spl-token 4.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "spl-token-2022", + "spl-token-metadata-interface", "thiserror", "zstd", ] [[package]] -name = "solana-address-lookup-table-program" -version = "1.14.18" +name = "solana-accounts-db" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef5f98a080611a417da791853ca245ea7f58efefd4b5d9c5239e82693a65697" +checksum = "9b786bc7ebf38e0baac9e6cf764236c3a954b19bbfac82f731d2891873af5847" dependencies = [ + "arrayref", "bincode", + "blake3", + "bv", "bytemuck", + "byteorder", + "bzip2", + "crossbeam-channel", + "dashmap", + "flate2", + "fnv", + "fs-err", + "im", + "index_list", + "itertools 0.10.5", + "lazy_static", "log", - "num-derive", + "lz4", + "memmap2", + "modular-bitfield", + "num-derive 0.3.3", + "num-traits", + "num_cpus", + "num_enum 0.6.1", + "ouroboros", + "percentage", + "qualifier_attr", + "rand 0.8.5", + "rayon", + "regex", + "rustc_version", + "serde", + "serde_derive", + "solana-bucket-map", + "solana-config-program", + "solana-frozen-abi", + "solana-frozen-abi-macro", + "solana-measure", + "solana-metrics", + "solana-program-runtime", + "solana-rayon-threadlimit", + "solana-sdk", + "solana-stake-program", + "solana-system-program", + "solana-vote-program", + "static_assertions", + "strum", + "strum_macros", + "tar", + "tempfile", + "thiserror", +] + +[[package]] +name = "solana-address-lookup-table-program" +version = "1.17.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fc311ece92c9cc5b040fd2bb86b66a4e56428d8757b04e30095590101a2345b" +dependencies = [ + "bincode", + "bytemuck", + "log", + "num-derive 0.3.3", "num-traits", "rustc_version", "serde", @@ -3428,11 +3696,11 @@ dependencies = [ [[package]] name = "solana-banks-client" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16bb04d9b8c65d94706d0b06bf02bc105052c3f8db8bcba63de5a18e89ba8bce" +checksum = "c1cbf50ff5efe5b0b1b93256b1d9c168dc3b0217c961839c47ecd68c3ed6d21b" dependencies = [ - "borsh", + "borsh 0.10.3", "futures", "solana-banks-interface", "solana-program", @@ -3445,9 +3713,9 @@ dependencies = [ [[package]] name = "solana-banks-interface" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae3830efc383b740f5026f3fbc6391e8265a6b1e28683533088293c668c211ed" +checksum = "0fa9a5e31618726fa332661bcd9da4b3a7871ebb5a3dbf55e3817e6aa61a2ab8" dependencies = [ "serde", "solana-sdk", @@ -3456,13 +3724,14 @@ dependencies = [ [[package]] name = "solana-banks-server" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09864a6050fcf5e6913d16f56ed0a6bce11d325df5d37614345b7e130e37f749" +checksum = "cdce26a00a2b1f78f74fb469f5dc4e7d292e71e7faf2fbda44ea4a3e93b64b53" dependencies = [ "bincode", "crossbeam-channel", "futures", + "solana-accounts-db", "solana-banks-interface", "solana-client", "solana-runtime", @@ -3471,21 +3740,20 @@ dependencies = [ "tarpc", "tokio", "tokio-serde", - "tokio-stream", ] [[package]] name = "solana-bpf-loader-program" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "025c1ff6e5d33de0e7a360b47b46240c6972b10125d2946b6239fbd84e7edca3" +checksum = "cdf15ae00e1f786c48b1cff77e56eb4614c5d0622fc896eae7bbdeba9bda9409" dependencies = [ "bincode", "byteorder", "libsecp256k1", "log", + "scopeguard", "solana-measure", - "solana-metrics", "solana-program-runtime", "solana-sdk", "solana-zk-token-sdk", @@ -3495,14 +3763,17 @@ dependencies = [ [[package]] name = "solana-bucket-map" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66fea900d00099e47ccfbcde017757bda696738b7adc9b1dcaa59955c2e488e0" +checksum = "9f463dda4bee19a51981c6be1bd94fda63c273c912e60467bde70978140049a3" dependencies = [ + "bv", + "bytemuck", "log", "memmap2", "modular-bitfield", - "rand 0.7.3", + "num_enum 0.6.1", + "rand 0.8.5", "solana-measure", "solana-sdk", "tempfile", @@ -3510,14 +3781,13 @@ dependencies = [ [[package]] name = "solana-clap-utils" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43985f76c072db0412de3dcd8976bf6bc040ee10da8480fb5ba6b9455d733e6f" +checksum = "2c205d49f0fa0f0ed7cf0fdf89883a60ffaa6110e98a28162633a33e1ca282ef" dependencies = [ "chrono", "clap 2.34.0", "rpassword", - "solana-perf", "solana-remote-wallet", "solana-sdk", "thiserror", @@ -3526,81 +3796,44 @@ dependencies = [ "url", ] -[[package]] -name = "solana-cli-config" -version = "1.14.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c6b277a2927981b7f4e437741a37fc457eed5da7de6317c2a89a6996fd573e1" -dependencies = [ - "dirs-next", - "lazy_static", - "serde", - "serde_derive", - "serde_yaml", - "solana-clap-utils", - "solana-sdk", - "url", -] - [[package]] name = "solana-client" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839f0ebb1c14a25da0e2118a96ed630a49e3aa524a459b7ab98b410f44abcc7" +checksum = "59b17557d9513b011fd6f9746f00c2bb4f0ed95ad894968ec1e96082d61a127f" dependencies = [ - "async-mutex", "async-trait", - "base64 0.13.0", "bincode", - "bs58 0.4.0", - "bytes", - "clap 2.34.0", - "crossbeam-channel", - "enum_dispatch", + "dashmap", "futures", "futures-util", - "indexmap", + "indexmap 2.1.0", "indicatif", - "itertools", - "jsonrpc-core", - "lazy_static", "log", "quinn", - "quinn-proto", - "rand 0.7.3", - "rand_chacha 0.2.2", "rayon", - "reqwest", - "rustls", - "semver", - "serde", - "serde_derive", - "serde_json", - "solana-account-decoder", - "solana-clap-utils", - "solana-faucet", + "solana-connection-cache", "solana-measure", "solana-metrics", - "solana-net-utils", + "solana-pubsub-client", + "solana-quic-client", + "solana-rpc-client", + "solana-rpc-client-api", + "solana-rpc-client-nonce-utils", "solana-sdk", "solana-streamer", - "solana-transaction-status", - "solana-version", - "solana-vote-program", - "spl-token-2022", + "solana-thin-client", + "solana-tpu-client", + "solana-udp-client", "thiserror", "tokio", - "tokio-stream", - "tokio-tungstenite", - "tungstenite", - "url", ] [[package]] name = "solana-compute-budget-program" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e049f35d2a223509210eab1adb2bcc2c86bf919ab948f5e3142c9c87adcc1b97" +checksum = "efe306cbf29de145cfea852456750797b242a2e574a0dcef87bc1880e9a3f393" dependencies = [ "solana-program-runtime", "solana-sdk", @@ -3608,9 +3841,9 @@ dependencies = [ [[package]] name = "solana-config-program" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94cd8f45fddff299b73121fbf751164b7e029b3324b274b50160d787c82673d2" +checksum = "6237d968bbf6c3cf6b5131523e8f36a9f2f06dde0ae3cb97ba48d7df1c3df2db" dependencies = [ "bincode", "chrono", @@ -3621,58 +3854,76 @@ dependencies = [ ] [[package]] -name = "solana-faucet" -version = "1.14.18" +name = "solana-connection-cache" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a4b7f4d15cb628a7f89e570a18914551211a5f1da81352dffd93881b191986a" +checksum = "94471b0c50509c50321be74093e5ac403d8fb48892400876dffebfcda203fa56" dependencies = [ + "async-trait", "bincode", - "byteorder", - "clap 2.34.0", "crossbeam-channel", + "futures-util", + "indexmap 2.1.0", "log", - "serde", - "serde_derive", - "solana-clap-utils", - "solana-cli-config", - "solana-logger", + "rand 0.8.5", + "rayon", + "rcgen", + "solana-measure", "solana-metrics", "solana-sdk", - "solana-version", - "spl-memo", "thiserror", "tokio", ] +[[package]] +name = "solana-cost-model" +version = "1.17.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68100d6976f4ac196f930b5d8267d49e57b49d7169b1545b01c3a8304238a611" +dependencies = [ + "lazy_static", + "log", + "rustc_version", + "solana-address-lookup-table-program", + "solana-bpf-loader-program", + "solana-compute-budget-program", + "solana-config-program", + "solana-frozen-abi", + "solana-frozen-abi-macro", + "solana-loader-v4-program", + "solana-metrics", + "solana-program-runtime", + "solana-sdk", + "solana-stake-program", + "solana-system-program", + "solana-vote-program", +] + [[package]] name = "solana-frozen-abi" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc7245b88e5bcedc9096d7c7ffd8cf6769987b151e381e8a3561939898d9e495" +checksum = "b40252b49d68e33eedb76498714b4b52f1ee7522a3bb52b8dbd0d6d9bacc5e2b" dependencies = [ - "ahash", + "ahash 0.8.6", "blake3", - "block-buffer 0.9.0", + "block-buffer 0.10.4", "bs58 0.4.0", "bv", "byteorder", "cc", "either", "generic-array", - "getrandom 0.1.16", - "hashbrown 0.12.3", "im", "lazy_static", "log", "memmap2", - "once_cell", - "rand_core 0.6.3", "rustc_version", "serde", "serde_bytes", "serde_derive", "serde_json", - "sha2 0.10.6", + "sha2 0.10.8", "solana-frozen-abi-macro", "subtle", "thiserror", @@ -3680,36 +3931,47 @@ dependencies = [ [[package]] name = "solana-frozen-abi-macro" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "546f204604da1d6958e412f4d3bc8cad34de6a81dc379fac07e53a29e224bcf0" +checksum = "a106613b9d798ca6562cb372a49d62ac2f507bb6a9bfd9afd5d0a7276b08068b" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "rustc_version", - "syn 1.0.109", + "syn 2.0.41", ] [[package]] name = "solana-gateway" -version = "0.2.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243daaf437dff89891d520c3e9be7b4a6940c30a1bda2ac094e621046f303eda" +checksum = "2d148eb75d0799f6825dc2a840b85c065e3d6d12212845add3e059163f98770e" dependencies = [ - "bitflags", - "borsh", - "num-derive", + "borsh 0.10.3", + "num-derive 0.4.1", "num-traits", - "sol-did", "solana-program", "thiserror", ] +[[package]] +name = "solana-loader-v4-program" +version = "1.17.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7223ecc22ec2dc0ff5742f0b1e61f0aec2860fed84b92ec8ec7d28882fa45423" +dependencies = [ + "log", + "solana-measure", + "solana-program-runtime", + "solana-sdk", + "solana_rbpf", +] + [[package]] name = "solana-logger" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12090fa9b638f374492c86c62b79e0e82479e3632ced02a33ff560ffdce72e04" +checksum = "d3b64e80cdc5c951d68a370a76301059b5ece998b18eb07da536e50b5c082bd7" dependencies = [ "env_logger", "lazy_static", @@ -3718,9 +3980,9 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c98a872ae83f2e7c00846108f98a18f7f40265b2cd86b2d44369c33d9b7fb8f1" +checksum = "f9d0022b8bf1515777be92099d8abdc0c1c19c3a5c612d09f5f5ba64514b0674" dependencies = [ "log", "solana-sdk", @@ -3728,9 +3990,9 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7557878951c7defed6e4daf34e9334d8ea85b82c9a1b2d5cc50d069fd9191db9" +checksum = "4ac21ec9077ad17e4a538f3565bf0fb6b9db71bcced56c7d4ebc153ab534857c" dependencies = [ "crossbeam-channel", "gethostname", @@ -3738,20 +4000,21 @@ dependencies = [ "log", "reqwest", "solana-sdk", + "thiserror", ] [[package]] name = "solana-net-utils" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7684c80c774275783bb754aa07e2e18f2064551a78cda5e54e12f44c85f3803d" +checksum = "e93866f4c3247de4e96b7c1613ed6e346568dbc79e8e11925270c6980bf24a05" dependencies = [ "bincode", "clap 3.2.25", "crossbeam-channel", "log", "nix", - "rand 0.7.3", + "rand 0.8.5", "serde", "serde_derive", "socket2", @@ -3764,25 +4027,27 @@ dependencies = [ [[package]] name = "solana-perf" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2db417718e96fd2473025d4f2afb975dd295e9f7bd479cd3a0bcea20da38088" +checksum = "ce85ec2bf05ca24e0348fec8ae5e2f015c39b1308baacb9001e4d4c1f0ccaee9" dependencies = [ - "ahash", + "ahash 0.8.6", "bincode", "bv", "caps", "curve25519-dalek", - "dlopen", - "dlopen_derive", + "dlopen2", "fnv", "lazy_static", "libc", "log", "nix", - "rand 0.7.3", + "rand 0.8.5", "rayon", + "rustc_version", "serde", + "solana-frozen-abi", + "solana-frozen-abi-macro", "solana-metrics", "solana-rayon-threadlimit", "solana-sdk", @@ -3791,16 +4056,20 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e7df881407995597cf32299df06cc8ac3d7fc4cd53e69e95964832beca48c3" +checksum = "57bdfd6532551b8d8c1ed15e1b6bd7a62f37f8eecc540ae833bda6ff20f24679" dependencies = [ - "base64 0.13.0", + "ark-bn254", + "ark-ec", + "ark-ff", + "ark-serialize", + "base64 0.21.5", "bincode", - "bitflags", + "bitflags 2.4.1", "blake3", - "borsh", - "borsh-derive", + "borsh 0.10.3", + "borsh 0.9.3", "bs58 0.4.0", "bv", "bytemuck", @@ -3808,27 +4077,28 @@ dependencies = [ "console_error_panic_hook", "console_log", "curve25519-dalek", - "getrandom 0.2.5", - "itertools", + "getrandom 0.2.11", + "itertools 0.10.5", "js-sys", "lazy_static", "libc", "libsecp256k1", + "light-poseidon", "log", - "memoffset", - "num-derive", + "memoffset 0.9.0", + "num-bigint 0.4.4", + "num-derive 0.3.3", "num-traits", - "parking_lot 0.12.0", - "rand 0.7.3", - "rand_chacha 0.2.2", + "parking_lot", + "rand 0.8.5", "rustc_version", "rustversion", "serde", "serde_bytes", "serde_derive", "serde_json", - "sha2 0.10.6", - "sha3 0.10.6", + "sha2 0.10.8", + "sha3 0.10.8", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-sdk-macro", @@ -3840,21 +4110,21 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba1ad7f8f71d46673e2b68edb902856516795dd6b9d2322fa4e9edcd6cf0caac" +checksum = "65014113fa8dd026351525a317cf8fd756e2be873869230db44a352682839b02" dependencies = [ - "base64 0.13.0", + "base64 0.21.5", "bincode", "eager", "enum-iterator", - "itertools", + "itertools 0.10.5", "libc", - "libloading", "log", - "num-derive", + "num-derive 0.3.3", "num-traits", - "rand 0.7.3", + "percentage", + "rand 0.8.5", "rustc_version", "serde", "solana-frozen-abi", @@ -3862,23 +4132,26 @@ dependencies = [ "solana-measure", "solana-metrics", "solana-sdk", + "solana_rbpf", "thiserror", ] [[package]] name = "solana-program-test" -version = "1.14.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a3003f9f008193bdcdc00e04c64f52da465d96d48148a2b60c68b483e9cef89" +version = "1.17.9" +source = "git+https://github.com/dankelleher/solana.git?branch=program-test-hack#3c285b5574722bd8e7ec4c7f659ec769b9aba5ce" dependencies = [ "assert_matches", "async-trait", - "base64 0.13.0", + "base64 0.21.5", "bincode", "chrono-humanize", + "crossbeam-channel", "log", "serde", + "solana-accounts-db", "solana-banks-client", + "solana-banks-interface", "solana-banks-server", "solana-bpf-loader-program", "solana-logger", @@ -3886,15 +4159,69 @@ dependencies = [ "solana-runtime", "solana-sdk", "solana-vote-program", + "solana_rbpf", + "test-case", + "thiserror", + "tokio", +] + +[[package]] +name = "solana-pubsub-client" +version = "1.17.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027474b27e0b9a986fcaed23be69cf6224850c92618b9e928578e1e1eb5509b5" +dependencies = [ + "crossbeam-channel", + "futures-util", + "log", + "reqwest", + "semver", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-rpc-client-api", + "solana-sdk", + "thiserror", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tungstenite", + "url", +] + +[[package]] +name = "solana-quic-client" +version = "1.17.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d475601d3f0ea8786d73e2dc9e618391b024bad186b923989c21d764611b5cea" +dependencies = [ + "async-mutex", + "async-trait", + "futures", + "itertools 0.10.5", + "lazy_static", + "log", + "quinn", + "quinn-proto", + "rcgen", + "rustls", + "solana-connection-cache", + "solana-measure", + "solana-metrics", + "solana-net-utils", + "solana-rpc-client-api", + "solana-sdk", + "solana-streamer", "thiserror", "tokio", ] [[package]] name = "solana-rayon-threadlimit" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccad09c8fbcb13ba7a1aca9d6337bf439593e1ea104d7ba9519d6d09c89da63c" +checksum = "381d33c3b8e34fe3212b8a7db05c436196ffbafaf7246251748f7fe7b7d181f6" dependencies = [ "lazy_static", "num_cpus", @@ -3902,16 +4229,16 @@ dependencies = [ [[package]] name = "solana-remote-wallet" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a34ea5c66161b5f6a2085804bd0364bcdfdd584cfdb7237f88b6c3255199601" +checksum = "8fb2c06d7e8e297df08236313df223da061b663073c50a209b8edf3acc0cda94" dependencies = [ "console", "dialoguer", "log", - "num-derive", + "num-derive 0.3.3", "num-traits", - "parking_lot 0.12.0", + "parking_lot", "qstring", "semver", "solana-sdk", @@ -3919,13 +4246,75 @@ dependencies = [ "uriparse", ] +[[package]] +name = "solana-rpc-client" +version = "1.17.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45a102bd33bf0353f7fc2e70d9934efc3e63985513058fcb9e2fb7e93c4a524a" +dependencies = [ + "async-trait", + "base64 0.21.5", + "bincode", + "bs58 0.4.0", + "indicatif", + "log", + "reqwest", + "semver", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-rpc-client-api", + "solana-sdk", + "solana-transaction-status", + "solana-version", + "solana-vote-program", + "tokio", +] + +[[package]] +name = "solana-rpc-client-api" +version = "1.17.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d055c3c51c2d12f3f9b485bdd4273163597869815e698fb4574e3c6fdfc271" +dependencies = [ + "base64 0.21.5", + "bs58 0.4.0", + "jsonrpc-core", + "reqwest", + "semver", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-sdk", + "solana-transaction-status", + "solana-version", + "spl-token-2022", + "thiserror", +] + +[[package]] +name = "solana-rpc-client-nonce-utils" +version = "1.17.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16c425c6baf1bed99ee1171a5fb3f8cf7f3c54823ec0c52d0f91bddb5e3eb56e" +dependencies = [ + "clap 2.34.0", + "solana-clap-utils", + "solana-rpc-client", + "solana-sdk", + "thiserror", +] + [[package]] name = "solana-runtime" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04528c39dace2ee513d2c0fa849e02a54581470634fe9ec0699354f35c29409d" +checksum = "5898703f438e07c16b5b99a82a4ee4b1063b0a4dbdaee2f2c1b0748a1ce242ed" dependencies = [ "arrayref", + "base64 0.21.5", "bincode", "blake3", "bv", @@ -3937,40 +4326,55 @@ dependencies = [ "dir-diff", "flate2", "fnv", + "fs-err", "im", "index_list", - "itertools", + "itertools 0.10.5", "lazy_static", "log", "lru", "lz4", "memmap2", - "num-derive", + "modular-bitfield", + "num-derive 0.3.3", "num-traits", "num_cpus", - "once_cell", + "num_enum 0.6.1", "ouroboros", - "rand 0.7.3", + "percentage", + "qualifier_attr", + "rand 0.8.5", "rayon", "regex", "rustc_version", "serde", "serde_derive", + "serde_json", + "siphasher", + "solana-accounts-db", "solana-address-lookup-table-program", + "solana-bpf-loader-program", "solana-bucket-map", "solana-compute-budget-program", "solana-config-program", + "solana-cost-model", "solana-frozen-abi", "solana-frozen-abi-macro", + "solana-loader-v4-program", "solana-measure", "solana-metrics", + "solana-perf", "solana-program-runtime", "solana-rayon-threadlimit", "solana-sdk", "solana-stake-program", + "solana-system-program", + "solana-version", + "solana-vote", "solana-vote-program", "solana-zk-token-proof-program", "solana-zk-token-sdk", + "static_assertions", "strum", "strum_macros", "symlink", @@ -3982,15 +4386,15 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bdc5c047bf29730ad00e2c9ef92d396877c836633177089a00b7311e6eb3ead" +checksum = "b3dcae28fb968bc1987f92c637d66477a337f9e54747596fe5c52d6a00729c99" dependencies = [ "assert_matches", - "base64 0.13.0", + "base64 0.21.5", "bincode", - "bitflags", - "borsh", + "bitflags 2.4.1", + "borsh 0.10.3", "bs58 0.4.0", "bytemuck", "byteorder", @@ -4001,26 +4405,29 @@ dependencies = [ "ed25519-dalek-bip32", "generic-array", "hmac 0.12.1", - "itertools", + "itertools 0.10.5", "js-sys", "lazy_static", "libsecp256k1", "log", "memmap2", - "num-derive", + "num-derive 0.3.3", "num-traits", + "num_enum 0.6.1", "pbkdf2 0.11.0", "qstring", + "qualifier_attr", "rand 0.7.3", - "rand_chacha 0.2.2", + "rand 0.8.5", "rustc_version", "rustversion", "serde", "serde_bytes", "serde_derive", "serde_json", - "sha2 0.10.6", - "sha3 0.10.6", + "serde_with", + "sha2 0.10.8", + "sha3 0.10.8", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-logger", @@ -4033,22 +4440,22 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43cff60ba1f94594f1de7baf649bf781383e806e834e26607ff8857a9452cd3c" +checksum = "f47a1ff2ebb2fd8d50a592cb109cc6139b790de45bdbbfcfbbe7ecabb3725f7f" dependencies = [ "bs58 0.4.0", - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "rustversion", - "syn 1.0.109", + "syn 2.0.41", ] [[package]] name = "solana-send-transaction-service" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626f605b0f5601a6cc7d7390bbe7248bf624e130dacd4c18ea8f7e3d5eca390d" +checksum = "0fa43c85c4133d203bfac16df81ef9b61450bc04de356bbbcbdb2dacc8fbf2c9" dependencies = [ "crossbeam-channel", "log", @@ -4057,42 +4464,37 @@ dependencies = [ "solana-metrics", "solana-runtime", "solana-sdk", + "solana-tpu-client", ] [[package]] name = "solana-stake-program" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d12cac4413492df0e92b7caa99db81f1e81ee2ca103b97cae215cb7189d3ec7" +checksum = "2bed32467578b5a57cfc80b988d87fadb34f78071c614dfbe97b9bc86c46bbf8" dependencies = [ "bincode", "log", - "num-derive", - "num-traits", "rustc_version", - "serde", - "serde_derive", "solana-config-program", - "solana-frozen-abi", - "solana-frozen-abi-macro", - "solana-metrics", "solana-program-runtime", "solana-sdk", "solana-vote-program", - "thiserror", ] [[package]] name = "solana-streamer" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "753f510e0e145e70238fc597571e2bb5f2871dc022b04e869024b5dcf1fd82c3" +checksum = "9400c2fb66622375b781ecbbba294db74dc98964fd7b5f0ef8b5333908b29d44" dependencies = [ + "async-channel", + "bytes", "crossbeam-channel", "futures-util", "histogram", - "indexmap", - "itertools", + "indexmap 2.1.0", + "itertools 0.10.5", "libc", "log", "nix", @@ -4100,7 +4502,8 @@ dependencies = [ "percentage", "pkcs8", "quinn", - "rand 0.7.3", + "quinn-proto", + "rand 0.8.5", "rcgen", "rustls", "solana-metrics", @@ -4111,16 +4514,69 @@ dependencies = [ "x509-parser", ] +[[package]] +name = "solana-system-program" +version = "1.17.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "491b712308ab9323e9f5d05c14dbc9d477cffb987cd9ba560b27baa6bd65339c" +dependencies = [ + "bincode", + "log", + "serde", + "serde_derive", + "solana-program-runtime", + "solana-sdk", +] + +[[package]] +name = "solana-thin-client" +version = "1.17.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e28f6a0e663c5d186f6833842a1b162eb8d46230197b7449357e8a832558fc2" +dependencies = [ + "bincode", + "log", + "rayon", + "solana-connection-cache", + "solana-rpc-client", + "solana-rpc-client-api", + "solana-sdk", +] + +[[package]] +name = "solana-tpu-client" +version = "1.17.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e88136236200594f3630e83ae9a3e40e8e931c89a738d6a0ec3b3360153faa9" +dependencies = [ + "async-trait", + "bincode", + "futures-util", + "indexmap 2.1.0", + "indicatif", + "log", + "rayon", + "solana-connection-cache", + "solana-measure", + "solana-metrics", + "solana-pubsub-client", + "solana-rpc-client", + "solana-rpc-client-api", + "solana-sdk", + "thiserror", + "tokio", +] + [[package]] name = "solana-transaction-status" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6a451415da98f850d5777df18d588d7504393106aea295b642cd243115ed77" +checksum = "a034f949893241b536c76f80472e19555297d5f695a5ddc84c2e29e55cbe5ff7" dependencies = [ "Inflector", - "base64 0.13.0", + "base64 0.21.5", "bincode", - "borsh", + "borsh 0.10.3", "bs58 0.4.0", "lazy_static", "log", @@ -4128,23 +4584,34 @@ dependencies = [ "serde_derive", "serde_json", "solana-account-decoder", - "solana-address-lookup-table-program", - "solana-measure", - "solana-metrics", "solana-sdk", - "solana-vote-program", "spl-associated-token-account", "spl-memo", - "spl-token", + "spl-token 4.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "spl-token-2022", "thiserror", ] +[[package]] +name = "solana-udp-client" +version = "1.17.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416de133a871148d5b08788b8e84c61948d60c5ee3f8c99b34a763446b3e7b22" +dependencies = [ + "async-trait", + "solana-connection-cache", + "solana-net-utils", + "solana-sdk", + "solana-streamer", + "thiserror", + "tokio", +] + [[package]] name = "solana-version" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a3d9aa0a819a22f5befc7e8df5413259621b5d20be0a5a210d1fb41a083a09b" +checksum = "bdffe0a5ac4b599c310ebcc6c54021a15ec47dbd7d9be1cae29d17adc5cc1a62" dependencies = [ "log", "rustc_version", @@ -4156,15 +4623,34 @@ dependencies = [ "solana-sdk", ] +[[package]] +name = "solana-vote" +version = "1.17.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad503d112832a661529eb5cc5c095d28c137ff1a5a457b2357638cb8f8f6853f" +dependencies = [ + "crossbeam-channel", + "itertools 0.10.5", + "log", + "rustc_version", + "serde", + "serde_derive", + "solana-frozen-abi", + "solana-frozen-abi-macro", + "solana-sdk", + "solana-vote-program", + "thiserror", +] + [[package]] name = "solana-vote-program" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb0bb49cc1490ce16133368f4a04e0671f856d481f95416f03f08fede7d993ba" +checksum = "9722d6013f6d25e422fbd7ddf2afe92f96fb016a650696d1bcfa24c5ebb69a71" dependencies = [ "bincode", "log", - "num-derive", + "num-derive 0.3.3", "num-traits", "rustc_version", "serde", @@ -4172,6 +4658,7 @@ dependencies = [ "solana-frozen-abi", "solana-frozen-abi-macro", "solana-metrics", + "solana-program", "solana-program-runtime", "solana-sdk", "thiserror", @@ -4179,13 +4666,12 @@ dependencies = [ [[package]] name = "solana-zk-token-proof-program" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9f1fd63cbd19d05b61c8416f00ca8f8f9c61340b292166e76b19743aed93579" +checksum = "a894473aa223eba4e3d58f34ba0e38eedc465c1dbb2a1b3df391799a18f28692" dependencies = [ "bytemuck", - "getrandom 0.1.16", - "num-derive", + "num-derive 0.3.3", "num-traits", "solana-program-runtime", "solana-sdk", @@ -4194,23 +4680,21 @@ dependencies = [ [[package]] name = "solana-zk-token-sdk" -version = "1.14.18" +version = "1.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7a679b4dabee8d23a7bfa657440c892a88420191da11352313ab83f986826a7" +checksum = "b6a048ab6c1e3cd38f79aaee339b7ebcc9ecfd81e7434dc59a427eef7aa8d516" dependencies = [ "aes-gcm-siv", - "arrayref", - "base64 0.13.0", + "base64 0.21.5", "bincode", "bytemuck", "byteorder", - "cipher 0.4.3", "curve25519-dalek", "getrandom 0.1.16", - "itertools", + "itertools 0.10.5", "lazy_static", "merlin", - "num-derive", + "num-derive 0.3.3", "num-traits", "rand 0.7.3", "serde", @@ -4225,9 +4709,9 @@ dependencies = [ [[package]] name = "solana_rbpf" -version = "0.2.31" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80a28c5dfe7e8af38daa39d6561c8e8b9ed7a2f900951ebe7362ad6348d36c73" +checksum = "3d457cc2ba742c120492a64b7fa60e22c575e891f6b55039f4d736568fb112a3" dependencies = [ "byteorder", "combine", @@ -4239,6 +4723,7 @@ dependencies = [ "rustc-demangle", "scroll", "thiserror", + "winapi", ] [[package]] @@ -4247,6 +4732,12 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + [[package]] name = "spki" version = "0.5.4" @@ -4258,130 +4749,274 @@ dependencies = [ ] [[package]] -name = "spl-associated-token-account" -version = "1.1.3" +name = "spl-associated-token-account" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "385e31c29981488f2820b2022d8e731aae3b02e6e18e2fd854e4c9a94dc44fc3" +dependencies = [ + "assert_matches", + "borsh 0.10.3", + "num-derive 0.4.1", + "num-traits", + "solana-program", + "spl-token 4.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "spl-token-2022", + "thiserror", +] + +[[package]] +name = "spl-discriminator" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cce5d563b58ef1bb2cdbbfe0dfb9ffdc24903b10ae6a4df2d8f425ece375033f" +dependencies = [ + "bytemuck", + "solana-program", + "spl-discriminator-derive", +] + +[[package]] +name = "spl-discriminator-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fadbefec4f3c678215ca72bd71862697bb06b41fd77c0088902dd3203354387b" +dependencies = [ + "quote", + "spl-discriminator-syn", + "syn 2.0.41", +] + +[[package]] +name = "spl-discriminator-syn" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e5f2044ca42c8938d54d1255ce599c79a1ffd86b677dfab695caa20f9ffc3f2" +dependencies = [ + "proc-macro2", + "quote", + "sha2 0.10.8", + "syn 2.0.41", + "thiserror", +] + +[[package]] +name = "spl-governance" +version = "3.1.1" +source = "git+https://github.com/solana-labs/solana-program-library.git#ef44df985e76a697ee9a8aabb3a223610e4cf1dc" +dependencies = [ + "arrayref", + "bincode", + "borsh 0.10.3", + "num-derive 0.4.1", + "num-traits", + "serde", + "serde_derive", + "solana-program", + "spl-governance-addin-api", + "spl-governance-tools", + "spl-token 4.0.0 (git+https://github.com/solana-labs/solana-program-library.git)", + "thiserror", +] + +[[package]] +name = "spl-governance-addin-api" +version = "0.1.3" +source = "git+https://github.com/solana-labs/solana-program-library.git#ef44df985e76a697ee9a8aabb3a223610e4cf1dc" +dependencies = [ + "borsh 0.10.3", + "solana-program", + "spl-governance-tools", +] + +[[package]] +name = "spl-governance-addin-mock" +version = "0.1.3" +source = "git+https://github.com/solana-labs/solana-program-library.git#ef44df985e76a697ee9a8aabb3a223610e4cf1dc" +dependencies = [ + "arrayref", + "bincode", + "borsh 0.10.3", + "num-derive 0.4.1", + "num-traits", + "serde", + "serde_derive", + "solana-program", + "spl-governance-addin-api", + "spl-governance-tools", + "spl-token 4.0.0 (git+https://github.com/solana-labs/solana-program-library.git)", + "thiserror", +] + +[[package]] +name = "spl-governance-tools" +version = "0.1.3" +source = "git+https://github.com/solana-labs/solana-program-library.git#ef44df985e76a697ee9a8aabb3a223610e4cf1dc" +dependencies = [ + "arrayref", + "bincode", + "borsh 0.10.3", + "num-derive 0.4.1", + "num-traits", + "serde", + "serde_derive", + "solana-program", + "spl-token 4.0.0 (git+https://github.com/solana-labs/solana-program-library.git)", + "thiserror", +] + +[[package]] +name = "spl-memo" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f180b03318c3dbab3ef4e1e4d46d5211ae3c780940dd0a28695aba4b59a75a" +dependencies = [ + "solana-program", +] + +[[package]] +name = "spl-pod" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2881dddfca792737c0706fa0175345ab282b1b0879c7d877bad129645737c079" +dependencies = [ + "borsh 0.10.3", + "bytemuck", + "solana-program", + "solana-zk-token-sdk", + "spl-program-error", +] + +[[package]] +name = "spl-program-error" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "249e0318493b6bcf27ae9902600566c689b7dfba9f1bdff5893e92253374e78c" +dependencies = [ + "num-derive 0.4.1", + "num-traits", + "solana-program", + "spl-program-error-derive", + "thiserror", +] + +[[package]] +name = "spl-program-error-derive" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5269c8e868da17b6552ef35a51355a017bd8e0eae269c201fef830d35fa52c" +dependencies = [ + "proc-macro2", + "quote", + "sha2 0.10.8", + "syn 2.0.41", +] + +[[package]] +name = "spl-tlv-account-resolution" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978dba3bcbe88d0c2c58366c254d9ea41c5f73357e72fc0bdee4d6b5fc99c8f4" +checksum = "062e148d3eab7b165582757453632ffeef490c02c86a48bfdb4988f63eefb3b9" dependencies = [ - "assert_matches", - "borsh", - "num-derive", - "num-traits", + "bytemuck", "solana-program", - "spl-token", - "spl-token-2022", - "thiserror", + "spl-discriminator", + "spl-pod", + "spl-program-error", + "spl-type-length-value", ] [[package]] -name = "spl-governance" -version = "3.1.1" +name = "spl-token" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7a42340af2f3334ee1ee718e6d68b939c98cab4ceb381429f952c72d68e1ebf" +checksum = "08459ba1b8f7c1020b4582c4edf0f5c7511a5e099a7a97570c9698d4f2337060" dependencies = [ "arrayref", - "bincode", - "borsh", - "num-derive", + "bytemuck", + "num-derive 0.3.3", "num-traits", - "serde", - "serde_derive", + "num_enum 0.6.1", "solana-program", - "spl-governance-addin-api", - "spl-governance-tools", - "spl-token", "thiserror", ] [[package]] -name = "spl-governance-addin-api" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0feddb2c7efa42f39954e3bb1b0bfc6dc7e9292ca467eff40ecd934c14106b" -dependencies = [ - "borsh", - "solana-program", - "spl-governance-tools", -] - -[[package]] -name = "spl-governance-addin-mock" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49390332293d75d973dec617090157ab39d3d63f064ea7790cc8fee36d26c149" +name = "spl-token" +version = "4.0.0" +source = "git+https://github.com/solana-labs/solana-program-library.git#ef44df985e76a697ee9a8aabb3a223610e4cf1dc" dependencies = [ "arrayref", - "bincode", - "borsh", - "num-derive", + "bytemuck", + "num-derive 0.4.1", "num-traits", - "serde", - "serde_derive", + "num_enum 0.7.1", "solana-program", - "spl-governance-addin-api", - "spl-governance-tools", - "spl-token", "thiserror", ] [[package]] -name = "spl-governance-tools" -version = "0.1.3" +name = "spl-token-2022" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bd674d9e8f3fc9ea628dcbe56d48991ea1cb05b994a7845782572c705efd836" +checksum = "e4abf34a65ba420584a0c35f3903f8d727d1f13ababbdc3f714c6b065a686e86" dependencies = [ "arrayref", - "bincode", - "borsh", - "num-derive", + "bytemuck", + "num-derive 0.4.1", "num-traits", - "serde", - "serde_derive", + "num_enum 0.7.1", "solana-program", - "spl-token", + "solana-zk-token-sdk", + "spl-memo", + "spl-pod", + "spl-token 4.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "spl-token-metadata-interface", + "spl-transfer-hook-interface", + "spl-type-length-value", "thiserror", ] [[package]] -name = "spl-memo" -version = "3.0.1" +name = "spl-token-metadata-interface" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0dc6f70db6bacea7ff25870b016a65ba1d1b6013536f08e4fd79a8f9005325" +checksum = "4c16ce3ba6979645fb7627aa1e435576172dd63088dc7848cb09aa331fa1fe4f" dependencies = [ + "borsh 0.10.3", "solana-program", + "spl-discriminator", + "spl-pod", + "spl-program-error", + "spl-type-length-value", ] [[package]] -name = "spl-token" -version = "3.5.0" +name = "spl-transfer-hook-interface" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e85e168a785e82564160dcb87b2a8e04cee9bfd1f4d488c729d53d6a4bd300d" +checksum = "051d31803f873cabe71aec3c1b849f35248beae5d19a347d93a5c9cccc5d5a9b" dependencies = [ "arrayref", "bytemuck", - "num-derive", - "num-traits", - "num_enum", "solana-program", - "thiserror", + "spl-discriminator", + "spl-pod", + "spl-program-error", + "spl-tlv-account-resolution", + "spl-type-length-value", ] [[package]] -name = "spl-token-2022" -version = "0.6.1" +name = "spl-type-length-value" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0043b590232c400bad5ee9eb983ced003d15163c4c5d56b090ac6d9a57457b47" +checksum = "a468e6f6371f9c69aae760186ea9f1a01c2908351b06a5e0026d21cfc4d7ecac" dependencies = [ - "arrayref", "bytemuck", - "num-derive", - "num-traits", - "num_enum", "solana-program", - "solana-zk-token-sdk", - "spl-memo", - "spl-token", - "thiserror", + "spl-discriminator", + "spl-pod", + "spl-program-error", ] [[package]] @@ -4418,8 +5053,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "rustversion", "syn 1.0.109", ] @@ -4436,36 +5071,25 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a" -[[package]] -name = "syn" -version = "0.15.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" -dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "unicode-xid 0.1.0", -] - [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.18" +version = "2.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e" +checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "unicode-ident", ] @@ -4475,17 +5099,38 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "syn 1.0.109", - "unicode-xid 0.2.2", + "unicode-xid", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", ] [[package]] name = "tar" -version = "0.4.38" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" +checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" dependencies = [ "filetime", "libc", @@ -4511,7 +5156,7 @@ dependencies = [ "thiserror", "tokio", "tokio-serde", - "tokio-util 0.6.9", + "tokio-util 0.6.10", "tracing", "tracing-opentelemetry", ] @@ -4522,33 +5167,66 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee42b4e559f17bce0385ebf511a7beb67d5cc33c12c96b7f4e9789919d9c10f" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", + "proc-macro2", + "quote", "syn 1.0.109", ] [[package]] name = "tempfile" -version = "3.5.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand", - "redox_syscall 0.3.5", + "redox_syscall", "rustix", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] name = "termcolor" -version = "1.1.3" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" dependencies = [ "winapi-util", ] +[[package]] +name = "test-case" +version = "3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb2550dd13afcd286853192af8601920d959b14c401fcece38071d53bf0768a8" +dependencies = [ + "test-case-macros", +] + +[[package]] +name = "test-case-core" +version = "3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adcb7fd841cd518e279be3d5a3eb0636409487998a4aff22f3de87b81e88384f" +dependencies = [ + "cfg-if", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "test-case-macros" +version = "3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", + "test-case-core", +] + [[package]] name = "textwrap" version = "0.11.0" @@ -4566,50 +5244,43 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.40" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.40" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 2.0.18", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] name = "thread_local" -version = "1.1.4" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ + "cfg-if", "once_cell", ] [[package]] name = "time" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "time" -version = "0.3.21" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3403384eaacbca9923fa06940178ac13e4edb725486d70e8e15881d0c836cc" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" dependencies = [ + "deranged", "itoa", + "powerfmt", "serde", "time-core", "time-macros", @@ -4617,15 +5288,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.9" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" dependencies = [ "time-core", ] @@ -4651,59 +5322,57 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" dependencies = [ "tinyvec_macros", ] [[package]] name = "tinyvec_macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.14.1" +version = "1.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d0183f6f6001549ab68f8c7585093bb732beefbcf6d23a10b9b95c73a1dd49" +checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" dependencies = [ - "autocfg", + "backtrace", "bytes", "libc", - "memchr", "mio", "num_cpus", - "once_cell", - "parking_lot 0.11.2", + "parking_lot", "pin-project-lite", "signal-hook-registry", + "socket2", "tokio-macros", - "winapi", + "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "1.7.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 1.0.109", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] name = "tokio-rustls" -version = "0.23.2" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27d5f2b839802bd8267fa19b0530f5a08b9c08cd417976be2a65d130fe1c11b" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ "rustls", "tokio", - "webpki", ] [[package]] @@ -4724,9 +5393,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.12" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ "futures-core", "pin-project-lite", @@ -4735,9 +5404,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.17.2" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" dependencies = [ "futures-util", "log", @@ -4745,15 +5414,14 @@ dependencies = [ "tokio", "tokio-rustls", "tungstenite", - "webpki", - "webpki-roots", + "webpki-roots 0.25.3", ] [[package]] name = "tokio-util" -version = "0.6.9" +version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" +checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" dependencies = [ "bytes", "futures-core", @@ -4766,9 +5434,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.2" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f988a1a1adc2fb21f9c12aa96441da33a1728193ae0b95d2be22dbd17fcb4e5c" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" dependencies = [ "bytes", "futures-core", @@ -4780,32 +5448,53 @@ dependencies = [ [[package]] name = "toml" -version = "0.5.8" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ "serde", ] [[package]] name = "toml_datetime" -version = "0.6.1" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.1.0", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.1.0", + "toml_datetime", + "winnow", +] [[package]] name = "tower-service" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.32" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1bdf54a7c28a2bbf701e1d2233f6c77f473486b94bee4f9678da5a148dca7f" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "cfg-if", "log", "pin-project-lite", "tracing-attributes", @@ -4814,22 +5503,22 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.20" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 1.0.109", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] name = "tracing-core" -version = "0.1.23" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa31669fa42c09c34d94d8165dd2012e8ff3c66aca50f3bb226b68f216f2706c" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ - "lazy_static", + "once_cell", "valuable", ] @@ -4848,9 +5537,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.11" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bc28f93baff38037f64e6f43d34cfa1605f27a49c34e8a04c5e78b0babf2596" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "sharded-slab", "thread_local", @@ -4859,82 +5548,75 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.3" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.17.3" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" dependencies = [ - "base64 0.13.0", "byteorder", "bytes", + "data-encoding", "http", "httparse", "log", "rand 0.8.5", "rustls", - "sha-1", + "sha1", "thiserror", "url", "utf-8", - "webpki", - "webpki-roots", + "webpki-roots 0.24.0", ] [[package]] name = "typenum" -version = "1.15.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicode-bidi" -version = "0.3.7" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" [[package]] name = "unicode-ident" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.19" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.9.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "unicode-width" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" - -[[package]] -name = "unicode-xid" -version = "0.1.0" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "unicode-xid" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "universal-hash" @@ -4961,6 +5643,12 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "uriparse" version = "0.6.4" @@ -4973,13 +5661,12 @@ dependencies = [ [[package]] name = "url" -version = "2.2.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", "idna", - "matches", "percent-encoding", ] @@ -5015,22 +5702,20 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] name = "walkdir" -version = "2.3.2" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", - "winapi", "winapi-util", ] [[package]] name = "want" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "log", "try-lock", ] @@ -5042,15 +5727,15 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" +version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.86" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -5058,24 +5743,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.86" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 2.0.18", + "proc-macro2", + "quote", + "syn 2.0.41", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.29" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb6ec270a31b1d3c7e266b999739109abce8b6c87e4b31fcfcd788b65267395" +checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" dependencies = [ "cfg-if", "js-sys", @@ -5085,61 +5770,57 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.86" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ - "quote 1.0.28", + "quote", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.86" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 2.0.18", + "proc-macro2", + "quote", + "syn 2.0.41", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.86" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "web-sys" -version = "0.3.56" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" dependencies = [ "js-sys", "wasm-bindgen", ] [[package]] -name = "webpki" -version = "0.22.0" +name = "webpki-roots" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +checksum = "b291546d5d9d1eab74f069c77749f2cb8504a12caa20f0f2de93ddbf6f411888" dependencies = [ - "ring", - "untrusted", + "rustls-webpki", ] [[package]] name = "webpki-roots" -version = "0.22.2" +version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552ceb903e957524388c4d3475725ff2c8b7960922063af6ce53c9a43da07449" -dependencies = [ - "webpki", -] +checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" [[package]] name = "winapi" @@ -5159,9 +5840,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -5173,49 +5854,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] -name = "windows-sys" -version = "0.32.0" +name = "windows-core" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df6e476185f92a12c072be4a189a0210dcdcf512a1891d6dff9edb874deadc6" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ - "windows_aarch64_msvc 0.32.0", - "windows_i686_gnu 0.32.0", - "windows_i686_msvc 0.32.0", - "windows_x86_64_gnu 0.32.0", - "windows_x86_64_msvc 0.32.0", + "windows-targets 0.48.5", ] [[package]] name = "windows-sys" -version = "0.42.0" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows-targets 0.42.2", ] [[package]] name = "windows-sys" -version = "0.45.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.42.2", + "windows-targets 0.48.5", ] [[package]] name = "windows-sys" -version = "0.48.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.48.0", + "windows-targets 0.52.0", ] [[package]] @@ -5235,17 +5906,32 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -5256,15 +5942,15 @@ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] -name = "windows_aarch64_msvc" -version = "0.32.0" +name = "windows_aarch64_gnullvm" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" [[package]] name = "windows_aarch64_msvc" @@ -5274,15 +5960,15 @@ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] -name = "windows_i686_gnu" -version = "0.32.0" +name = "windows_aarch64_msvc" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" [[package]] name = "windows_i686_gnu" @@ -5292,15 +5978,15 @@ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] -name = "windows_i686_msvc" -version = "0.32.0" +name = "windows_i686_gnu" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" [[package]] name = "windows_i686_msvc" @@ -5310,15 +5996,15 @@ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] -name = "windows_x86_64_gnu" -version = "0.32.0" +name = "windows_i686_msvc" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" [[package]] name = "windows_x86_64_gnu" @@ -5328,9 +6014,15 @@ checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" [[package]] name = "windows_x86_64_gnullvm" @@ -5340,15 +6032,15 @@ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] -name = "windows_x86_64_msvc" -version = "0.32.0" +name = "windows_x86_64_gnullvm" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" [[package]] name = "windows_x86_64_msvc" @@ -5358,26 +6050,33 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.4.1" +version = "0.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae8970b36c66498d8ff1d66685dc86b91b29db0c7739899012f63a63814b4b28" +checksum = "6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2" dependencies = [ "memchr", ] [[package]] name = "winreg" -version = "0.10.1" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ - "winapi", + "cfg-if", + "windows-sys 0.48.0", ] [[package]] @@ -5387,7 +6086,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" dependencies = [ "asn1-rs", - "base64 0.13.0", + "base64 0.13.1", "data-encoding", "der-parser", "lazy_static", @@ -5395,40 +6094,47 @@ dependencies = [ "oid-registry", "rusticata-macros", "thiserror", - "time 0.3.21", + "time", ] [[package]] name = "xattr" -version = "0.2.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" +checksum = "a7dae5072fe1f8db8f8d29059189ac175196e410e40ba42d5d4684ae2f750995" dependencies = [ "libc", + "linux-raw-sys", + "rustix", ] [[package]] -name = "yaml-rust" -version = "0.4.5" +name = "yasna" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ - "linked-hash-map", + "time", ] [[package]] -name = "yansi" -version = "0.5.0" +name = "zerocopy" +version = "0.7.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc79f4a1e39857fc00c3f662cbf2651c771f00e9c15fe2abc341806bd46bd71" +checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" +dependencies = [ + "zerocopy-derive", +] [[package]] -name = "yasna" -version = "0.5.2" +name = "zerocopy-derive" +version = "0.7.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" dependencies = [ - "time 0.3.21", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] @@ -5442,14 +6148,13 @@ dependencies = [ [[package]] name = "zeroize_derive" -version = "1.3.2" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.59", - "quote 1.0.28", - "syn 1.0.109", - "synstructure", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] @@ -5473,11 +6178,10 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.8+zstd.1.5.5" +version = "2.0.9+zstd.1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" +checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" dependencies = [ "cc", - "libc", "pkg-config", ] diff --git a/programs/gateway/Cargo.toml b/programs/gateway/Cargo.toml index 14294453..bcd3cf39 100644 --- a/programs/gateway/Cargo.toml +++ b/programs/gateway/Cargo.toml @@ -18,22 +18,25 @@ default = [] [dependencies] arrayref = "0.3.6" -anchor-lang = { version = "0.26.0", features = ["init-if-needed"] } -anchor-spl = "0.26.0" +anchor-lang = { version = "0.29.0", features = ["init-if-needed"] } +anchor-spl = "0.29.0" enum_dispatch = "0.3.8" -itertools = "0.10.2" +itertools = "0.12.0" num = "0.4" -num-derive = "0.3" +num-derive = "0.4.1" num-traits = "0.2" -solana-gateway = "0.2.2" -solana-program = "1.14.16" -spl-governance = { version = "3.1.1", features = ["no-entrypoint"] } -spl-governance-tools= "0.1.3" -spl-governance-addin-api = "0.1.3" -spl-token = { version = "3.3", features = [ "no-entrypoint" ] } +solana-gateway = { version = "0.4.0", features = ["no-entrypoint"] } +solana-program = "1.17.12" +spl-governance = { git = "https://github.com/solana-labs/solana-program-library.git", features = ["no-entrypoint"] } +spl-governance-tools= { git = "https://github.com/solana-labs/solana-program-library.git" } +spl-governance-addin-api = { git = "https://github.com/solana-labs/solana-program-library.git" } +spl-token = { version = "4.0.0", features = [ "no-entrypoint" ] } [dev-dependencies] -borsh = "0.9.1" -solana-sdk = "1.14.16" -solana-program-test = "1.14.16" -spl-governance-addin-mock = "0.1.3" \ No newline at end of file +borsh = "0.10.3" +solana-sdk = "1.17.12" +# Due to compatibility issues between solana-program-test 1.7.* and anchor 0.29.0, we need to use a fork of solana-program-test +# https://github.com/coral-xyz/anchor/pull/2711 +solana-program-test = { git = "https://github.com/dankelleher/solana.git", branch = "program-test-hack" } +#solana-program-test = "1.17.12" +spl-governance-addin-mock = { git = "https://github.com/solana-labs/solana-program-library.git" } \ No newline at end of file diff --git a/programs/gateway/tests/fixtures/solana_gateway.so b/programs/gateway/tests/fixtures/solana_gateway.so new file mode 100755 index 0000000000000000000000000000000000000000..52d49bbc535f48b62eed4c8d47c760590576538f GIT binary patch literal 126984 zcmeFa51dt3buWJIz#WFD+(5<->zoEb_3!;*Ht*BblmUqoUz^(2ggNR|XIGgz5VwUF#`& zepSmg)@aD`zxAppDn{cZq0u5gk^C{E=D+u%DEfe+i;_tJ-cmE&>2I{4|5rz$|JP2F z{zp$if8`YP-xbn7S?Q14w7tnBZ@e*6{24Nq}QKJRyyOhe>*`0$s`bpC&Y6v z@D!tek^GF_ik3?Z?>NwT0#Di{#iMeY%7x=^=4-jK@#!g)D_MQaA)nT<;7^|ZYX$$h7Yu(1nAqRW|9OIc;|qpAPyefc-{r4y zg;WzIGc_!aX_p_QN95^JO;5W>T@+D{_{-%i!?Q=Sqj4zr912c@(tYd^YMwrnGfLDn zsMj<9xtUIR`-76o9qY@}L-?N|omddOt9Oyo$9jk*eIE3EEl1xp;A4HqbM$?@)TEE? z;FE9vXz9)$;=c6L%X?Y&{SRODB~N#|o1CNk&Blp3A;E7n@)#OUK5d3wjoV)$>FJi| z)E?yE8bgvT{UrSWJ{`=pr*S^;!aR_FQR_rCz%>21ta{K-0{*X>lf zgVN^Zpzy5!&oOT0+u?XKdt9fKdOp2K~f# zf8$)#*RFWkUY4jC-NooCDbI91#b~~S#B=-}OGHZA`Sb`m-A{Tu4@>$}CfBX>Lq_$(>yd}c(w2Y@fsw`UM%JAdUo=mE;Hk15Y=G1F5F{AGB) zd|KsKQI2pxb0Vo9lKRq#NWhcS4_aLLm(&kfT(SipyRgAV;h6@#@6Pf6BQJ0Azh?SW z6mKMos+TL?$`#t+^?mfpk$xo@iih@gJVLj(v`aq*ovHaRwR^SvhIX~j{kJJ0wZ$x@ z?PZ5=u>Kw)w-;#nc&y58<2or8jRP6Nk1mZ@l^s!fv%)u~7#!#$tUR{ohks37S^C?ExO89@G++IG4++J`Bx$S(B<#tI+ zxuteNE}>4}q#T;PY6Nzy3;Ax}lF2H^)w5N;YD@?+` zBE@lyA?+?7ALo(_BpRi+Xjq0dBZS)z50hDDKb9*TxgdDaJi#k}fmfRwrKxp99peGP0)HvX>BbowiNp3-g>e*FOQo!O%$n%}t6 zLbF%NO&!OX5*IKj#gp6|NxZ7fj2bf~S?nbFn$AD|Z%hg86YW?!|2avo?K&di!1&n_ zNg5b`vG&LKqbwH152>5FYAYvOMcq(%ufhk9lGA)PfI)*()LwnG4~|x zT(#q;%#Vw|$Ux+n{3%A=5@$c4OQYV)nacEq61MUm{tBW~jJ_lJ1LLp9Z}RDPWke;v z7%xWGOMb{N=g&g8EIvNQZJ!jlV)Qi$;b$Z=+e)Em~f z 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%0A=*rp8wlXKp;3Tj(DxVk{N*(chbWRsf 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 OFJwvOP9i+>^8YVKIs9t? literal 0 HcmV?d00001 diff --git a/programs/gateway/tests/fixtures/solana_gateway_program.so b/programs/gateway/tests/fixtures/solana_gateway_program.so deleted file mode 100755 index 152ae95096291618fb10c417c343c54010c0b1ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161600 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 z 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 TOZ)fx^6I3@o6_Z6j{pBZcH^A# diff --git a/programs/gateway/tests/program_test/gateway_voter_test.rs b/programs/gateway/tests/program_test/gateway_voter_test.rs index 4707e4a3..842d48fa 100644 --- a/programs/gateway/tests/program_test/gateway_voter_test.rs +++ b/programs/gateway/tests/program_test/gateway_voter_test.rs @@ -3,9 +3,10 @@ use std::sync::Arc; use anchor_lang::prelude::Pubkey; use itertools::Either; +use solana_gateway::state::get_gatekeeper_account_address; use solana_gateway::{ - instruction::{add_gatekeeper, issue_vanilla}, - state::{get_gatekeeper_address_with_seed, get_gateway_token_address_with_seed}, + instruction::{add_gatekeeper, issue}, + state::get_gateway_token_address_with_seed, }; use solana_program::instruction::AccountMeta; @@ -18,7 +19,7 @@ use spl_governance::{ state::vote_record::{Vote, VoteChoice}, }; -use solana_program_test::{BanksClientError, ProgramTest}; +use solana_program_test::{processor, BanksClientError, ProgramTest}; use crate::program_test::{ governance_test::{GovernanceTest, ProposalCookie, RealmCookie, TokenOwnerRecordCookie}, @@ -47,7 +48,7 @@ pub struct GatewayCookie { impl GatewayCookie { pub fn get_gatekeeper_account(&self) -> Pubkey { - let (gatekeeper_account, _) = get_gatekeeper_address_with_seed( + let (gatekeeper_account, _) = get_gatekeeper_account_address( &self.gatekeeper.pubkey(), &self.gatekeeper_network.pubkey(), ); @@ -92,11 +93,15 @@ pub struct GatewayVoterTest { impl GatewayVoterTest { #[allow(dead_code)] pub fn add_programs(program_test: &mut ProgramTest) { - program_test.add_program("gpl_civic_gateway", gpl_civic_gateway::id(), None); program_test.add_program( - "solana_gateway_program", + "gpl_civic_gateway", + gpl_civic_gateway::id(), + processor!(gpl_civic_gateway::entry), + ); + program_test.add_program( + "solana_gateway", Pubkey::from_str("gatem74V238djXdzWnJf94Wo1DcnuGkfijbf3AuBhfs").unwrap(), - None, + processor!(solana_gateway::processor::process_instruction), ); } @@ -240,7 +245,6 @@ impl GatewayVoterTest { let registrar_cookie = self .with_registrar(&realm_cookie, &gateway_cookie, predecessor_program_id) .await?; - // let voter_cookie = self.bench.with_wallet().await; let gateway_token_cookie = self .with_gateway_token(&gateway_cookie, &voter_cookie) @@ -309,7 +313,7 @@ impl GatewayVoterTest { let gatekeeper_account = gateway_cookie.get_gatekeeper_account(); let gateway_token_cookie = GatewayTokenCookie::new(&wallet_cookie.address, gateway_cookie); - let mut issue_ix = issue_vanilla( + let mut issue_ix = issue( &self.bench.payer.pubkey(), &wallet_cookie.address, &gatekeeper_account, diff --git a/programs/gateway/tests/program_test/governance_test.rs b/programs/gateway/tests/program_test/governance_test.rs index e17e31ae..775eed42 100644 --- a/programs/gateway/tests/program_test/governance_test.rs +++ b/programs/gateway/tests/program_test/governance_test.rs @@ -1,7 +1,7 @@ use std::{str::FromStr, sync::Arc}; use anchor_lang::prelude::Pubkey; -use solana_program_test::ProgramTest; +use solana_program_test::{processor, ProgramTest}; use solana_sdk::{signature::Keypair, signer::Signer, transport::TransportError}; use spl_governance::{ instruction::{ @@ -67,7 +67,11 @@ impl GovernanceTest { #[allow(dead_code)] pub fn add_program(program_test: &mut ProgramTest) { - program_test.add_program("spl_governance", Self::program_id(), None); + program_test.add_program( + "spl_governance", + Self::program_id(), + processor!(spl_governance::processor::process_instruction), + ); } #[allow(dead_code)] diff --git a/programs/gateway/tests/program_test/predecessor_plugin_test.rs b/programs/gateway/tests/program_test/predecessor_plugin_test.rs index 22218d40..481dc657 100644 --- a/programs/gateway/tests/program_test/predecessor_plugin_test.rs +++ b/programs/gateway/tests/program_test/predecessor_plugin_test.rs @@ -12,7 +12,7 @@ use crate::program_test::{ governance_test::RealmCookie, program_test_bench::{ProgramTestBench, WalletCookie}, }; -use solana_program_test::ProgramTest; +use solana_program_test::{processor, ProgramTest}; pub struct PredecessorPluginTest { pub bench: Arc, @@ -25,7 +25,11 @@ impl PredecessorPluginTest { #[allow(dead_code)] pub fn add_program(program_test: &mut ProgramTest) { - program_test.add_program("spl_governance_addin_mock", Self::program_id(), None); + program_test.add_program( + "spl_governance_addin_mock", + Self::program_id(), + processor!(spl_governance_addin_mock::processor::process_instruction), + ); } #[allow(dead_code)] diff --git a/programs/nft-voter/Cargo.toml b/programs/nft-voter/Cargo.toml index 0acf4d30..98945b9f 100644 --- a/programs/nft-voter/Cargo.toml +++ b/programs/nft-voter/Cargo.toml @@ -18,21 +18,17 @@ default = [] [dependencies] arrayref = "0.3.6" -anchor-lang = { version = "0.26.0", features = ["init-if-needed"] } -anchor-spl = { version = "0.26.0", features = ["token"] } -itertools = "0.10.2" -mpl-token-metadata = { version = "1.12.0", features = ["no-entrypoint"] } -solana-program = "1.14.16" -spl-governance = { version = "3.1.1", features = ["no-entrypoint"] } -spl-governance-tools= "0.1.3" -spl-token = { version = "3.5", features = [ "no-entrypoint" ] } - -# The explicit versions are required to compile Anchor <= 0.27.0 -# Once upgraded to the higher version this can be removed -winnow = "=0.4.1" -toml_datetime = "=0.6.1" +anchor-lang = { version = "0.29.0", features = ["init-if-needed"] } +anchor-spl = { version = "0.29.0", features = ["token"] } +itertools = "0.12.0" +mpl-token-metadata = "3.2.3" +solana-program = "1.17.12" +spl-governance = { git = "https://github.com/solana-labs/solana-program-library.git", features = ["no-entrypoint"] } +spl-governance-tools= { git = "https://github.com/solana-labs/solana-program-library.git" } +spl-token = { version = "4.0.0", features = [ "no-entrypoint" ] } [dev-dependencies] -borsh = "0.9.1" -solana-sdk = "1.14.16" -solana-program-test = "1.14.16" \ No newline at end of file +borsh = "0.10.3" +solana-sdk = "1.17.12" +solana-program-test = { git = "https://github.com/dankelleher/solana.git", branch = "program-test-hack" } +#solana-program-test = "1.17.9" diff --git a/programs/nft-voter/src/instructions/cast_nft_vote.rs b/programs/nft-voter/src/instructions/cast_nft_vote.rs index c869deb7..968bfd65 100644 --- a/programs/nft-voter/src/instructions/cast_nft_vote.rs +++ b/programs/nft-voter/src/instructions/cast_nft_vote.rs @@ -50,8 +50,8 @@ pub struct CastNftVote<'info> { } /// Casts vote with the NFT -pub fn cast_nft_vote<'a, 'b, 'c, 'info>( - ctx: Context<'a, 'b, 'c, 'info, CastNftVote<'info>>, +pub fn cast_nft_vote<'info>( + ctx: Context<'_, '_, '_, 'info, CastNftVote<'info>>, proposal: Pubkey, ) -> Result<()> { let registrar = &ctx.accounts.registrar; @@ -82,7 +82,7 @@ pub fn cast_nft_vote<'a, 'b, 'c, 'info>( &mut unique_nft_mints, )?; - voter_weight = voter_weight.checked_add(nft_vote_weight as u64).unwrap(); + voter_weight = voter_weight.checked_add(nft_vote_weight).unwrap(); // Create NFT vote record to ensure the same NFT hasn't been already used for voting // Note: The correct PDA of the NftVoteRecord is validated in create_and_serialize_account_signed diff --git a/programs/nft-voter/src/instructions/update_voter_weight_record.rs b/programs/nft-voter/src/instructions/update_voter_weight_record.rs index 43145e2a..ea80cb29 100644 --- a/programs/nft-voter/src/instructions/update_voter_weight_record.rs +++ b/programs/nft-voter/src/instructions/update_voter_weight_record.rs @@ -58,7 +58,7 @@ pub fn update_voter_weight_record( &mut unique_nft_mints, )?; - voter_weight = voter_weight.checked_add(nft_vote_weight as u64).unwrap(); + voter_weight = voter_weight.checked_add(nft_vote_weight).unwrap(); } let voter_weight_record = &mut ctx.accounts.voter_weight_record; diff --git a/programs/nft-voter/src/lib.rs b/programs/nft-voter/src/lib.rs index fcd118fe..b1c9b956 100644 --- a/programs/nft-voter/src/lib.rs +++ b/programs/nft-voter/src/lib.rs @@ -54,8 +54,8 @@ pub mod nft_voter { instructions::configure_collection(ctx, weight, size) } - pub fn cast_nft_vote<'a, 'b, 'c, 'info>( - ctx: Context<'a, 'b, 'c, 'info, CastNftVote<'info>>, + pub fn cast_nft_vote<'info>( + ctx: Context<'_, '_, '_, 'info, CastNftVote<'info>>, proposal: Pubkey, ) -> Result<()> { log_version(); diff --git a/programs/nft-voter/src/tools/token_metadata.rs b/programs/nft-voter/src/tools/token_metadata.rs index 05c3d397..fbe8aa0a 100644 --- a/programs/nft-voter/src/tools/token_metadata.rs +++ b/programs/nft-voter/src/tools/token_metadata.rs @@ -1,6 +1,7 @@ use anchor_lang::prelude::*; +use std::convert::TryFrom; -use mpl_token_metadata::state::{Metadata, TokenMetadataAccount}; +use mpl_token_metadata::accounts::Metadata; use crate::error::NftVoterError; @@ -9,11 +10,11 @@ pub fn get_token_metadata(account_info: &AccountInfo) -> Result { return Err(NftVoterError::InvalidAccountOwner.into()); } - let metadata = Metadata::from_account_info(account_info)?; + let metadata = Metadata::try_from(account_info)?; // I'm not sure if this is needed but try_from_slice_checked in from_account_info // ignores Key::Uninitialized and hence checking for the exact Key match here - if metadata.key != mpl_token_metadata::state::Key::MetadataV1 { + if metadata.key != mpl_token_metadata::types::Key::MetadataV1 { return Err(NftVoterError::InvalidTokenMetadataAccount.into()); } diff --git a/programs/nft-voter/tests/program_test/token_metadata_test.rs b/programs/nft-voter/tests/program_test/token_metadata_test.rs index 093ab891..58a714ac 100644 --- a/programs/nft-voter/tests/program_test/token_metadata_test.rs +++ b/programs/nft-voter/tests/program_test/token_metadata_test.rs @@ -1,7 +1,7 @@ use std::{str::FromStr, sync::Arc}; use anchor_lang::prelude::Pubkey; -use mpl_token_metadata::state::Collection; +use mpl_token_metadata::types::Collection; use solana_program_test::ProgramTest; use solana_sdk::{signer::Signer, transport::TransportError}; @@ -79,24 +79,24 @@ impl TokenMetadataTest { let coll_symbol = "NFT_C".to_string(); let coll_uri = "URI".to_string(); - let create_coll_metadata_ix = mpl_token_metadata::instruction::create_metadata_accounts_v3( - self.program_id, - coll_metadata_key, - coll_mint_cookie.address, - coll_mint_cookie.mint_authority.pubkey(), - payer.clone(), - update_authority.clone(), - coll_name, - coll_symbol, - coll_uri, - None, - 10, - false, - false, - None, - None, - None, - ); + let create_coll_metadata_ix = + mpl_token_metadata::instructions::CreateMetadataAccountV3Builder::new() + .metadata(coll_metadata_key) + .is_mutable(true) + .mint(coll_mint_cookie.address) + .mint_authority(coll_mint_cookie.mint_authority.pubkey()) + .payer(payer) + .update_authority(update_authority, true) + .data(mpl_token_metadata::types::DataV2 { + name: coll_name.clone(), + symbol: coll_symbol.clone(), + uri: coll_uri.clone(), + seller_fee_basis_points: 10, + creators: None, + collection: None, + uses: None, + }) + .instruction(); self.bench .process_transaction( @@ -114,16 +114,16 @@ impl TokenMetadataTest { let (master_edition_key, _) = Pubkey::find_program_address(master_edition_seeds, &self.program_id); - let create_master_edition_ix = mpl_token_metadata::instruction::create_master_edition_v3( - self.program_id, - master_edition_key, - coll_mint_cookie.address, - update_authority, - coll_mint_cookie.mint_authority.pubkey(), - coll_metadata_key, - payer, - Some(0), - ); + let create_master_edition_ix = + mpl_token_metadata::instructions::CreateMasterEditionV3Builder::new() + .metadata(coll_metadata_key) + .edition(master_edition_key) + .mint(coll_mint_cookie.address) + .update_authority(update_authority) + .mint_authority(coll_mint_cookie.mint_authority.pubkey()) + .payer(payer) + .max_supply(0) + .instruction(); self.bench .process_transaction( @@ -174,40 +174,39 @@ impl TokenMetadataTest { key: nft_collection_cookie.mint, }; - let create_metadata_ix = mpl_token_metadata::instruction::create_metadata_accounts_v3( - self.program_id, - metadata_key, - mint_cookie.address, - mint_cookie.mint_authority.pubkey(), - self.bench.payer.pubkey(), - self.bench.payer.pubkey(), - name, - symbol, - uri, - None, - 10, - false, - false, - Some(collection), - None, - None, - ); + let create_metadata_ix = + mpl_token_metadata::instructions::CreateMetadataAccountV3Builder::new() + .metadata(metadata_key) + .is_mutable(true) + .mint(mint_cookie.address) + .mint_authority(mint_cookie.mint_authority.pubkey()) + .payer(self.bench.payer.pubkey()) + .update_authority(self.bench.payer.pubkey(), false) + .data(mpl_token_metadata::types::DataV2 { + name: name.clone(), + symbol: symbol.clone(), + uri: uri.clone(), + seller_fee_basis_points: 10, + creators: None, + collection: Some(collection.clone()), + uses: None, + }) + .instruction(); self.bench .process_transaction(&[create_metadata_ix], Some(&[&mint_cookie.mint_authority])) .await?; if verify_collection { - let verify_collection = mpl_token_metadata::instruction::verify_collection( - self.program_id, - metadata_key, - self.bench.payer.pubkey(), - self.bench.payer.pubkey(), - nft_collection_cookie.mint, - nft_collection_cookie.metadata, - nft_collection_cookie.master_edition, - None, - ); + let verify_collection = + mpl_token_metadata::instructions::VerifyCollectionBuilder::new() + .metadata(metadata_key) + .collection_mint(nft_collection_cookie.mint) + .collection(nft_collection_cookie.metadata) + .collection_master_edition_account(nft_collection_cookie.master_edition) + .payer(self.bench.payer.pubkey()) + .collection_authority(self.bench.payer.pubkey()) + .instruction(); self.bench .process_transaction(&[verify_collection], None) diff --git a/programs/realm-voter/Cargo.toml b/programs/realm-voter/Cargo.toml index 7a4f43f0..30c9fb4f 100644 --- a/programs/realm-voter/Cargo.toml +++ b/programs/realm-voter/Cargo.toml @@ -18,14 +18,15 @@ default = [] [dependencies] arrayref = "0.3.6" -anchor-lang = { version = "0.26.0" } -anchor-spl = "0.26.0" -solana-program = "1.14.16" -spl-governance = { version = "3.1.1", features = ["no-entrypoint"] } -spl-governance-tools= "0.1.3" -spl-token = { version = "3.3", features = [ "no-entrypoint" ] } +anchor-lang = { version = "0.29.0" } +anchor-spl = "0.29.0" +solana-program = "1.17.12" +spl-governance = { git = "https://github.com/solana-labs/solana-program-library.git", features = ["no-entrypoint"] } +spl-governance-tools= { git = "https://github.com/solana-labs/solana-program-library.git" } +spl-token = { version = "4.0.0", features = [ "no-entrypoint" ] } [dev-dependencies] -borsh = "0.9.1" -solana-sdk = "1.14.16" -solana-program-test = "1.14.16" \ No newline at end of file +borsh = "0.10.3" +solana-sdk = "1.17.12" +solana-program-test = { git = "https://github.com/dankelleher/solana.git", branch = "program-test-hack" } +#solana-program-test = "1.17.9" diff --git a/rust-toolchain.toml b/rust-toolchain.toml index f8c2abbb..639f4f17 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "1.65.0" +channel = "1.74.0"