From 982643bf1b9c8d69a7f126e7d7322da762e3222e Mon Sep 17 00:00:00 2001 From: Lyudmil Ivanov <55487633+flmel@users.noreply.github.com> Date: Fri, 9 Aug 2024 11:20:31 +0300 Subject: [PATCH 1/3] wip --- contracts/factory/Cargo.lock | 6428 ++++++++++++++++++++-- contracts/factory/Cargo.toml | 39 +- contracts/factory/README.md | 34 +- contracts/factory/build.sh | 6 - contracts/factory/res/token_factory.wasm | Bin 408105 -> 0 bytes contracts/factory/src/lib.rs | 186 +- 6 files changed, 6245 insertions(+), 448 deletions(-) delete mode 100755 contracts/factory/build.sh delete mode 100755 contracts/factory/res/token_factory.wasm diff --git a/contracts/factory/Cargo.lock b/contracts/factory/Cargo.lock index 626ae0f..97a0867 100644 --- a/contracts/factory/Cargo.lock +++ b/contracts/factory/Cargo.lock @@ -1,607 +1,5892 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "Inflector" version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" - -[[package]] -name = "ahash" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" - -[[package]] -name = "aho-corasick" -version = "0.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" dependencies = [ - "memchr", + "lazy_static", + "regex", ] [[package]] -name = "autocfg" -version = "1.0.0" +name = "actix" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" +checksum = "de7fa236829ba0841304542f7614c42b80fca007455315c45c785ccfa873a85b" +dependencies = [ + "actix-macros", + "actix-rt", + "actix_derive", + "bitflags 2.6.0", + "bytes", + "crossbeam-channel", + "futures-core", + "futures-sink", + "futures-task", + "futures-util", + "log", + "once_cell", + "parking_lot", + "pin-project-lite", + "smallvec", + "tokio", + "tokio-util", +] [[package]] -name = "base64" -version = "0.13.0" +name = "actix-macros" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" +dependencies = [ + "quote", + "syn 2.0.72", +] [[package]] -name = "block-buffer" -version = "0.7.3" +name = "actix-rt" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208" dependencies = [ - "block-padding", - "byte-tools", - "byteorder", - "generic-array 0.12.3", + "futures-core", + "tokio", ] [[package]] -name = "block-buffer" -version = "0.9.0" +name = "actix_derive" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +checksum = "7c7db3d5a9718568e4cf4a537cfd7070e6e6ff7481510d0237fb529ac850f6d3" dependencies = [ - "generic-array 0.14.4", + "proc-macro2", + "quote", + "syn 2.0.72", ] [[package]] -name = "block-padding" -version = "0.1.5" +name = "addr2line" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ - "byte-tools", + "gimli 0.28.1", ] [[package]] -name = "borsh" -version = "0.8.2" +name = "adler" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a7111f797cc721407885a323fb071636aee57f750b1a4ddc27397eba168a74" -dependencies = [ - "borsh-derive", - "hashbrown", -] +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] -name = "borsh-derive" -version = "0.8.2" +name = "aes" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307f3740906bac2c118a8122fe22681232b244f1369273e45f1156b45c43d2dd" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ - "borsh-derive-internal", - "borsh-schema-derive-internal", - "proc-macro-crate", - "proc-macro2", - "syn", + "cfg-if 1.0.0", + "cipher", + "cpufeatures", ] [[package]] -name = "borsh-derive-internal" -version = "0.8.2" +name = "ahash" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2104c73179359431cc98e016998f2f23bc7a05bc53e79741bcba705f30047bc" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "proc-macro2", - "quote", - "syn", + "getrandom", + "once_cell", + "version_check", ] [[package]] -name = "borsh-schema-derive-internal" -version = "0.8.2" +name = "ahash" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae29eb8418fcd46f723f8691a2ac06857d31179d33d2f2d91eb13967de97c728" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ - "proc-macro2", - "quote", - "syn", + "cfg-if 1.0.0", + "once_cell", + "version_check", + "zerocopy", ] [[package]] -name = "bs58" -version = "0.4.0" +name = "aho-corasick" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] [[package]] -name = "byte-tools" -version = "0.3.1" +name = "android-tzdata" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" [[package]] -name = "byteorder" -version = "1.3.4" +name = "android_system_properties" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] [[package]] -name = "cfg-if" -version = "0.1.10" +name = "anstream" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] [[package]] -name = "cfg-if" -version = "1.0.0" +name = "anstyle" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] -name = "convert_case" -version = "0.4.0" +name = "anstyle-parse" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +dependencies = [ + "utf8parse", +] [[package]] -name = "cpuid-bool" -version = "0.1.2" +name = "anstyle-query" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +dependencies = [ + "windows-sys 0.52.0", +] [[package]] -name = "derive_more" -version = "0.99.13" +name = "anstyle-wincon" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b1b72f1263f214c0f823371768776c4f5841b942c9883aa8e5ec584fd0ba6" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "syn", + "anstyle", + "windows-sys 0.52.0", ] [[package]] -name = "digest" -version = "0.8.1" +name = "anyhow" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -dependencies = [ - "generic-array 0.12.3", -] +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] -name = "digest" -version = "0.9.0" +name = "arbitrary" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" dependencies = [ - "generic-array 0.14.4", + "derive_arbitrary", ] [[package]] -name = "generic-array" -version = "0.12.3" +name = "arrayvec" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" -dependencies = [ - "typenum", -] +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] -name = "generic-array" -version = "0.14.4" +name = "async-broadcast" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" +checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" dependencies = [ - "typenum", - "version_check", + "event-listener 2.5.3", + "futures-core", ] [[package]] -name = "hashbrown" -version = "0.9.1" +name = "async-channel" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ - "ahash", + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", ] [[package]] -name = "hex" -version = "0.4.3" +name = "async-executor" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand 2.1.0", + "futures-lite 2.3.0", + "slab", +] [[package]] -name = "indexmap" -version = "1.3.2" +name = "async-fs" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076f042c5b7b98f31d205f1249267e12a6518c1481e9dae9764af19b707d2292" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" dependencies = [ + "async-lock 2.8.0", "autocfg", + "blocking", + "futures-lite 1.13.0", ] [[package]] -name = "itoa" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" - -[[package]] -name = "keccak" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea0c0405123bba743ee3f91f49b1c7cfb684eef0da0a50110f758ccf24cdff0" - -[[package]] -name = "memchr" -version = "2.3.4" +name = "async-io" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "cfg-if 1.0.0", + "concurrent-queue", + "futures-lite 1.13.0", + "log", + "parking", + "polling 2.8.0", + "rustix 0.37.27", + "slab", + "socket2 0.4.10", + "waker-fn", +] [[package]] -name = "memory_units" -version = "0.4.0" +name = "async-io" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" +checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964" +dependencies = [ + "async-lock 3.4.0", + "cfg-if 1.0.0", + "concurrent-queue", + "futures-io", + "futures-lite 2.3.0", + "parking", + "polling 3.7.2", + "rustix 0.38.34", + "slab", + "tracing", + "windows-sys 0.52.0", +] [[package]] -name = "near-contract-standards" -version = "3.1.0" +name = "async-lock" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5837ffd278eeedc4f97104586b3851ed9e7c32449de8b54e8d752f22498588e" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" dependencies = [ - "near-sdk", + "event-listener 2.5.3", ] [[package]] -name = "near-primitives-core" -version = "0.4.0" +name = "async-lock" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2b3fb5acf3a494aed4e848446ef2d6ebb47dbe91c681105d4d1786c2ee63e52" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "base64", - "borsh", - "bs58", - "derive_more", - "hex", - "lazy_static", - "num-rational", - "serde", - "serde_json", - "sha2", + "event-listener 5.3.1", + "event-listener-strategy", + "pin-project-lite", ] [[package]] -name = "near-rpc-error-core" -version = "0.1.0" +name = "async-process" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffa8dbf8437a28ac40fcb85859ab0d0b8385013935b000c7a51ae79631dd74d9" +checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" dependencies = [ - "proc-macro2", - "quote", - "serde", - "serde_json", - "syn", + "async-io 1.13.0", + "async-lock 2.8.0", + "async-signal", + "blocking", + "cfg-if 1.0.0", + "event-listener 3.1.0", + "futures-lite 1.13.0", + "rustix 0.38.34", + "windows-sys 0.48.0", ] [[package]] -name = "near-rpc-error-macro" -version = "0.1.0" +name = "async-recursion" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6111d713e90c7c551dee937f4a06cb9ea2672243455a4454cc7566387ba2d9" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ - "near-rpc-error-core", "proc-macro2", "quote", - "serde", - "serde_json", - "syn", + "syn 2.0.72", ] [[package]] -name = "near-runtime-utils" -version = "4.0.0-pre.1" +name = "async-signal" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a48d80c4ca1d4cf99bc16490e1e3d49826c150dfc4410ac498918e45c7d98e07" +checksum = "dfb3634b73397aa844481f814fad23bbf07fdb0eabec10f2eb95e58944b1ec32" dependencies = [ - "lazy_static", - "regex", + "async-io 2.3.3", + "async-lock 3.4.0", + "atomic-waker", + "cfg-if 1.0.0", + "futures-core", + "futures-io", + "rustix 0.38.34", + "signal-hook-registry", + "slab", + "windows-sys 0.52.0", ] [[package]] -name = "near-sdk" -version = "3.1.0" +name = "async-stream" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7383e242d3e07bf0951e8589d6eebd7f18bb1c1fc5fbec3fad796041a6aebd1" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" dependencies = [ - "base64", - "borsh", - "bs58", - "near-primitives-core", - "near-sdk-macros", - "near-vm-logic", - "serde", - "serde_json", - "wee_alloc", + "async-stream-impl", + "futures-core", + "pin-project-lite", ] [[package]] -name = "near-sdk-core" -version = "3.1.0" +name = "async-stream-impl" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284a78d9eb8eda58330462fa0023a6d7014c941df1f0387095e7dfd1dc0f2bce" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ - "Inflector", "proc-macro2", "quote", - "syn", + "syn 2.0.72", ] [[package]] -name = "near-sdk-macros" -version = "3.1.0" +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2037337438f97d1ce5f7c896cf229dc56dacd5c01142d1ef95a7d778cde6ce7d" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ - "near-sdk-core", "proc-macro2", "quote", - "syn", + "syn 2.0.72", ] [[package]] -name = "near-vm-errors" -version = "4.0.0-pre.1" +name = "atomic-waker" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e281d8730ed8cb0e3e69fb689acee6b93cdb43824cd69a8ffd7e1bfcbd1177d7" -dependencies = [ - "borsh", - "hex", - "near-rpc-error-macro", - "serde", -] +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] -name = "near-vm-logic" -version = "4.0.0-pre.1" +name = "atty" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e11cb28a2d07f37680efdaf860f4c9802828c44fc50c08009e7884de75d982c5" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "base64", - "borsh", - "bs58", - "byteorder", - "near-primitives-core", - "near-runtime-utils", - "near-vm-errors", - "serde", - "sha2", - "sha3", + "hermit-abi 0.1.19", + "libc", + "winapi", ] [[package]] -name = "num-bigint" -version = "0.3.2" +name = "autocfg" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d0a3d5e207573f948a9e5376662aa743a2ea13f7c50a554d7af443a73fbfeba" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] -name = "num-integer" -version = "0.1.43" +name = "axum" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" dependencies = [ - "autocfg", - "num-traits", + "async-trait", + "axum-core", + "bitflags 1.3.2", + "bytes", + "futures-util", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.30", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper 0.1.2", + "tower", + "tower-layer", + "tower-service", ] [[package]] -name = "num-rational" -version = "0.3.2" +name = "axum-core" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" dependencies = [ - "autocfg", - "num-bigint", - "num-integer", - "num-traits", - "serde", + "async-trait", + "bytes", + "futures-util", + "http 0.2.12", + "http-body 0.4.6", + "mime", + "rustversion", + "tower-layer", + "tower-service", ] [[package]] -name = "num-traits" -version = "0.2.12" +name = "backtrace" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ - "autocfg", + "addr2line", + "cc", + "cfg-if 1.0.0", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", ] [[package]] -name = "opaque-debug" -version = "0.2.3" +name = "base64" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] -name = "opaque-debug" -version = "0.3.0" +name = "base64" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] -name = "proc-macro-crate" -version = "0.1.5" +name = "base64ct" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" -dependencies = [ - "toml", -] +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] -name = "proc-macro2" -version = "1.0.26" +name = "binary-install" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" +checksum = "93bff426ff93f3610dd2b946f3eb8cb2d1285ca8682834d43be531a3f93db2ff" dependencies = [ - "unicode-xid", + "anyhow", + "dirs-next", + "flate2", + "fs2", + "hex 0.4.3", + "is_executable", + "siphasher", + "tar", + "ureq", + "zip 0.6.6", ] [[package]] -name = "quote" -version = "1.0.3" +name = "bip39" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f" +checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" dependencies = [ - "proc-macro2", + "bitcoin_hashes", + "rand", + "rand_core", + "serde", + "unicode-normalization", ] [[package]] -name = "regex" -version = "1.4.5" +name = "bitcoin_hashes" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957056ecddbeba1b26965114e191d2e8589ce74db242b6ea25fc4062427a5c19" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] +checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" [[package]] -name = "regex-syntax" -version = "0.6.23" +name = "bitflags" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] -name = "ryu" -version = "1.0.3" +name = "bitflags" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] -name = "serde" -version = "1.0.106" +name = "bitvec" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ - "serde_derive", + "funty", + "radium", + "tap", + "wyz", ] [[package]] -name = "serde_derive" -version = "1.0.106" +name = "blake2" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "proc-macro2", - "quote", - "syn", + "digest 0.10.7", ] [[package]] -name = "serde_json" -version = "1.0.51" +name = "block-buffer" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da07b57ee2623368351e9a0488bb0b261322a15a6e0ae53e243cbdc0f4208da9" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde", + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blocking" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +dependencies = [ + "async-channel", + "async-task", + "futures-io", + "futures-lite 2.3.0", + "piper", +] + +[[package]] +name = "borsh" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" +dependencies = [ + "borsh-derive", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" +dependencies = [ + "once_cell", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.72", + "syn_derive", +] + +[[package]] +name = "brownstone" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "030ea61398f34f1395ccbeb046fb68c87b631d1f34567fed0f0f11fa35d18d8d" +dependencies = [ + "arrayvec", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" + +[[package]] +name = "bytesize" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" +dependencies = [ + "serde", +] + +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "camino" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-near" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e6951d3f90db15d9d68e4437b874688873ffee9473cb1da69e5644c5b550582" +dependencies = [ + "atty", + "bs58 0.5.1", + "camino", + "cargo_metadata", + "clap", + "color-eyre", + "colored", + "derive_more", + "dunce", + "env_logger", + "inquire", + "interactive-clap", + "interactive-clap-derive", + "libloading", + "linked-hash-map", + "log", + "names", + "near-abi", + "near-cli-rs", + "rustc_version", + "schemars", + "serde_json", + "sha2 0.10.8", + "shell-words", + "strum 0.24.1", + "strum_macros 0.24.3", + "symbolic-debuginfo", + "zstd 0.13.2", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a51c783163bdf4549820b80968d386c94ed45ed23819c93f59cca7ebd97fe0eb" +dependencies = [ + "anyhow", + "core-foundation", + "crypto-hash", + "filetime", + "hex 0.4.3", + "jobserver", + "libc", + "log", + "miow", + "same-file", + "shell-escape", + "tempfile", + "walkdir", + "winapi", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "504bdec147f2cc13c8b57ed9401fd8a147cc66b67ad5cb241394244f2c947549" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-targets 0.52.6", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clap" +version = "4.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "clap_lex" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" + +[[package]] +name = "color-eyre" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5" +dependencies = [ + "backtrace", + "color-spantrace", + "eyre", + "indenter", + "once_cell", + "owo-colors", + "tracing-error", +] + +[[package]] +name = "color-spantrace" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2" +dependencies = [ + "once_cell", + "owo-colors", + "tracing-core", + "tracing-error", +] + +[[package]] +name = "colorchoice" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" + +[[package]] +name = "colored" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +dependencies = [ + "lazy_static", + "windows-sys 0.48.0", +] + +[[package]] +name = "commoncrypto" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d056a8586ba25a1e4d61cb090900e495952c7886786fc55f909ab2f819b69007" +dependencies = [ + "commoncrypto-sys", +] + +[[package]] +name = "commoncrypto-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fed34f46747aa73dfaa578069fd8279d2818ade2b55f38f22a9401c7f4083e2" +dependencies = [ + "libc", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "console" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +dependencies = [ + "encode_unicode 0.3.6", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.52.0", +] + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "convert_case" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb4a24b1aaf0fd0ce8b45161144d6f42cd91677fd5940fd431183eb023b3a2b8" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crossterm" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" +dependencies = [ + "bitflags 1.3.2", + "crossterm_winapi", + "libc", + "mio 0.8.11", + "parking_lot", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "crypto-hash" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a77162240fd97248d19a564a565eb563a3f592b386e4136fb300909e67dddca" +dependencies = [ + "commoncrypto", + "hex 0.3.2", + "openssl", + "winapi", +] + +[[package]] +name = "crypto-mac" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58bcd97a54c7ca5ce2f6eb16f6bede5b0ab5f0055fedc17d2f0b4466e21671ca" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "csv" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" +dependencies = [ + "memchr", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rand_core", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.72", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "debugid" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6ee87af31d84ef885378aebca32be3d682b0e0dc119d5b4860a2c5bb5046730" +dependencies = [ + "uuid 0.8.2", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[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 = "derive_arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "derive_more" +version = "0.99.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +dependencies = [ + "convert_case 0.4.0", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.72", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if 1.0.0", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[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 = "dmsort" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0bc8fbe9441c17c9f46f75dfe27fa1ddb6c68a461ccaed0481419219d4f10d3" + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + +[[package]] +name = "easy-ext" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53aff6fdc1b181225acdcb5b14c47106726fd8e486707315b1b138baed68ee31" + +[[package]] +name = "easy-ext" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc5d6d6a8504f8caedd7de14576464383900cd3840b7033a7a3dce5ac00121ca" + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core", + "sha2 0.10.8", + "subtle", +] + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "elementtree" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6319c9433cf1e95c60c8533978bccf0614f27f03bb4e514253468eeeaa7fe3" +dependencies = [ + "string_cache", + "xml-rs", +] + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "encode_unicode" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "enum-map" +version = "2.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9" +dependencies = [ + "enum-map-derive", +] + +[[package]] +name = "enum-map-derive" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "enumflags2" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "env_filter" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "humantime", + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "event-listener" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener" +version = "5.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +dependencies = [ + "event-listener 5.3.1", + "pin-project-lite", +] + +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "factory" +version = "0.1.0" +dependencies = [ + "near-contract-standards", + "near-sdk", + "near-workspaces", + "serde_json", + "tokio", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "filetime" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall 0.4.1", + "windows-sys 0.52.0", +] + +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "static_assertions", +] + +[[package]] +name = "flate2" +version = "1.0.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f211bbe8e69bbd0cfdea405084f128ae8b4aaa6b0b522fc8f2b009084797920" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fluent-uri" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17c704e9dbe1ddd863da1e6ff3567795087b1eb201ce80d8fa81162e1516500d" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-lite" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +dependencies = [ + "fastrand 2.1.0", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fuzzy-matcher" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94" +dependencies = [ + "thread_local", +] + +[[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.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi", +] + +[[package]] +name = "gimli" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +dependencies = [ + "fallible-iterator", + "stable_deref_trait", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "goblin" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7666983ed0dd8d21a6f6576ee00053ca0926fb281a5522577a4dbd0f1b54143" +dependencies = [ + "log", + "plain", + "scroll 0.11.0", +] + +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.3.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.1.0", + "indexmap 2.3.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.8", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash 0.8.11", + "serde", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + +[[package]] +name = "hex" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac 0.12.1", +] + +[[package]] +name = "hmac" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deae6d9dbb35ec2c502d62b8f7b1c000a0822c3b0794ba36b3149c0a1c840dff" +dependencies = [ + "crypto-mac", + "digest 0.9.0", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.7", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.1", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +dependencies = [ + "futures-util", + "http 1.1.0", + "hyper 1.4.1", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper 0.14.30", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper 1.4.1", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.4.1", + "pin-project-lite", + "socket2 0.5.7", + "tokio", + "tower", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indent_write" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cfe9645a18782869361d9c8732246be7b410ad4e919d3609ebabdac00ba12c3" + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" +dependencies = [ + "equivalent", + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "indicatif" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +dependencies = [ + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", + "vt100", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding", + "generic-array", +] + +[[package]] +name = "inquire" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fddf93031af70e75410a2511ec04d49e758ed2f26dad3404a934e0fb45cc12a" +dependencies = [ + "bitflags 2.6.0", + "crossterm", + "dyn-clone", + "fuzzy-matcher", + "fxhash", + "newline-converter", + "once_cell", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "interactive-clap" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7295a8d03a71e15612a524a8e1dec1a913459e0000e530405f20d09fb0f014f7" +dependencies = [ + "interactive-clap-derive", + "strum 0.24.1", + "strum_macros 0.24.3", +] + +[[package]] +name = "interactive-clap-derive" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a0c8d4a6b99054853778e3e9ffb0b74bcb5e8f43d99d97e5c0252c57ce67bf6" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + +[[package]] +name = "is-terminal" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + +[[package]] +name = "is_executable" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "302d553b8abc8187beb7d663e34c065ac4570b273bc9511a50e940e99409c577" +dependencies = [ + "winapi", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + +[[package]] +name = "joinery" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72167d68f5fce3b8655487b8038691a3c9984ee769590f93f2a631f4ad64e4f5" + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b1fb8864823fad91877e6caea0baca82e49e8db50f8e5c9f9a453e27d3330fc" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "json_comments" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dbbfed4e59ba9750e15ba154fdfd9329cee16ff3df539c2666b70f58cc32105" + +[[package]] +name = "jsonptr" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c6e529149475ca0b2820835d3dce8fcc41c6b943ca608d32f35b449255e4627" +dependencies = [ + "fluent-uri", + "serde", + "serde_json", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "keyring" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "363387f0019d714aa60cc30ab4fe501a747f4c08fc58f069dd14be971bd495a0" +dependencies = [ + "byteorder", + "lazy_static", + "linux-keyutils", + "secret-service", + "security-framework", + "windows-sys 0.52.0", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libloading" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +dependencies = [ + "cfg-if 1.0.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" +dependencies = [ + "serde", +] + +[[package]] +name = "linux-keyutils" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761e49ec5fd8a5a463f9b84e877c373d888935b71c6be78f3767fe2ae6bed18e" +dependencies = [ + "bitflags 2.6.0", + "libc", +] + +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "lru" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" +dependencies = [ + "hashbrown 0.12.3", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memory_units" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "log", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "mio" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "wasi", + "windows-sys 0.52.0", +] + +[[package]] +name = "miow" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" +dependencies = [ + "winapi", +] + +[[package]] +name = "names" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" +dependencies = [ + "rand", +] + +[[package]] +name = "native-tls" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "near-abi" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c49593c9e94454a2368a4c0a511bf4bf1413aff4d23f16e1d8f4e64b5215351" +dependencies = [ + "borsh", + "schemars", + "semver", + "serde", +] + +[[package]] +name = "near-abi-client" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879ac02b2e8d6498294adce1de7a2424a5474b35a73e9262c851be39c89d7f92" +dependencies = [ + "anyhow", + "convert_case 0.5.0", + "near-abi-client-impl", + "near-abi-client-macros", + "prettyplease", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "near-abi-client-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1139e8a6f60fd8ed1c53c700b67bcecbf6deb4b1f47bbe9a9d5eea760d8a8e91" +dependencies = [ + "anyhow", + "near-abi", + "near_schemafy_lib", + "proc-macro2", + "quote", + "schemars", + "serde_json", +] + +[[package]] +name = "near-abi-client-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebaf2aae80086b310bf96e657bbee0c599c3452afd35e72999f8d6764d6b1899" +dependencies = [ + "near-abi-client-impl", + "syn 1.0.109", +] + +[[package]] +name = "near-account-id" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35cbb989542587b47205e608324ddd391f0cee1c22b4b64ae49f458334b95907" +dependencies = [ + "borsh", + "serde", +] + +[[package]] +name = "near-async" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754fd9af13f1241520e8fc4831ff5c582ee00a6b1221c0cbd8bf43d059ed6e04" +dependencies = [ + "actix", + "derive_more", + "futures", + "near-async-derive", + "near-o11y", + "near-performance-metrics", + "near-time", + "once_cell", + "serde", + "serde_json", + "time", + "tokio", +] + +[[package]] +name = "near-async-derive" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a47ae519ceed7636e3d9328fd7d1bcbda9a28eccee73315e0a3139e99aa1232" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "near-chain-configs" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75447355021100158c2e5fc151a0f6728e794b98cb411874f89fc5fb9f386cd2" +dependencies = [ + "anyhow", + "bytesize", + "chrono", + "derive_more", + "near-async", + "near-config-utils", + "near-crypto", + "near-parameters", + "near-primitives", + "num-rational 0.3.2", + "once_cell", + "serde", + "serde_json", + "sha2 0.10.8", + "smart-default 0.6.0", + "time", + "tracing", +] + +[[package]] +name = "near-cli-rs" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da8ff92700ba52e7bce20c80d899dca2f37bc35d66138c8daaa71b1731a980f1" +dependencies = [ + "bip39", + "bs58 0.5.1", + "bytesize", + "cargo-util", + "clap", + "color-eyre", + "derive_more", + "dirs", + "easy-ext 1.0.2", + "ed25519-dalek", + "futures", + "hex 0.4.3", + "indicatif", + "inquire", + "interactive-clap", + "interactive-clap-derive", + "keyring", + "linked-hash-map", + "near-abi", + "near-crypto", + "near-gas", + "near-jsonrpc-client", + "near-jsonrpc-primitives", + "near-primitives", + "near-socialdb-client", + "near-token", + "open", + "openssl", + "prettytable", + "reqwest", + "rust_decimal", + "serde", + "serde_json", + "shell-words", + "shellexpand", + "slipped10", + "smart-default 0.7.1", + "strum 0.24.1", + "strum_macros 0.24.3", + "textwrap", + "thiserror", + "tokio", + "toml", + "tracing", + "tracing-indicatif", + "tracing-subscriber", + "url", + "wasmparser 0.211.1", + "zstd 0.13.2", +] + +[[package]] +name = "near-config-utils" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43b3db4ac2d4340caef06b6363c3fd16c0be1f70267908dfa53e2e6241649b0c" +dependencies = [ + "anyhow", + "json_comments", + "thiserror", + "tracing", +] + +[[package]] +name = "near-contract-standards" +version = "5.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b7682ed5a41e8818518808b2e263b5f482ae7b9b37fff1df5383beb888bbed8" +dependencies = [ + "near-sdk", +] + +[[package]] +name = "near-crypto" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9807fb257f7dda41383bb33e14cfd4a8840ffa7932cb972db9eabff19ce3bf4" +dependencies = [ + "blake2", + "borsh", + "bs58 0.4.0", + "curve25519-dalek", + "derive_more", + "ed25519-dalek", + "hex 0.4.3", + "near-account-id", + "near-config-utils", + "near-stdx", + "once_cell", + "primitive-types", + "secp256k1", + "serde", + "serde_json", + "subtle", + "thiserror", +] + +[[package]] +name = "near-fmt" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00ce363e4078b870775e2a5a5189feae22f0870ca673f6409b1974922dada0c4" +dependencies = [ + "near-primitives-core", +] + +[[package]] +name = "near-gas" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e75c875026229902d065e4435804497337b631ec69ba746b102954273e9ad1" +dependencies = [ + "borsh", + "interactive-clap", + "schemars", + "serde", +] + +[[package]] +name = "near-jsonrpc-client" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b40b427519fcbf71be4de4cab4f6c201aa3e3fb212a4a54976596fa44b05711" +dependencies = [ + "borsh", + "lazy_static", + "log", + "near-chain-configs", + "near-crypto", + "near-jsonrpc-primitives", + "near-primitives", + "reqwest", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "near-jsonrpc-primitives" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e30db3829a8880847d7f3f64828f11133ba9102d2df382a2d916ec1553270df" +dependencies = [ + "arbitrary", + "near-chain-configs", + "near-crypto", + "near-primitives", + "near-rpc-error-macro", + "serde", + "serde_json", + "thiserror", + "time", +] + +[[package]] +name = "near-o11y" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2847f81f7a4c996d583c377f8196a8d05d74ee7535678c20beef0f80304c48b1" +dependencies = [ + "actix", + "base64 0.21.7", + "clap", + "near-crypto", + "near-primitives-core", + "once_cell", + "opentelemetry", + "opentelemetry-otlp", + "opentelemetry-semantic-conventions", + "opentelemetry_sdk", + "prometheus", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-appender", + "tracing-opentelemetry", + "tracing-subscriber", +] + +[[package]] +name = "near-parameters" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fddf39f5f729976a791d86e0e30a71ec4d8e8dcf58117c8694e7b22fb3f50ee6" +dependencies = [ + "borsh", + "enum-map", + "near-account-id", + "near-primitives-core", + "num-rational 0.3.2", + "serde", + "serde_repr", + "serde_yaml", + "strum 0.24.1", + "thiserror", +] + +[[package]] +name = "near-performance-metrics" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42166c93c35457d16a3a6c7b9b511bea790bcb4a35a41d4c5218b1fb9a46702a" +dependencies = [ + "actix", + "bitflags 1.3.2", + "bytes", + "futures", + "libc", + "once_cell", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "near-primitives" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d58c175262923db9885ed0347e96ec3bcbec57825e3b6d7de03da220f5e14ef5" +dependencies = [ + "arbitrary", + "base64 0.21.7", + "borsh", + "bytes", + "bytesize", + "cfg-if 1.0.0", + "chrono", + "derive_more", + "easy-ext 0.2.9", + "enum-map", + "hex 0.4.3", + "itertools 0.10.5", + "near-crypto", + "near-fmt", + "near-parameters", + "near-primitives-core", + "near-rpc-error-macro", + "near-stdx", + "near-time", + "num-rational 0.3.2", + "once_cell", + "primitive-types", + "rand", + "rand_chacha", + "reed-solomon-erasure", + "serde", + "serde_json", + "serde_with", + "sha3", + "smart-default 0.6.0", + "strum 0.24.1", + "thiserror", + "tracing", + "zstd 0.13.2", +] + +[[package]] +name = "near-primitives-core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45de00d413f5bb890a3912f32fcd0974b2b0a975cc7874012e2c4c4fa7f28917" +dependencies = [ + "arbitrary", + "base64 0.21.7", + "borsh", + "bs58 0.4.0", + "derive_more", + "enum-map", + "near-account-id", + "num-rational 0.3.2", + "serde", + "serde_repr", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "near-rpc-error-core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf41b149dcc1f5a35d6a96fbcd8c28c92625c05b52025a72ee7378c72bcd68ce" +dependencies = [ + "quote", + "serde", + "syn 2.0.72", +] + +[[package]] +name = "near-rpc-error-macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73c7f0f12f426792dd2c9d83df43d73c3b15d80f6e99e8d0e16ff3e024d0f9ba" +dependencies = [ + "near-rpc-error-core", + "serde", + "syn 2.0.72", +] + +[[package]] +name = "near-sandbox-utils" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb707ae2f73e10f253155c34993970422b9de41d64e9639a946ad44fec957bc3" +dependencies = [ + "anyhow", + "binary-install", + "chrono", + "fs2", + "home", + "tokio", +] + +[[package]] +name = "near-sandbox-utils" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecb6dd8d04afe14c5aa944218c63f3106b4dde7099c8841ce22fbbd32580ccd2" +dependencies = [ + "anyhow", + "binary-install", + "fs2", + "home", + "tokio", +] + +[[package]] +name = "near-sdk" +version = "5.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "951ac0ba9c90e4ed6e927914d2ecee3d8ae2d74e794656b5ca42a992bd370863" +dependencies = [ + "base64 0.21.7", + "borsh", + "bs58 0.5.1", + "near-account-id", + "near-crypto", + "near-gas", + "near-parameters", + "near-primitives", + "near-primitives-core", + "near-sdk-macros", + "near-sys", + "near-token", + "near-vm-runner", + "once_cell", + "serde", + "serde_json", + "wee_alloc", +] + +[[package]] +name = "near-sdk-macros" +version = "5.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2d758ff2701e7a53292a9dc2eeede6ed648574456c14f2464bf0a3ba047be3" +dependencies = [ + "Inflector", + "darling", + "proc-macro2", + "quote", + "serde", + "serde_json", + "strum 0.26.3", + "strum_macros 0.26.4", + "syn 2.0.72", +] + +[[package]] +name = "near-socialdb-client" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f73f20e836368bc9a26536fd9d636aefa2860696da7691095eb9e65ae32bfa55" +dependencies = [ + "color-eyre", + "near-crypto", + "near-jsonrpc-client", + "near-jsonrpc-primitives", + "near-primitives", + "near-token", + "serde", + "serde_json", + "url", +] + +[[package]] +name = "near-stdx" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29e1897481272eb144328abd51ca9f59b5b558e7a6dc6e2177c8c9bb18fbd818" + +[[package]] +name = "near-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf4ca5c805cb78700e10e43484902d8da05f25788db277999d209568aaf4c8e" + +[[package]] +name = "near-time" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56db32f26b089441c1a7c5451f0d68637afa9d66f6d8f6a6f2d6c2f7953520a" +dependencies = [ + "once_cell", + "serde", + "time", + "tokio", +] + +[[package]] +name = "near-token" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3b497804ec8f603fd11edc3d3b7b19f07c0beb9fe47c8a536eea1867097fd40" +dependencies = [ + "borsh", + "interactive-clap", + "serde", +] + +[[package]] +name = "near-vm-runner" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b382e9fda99cdc6f1684d95e9f10ef0ed556c14ff972099269e96f8fde84064" +dependencies = [ + "borsh", + "ed25519-dalek", + "enum-map", + "lru", + "near-crypto", + "near-parameters", + "near-primitives-core", + "near-stdx", + "num-rational 0.3.2", + "once_cell", + "ripemd", + "rustix 0.38.34", + "serde", + "serde_repr", + "sha2 0.10.8", + "sha3", + "strum 0.24.1", + "tempfile", + "thiserror", + "tracing", + "zeropool-bn", +] + +[[package]] +name = "near-workspaces" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c00e336205236a6a79aa8065d6835d719fe31a2ffc3abac470e246ab78340ca" +dependencies = [ + "async-trait", + "base64 0.22.1", + "bs58 0.5.1", + "cargo-near", + "cargo_metadata", + "chrono", + "fs2", + "json-patch", + "libc", + "near-abi-client", + "near-account-id", + "near-crypto", + "near-gas", + "near-jsonrpc-client", + "near-jsonrpc-primitives", + "near-primitives", + "near-sandbox-utils 0.8.0", + "near-sandbox-utils 0.9.0", + "near-token", + "rand", + "reqwest", + "serde", + "serde_json", + "sha2 0.10.8", + "tempfile", + "thiserror", + "tokio", + "tokio-retry", + "tracing", + "url", +] + +[[package]] +name = "near_schemafy_core" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d7a1f809a319578773329389529dbf8c8f0abfbb05a429b37f437105f7caf6" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "near_schemafy_lib" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c39ccae55df51adaa1a4e567b7a79ab4380826a695121cebf41f518076d8c3dd" +dependencies = [ + "Inflector", + "near_schemafy_core", + "proc-macro2", + "quote", + "serde", + "serde_derive", + "serde_json", + "syn 1.0.109", + "uriparse", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "newline-converter" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b6b097ecb1cbfed438542d16e84fd7ad9b0c76c8a65b7f9039212a3d14dc7f" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "nix" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +dependencies = [ + "bitflags 1.3.2", + "cfg-if 1.0.0", + "libc", + "memoffset 0.7.1", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nom-supreme" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aadc66631948f6b65da03be4c4cd8bd104d481697ecbb9bbd65719b1ec60bc9f" +dependencies = [ + "brownstone", + "indent_write", + "joinery", + "memchr", + "nom", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint 0.4.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational 0.4.2", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +dependencies = [ + "autocfg", + "num-bigint 0.3.3", + "num-integer", + "num-traits", + "serde", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint 0.4.6", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "open" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a877bf6abd716642a53ef1b89fb498923a4afca5c754f9050b4d081c05c4b3" +dependencies = [ + "is-wsl", + "libc", + "pathdiff", +] + +[[package]] +name = "openssl" +version = "0.10.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +dependencies = [ + "bitflags 2.6.0", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-src" +version = "300.3.1+3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7259953d42a81bf137fbbd73bd30a8e1914d6dce43c2b90ed575783a22608b91" +dependencies = [ + "cc", +] + +[[package]] +name = "openssl-sys" +version = "0.9.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +dependencies = [ + "cc", + "libc", + "openssl-src", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "opentelemetry" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900d57987be3f2aeb70d385fff9b27fb74c5723cc9a52d904d4f9c807a0667bf" +dependencies = [ + "futures-core", + "futures-sink", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", + "urlencoding", +] + +[[package]] +name = "opentelemetry-otlp" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a016b8d9495c639af2145ac22387dcb88e44118e45320d9238fbf4e7889abcb" +dependencies = [ + "async-trait", + "futures-core", + "http 0.2.12", + "opentelemetry", + "opentelemetry-proto", + "opentelemetry-semantic-conventions", + "opentelemetry_sdk", + "prost", + "thiserror", + "tokio", + "tonic", +] + +[[package]] +name = "opentelemetry-proto" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8fddc9b68f5b80dae9d6f510b88e02396f006ad48cac349411fbecc80caae4" +dependencies = [ + "opentelemetry", + "opentelemetry_sdk", + "prost", + "tonic", +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9ab5bd6c42fb9349dcf28af2ba9a0667f697f9bdcca045d39f2cec5543e2910" + +[[package]] +name = "opentelemetry_sdk" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e90c7113be649e31e9a0f8b5ee24ed7a16923b322c3c5ab6367469c049d6b7e" +dependencies = [ + "async-trait", + "crossbeam-channel", + "futures-channel", + "futures-executor", + "futures-util", + "glob", + "once_cell", + "opentelemetry", + "ordered-float", + "percent-encoding", + "rand", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-float" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a91171844676f8c7990ce64959210cd2eaef32c2612c50f9fae9f8aaa6065a6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "owo-colors" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" + +[[package]] +name = "parking" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall 0.5.3", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core", + "subtle", +] + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", + "hmac 0.12.1", + "password-hash", + "sha2 0.10.8", +] + +[[package]] +name = "pdb" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13f4d162ecaaa1467de5afbe62d597757b674b51da8bb4e587430c5fdb2af7aa" +dependencies = [ + "fallible-iterator", + "scroll 0.10.2", + "uuid 0.8.2", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piper" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391" +dependencies = [ + "atomic-waker", + "fastrand 2.1.0", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if 1.0.0", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + +[[package]] +name = "polling" +version = "3.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b" +dependencies = [ + "cfg-if 1.0.0", + "concurrent-queue", + "hermit-abi 0.4.0", + "pin-project-lite", + "rustix 0.38.34", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "portable-atomic" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" + +[[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.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "prettytable" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46480520d1b77c9a3482d39939fcf96831537a250ec62d4fd8fbdf8e0302e781" +dependencies = [ + "csv", + "encode_unicode 1.0.0", + "is-terminal", + "lazy_static", + "term", + "unicode-width", +] + +[[package]] +name = "primitive-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +dependencies = [ + "fixed-hash", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prometheus" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" +dependencies = [ + "cfg-if 1.0.0", + "fnv", + "lazy_static", + "memchr", + "parking_lot", + "protobuf", + "thiserror", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "protobuf" +version = "2.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + +[[package]] +name = "reed-solomon-erasure" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a415a013dd7c5d4221382329a5a3482566da675737494935cbbbcdec04662f9d" +dependencies = [ + "smallvec", +] + +[[package]] +name = "regex" +version = "1.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "reqwest" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +dependencies = [ + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.4.1", + "hyper-rustls", + "hyper-tls", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "system-configuration", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if 1.0.0", + "getrandom", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rkyv" +version = "0.7.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid 1.10.0", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rust_decimal" +version = "1.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1790d1c4c0ca81211399e0e0af16333276f375209e71a37b67698a373db5b47a" +dependencies = [ + "arrayvec", + "borsh", + "bytes", + "num-traits", + "rand", + "rkyv", + "serde", + "serde_json", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.37.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys 0.4.14", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.23.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +dependencies = [ + "log", + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pemfile" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +dependencies = [ + "base64 0.22.1", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" + +[[package]] +name = "rustls-webpki" +version = "0.102.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "schemars" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.72", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scroll" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda28d4b4830b807a8b43f7b0e6b5df875311b3e7621d84577188c175b6ec1ec" + +[[package]] +name = "scroll" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" +dependencies = [ + "scroll_derive", +] + +[[package]] +name = "scroll_derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "rand", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +dependencies = [ + "cc", +] + +[[package]] +name = "secret-service" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5204d39df37f06d1944935232fd2dfe05008def7ca599bf28c0800366c8a8f9" +dependencies = [ + "aes", + "cbc", + "futures-util", + "generic-array", + "hkdf", + "num", + "once_cell", + "rand", + "serde", + "sha2 0.10.8", + "zbus", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "serde" +version = "1.0.205" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33aedb1a7135da52b7c21791455563facbbcc43d0f0f66165b42c21b3dfb150" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.205" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692d6f5ac90220161d6774db30c662202721e64aed9058d2c394f451261420c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "serde_json" +version = "1.0.122" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "serde_spanned" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex 0.4.3", + "indexmap 1.9.3", + "indexmap 2.3.0", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "serde_yaml" +version = "0.9.34+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" +dependencies = [ + "indexmap 2.3.0", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", ] [[package]] name = "sha2" -version = "0.9.3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shell-escape" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f" + +[[package]] +name = "shell-words" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" + +[[package]] +name = "shellexpand" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b" +dependencies = [ + "dirs", +] + +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" +dependencies = [ + "libc", + "mio 0.8.11", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" + +[[package]] +name = "simdutf8" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slipped10" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a45443e66aa5d96db5e02d17db056e1ca970232a4fe73e1f9bc1816d68f4e98" +dependencies = [ + "ed25519-dalek", + "hmac 0.9.0", + "sha2 0.9.9", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "smart-default" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "133659a15339456eeeb07572eb02a91c91e9815e9cbc89566944d2c8d3efdbf6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "smart-default" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "smawk" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared", + "precomputed-hash", + "serde", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros 0.24.3", +] + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.72", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "symbolic-common" +version = "8.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f551f902d5642e58039aee6a9021a61037926af96e071816361644983966f540" +dependencies = [ + "debugid", + "memmap2", + "stable_deref_trait", + "uuid 0.8.2", +] + +[[package]] +name = "symbolic-debuginfo" +version = "8.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1165dabf9fc1d6bb6819c2c0e27c8dd0e3068d2c53cf186d319788e96517f0d6" +dependencies = [ + "bitvec", + "dmsort", + "elementtree", + "fallible-iterator", + "flate2", + "gimli 0.26.2", + "goblin", + "lazy_static", + "lazycell", + "nom", + "nom-supreme", + "parking_lot", + "pdb", + "regex", + "scroll 0.11.0", + "serde", + "serde_json", + "smallvec", + "symbolic-common", + "thiserror", + "wasmparser 0.83.0", + "zip 0.5.13", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" + +[[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 = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tempfile" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +dependencies = [ + "cfg-if 1.0.0", + "fastrand 2.1.0", + "once_cell", + "rustix 0.38.34", + "windows-sys 0.59.0", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "textwrap" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" +dependencies = [ + "smawk", + "unicode-linebreak", + "unicode-width", +] + +[[package]] +name = "thiserror" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if 1.0.0", + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.39.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio 1.0.1", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.7", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-retry" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +dependencies = [ + "pin-project", + "rand", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.20", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.3.0", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.3.0", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +dependencies = [ + "indexmap 2.3.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.18", +] + +[[package]] +name = "tonic" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.21.7", + "bytes", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.30", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-appender" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +dependencies = [ + "crossbeam-channel", + "thiserror", + "time", + "tracing-subscriber", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-error" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e" +dependencies = [ + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "tracing-indicatif" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "069580424efe11d97c3fef4197fa98c004fa26672cc71ad8770d224e23b1951d" +dependencies = [ + "indicatif", + "tracing", + "tracing-core", + "tracing-subscriber", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-opentelemetry" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9be14ba1bbe4ab79e9229f7f89fab8d120b865859f10527f31c033e599d2284" +dependencies = [ + "js-sys", + "once_cell", + "opentelemetry", + "opentelemetry_sdk", + "smallvec", + "tracing", + "tracing-core", + "tracing-log", + "tracing-subscriber", + "web-time", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset 0.9.1", + "tempfile", + "winapi", +] + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex 0.4.3", + "static_assertions", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + +[[package]] +name = "unicode-width" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" + +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "ureq" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72139d247e5f97a3eff96229a7ae85ead5328a39efe76f8bf5a06313d505b6ea" +dependencies = [ + "base64 0.22.1", + "flate2", + "log", + "once_cell", + "rustls", + "rustls-pki-types", + "url", + "webpki-roots", +] + +[[package]] +name = "uriparse" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0200d0fc04d809396c2ad43f3c95da3582a2556eba8d453c1087f4120ee352ff" +dependencies = [ + "fnv", + "lazy_static", +] + +[[package]] +name = "url" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" + +[[package]] +name = "uuid" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vt100" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84cd863bf0db7e392ba3bd04994be3473491b31e66340672af5d11943c6274de" +dependencies = [ + "itoa", + "log", + "unicode-width", + "vte", +] + +[[package]] +name = "vte" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197" +dependencies = [ + "arrayvec", + "utf8parse", + "vte_generate_state_changes", +] + +[[package]] +name = "vte_generate_state_changes" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e369bee1b05d510a7b4ed645f5faa90619e05437111783ea5848f28d97d3c2e" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "waker-fn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.72", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa827a14b29ab7f44778d14a88d3cb76e949c45083f7dbfa507d0cb699dc12de" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ - "block-buffer 0.9.0", "cfg-if 1.0.0", - "cpuid-bool", - "digest 0.9.0", - "opaque-debug 0.3.0", + "js-sys", + "wasm-bindgen", + "web-sys", ] [[package]] -name = "sha3" -version = "0.8.2" +name = "wasm-bindgen-macro" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd26bc0e7a2e3a7c959bc494caf58b72ee0c71d67704e9520f736ca7e4853ecf" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ - "block-buffer 0.7.3", - "byte-tools", - "digest 0.8.1", - "keccak", - "opaque-debug 0.2.3", + "quote", + "wasm-bindgen-macro-support", ] [[package]] -name = "syn" -version = "1.0.57" +name = "wasm-bindgen-macro-support" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4211ce9909eb971f111059df92c45640aad50a619cf55cd76476be803c4c68e6" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "unicode-xid", + "syn 2.0.72", + "wasm-bindgen-backend", + "wasm-bindgen-shared", ] [[package]] -name = "token-factory" -version = "1.0.0" -dependencies = [ - "near-contract-standards", - "near-sdk", -] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] -name = "toml" -version = "0.5.8" +name = "wasmparser" +version = "0.83.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" + +[[package]] +name = "wasmparser" +version = "0.211.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" +checksum = "3189cc8a91f547390e2f043ca3b3e3fe0892f7d581767fd4e4b7f3dc3fe8e561" dependencies = [ + "ahash 0.8.11", + "bitflags 2.6.0", + "hashbrown 0.14.5", + "indexmap 2.3.0", + "semver", "serde", ] [[package]] -name = "typenum" -version = "1.13.0" +name = "web-sys" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] [[package]] -name = "unicode-xid" -version = "0.2.0" +name = "web-time" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] [[package]] -name = "version_check" -version = "0.9.3" +name = "webpki-roots" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" +checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +dependencies = [ + "rustls-pki-types", +] [[package]] name = "wee_alloc" @@ -617,9 +5902,9 @@ dependencies = [ [[package]] name = "winapi" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", @@ -631,8 +5916,461 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +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.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +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.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +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.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +dependencies = [ + "cfg-if 1.0.0", + "windows-sys 0.48.0", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xattr" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" +dependencies = [ + "libc", + "linux-raw-sys 0.4.14", + "rustix 0.38.34", +] + +[[package]] +name = "xdg-home" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca91dcf8f93db085f3a0a29358cd0b9d670915468f4290e8b85d118a34211ab8" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "xml-rs" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "539a77ee7c0de333dcc6da69b177380a0b81e0dacfa4f7344c465a36871ee601" + +[[package]] +name = "zbus" +version = "3.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6" +dependencies = [ + "async-broadcast", + "async-executor", + "async-fs", + "async-io 1.13.0", + "async-lock 2.8.0", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "byteorder", + "derivative", + "enumflags2", + "event-listener 2.5.3", + "futures-core", + "futures-sink", + "futures-util", + "hex 0.4.3", + "nix", + "once_cell", + "ordered-stream", + "rand", + "serde", + "serde_repr", + "sha1", + "static_assertions", + "tracing", + "uds_windows", + "winapi", + "xdg-home", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "3.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "regex", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zeropool-bn" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e61de68ede9ffdd69c01664f65a178c5188b73f78faa21f0936016a888ff7c" +dependencies = [ + "byteorder", + "crunchy", + "lazy_static", + "rand", + "rustc-hex", +] + +[[package]] +name = "zip" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93ab48844d61251bb3835145c521d88aa4031d7139e8485990f60ca911fa0815" +dependencies = [ + "byteorder", + "crc32fast", + "flate2", + "thiserror", +] + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "aes", + "byteorder", + "bzip2", + "constant_time_eq", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac 0.12.1", + "pbkdf2", + "sha1", + "time", + "zstd 0.11.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe 5.0.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" +dependencies = [ + "zstd-safe 7.2.1", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-safe" +version = "7.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.13+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "zvariant" +version = "3.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db" +dependencies = [ + "byteorder", + "enumflags2", + "libc", + "serde", + "static_assertions", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "3.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] diff --git a/contracts/factory/Cargo.toml b/contracts/factory/Cargo.toml index 85af9eb..3bc2fae 100644 --- a/contracts/factory/Cargo.toml +++ b/contracts/factory/Cargo.toml @@ -1,15 +1,39 @@ [package] -name = "token-factory" -version = "1.0.0" -authors = ["Near Inc "] -edition = "2018" +name = "factory" +description = "cargo-near-new-project-description" +version = "0.1.0" +edition = "2021" +# TODO: Fill out the repository field to help NEAR ecosystem tools to discover your project. +# NEP-0330 is automatically implemented for all contracts built with https://github.com/near/cargo-near. +# Link to the repository will be available via `contract_source_metadata` view-function. +repository = "https://github.com/near-examples/token-factory" [lib] crate-type = ["cdylib", "rlib"] +# fields to configure build with WASM reproducibility, according to specs +# in https://github.com/near/NEPs/blob/master/neps/nep-0330.md +[package.metadata.near.reproducible_build] +# docker image, descriptor of build environment +image = "sourcescan/cargo-near:git-e3c8adb4b5542cbfc159bb1534f2b94c900c1648-1.80.0" +# tag after colon above serves only descriptive purpose; image is identified by digest +image_digest = "sha256:4bbcdf985936e1cb9b71c627a00cb9b53546ac0c9ef6b175da2918c1dea21363" +# build command inside of docker container +# if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags, +# the command may be any combination of flags of `cargo-near`, +# supported by respective version of binary inside the container besides `--no-locked` flag +container_build_command = ["cargo", "near", "build"] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -near-sdk = "3.1.0" -near-contract-standards = "3.1.0" +near-sdk = "5.2.1" +near-contract-standards = "5.2.1" + +[dev-dependencies] +near-sdk = { version = "5.2.1", features = ["unit-testing"] } +near-workspaces = { version = "0.11.0", features = ["unstable"] } +tokio = { version = "1.12.0", features = ["full"] } +serde_json = "1" [profile.release] codegen-units = 1 @@ -20,6 +44,3 @@ debug = false panic = "abort" # Opt into extra safety checks on arithmetic operations https://stackoverflow.com/a/64136471/249801 overflow-checks = true - -[workspace] -members = [] diff --git a/contracts/factory/README.md b/contracts/factory/README.md index 8662b48..cd770cb 100644 --- a/contracts/factory/README.md +++ b/contracts/factory/README.md @@ -1,17 +1,37 @@ -# Meta NEAR chat +# factory -Smart contract to establish WebRTC connection between 2 users. +cargo-near-new-project-description -## Building +## How to Build Locally? + +Install [`cargo-near`](https://github.com/near/cargo-near) and run: ```bash -./build.sh +cargo near build ``` -## Testing +## How to Test Locally? + +```bash +cargo test +``` -To test run: +## How to Deploy? + +Deployment is automated with GitHub Actions CI/CD pipeline. +To deploy manually, install [`cargo-near`](https://github.com/near/cargo-near) and run: ```bash -cargo test --package webrtc-chat -- --nocapture +cargo near deploy ``` + +## Useful Links + +- [cargo-near](https://github.com/near/cargo-near) - NEAR smart contract development toolkit for Rust +- [near CLI](https://near.cli.rs) - Interact with NEAR blockchain from command line +- [NEAR Rust SDK Documentation](https://docs.near.org/sdk/rust/introduction) +- [NEAR Documentation](https://docs.near.org) +- [NEAR StackOverflow](https://stackoverflow.com/questions/tagged/nearprotocol) +- [NEAR Discord](https://near.chat) +- [NEAR Telegram Developers Community Group](https://t.me/neardev) +- NEAR DevHub: [Telegram](https://t.me/neardevhub), [Twitter](https://twitter.com/neardevhub) diff --git a/contracts/factory/build.sh b/contracts/factory/build.sh deleted file mode 100755 index b540669..0000000 --- a/contracts/factory/build.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -set -e - -RUSTFLAGS='-C link-arg=-s' cargo build --target wasm32-unknown-unknown --release -cp target/wasm32-unknown-unknown/release/token_factory.wasm ./res/ - diff --git a/contracts/factory/res/token_factory.wasm b/contracts/factory/res/token_factory.wasm deleted file mode 100755 index c02ef5b9b0950cca7bf2a169ba4608765526f259..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408105 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 z 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

eIEIC(`kBd#mekTw>G|}VMolWHeg0; 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%0AfUiE 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%0D_B?G% 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 diff --git a/contracts/factory/src/lib.rs b/contracts/factory/src/lib.rs index 68d7977..23a3ec6 100644 --- a/contracts/factory/src/lib.rs +++ b/contracts/factory/src/lib.rs @@ -1,127 +1,111 @@ -use near_contract_standards::fungible_token::metadata::FungibleTokenMetadata; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; -use near_sdk::collections::{LookupMap, UnorderedMap}; -use near_sdk::env::STORAGE_PRICE_PER_BYTE; -use near_sdk::json_types::{ValidAccountId, U128}; -use near_sdk::serde::{Deserialize, Serialize}; -use near_sdk::serde_json; +// Find all our documentation at https://docs.near.org +use near_contract_standards::{ + fungible_token::metadata::FungibleTokenMetadata, non_fungible_token::TokenId, +}; use near_sdk::{ - env, near_bindgen, AccountId, Balance, BorshStorageKey, Gas, PanicOnDefault, Promise, + env, near, serde_json, + store::{IterableMap, LookupMap}, + AccountId, BorshStorageKey, Gas, NearToken, PanicOnDefault, Promise, }; -near_sdk::setup_alloc!(); - const FT_WASM_CODE: &[u8] = include_bytes!("../../token/res/fungible_token.wasm"); - const EXTRA_BYTES: usize = 10000; -const GAS: Gas = 50_000_000_000_000; -type TokenId = String; -pub fn is_valid_token_id(token_id: &TokenId) -> bool { - for c in token_id.as_bytes() { - match c { - b'0'..=b'9' | b'a'..=b'z' => (), - _ => return false, - } - } - true +#[near(contract_state)] +#[derive(PanicOnDefault)] +pub struct Contract { + pub tokens: IterableMap, + pub storage_deposits: LookupMap, + pub storage_balance_cost: NearToken, } -#[derive(BorshSerialize, BorshStorageKey)] +#[near(serializers = [borsh, json])] +#[derive(Clone)] +pub struct TokenArgs { + owner_id: AccountId, + total_supply: u128, + metadata: FungibleTokenMetadata, +} + +#[derive(BorshStorageKey)] +#[near] enum StorageKey { Tokens, StorageDeposits, } -#[near_bindgen] -#[derive(BorshDeserialize, BorshSerialize, PanicOnDefault)] -pub struct TokenFactory { - pub tokens: UnorderedMap, - pub storage_deposits: LookupMap, - pub storage_balance_cost: Balance, -} - -#[derive(Serialize, Deserialize, BorshDeserialize, BorshSerialize)] -#[serde(crate = "near_sdk::serde")] -pub struct TokenArgs { - owner_id: ValidAccountId, - total_supply: U128, - metadata: FungibleTokenMetadata, -} - -#[near_bindgen] -impl TokenFactory { +#[near] +impl Contract { #[init] pub fn new() -> Self { let mut storage_deposits = LookupMap::new(StorageKey::StorageDeposits); let initial_storage_usage = env::storage_usage(); - let tmp_account_id = "a".repeat(64); - storage_deposits.insert(&tmp_account_id, &0); - let storage_balance_cost = - Balance::from(env::storage_usage() - initial_storage_usage) * STORAGE_PRICE_PER_BYTE; + let tmp_account_id: AccountId = "a".repeat(64).parse().unwrap(); + + storage_deposits.insert(tmp_account_id.to_owned(), NearToken::from_near(0)); + + let storage_balance_cost = env::storage_byte_cost() + .saturating_mul(u128::from(env::storage_usage() - initial_storage_usage)); + storage_deposits.remove(&tmp_account_id); Self { - tokens: UnorderedMap::new(StorageKey::Tokens), + tokens: IterableMap::new(StorageKey::Tokens), storage_deposits, storage_balance_cost, } } - fn get_min_attached_balance(&self, args: &TokenArgs) -> u128 { - ((FT_WASM_CODE.len() + EXTRA_BYTES + args.try_to_vec().unwrap().len() * 2) as Balance - * STORAGE_PRICE_PER_BYTE) - .into() + fn get_min_attached_balance(&self, args: &TokenArgs) -> NearToken { + env::storage_byte_cost() + .saturating_mul((FT_WASM_CODE.len() + EXTRA_BYTES + vec![args].len() * 2) as u128) } - pub fn get_required_deposit(&self, args: TokenArgs, account_id: ValidAccountId) -> U128 { + pub fn get_required_deposit(&self, args: TokenArgs, account_id: AccountId) -> NearToken { let args_deposit = self.get_min_attached_balance(&args); - if let Some(previous_balance) = self.storage_deposits.get(account_id.as_ref()) { - args_deposit.saturating_sub(previous_balance).into() + + if let Some(previous_balance) = self.storage_deposits.get(&account_id) { + args_deposit.saturating_sub(previous_balance.clone()).into() } else { - (self.storage_balance_cost + args_deposit).into() + self.storage_balance_cost.saturating_add(args_deposit) } } + pub fn get_number_of_tokens(&self) -> u32 { + self.tokens.len() + } + #[payable] pub fn storage_deposit(&mut self) { let account_id = env::predecessor_account_id(); let deposit = env::attached_deposit(); if let Some(previous_balance) = self.storage_deposits.get(&account_id) { self.storage_deposits - .insert(&account_id, &(previous_balance + deposit)); + .insert(account_id, previous_balance.saturating_add(deposit)); } else { assert!(deposit >= self.storage_balance_cost, "Deposit is too low"); - self.storage_deposits - .insert(&account_id, &(deposit - self.storage_balance_cost)); + self.storage_deposits.insert( + account_id, + deposit.saturating_sub(self.storage_balance_cost), + ); } } - pub fn get_number_of_tokens(&self) -> u64 { - self.tokens.len() - } - - pub fn get_tokens(&self, from_index: u64, limit: u64) -> Vec { - let tokens = self.tokens.values_as_vector(); - (from_index..std::cmp::min(from_index + limit, tokens.len())) - .filter_map(|index| tokens.get(index)) - .collect() - } - - pub fn get_token(&self, token_id: TokenId) -> Option { - self.tokens.get(&token_id) - } - #[payable] pub fn create_token(&mut self, args: TokenArgs) -> Promise { - if env::attached_deposit() > 0 { + if env::attached_deposit() > NearToken::from_near(0) { self.storage_deposit(); } + args.metadata.assert_valid(); + let token_id = args.metadata.symbol.to_ascii_lowercase(); assert!(is_valid_token_id(&token_id), "Invalid Symbol"); - let token_account_id = format!("{}.{}", token_id, env::current_account_id()); + + let token_account_id: AccountId = format!("{}.{}", token_id, env::current_account_id()) + .parse() + .unwrap(); assert!( env::is_valid_account_id(token_account_id.as_bytes()), "Token Account ID is invalid" @@ -130,28 +114,68 @@ impl TokenFactory { let account_id = env::predecessor_account_id(); let required_balance = self.get_min_attached_balance(&args); - let user_balance = self.storage_deposits.get(&account_id).unwrap_or(0); + let user_balance = self.storage_deposits.get(&account_id).unwrap(); + assert!( - user_balance >= required_balance, + user_balance >= &required_balance, "Not enough required balance" ); self.storage_deposits - .insert(&account_id, &(user_balance - required_balance)); + .insert(account_id, user_balance.saturating_sub(required_balance)); let initial_storage_usage = env::storage_usage(); assert!( - self.tokens.insert(&token_id, &args).is_none(), + self.tokens.insert(token_id, args.clone()).is_none(), "Token ID is already taken" ); - let storage_balance_used = - Balance::from(env::storage_usage() - initial_storage_usage) * STORAGE_PRICE_PER_BYTE; + let storage_balance_used = env::storage_byte_cost() + .saturating_mul((env::storage_usage() - initial_storage_usage).into()); Promise::new(token_account_id) .create_account() - .transfer(required_balance - storage_balance_used) + .transfer(required_balance.saturating_sub(storage_balance_used)) + .add_full_access_key(env::signer_account_pk()) .deploy_contract(FT_WASM_CODE.to_vec()) - .function_call(b"new".to_vec(), serde_json::to_vec(&args).unwrap(), 0, GAS) + .function_call( + "new".to_owned(), + serde_json::to_vec(&args).unwrap(), + NearToken::from_near(0), + Gas::from_tgas(50), + ) } } + +pub fn is_valid_token_id(token_id: &TokenId) -> bool { + for c in token_id.as_bytes() { + match c { + b'0'..=b'9' | b'a'..=b'z' => (), + _ => return false, + } + } + true +} + +/* + * The rest of this file holds the inline tests for the code above + * Learn more about Rust tests: https://doc.rust-lang.org/book/ch11-01-writing-tests.html + */ +#[cfg(test)] +mod tests { + // use super::*; + + // #[test] + // fn get_default_greeting() { + // let contract = Contract::default(); + // // this test did not call set_greeting so should return the default "Hello" greeting + // assert_eq!(contract.get_greeting(), "Hello"); + // } + + // #[test] + // fn set_then_get_greeting() { + // let mut contract = Contract::default(); + // contract.set_greeting("howdy".to_string()); + // assert_eq!(contract.get_greeting(), "howdy"); + // } +} From 4f822e39d8b20ef9b661ac5022164082294fc16d Mon Sep 17 00:00:00 2001 From: Lyudmil Ivanov <55487633+flmel@users.noreply.github.com> Date: Fri, 9 Aug 2024 11:20:39 +0300 Subject: [PATCH 2/3] wip --- .../.github/workflows/deploy-production.yml | 27 ++++++++++ .../.github/workflows/deploy-staging.yml | 52 +++++++++++++++++++ contracts/factory/.github/workflows/test.yml | 32 ++++++++++++ .../.github/workflows/undeploy-staging.yml | 25 +++++++++ contracts/factory/.gitignore | 1 + contracts/factory/rust-toolchain.toml | 4 ++ contracts/factory/tests/test_basics.rs | 26 ++++++++++ 7 files changed, 167 insertions(+) create mode 100644 contracts/factory/.github/workflows/deploy-production.yml create mode 100644 contracts/factory/.github/workflows/deploy-staging.yml create mode 100644 contracts/factory/.github/workflows/test.yml create mode 100644 contracts/factory/.github/workflows/undeploy-staging.yml create mode 100644 contracts/factory/.gitignore create mode 100644 contracts/factory/rust-toolchain.toml create mode 100644 contracts/factory/tests/test_basics.rs diff --git a/contracts/factory/.github/workflows/deploy-production.yml b/contracts/factory/.github/workflows/deploy-production.yml new file mode 100644 index 0000000..f79ba71 --- /dev/null +++ b/contracts/factory/.github/workflows/deploy-production.yml @@ -0,0 +1,27 @@ +name: Deploy to production +on: + push: + branches: [main] + +jobs: + test: + uses: ./.github/workflows/test.yml + + deploy-staging: + name: Deploy to production + needs: [test] + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Install cargo-near CLI + run: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/download/cargo-near-v0.6.2/cargo-near-installer.sh | sh + - name: Deploy to production + run: | + cargo near deploy "${{ vars.NEAR_CONTRACT_PRODUCTION_ACCOUNT_ID }}" \ + without-init-call \ + network-config "${{ vars.NEAR_CONTRACT_PRODUCTION_NETWORK }}" \ + sign-with-plaintext-private-key \ + --signer-public-key "${{ vars.NEAR_CONTRACT_PRODUCTION_ACCOUNT_PUBLIC_KEY }}" \ + --signer-private-key "${{ secrets.NEAR_CONTRACT_PRODUCTION_ACCOUNT_PRIVATE_KEY }}" \ + send diff --git a/contracts/factory/.github/workflows/deploy-staging.yml b/contracts/factory/.github/workflows/deploy-staging.yml new file mode 100644 index 0000000..5ddc783 --- /dev/null +++ b/contracts/factory/.github/workflows/deploy-staging.yml @@ -0,0 +1,52 @@ +name: Deploy to staging +on: + pull_request: + +jobs: + test: + uses: ./.github/workflows/test.yml + + deploy-staging: + name: Deploy to staging subaccount + permissions: + pull-requests: write + needs: [test] + runs-on: ubuntu-latest + env: + NEAR_CONTRACT_PR_STAGING_ACCOUNT_ID: gh-${{ github.event.number }}.${{ vars.NEAR_CONTRACT_STAGING_ACCOUNT_ID }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install near CLI + run: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/near-cli-rs/releases/download/v0.11.1/near-cli-rs-installer.sh | sh + - name: Create staging account + if: github.event.action == 'opened' || github.event.action == 'reopened' + run: | + near account create-account fund-myself "${{ env.NEAR_CONTRACT_PR_STAGING_ACCOUNT_ID }}" '10 NEAR' \ + use-manually-provided-public-key "${{ vars.NEAR_CONTRACT_STAGING_ACCOUNT_PUBLIC_KEY }}" \ + sign-as "${{ vars.NEAR_CONTRACT_STAGING_ACCOUNT_ID }}" \ + network-config "${{ vars.NEAR_CONTRACT_STAGING_NETWORK }}" \ + sign-with-plaintext-private-key \ + --signer-public-key "${{ vars.NEAR_CONTRACT_STAGING_ACCOUNT_PUBLIC_KEY }}" \ + --signer-private-key "${{ secrets.NEAR_CONTRACT_STAGING_ACCOUNT_PRIVATE_KEY }}" \ + send + + - name: Install cargo-near CLI + run: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/download/cargo-near-v0.6.2/cargo-near-installer.sh | sh + - name: Deploy to staging + run: | + cargo near deploy "${{ env.NEAR_CONTRACT_PR_STAGING_ACCOUNT_ID }}" \ + without-init-call \ + network-config "${{ vars.NEAR_CONTRACT_STAGING_NETWORK }}" \ + sign-with-plaintext-private-key \ + --signer-public-key "${{ vars.NEAR_CONTRACT_STAGING_ACCOUNT_PUBLIC_KEY }}" \ + --signer-private-key "${{ secrets.NEAR_CONTRACT_STAGING_ACCOUNT_PRIVATE_KEY }}" \ + send + + - name: Comment on pull request + env: + GH_TOKEN: ${{ github.token }} + run: | + gh pr comment "${{ github.event.number }}" --body "Staging contract is deployed to ["'`'"${{ env.NEAR_CONTRACT_PR_STAGING_ACCOUNT_ID }}"'`'" account](https://explorer.${{ vars.NEAR_CONTRACT_STAGING_NETWORK }}.near.org/accounts/${{ env.NEAR_CONTRACT_PR_STAGING_ACCOUNT_ID }})" diff --git a/contracts/factory/.github/workflows/test.yml b/contracts/factory/.github/workflows/test.yml new file mode 100644 index 0000000..7f847af --- /dev/null +++ b/contracts/factory/.github/workflows/test.yml @@ -0,0 +1,32 @@ +name: Test +on: + workflow_call: + +jobs: + code-formatting: + name: Code Formatting + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - run: cargo fmt --check + + code-linter: + name: Code Linter + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Run cargo clippy + run: | + rustup component add clippy + cargo clippy --all-features --workspace --tests -- --warn clippy::all --warn clippy::nursery + + tests: + name: Tests + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Run cargo test + run: cargo test diff --git a/contracts/factory/.github/workflows/undeploy-staging.yml b/contracts/factory/.github/workflows/undeploy-staging.yml new file mode 100644 index 0000000..f7d3186 --- /dev/null +++ b/contracts/factory/.github/workflows/undeploy-staging.yml @@ -0,0 +1,25 @@ +name: Undeploy staging +on: + pull_request: + types: [closed] + +jobs: + cleanup-staging: + name: Cleanup staging account + runs-on: ubuntu-latest + env: + NEAR_CONTRACT_PR_STAGING_ACCOUNT_ID: gh-${{ github.event.number }}.${{ vars.NEAR_CONTRACT_STAGING_ACCOUNT_ID }} + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Install near CLI + run: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/near-cli-rs/releases/download/v0.11.1/near-cli-rs-installer.sh | sh + - name: Remove staging account + run: | + near account delete-account "${{ env.NEAR_CONTRACT_PR_STAGING_ACCOUNT_ID }}" \ + beneficiary "${{ vars.NEAR_CONTRACT_STAGING_ACCOUNT_ID }}" \ + network-config "${{ vars.NEAR_CONTRACT_STAGING_NETWORK }}" \ + sign-with-plaintext-private-key \ + --signer-public-key "${{ vars.NEAR_CONTRACT_STAGING_ACCOUNT_PUBLIC_KEY }}" \ + --signer-private-key "${{ secrets.NEAR_CONTRACT_STAGING_ACCOUNT_PRIVATE_KEY }}" \ + send diff --git a/contracts/factory/.gitignore b/contracts/factory/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/contracts/factory/.gitignore @@ -0,0 +1 @@ +/target diff --git a/contracts/factory/rust-toolchain.toml b/contracts/factory/rust-toolchain.toml new file mode 100644 index 0000000..a82ade3 --- /dev/null +++ b/contracts/factory/rust-toolchain.toml @@ -0,0 +1,4 @@ +[toolchain] +channel = "stable" +components = ["rustfmt"] +targets = ["wasm32-unknown-unknown"] diff --git a/contracts/factory/tests/test_basics.rs b/contracts/factory/tests/test_basics.rs new file mode 100644 index 0000000..d6eabee --- /dev/null +++ b/contracts/factory/tests/test_basics.rs @@ -0,0 +1,26 @@ +use serde_json::json; + +#[tokio::test] +async fn test_contract_is_operational() -> Result<(), Box> { + let sandbox = near_workspaces::sandbox().await?; + let contract_wasm = near_workspaces::compile_project("./").await?; + + let contract = sandbox.dev_deploy(&contract_wasm).await?; + + let user_account = sandbox.dev_create_account().await?; + + let outcome = user_account + .call(contract.id(), "set_greeting") + .args_json(json!({"greeting": "Hello World!"})) + .transact() + .await?; + assert!(outcome.is_success()); + + let user_message_outcome = contract + .view("get_greeting") + .args_json(json!({})) + .await?; + assert_eq!(user_message_outcome.json::()?, "Hello World!"); + + Ok(()) +} From af55d98c60fe43483503a0c9d3634083cc64f241 Mon Sep 17 00:00:00 2001 From: Lyudmil Ivanov <55487633+flmel@users.noreply.github.com> Date: Fri, 9 Aug 2024 14:36:12 +0300 Subject: [PATCH 3/3] wip --- .../.github/workflows/deploy-production.yml | 27 ---------- .../.github/workflows/deploy-staging.yml | 52 ------------------- contracts/factory/.github/workflows/test.yml | 32 ------------ .../.github/workflows/undeploy-staging.yml | 25 --------- contracts/factory/src/lib.rs | 6 +-- 5 files changed, 2 insertions(+), 140 deletions(-) delete mode 100644 contracts/factory/.github/workflows/deploy-production.yml delete mode 100644 contracts/factory/.github/workflows/deploy-staging.yml delete mode 100644 contracts/factory/.github/workflows/test.yml delete mode 100644 contracts/factory/.github/workflows/undeploy-staging.yml diff --git a/contracts/factory/.github/workflows/deploy-production.yml b/contracts/factory/.github/workflows/deploy-production.yml deleted file mode 100644 index f79ba71..0000000 --- a/contracts/factory/.github/workflows/deploy-production.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Deploy to production -on: - push: - branches: [main] - -jobs: - test: - uses: ./.github/workflows/test.yml - - deploy-staging: - name: Deploy to production - needs: [test] - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: Install cargo-near CLI - run: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/download/cargo-near-v0.6.2/cargo-near-installer.sh | sh - - name: Deploy to production - run: | - cargo near deploy "${{ vars.NEAR_CONTRACT_PRODUCTION_ACCOUNT_ID }}" \ - without-init-call \ - network-config "${{ vars.NEAR_CONTRACT_PRODUCTION_NETWORK }}" \ - sign-with-plaintext-private-key \ - --signer-public-key "${{ vars.NEAR_CONTRACT_PRODUCTION_ACCOUNT_PUBLIC_KEY }}" \ - --signer-private-key "${{ secrets.NEAR_CONTRACT_PRODUCTION_ACCOUNT_PRIVATE_KEY }}" \ - send diff --git a/contracts/factory/.github/workflows/deploy-staging.yml b/contracts/factory/.github/workflows/deploy-staging.yml deleted file mode 100644 index 5ddc783..0000000 --- a/contracts/factory/.github/workflows/deploy-staging.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: Deploy to staging -on: - pull_request: - -jobs: - test: - uses: ./.github/workflows/test.yml - - deploy-staging: - name: Deploy to staging subaccount - permissions: - pull-requests: write - needs: [test] - runs-on: ubuntu-latest - env: - NEAR_CONTRACT_PR_STAGING_ACCOUNT_ID: gh-${{ github.event.number }}.${{ vars.NEAR_CONTRACT_STAGING_ACCOUNT_ID }} - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Install near CLI - run: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/near-cli-rs/releases/download/v0.11.1/near-cli-rs-installer.sh | sh - - name: Create staging account - if: github.event.action == 'opened' || github.event.action == 'reopened' - run: | - near account create-account fund-myself "${{ env.NEAR_CONTRACT_PR_STAGING_ACCOUNT_ID }}" '10 NEAR' \ - use-manually-provided-public-key "${{ vars.NEAR_CONTRACT_STAGING_ACCOUNT_PUBLIC_KEY }}" \ - sign-as "${{ vars.NEAR_CONTRACT_STAGING_ACCOUNT_ID }}" \ - network-config "${{ vars.NEAR_CONTRACT_STAGING_NETWORK }}" \ - sign-with-plaintext-private-key \ - --signer-public-key "${{ vars.NEAR_CONTRACT_STAGING_ACCOUNT_PUBLIC_KEY }}" \ - --signer-private-key "${{ secrets.NEAR_CONTRACT_STAGING_ACCOUNT_PRIVATE_KEY }}" \ - send - - - name: Install cargo-near CLI - run: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/download/cargo-near-v0.6.2/cargo-near-installer.sh | sh - - name: Deploy to staging - run: | - cargo near deploy "${{ env.NEAR_CONTRACT_PR_STAGING_ACCOUNT_ID }}" \ - without-init-call \ - network-config "${{ vars.NEAR_CONTRACT_STAGING_NETWORK }}" \ - sign-with-plaintext-private-key \ - --signer-public-key "${{ vars.NEAR_CONTRACT_STAGING_ACCOUNT_PUBLIC_KEY }}" \ - --signer-private-key "${{ secrets.NEAR_CONTRACT_STAGING_ACCOUNT_PRIVATE_KEY }}" \ - send - - - name: Comment on pull request - env: - GH_TOKEN: ${{ github.token }} - run: | - gh pr comment "${{ github.event.number }}" --body "Staging contract is deployed to ["'`'"${{ env.NEAR_CONTRACT_PR_STAGING_ACCOUNT_ID }}"'`'" account](https://explorer.${{ vars.NEAR_CONTRACT_STAGING_NETWORK }}.near.org/accounts/${{ env.NEAR_CONTRACT_PR_STAGING_ACCOUNT_ID }})" diff --git a/contracts/factory/.github/workflows/test.yml b/contracts/factory/.github/workflows/test.yml deleted file mode 100644 index 7f847af..0000000 --- a/contracts/factory/.github/workflows/test.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Test -on: - workflow_call: - -jobs: - code-formatting: - name: Code Formatting - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - run: cargo fmt --check - - code-linter: - name: Code Linter - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: Run cargo clippy - run: | - rustup component add clippy - cargo clippy --all-features --workspace --tests -- --warn clippy::all --warn clippy::nursery - - tests: - name: Tests - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: Run cargo test - run: cargo test diff --git a/contracts/factory/.github/workflows/undeploy-staging.yml b/contracts/factory/.github/workflows/undeploy-staging.yml deleted file mode 100644 index f7d3186..0000000 --- a/contracts/factory/.github/workflows/undeploy-staging.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Undeploy staging -on: - pull_request: - types: [closed] - -jobs: - cleanup-staging: - name: Cleanup staging account - runs-on: ubuntu-latest - env: - NEAR_CONTRACT_PR_STAGING_ACCOUNT_ID: gh-${{ github.event.number }}.${{ vars.NEAR_CONTRACT_STAGING_ACCOUNT_ID }} - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: Install near CLI - run: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/near-cli-rs/releases/download/v0.11.1/near-cli-rs-installer.sh | sh - - name: Remove staging account - run: | - near account delete-account "${{ env.NEAR_CONTRACT_PR_STAGING_ACCOUNT_ID }}" \ - beneficiary "${{ vars.NEAR_CONTRACT_STAGING_ACCOUNT_ID }}" \ - network-config "${{ vars.NEAR_CONTRACT_STAGING_NETWORK }}" \ - sign-with-plaintext-private-key \ - --signer-public-key "${{ vars.NEAR_CONTRACT_STAGING_ACCOUNT_PUBLIC_KEY }}" \ - --signer-private-key "${{ secrets.NEAR_CONTRACT_STAGING_ACCOUNT_PRIVATE_KEY }}" \ - send diff --git a/contracts/factory/src/lib.rs b/contracts/factory/src/lib.rs index 23a3ec6..5c8ce46 100644 --- a/contracts/factory/src/lib.rs +++ b/contracts/factory/src/lib.rs @@ -3,9 +3,7 @@ use near_contract_standards::{ fungible_token::metadata::FungibleTokenMetadata, non_fungible_token::TokenId, }; use near_sdk::{ - env, near, serde_json, - store::{IterableMap, LookupMap}, - AccountId, BorshStorageKey, Gas, NearToken, PanicOnDefault, Promise, + env, json_types::U128, near, serde_json, store::{IterableMap, LookupMap}, AccountId, BorshStorageKey, Gas, NearToken, PanicOnDefault, Promise }; const FT_WASM_CODE: &[u8] = include_bytes!("../../token/res/fungible_token.wasm"); @@ -23,7 +21,7 @@ pub struct Contract { #[derive(Clone)] pub struct TokenArgs { owner_id: AccountId, - total_supply: u128, + total_supply: U128, metadata: FungibleTokenMetadata, }