From 7fc9fc3c10d7204a8e0f6b595533d9ad180dfab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijan=20Petri=C4=8Devi=C4=87?= Date: Tue, 20 Aug 2024 14:51:11 +0200 Subject: [PATCH] initial commit --- .github/workflows/check.yml | 34 + .github/workflows/pre-check.yml | 11 + .gitignore | 6 + Cargo.lock | 2613 +++++++++++++++++ Cargo.toml | 31 + bin/cctld.rs | 48 + flake.lock | 627 ++++ flake.nix | 146 + nixos/default.nix | 26 + nixos/modules/cctl.nix | 158 + nixos/tests/verify-cctl-service.nix | 46 + src/cctl.rs | 401 +++ src/cctl/parsers.rs | 228 ++ src/lib.rs | 1 + test-resources/demo-contract-optimized.wasm | Bin 0 -> 894570 bytes ...st_cctl_deploys_a_contract_successfully.rs | 40 + ...test_cctl_network_starts_and_terminates.rs | 31 + 17 files changed, 4447 insertions(+) create mode 100644 .github/workflows/check.yml create mode 100644 .github/workflows/pre-check.yml create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 bin/cctld.rs create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 nixos/default.nix create mode 100644 nixos/modules/cctl.nix create mode 100644 nixos/tests/verify-cctl-service.nix create mode 100644 src/cctl.rs create mode 100644 src/cctl/parsers.rs create mode 100644 src/lib.rs create mode 100644 test-resources/demo-contract-optimized.wasm create mode 100644 tests/test_cctl_deploys_a_contract_successfully.rs create mode 100644 tests/test_cctl_network_starts_and_terminates.rs diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml new file mode 100644 index 0000000..0159c46 --- /dev/null +++ b/.github/workflows/check.yml @@ -0,0 +1,34 @@ +name: check +on: + pull_request: + branches: [main] + push: + branches: [main] + +jobs: + check: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [macos-latest, macos-14] + steps: + - uses: actions/checkout@main + - uses: DeterminateSystems/nix-installer-action@main + - uses: cachix/cachix-action@master + with: + name: cspr + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + + - name: System Info + run: | + uname -a + nix --version + + - name: cctl-rs (x86_64-darwin) + if: matrix.os == 'macos-latest' + run: nix build -L --no-link --show-trace .#packages.x86_64-darwin.cctld + + - name: cctl-rs (aarch64-darwin) + if: matrix.os == 'macos-14' + run: nix build -L --no-link --show-trace .#packages.aarch64-darwin.cctld diff --git a/.github/workflows/pre-check.yml b/.github/workflows/pre-check.yml new file mode 100644 index 0000000..1b77ecb --- /dev/null +++ b/.github/workflows/pre-check.yml @@ -0,0 +1,11 @@ +name: pre-check +on: + pull_request: + branches: [main] + +jobs: + check-signed-commits: + runs-on: ubuntu-latest + steps: + - name: check signed commits + uses: 1Password/check-signed-commits-action@v1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3735805 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +result +.direnv +.envrc +target +.tmp +.nixos-test-history diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..7b1cb4e --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,2613 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "anstream" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" + +[[package]] +name = "anstyle-parse" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + +[[package]] +name = "async-trait" +version = "0.1.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.75", +] + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "backoff" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +dependencies = [ + "futures-core", + "getrandom", + "instant", + "pin-project-lite", + "rand 0.8.5", + "tokio", +] + +[[package]] +name = "backtrace" +version = "0.3.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base16" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d27c3610c36aee21ce8ac510e6224498de4228ad772a171ed65643a24693a5a8" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bitvec" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98fcd36dda4e17b7d7abc64cb549bf0201f4ab71e00700c798ca7e62ed3761fa" +dependencies = [ + "funty", + "radium", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174" +dependencies = [ + "crypto-mac 0.8.0", + "digest", + "opaque-debug", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[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 = "casper-client" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7aee479ac95ca2100bef1654621fcaac122af56d7bac8bdb1f0384e088c9914" +dependencies = [ + "async-trait", + "base16", + "base64 0.13.1", + "casper-hashing", + "casper-types", + "clap", + "clap_complete", + "derp", + "ed25519-dalek", + "getrandom", + "hex-buffer-serde 0.4.0", + "humantime", + "itertools", + "jsonrpc-lite", + "k256", + "num-traits", + "once_cell", + "pem 1.1.1", + "rand 0.8.5", + "reqwest", + "schemars", + "serde", + "serde_json", + "signature", + "tempfile", + "thiserror", + "tokio", + "uint", + "untrusted 0.9.0", + "vergen", +] + +[[package]] +name = "casper-hashing" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9cafc15f22892b417888b9eafc63a07e8233c5c51ffb15e420b1e2fe7ea9293" +dependencies = [ + "base16", + "blake2", + "casper-types", + "datasize", + "hex", + "hex-buffer-serde 0.3.0", + "hex_fmt", + "itertools", + "once_cell", + "schemars", + "serde", + "thiserror", +] + +[[package]] +name = "casper-types" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d65faf6ea346ce733206a51822cb4da2a76cee29308b0ee4c1f3cba756bdee5" +dependencies = [ + "base16", + "base64 0.13.1", + "bitflags 1.3.2", + "blake2", + "datasize", + "derp", + "ed25519-dalek", + "getrandom", + "hex", + "hex_fmt", + "humantime", + "k256", + "num", + "num-derive", + "num-integer", + "num-rational", + "num-traits", + "once_cell", + "pem 0.8.3", + "rand 0.8.5", + "serde", + "serde_bytes", + "serde_json", + "thiserror", + "uint", + "untrusted 0.7.1", +] + +[[package]] +name = "cc" +version = "1.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48" +dependencies = [ + "jobserver", + "libc", + "shlex", +] + +[[package]] +name = "cctl-rs" +version = "0.1.0" +dependencies = [ + "anyhow", + "backoff", + "casper-client", + "casper-types", + "clap", + "hex", + "nom", + "sd-notify", + "tempfile", + "tokio", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clap" +version = "4.5.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", + "terminal_size", +] + +[[package]] +name = "clap_complete" +version = "4.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee158892bd7ce77aa15c208abbdb73e155d191c287a659b57abd5adb92feb03" +dependencies = [ + "clap", +] + +[[package]] +name = "clap_derive" +version = "4.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.75", +] + +[[package]] +name = "clap_lex" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" + +[[package]] +name = "colorchoice" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" + +[[package]] +name = "const-oid" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f6b64db6932c7e49332728e3a6bd82c6b7e16016607d20923b537c3bc4c0d5f" + +[[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.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "cpufeatures" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +dependencies = [ + "libc", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-mac" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "crypto-mac" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "curve25519-dalek" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +dependencies = [ + "byteorder", + "digest", + "rand_core 0.5.1", + "subtle", + "zeroize", +] + +[[package]] +name = "datasize" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e65c07d59e45d77a8bda53458c24a828893a99ac6cdd9c84111e09176ab739a2" +dependencies = [ + "datasize_derive", +] + +[[package]] +name = "datasize_derive" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613e4ee15899913285b7612004bbd490abd605be7b11d35afada5902fb6b91d5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "der" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51f59c66c30bb7445c8320a5f9233e437e3572368099f25532a59054328899b4" +dependencies = [ + "const-oid", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "derp" +version = "0.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9b84cfd9b6fa437e498215e5625e9e3ae3bf9bb54d623028a181c40820db169" +dependencies = [ + "untrusted 0.7.1", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + +[[package]] +name = "ecdsa" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fbdb4ff710acb4db8ca29f93b897529ea6d6a45626d5183b47e012aa6ae7e4" +dependencies = [ + "elliptic-curve", + "hmac", + "signature", +] + +[[package]] +name = "ed25519" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4620d40f6d2601794401d6dd95a5cf69b6c157852539470eeda433a99b3c0efc" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand 0.7.3", + "sha2", + "zeroize", +] + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "elliptic-curve" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2db227e61a43a34915680bdda462ec0e212095518020a88a1f91acd16092c39" +dependencies = [ + "bitvec", + "digest", + "ff", + "funty", + "generic-array", + "group", + "pkcs8", + "rand_core 0.5.1", + "subtle", + "zeroize", +] + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enum-iterator" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fd242f399be1da0a5354aa462d57b4ab2b4ee0683cc552f7c007d2d12d36e94" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.75", +] + +[[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 = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "ff" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01646e077d4ebda82b73f1bca002ea1e91561a77df2431a9e79729bcc31950ef" +dependencies = [ + "bitvec", + "rand_core 0.5.1", + "subtle", +] + +[[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 = "funty" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[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-core", + "futures-task", + "pin-project-lite", + "pin-utils", +] + +[[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", + "libc", + "wasi", +] + +[[package]] +name = "getset" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e45727250e75cc04ff2846a66397da8ef2b3db8e40e0cef4df67950a07621eb9" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + +[[package]] +name = "git2" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2994bee4a3a6a51eb90c218523be382fd7ea09b16380b9312e9dbe955ff7c7d1" +dependencies = [ + "bitflags 1.3.2", + "libc", + "libgit2-sys", + "log", + "url", +] + +[[package]] +name = "group" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc11f9f5fbf1943b48ae7c2bf6846e7d827a512d1be4f23af708f5ca5d01dde1" +dependencies = [ + "ff", + "rand_core 0.5.1", + "subtle", +] + +[[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", + "indexmap 2.4.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" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[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.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hex-buffer-serde" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f52012c160668b4494727f3588045aa00429849fcae51de70d68fa98228039" +dependencies = [ + "hex", + "serde", +] + +[[package]] +name = "hex-buffer-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e84645a601cf4a58f40673d51c111d1b5f847b711559c076ebcb779606a6d0" +dependencies = [ + "hex", + "serde", +] + +[[package]] +name = "hex_fmt" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f" + +[[package]] +name = "hmac" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" +dependencies = [ + "crypto-mac 0.10.1", + "digest", +] + +[[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-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "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", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[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 = "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.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" +dependencies = [ + "equivalent", + "hashbrown 0.14.5", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[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 = "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 = "js-sys" +version = "0.3.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "jsonrpc-lite" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb4128aba82294c14af2998831c4df3c843940e92b5cfc41bac1229d1e63b88c" +dependencies = [ + "serde", + "serde_derive", + "serde_json", +] + +[[package]] +name = "k256" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4476a0808212a9e81ce802eb1a0cfc60e73aea296553bacc0fac7e1268bc572a" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "sha2", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.158" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" + +[[package]] +name = "libgit2-sys" +version = "0.14.2+1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f3d95f6b51075fe9810a7ae22c7095f12b98005ab364d8544797a825ce946a4" +dependencies = [ + "cc", + "libc", + "libz-sys", + "pkg-config", +] + +[[package]] +name = "libz-sys" +version = "1.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc53a7799a7496ebc9fd29f31f7df80e83c9bda5299768af5f9e59eeea74647" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[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 = "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 = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[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 = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +dependencies = [ + "hermit-abi", + "libc", + "wasi", + "windows-sys 0.52.0", +] + +[[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 = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[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", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "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-derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[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.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "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 = "object" +version = "0.36.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" +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 = "openssl" +version = "0.10.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "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.75", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[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", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "pem" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56cbd21fea48d0c440b41cd69c589faacade08c992d9a54e471b79d0fd13eb" +dependencies = [ + "base64 0.13.1", + "once_cell", + "regex", +] + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[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 = "pkcs8" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4839a901843f3942576e65857f0ebf2e190ef7024d3c62a94099ba3f819ad1d" +dependencies = [ + "der", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[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 = "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 = "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.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[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 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[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 = "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 = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[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", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[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 = "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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b82485a532ef0af18878ad4281f73e58161cdba1db7918176e9294f0ca5498a5" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791c2c848cff1abaeae34fef7e70da5f93171d9eea81ce0fe969a1df627a61a8" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 1.0.109", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "sd-notify" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4646d6f919800cd25c50edb49438a1381e2cd4833c027e75e8897981c50b8b5e" + +[[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 = "serde" +version = "1.0.208" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_bytes" +version = "0.11.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.208" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.75", +] + +[[package]] +name = "serde_derive_internals" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dbab34ca63057a1f15280bdf3c39f2b1eb1b54c17e98360e511637aef7418c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "serde_json" +version = "1.0.125" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" +dependencies = [ + "indexmap 2.4.0", + "itoa", + "memchr", + "ryu", + "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 = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer", + "cfg-if", + "cpufeatures", + "digest", + "opaque-debug", +] + +[[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 = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[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 = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29f060a7d147e33490ec10da418795238fd7545bba241504d6b31a409f2e6210" +dependencies = [ + "digest", + "rand_core 0.5.1", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[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 = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[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.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[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 = "tempfile" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +dependencies = [ + "cfg-if", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "terminal_size" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +dependencies = [ + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "thiserror" +version = "1.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c1b05ca9d106ba7d2e31a9dab4a64e7be2cce415321966ea3132c49a656e252" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8f2591983642de85c921015f3f070c665a197ed69e417af436115e3a1407487" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "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.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "tracing", + "windows-sys 0.52.0", +] + +[[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.75", +] + +[[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-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 = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[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-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.75", +] + +[[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-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-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 = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "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-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[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 = "vergen" +version = "7.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "571b69f690c855821462709b6f41d42ceccc316fbd17b60bd06d06928cfe6a99" +dependencies = [ + "anyhow", + "cfg-if", + "enum-iterator", + "getset", + "git2", + "rustversion", + "thiserror", + "time", +] + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[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.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.75", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.75", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" + +[[package]] +name = "web-sys" +version = "0.3.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[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-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 = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + +[[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.75", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.75", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..39ba943 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,31 @@ +[package] +name = "cctl-rs" +version = "0.1.0" +edition = "2021" +license = "MIT OR Apache-2.0" + +[[bin]] +name = "cctld" +path = "bin/cctld.rs" +version = "0.1.0" +test = false +bench = false + +[lib] +name = "cctl" +path = "src/lib.rs" + +[dependencies] + +anyhow = "1" +backoff = { version = "0.4", features = ["tokio", "futures"]} +clap = { version = "4", features = ["derive"] } +casper-client = "2.0" +casper-types = "3.0" +nom = "7" +hex = "0.4" +sd-notify = "0.4" +tokio = { version = "1", features = [ "full", "tracing", "macros" ] } +tempfile = "3" +tracing = "0.1" +tracing-subscriber = { version = "0.3", features = ["std", "env-filter"] } diff --git a/bin/cctld.rs b/bin/cctld.rs new file mode 100644 index 0000000..a7b0c96 --- /dev/null +++ b/bin/cctld.rs @@ -0,0 +1,48 @@ +use casper_types::{runtime_args, RuntimeArgs}; +use cctl::cctl; +use clap::Parser; +use sd_notify::NotifyState; +use std::path::PathBuf; +use tokio::signal; + +use crate::cctl::DeployableContract; + +#[derive(Parser)] +pub struct Cli { + #[arg(short, long)] + pub working_dir: Option, + #[arg(short, long)] + pub deploy_contract: Option, + #[arg(short, long)] + pub chainspec_path: Option, + #[arg(short, long)] + pub config_path: Option, +} + +#[tokio::main] +async fn main() -> Result<(), Box> { + let cli = Cli::parse(); + let deploy_contract = cli.deploy_contract.map(|deploy_contracts_arg| { + match deploy_contracts_arg.split_once(':') { + Some((hash_name, path)) => DeployableContract { + hash_name: hash_name.to_string(), + // FIXME at some point we want to make this parametrizable + runtime_args: runtime_args! { "initial_trie_root" => Option::<[u8; 32]>::None }, + path: PathBuf::from(&path), + }, + None => panic!("Error parsing the provided deploy contracts argument."), + } + }); + let _network = cctl::CCTLNetwork::run( + cli.working_dir, + deploy_contract, + cli.chainspec_path, + cli.config_path, + ) + .await + .expect("An error occured while starting the CCTL network"); + + let _ = sd_notify::notify(true, &[NotifyState::Ready]); + signal::ctrl_c().await?; + Ok(()) +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..6a036a0 --- /dev/null +++ b/flake.lock @@ -0,0 +1,627 @@ +{ + "nodes": { + "advisory-db": { + "flake": false, + "locked": { + "lastModified": 1723840407, + "narHash": "sha256-AZI593yLh4lcKJdAnnjyLMKUm5PMDpFy1APIYFURLyI=", + "owner": "rustsec", + "repo": "advisory-db", + "rev": "201638b35a3e85b7794e84cc73f876d7a2b7ad51", + "type": "github" + }, + "original": { + "owner": "rustsec", + "repo": "advisory-db", + "type": "github" + } + }, + "agenix": { + "inputs": { + "darwin": "darwin", + "home-manager": "home-manager", + "nixpkgs": [ + "cctl-2", + "csprpkgs", + "nixpkgs" + ], + "systems": "systems_2" + }, + "locked": { + "lastModified": 1712079060, + "narHash": "sha256-/JdiT9t+zzjChc5qQiF+jhrVhRt8figYH29rZO7pFe4=", + "owner": "ryantm", + "repo": "agenix", + "rev": "1381a759b205dff7a6818733118d02253340fd5e", + "type": "github" + }, + "original": { + "owner": "ryantm", + "repo": "agenix", + "type": "github" + } + }, + "agenix_2": { + "inputs": { + "darwin": "darwin_2", + "home-manager": "home-manager_2", + "nixpkgs": [ + "csprpkgs", + "nixpkgs" + ], + "systems": "systems_4" + }, + "locked": { + "lastModified": 1722339003, + "narHash": "sha256-ZeS51uJI30ehNkcZ4uKqT4ZDARPyqrHADSKAwv5vVCU=", + "owner": "ryantm", + "repo": "agenix", + "rev": "3f1dae074a12feb7327b4bf43cbac0d124488bb7", + "type": "github" + }, + "original": { + "owner": "ryantm", + "repo": "agenix", + "type": "github" + } + }, + "cctl": { + "inputs": { + "csprpkgs": "csprpkgs", + "nixpkgs": [ + "cctl", + "csprpkgs", + "nixpkgs" + ], + "rust-overlay": [ + "cctl", + "csprpkgs", + "rust-overlay" + ] + }, + "locked": { + "lastModified": 1717998887, + "narHash": "sha256-0i3xRAkHI+NPwxGWC3vtJeQyAxfuxr//W7gBT6iuFuk=", + "owner": "casper-network", + "repo": "cctl", + "rev": "947c34b991e37476db82ccfa2bd7c0312c1a91d7", + "type": "github" + }, + "original": { + "owner": "casper-network", + "repo": "cctl", + "rev": "947c34b991e37476db82ccfa2bd7c0312c1a91d7", + "type": "github" + } + }, + "cctl-2": { + "inputs": { + "csprpkgs": "csprpkgs_2", + "nixpkgs": [ + "cctl-2", + "csprpkgs", + "nixpkgs" + ], + "rust-overlay": [ + "cctl-2", + "csprpkgs", + "rust-overlay" + ] + }, + "locked": { + "lastModified": 1723558192, + "narHash": "sha256-Y9Ct935VyCdOIYfl+QDNAE2bMCnDJOu2HCwZnm/mbsI=", + "owner": "casper-network", + "repo": "cctl", + "rev": "2da83ec5e50c64bd8d7f9c6c986c1da375465678", + "type": "github" + }, + "original": { + "owner": "casper-network", + "repo": "cctl", + "type": "github" + } + }, + "crane": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1724006180, + "narHash": "sha256-PVxPj0Ga2fMYMtcT9ARCthF+4U71YkOT7ZjgD/vf1Aw=", + "owner": "ipetkov", + "repo": "crane", + "rev": "7ce92819802bc583b7e82ebc08013a530f22209f", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, + "csprpkgs": { + "inputs": { + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1712271889, + "narHash": "sha256-5t8QSUeIyDpHCOB+PnS3wtFqAjNf07X0wZhxZb+J/qk=", + "owner": "cspr-rad", + "repo": "csprpkgs", + "rev": "9d01d5c63ff179ee8c42cdcbf8cf892c96c0a0b1", + "type": "github" + }, + "original": { + "owner": "cspr-rad", + "repo": "csprpkgs", + "type": "github" + } + }, + "csprpkgs_2": { + "inputs": { + "agenix": "agenix", + "nixpkgs": "nixpkgs_2", + "rust-overlay": "rust-overlay_2" + }, + "locked": { + "lastModified": 1722410860, + "narHash": "sha256-aL5bf+/X3YR+uqVgD6t1tT23Xw47XJDfE2tXQ2uF6uw=", + "owner": "cspr-rad", + "repo": "csprpkgs", + "rev": "ba58f48daf43bfc84467261969b2388ab779b2de", + "type": "github" + }, + "original": { + "owner": "cspr-rad", + "repo": "csprpkgs", + "type": "github" + } + }, + "csprpkgs_3": { + "inputs": { + "agenix": "agenix_2", + "nixpkgs": "nixpkgs_3", + "rust-overlay": "rust-overlay_3" + }, + "locked": { + "lastModified": 1723826679, + "narHash": "sha256-ZL9tppGgOsJi0Z49Lc77mfy3GakX/QbI1CIIKGt4gjs=", + "owner": "cspr-rad", + "repo": "csprpkgs", + "rev": "2e3b082f9bf3b0239f12dec7246b4d19534b811e", + "type": "github" + }, + "original": { + "owner": "cspr-rad", + "repo": "csprpkgs", + "type": "github" + } + }, + "darwin": { + "inputs": { + "nixpkgs": [ + "cctl-2", + "csprpkgs", + "agenix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1700795494, + "narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d", + "type": "github" + }, + "original": { + "owner": "lnl7", + "ref": "master", + "repo": "nix-darwin", + "type": "github" + } + }, + "darwin_2": { + "inputs": { + "nixpkgs": [ + "csprpkgs", + "agenix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1700795494, + "narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d", + "type": "github" + }, + "original": { + "owner": "lnl7", + "ref": "master", + "repo": "nix-darwin", + "type": "github" + } + }, + "fenix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1724049063, + "narHash": "sha256-aTnh9Ar40OaT2MTULeJMR9EIrylKeKUYWP61QEZBu0Q=", + "owner": "nix-community", + "repo": "fenix", + "rev": "94c18bf5acb3966b07cc863bd00f4f959c0c5ec4", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1722555600, + "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "cctl-2", + "csprpkgs", + "agenix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1703113217, + "narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "csprpkgs", + "agenix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1703113217, + "narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1712192574, + "narHash": "sha256-LbbVOliJKTF4Zl2b9salumvdMXuQBr2kuKP5+ZwbYq4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f480f9d09e4b4cf87ee6151eba068197125714de", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1722555339, + "narHash": "sha256-uFf2QeW7eAHlYXuDktm9c25OxOyCoUOQmh5SZ9amE5Q=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1712192574, + "narHash": "sha256-LbbVOliJKTF4Zl2b9salumvdMXuQBr2kuKP5+ZwbYq4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f480f9d09e4b4cf87ee6151eba068197125714de", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1722730825, + "narHash": "sha256-X6U+w8qFBuGPCYrZzc9mpN34aRjQ8604MonpBUkj908=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f3834de3782b82bfc666abf664f946d0e7d1f116", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1724015816, + "narHash": "sha256-hVESnM7Eiz93+4DeiE0a1TwMeaeph1ytRJ5QtqxYRWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9aa35efbea27d320d0cdc5f922f0890812affb60", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "advisory-db": "advisory-db", + "cctl": "cctl", + "cctl-2": "cctl-2", + "crane": "crane", + "csprpkgs": "csprpkgs_3", + "fenix": "fenix", + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs_4", + "treefmt-nix": "treefmt-nix" + } + }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1723915239, + "narHash": "sha256-x/RXN/ougJ1IEoBKrY0UijB530OfOfICK4KPa3Kj9Bk=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "fa003262474185fd62168379500fe906b331824b", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "rust-overlay": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "cctl", + "csprpkgs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1706753617, + "narHash": "sha256-ZKqTFzhFwSWFEpQTJ0uXnfJBs5Y/po9/8TK4bzssdbs=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "58be43ae223034217ea1bd58c73210644031b687", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_2": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": [ + "cctl-2", + "csprpkgs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1706753617, + "narHash": "sha256-ZKqTFzhFwSWFEpQTJ0uXnfJBs5Y/po9/8TK4bzssdbs=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "58be43ae223034217ea1bd58c73210644031b687", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_3": { + "inputs": { + "nixpkgs": [ + "csprpkgs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1722824458, + "narHash": "sha256-2k3/geD5Yh8JT1nrGaRycje5kB0DkvQA/OUZoel1bIU=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "a8a937c304e62a5098c6276c9cdf65c19a43b1a5", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1723808491, + "narHash": "sha256-rhis3qNuGmJmYC/okT7Dkc4M8CeUuRCSvW6kC2f3hBc=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "1d07739554fdc4f8481068f1b11d6ab4c1a4167a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..0b3012f --- /dev/null +++ b/flake.nix @@ -0,0 +1,146 @@ +{ + description = "cctl-rs"; + + nixConfig = { + extra-substituters = [ + "https://crane.cachix.org" + "https://nix-community.cachix.org" + "https://casper-cache.marijan.pro" + "https://cspr.cachix.org" + ]; + extra-trusted-public-keys = [ + "crane.cachix.org-1:8Scfpmn9w+hGdXH/Q9tTLiYAE/2dnJYRJP7kl80GuRk=" + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "casper-cache.marijan.pro:XIDjpzFQTEuWbnRu47IqSOy6IqyZlunVGvukNROL850=" + "cspr.cachix.org-1:vEZlmbOsmTXkmEi4DSdqNVyq25VPNpmSm6qCs4IuTgE=" + ]; + }; + + inputs = { + flake-parts.url = "github:hercules-ci/flake-parts"; + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + treefmt-nix.url = "github:numtide/treefmt-nix"; + treefmt-nix.inputs.nixpkgs.follows = "nixpkgs"; + fenix.url = "github:nix-community/fenix"; + fenix.inputs.nixpkgs.follows = "nixpkgs"; + crane.url = "github:ipetkov/crane"; + crane.inputs.nixpkgs.follows = "nixpkgs"; + advisory-db.url = "github:rustsec/advisory-db"; + advisory-db.flake = false; + cctl.url = "github:casper-network/cctl/947c34b991e37476db82ccfa2bd7c0312c1a91d7"; + cctl-2.url = "github:casper-network/cctl"; + csprpkgs.url = "github:cspr-rad/csprpkgs"; + }; + + outputs = inputs@{ flake-parts, treefmt-nix, ... }: + flake-parts.lib.mkFlake { inherit inputs; } { + systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; + imports = [ + treefmt-nix.flakeModule + ./nixos + ]; + perSystem = { self', inputs', pkgs, lib, ... }: + let + rustToolchain = inputs'.fenix.packages.stable.toolchain; + craneLib = (inputs.crane.mkLib pkgs).overrideToolchain rustToolchain; + + cctl = inputs'.cctl.packages.cctl.override { casper-node = inputs'.csprpkgs.packages.casper-node; }; + + cctlAttrs = { + pname = "cctl-rs"; + + src = lib.fileset.toSource { + root = ./.; + fileset = lib.fileset.unions [ + ./Cargo.toml + ./Cargo.lock + ./bin + ./src + ./tests + ./test-resources + ]; + }; + + nativeBuildInputs = [ pkgs.pkg-config ]; + buildInputs = with pkgs; [ + openssl.dev + ] ++ lib.optionals stdenv.isDarwin [ + libiconv + darwin.apple_sdk.frameworks.Security + ]; + + # the coverage report will run the tests + doCheck = false; + + checkInputs = [ + cctl + ]; + }; + in + { + devShells.default = pkgs.mkShell { + inputsFrom = [ self'.packages.cctld ]; + packages = [ cctl ]; + }; + + packages = { + cctl-rs-deps = craneLib.buildDepsOnly (cctlAttrs // { + pname = "cctl-rs-deps"; + }); + + cctl-rs-docs = craneLib.cargoDoc (cctlAttrs // { + pname = "cctl-rs-docs"; + cargoArtifacts = self'.packages.cctl-rs-deps; + }); + + cctld = craneLib.buildPackage (cctlAttrs // { + pname = "cctld"; + cargoArtifacts = self'.packages.cctl-rs-deps; + + nativeBuildInputs = cctlAttrs.nativeBuildInputs ++ [ + pkgs.makeWrapper + ]; + + postInstall = '' + wrapProgram $out/bin/cctld \ + --set PATH ${pkgs.lib.makeBinPath [ cctl ]} + ''; + + meta.mainProgram = "cctld"; + }); + + default = self'.packages.cctld; + }; + + checks = { + lint = craneLib.cargoClippy (cctlAttrs // { + cargoArtifacts = self'.packages.cctl-rs-deps; + cargoClippyExtraArgs = "--all-targets -- --deny warnings"; + }); + + coverage-report = craneLib.cargoTarpaulin (cctlAttrs // { + pname = "cctl-rs-coverage-report"; + cargoArtifacts = self'.packages.cctl-rs-deps; + # Default values from https://crane.dev/API.html?highlight=tarpau#cranelibcargotarpaulin + # --avoid-cfg-tarpaulin fixes nom/bitvec issue https://github.com/xd009642/tarpaulin/issues/756#issuecomment-838769320 + cargoTarpaulinExtraArgs = "--skip-clean --out xml --output-dir $out --avoid-cfg-tarpaulin"; + # cargoTarpaulin runs the tests in the buildPhase + buildInputs = cctlAttrs.buildInputs ++ [ + cctl + ]; + }); + }; + + treefmt = { + projectRootFile = ".git/config"; + programs.nixpkgs-fmt.enable = true; + programs.rustfmt.enable = true; + programs.rustfmt.package = craneLib.rustfmt; + settings.formatter = { }; + }; + }; + flake = { + herculesCI.ciSystems = [ "x86_64-linux" ]; + }; + }; +} diff --git a/nixos/default.nix b/nixos/default.nix new file mode 100644 index 0000000..0b77a9f --- /dev/null +++ b/nixos/default.nix @@ -0,0 +1,26 @@ +{ self, inputs, ... }: +{ + flake = { + checks."x86_64-linux" = + let pkgs = inputs.nixpkgs.legacyPackages."x86_64-linux"; + in + { + verify-cctl-service = + pkgs.callPackage + ./tests/verify-cctl-service.nix + { + inherit (inputs.csprpkgs.packages.${pkgs.system}) casper-client-rs; + cctlModule = self.nixosModules.cctl; + contractWasm = ../test-resources/demo-contract-optimized.wasm; + }; + }; + nixosModules = { + cctl = + { pkgs, ... }: + { + imports = [ ./modules/cctl.nix ]; + services.cctl.package = self.packages.${pkgs.system}.cctld; + }; + }; + }; +} diff --git a/nixos/modules/cctl.nix b/nixos/modules/cctl.nix new file mode 100644 index 0000000..bef9ede --- /dev/null +++ b/nixos/modules/cctl.nix @@ -0,0 +1,158 @@ +{ lib, config, ... }: +let + inherit (lib) + types + mkOption + mkIf + mkMerge + mkEnableOption + escapeShellArgs + optionals + ; + cfg = config.services.cctl; +in +{ + options.services.cctl = { + + enable = mkEnableOption "cctl"; + + package = mkOption { + type = types.package; + }; + + port = mkOption { + type = types.port; + default = 11101; + example = 60000; + description = '' + Port to listen on. + TODO make port configurable in cctl + ''; + }; + + workingDirectory = mkOption { + type = types.path; + default = "/var/lib/cctl"; + description = '' + The working directory path where cctl will put its assets and resources. + ''; + }; + + chainspec = mkOption { + type = types.nullOr types.path; + default = null; + description = '' + The path to a chainspec.toml. + ''; + }; + + config = mkOption { + type = types.nullOr types.path; + default = null; + description = '' + The path to a casper node config.toml. + ''; + }; + + logLevel = mkOption { + type = types.str; + default = "info"; + description = '' + The log-level that should be used. + ''; + }; + + contract = mkOption { + type = types.nullOr (types.attrsOf types.path); + default = null; + example = { "contract hash name" = "/path/to/contract.wasm"; }; + description = '' + The wasm compiled contract that should be deployed once the network is up and ready. + The name of the attribute should correspond to the contracts hash name when calling + https://docs.rs/casper-contract/latest/casper_contract/contract_api/storage/fn.new_locked_contract.html + ''; + }; + + }; + + config = mkIf cfg.enable { + + systemd.services.cctl = + let + args = escapeShellArgs ([ + "--working-dir" + cfg.workingDirectory + ] + ++ optionals (!builtins.isNull cfg.contract) ([ + "--deploy-contract" + ] ++ (lib.mapAttrsToList (hash_name: contract_path: "${hash_name}:${contract_path}") cfg.contract)) + ++ optionals (!builtins.isNull cfg.chainspec) [ + "--chainspec-path" + cfg.chainspec + ] + ++ optionals (!builtins.isNull cfg.config) [ + "--config-path" + cfg.config + ]); + in + { + description = "cctl"; + documentation = [ "" ]; + wantedBy = [ "multi-user.target" ]; + after = [ "network-online.target" ]; + requires = [ "network-online.target" ]; + environment = { + RUST_LOG = cfg.logLevel; + }; + serviceConfig = + mkMerge [ + { + ExecStart = "${lib.getExe cfg.package} ${args}"; + Type = "notify"; + Restart = "no"; + User = "cctl"; + Group = "cctl"; + TimeoutStartSec = 1000; + StateDirectory = builtins.baseNameOf cfg.workingDirectory; + WorkingDirectory = cfg.workingDirectory; + ReadWritePaths = [ + cfg.workingDirectory + ]; + } + ]; + }; + + users.users.cctl = { + name = "cctl"; + group = "cctl"; + isSystemUser = true; + }; + users.groups.cctl = { }; + + # Allows nginx to have read access to the working directory of cctl + users.users.${config.services.nginx.user}.extraGroups = [ "cctl" ]; + + # Since cctl is usually ran on the same machine as the application that is subject to be tested, + # we need to serve the generated users directory to make it available for client machines + # when testing + services.nginx = { + enable = true; + virtualHosts."${config.networking.hostName}".locations = { + "/cctl/users/" = { + alias = "${cfg.workingDirectory}/assets/users/"; + extraConfig = '' + autoindex on; + add_header Content-Type 'text/plain charset=UTF-8'; + ''; + }; + "/cctl/contracts/" = { + alias = "${cfg.workingDirectory}/contracts/"; + extraConfig = '' + autoindex on; + add_header Content-Type 'text/plain charset=UTF-8'; + ''; + }; + }; + }; + }; +} diff --git a/nixos/tests/verify-cctl-service.nix b/nixos/tests/verify-cctl-service.nix new file mode 100644 index 0000000..07d3baa --- /dev/null +++ b/nixos/tests/verify-cctl-service.nix @@ -0,0 +1,46 @@ +{ nixosTest +, casper-client-rs +, cctlModule +, contractWasm +}: +nixosTest { + name = "verify-cctl-service"; + + nodes = { + server = { config, ... }: { + imports = [ + cctlModule + ]; + services.cctl = { + enable = true; + contract = { "kairos_contract_package_hash" = contractWasm; }; + }; + networking.firewall.allowedTCPPorts = [ 80 config.services.cctl.port ]; + }; + client = { pkgs, ... }: { + environment.systemPackages = [ pkgs.wget casper-client-rs ]; + }; + }; + + testScript = { nodes }: + let + casperNodeAddress = "http://server:${builtins.toString nodes.server.config.services.cctl.port}"; + # This is the directory wget will copy to, see script below + clientUsersDirectory = "server/cctl/users"; + in + '' + import json + + start_all() + server.wait_for_unit("cctl.service") + + # verify that the cctl network is running and reached the validate state + response = client.succeed("casper-client get-node-status --node-address ${casperNodeAddress}") + response_json = json.loads(response) + assert "result" in response_json and "Validate" in response_json["result"].get("reactor_state"), "The node didn't reach the VALIDATE state. The status response was {}".format(response) + + # verify that the generated cctl test accounts are being served + client.succeed("wget --no-parent -r http://server/cctl/users/") + client.succeed("cat ${clientUsersDirectory}/user-1/public_key_hex") + ''; +} diff --git a/src/cctl.rs b/src/cctl.rs new file mode 100644 index 0000000..b7d7616 --- /dev/null +++ b/src/cctl.rs @@ -0,0 +1,401 @@ +pub mod parsers; + +use anyhow::anyhow; +use backoff::{future::retry, ExponentialBackoff}; +use hex::FromHex; +use std::env; +use std::io::{self, Write}; +use std::path::PathBuf; +use std::process::Command; +use std::{ + fs, + time::{Duration, Instant}, +}; +use tempfile::tempdir; + +use casper_client::{ + get_account, get_deploy, get_node_status, get_state_root_hash, put_deploy, query_global_state, + rpcs::results::ReactorState, + types::{DeployBuilder, ExecutableDeployItem, StoredValue, TimeDiff, Timestamp}, + Error, JsonRpcId, Verbosity, +}; +use casper_types::{ContractHash, ExecutionResult, Key, PublicKey, RuntimeArgs, SecretKey}; + +#[derive(Debug, PartialEq, Clone, Copy)] +pub enum NodeState { + Running, + Stopped, +} + +#[derive(Debug, PartialEq, Clone, Copy)] +pub struct CasperNodePorts { + pub consensus_port: u16, + pub rpc_port: u16, + pub rest_port: u16, + pub sse_port: u16, + pub speculative_exec_port: u16, +} + +pub struct CasperNode { + pub id: u8, + pub validator_group_id: u8, + pub state: NodeState, + pub port: CasperNodePorts, +} + +pub struct CCTLNetwork { + pub working_dir: PathBuf, + pub nodes: Vec, +} + +pub struct DeployableContract { + /// This is the named key under which the contract hash is located + pub hash_name: String, + pub runtime_args: RuntimeArgs, + pub path: PathBuf, +} + +pub fn casper_client_verbosity() -> Verbosity { + if tracing::enabled!(tracing::Level::TRACE) { + Verbosity::High + } else if tracing::enabled!(tracing::Level::DEBUG) { + Verbosity::Medium + } else { + Verbosity::Low + } +} + +// max amount allowed to be used on gas fees +pub const MAX_GAS_FEE_PAYMENT_AMOUNT: u64 = 10_000_000_000_000; + +impl CCTLNetwork { + /// Spins up a CCTL network, and deploys a contract if provided + /// + /// If a chain spec and config path are not provided, the environment variables `CCTL_CHAINSPEC` and `CCTL_CONFIG` are used. + /// + /// WARNING: do not use this function in unit tests, only sequentially executed integration tests. + /// Ensure that two instances of this function are not running at the same time even in different processes. + pub async fn run( + working_dir: Option, + contract_to_deploy: Option, + chainspec_path: Option, + config_path: Option, + ) -> anyhow::Result { + let chainspec_path: Option = + chainspec_path.or_else(|| env::var("CCTL_CASPER_CHAINSPEC").ok().map(PathBuf::from)); + let config_path = + config_path.or_else(|| env::var("CCTL_CASPER_NODE_CONFIG").ok().map(PathBuf::from)); + + let working_dir = working_dir + .map(|dir| { + std::fs::create_dir_all(&dir) + .expect("Failed to create the provided working directory"); + dir + }) + .unwrap_or(tempdir()?.into_path()); + let assets_dir = working_dir.join("assets"); + tracing::info!("Working directory: {:?}", working_dir); + + let mut setup_command = Command::new("cctl-infra-net-setup"); + setup_command.env("CCTL_ASSETS", &assets_dir); + + if let Some(chainspec_path) = chainspec_path { + setup_command.arg(format!("chainspec={}", chainspec_path.to_str().unwrap())); + }; + + if let Some(config_path) = config_path { + setup_command.arg(format!("config={}", config_path.to_str().unwrap())); + }; + + tracing::info!("Setting up network configuration"); + let output = setup_command + .output() + .expect("Failed to setup network configuration"); + let output = std::str::from_utf8(output.stdout.as_slice()).unwrap(); + tracing::info!("{}", output); + + let output = Command::new("cctl-infra-net-start") + .env("CCTL_ASSETS", &assets_dir) + .output() + .expect("Failed to start network"); + let output = std::str::from_utf8(output.stdout.as_slice()).unwrap(); + tracing::info!("{}", output); + let (_, nodes) = parsers::parse_cctl_infra_net_start_lines(output).unwrap(); + + tracing::info!("Fetching the networks node ports"); + let output = Command::new("cctl-infra-node-view-ports") + .env("CCTL_ASSETS", &assets_dir) + .output() + .expect("Failed to get the networks node ports"); + let output = std::str::from_utf8(output.stdout.as_slice()).unwrap(); + tracing::info!("{}", output); + let (_, node_ports) = parsers::parse_cctl_infra_node_view_port_lines(output).unwrap(); + + // Match the started nodes with their respective ports + let nodes: Vec = nodes + .into_iter() + .map(|(validator_group_id, node_id, state)| { + if let Some(&(_, port)) = node_ports + .iter() + .find(|(node_id_ports, _)| *node_id_ports == node_id) + { + CasperNode { + validator_group_id, + state, + id: node_id, + port, + } + } else { + panic!("Can't find ports for node with id {}", node_id) + } + }) + .collect(); + + let node_port = nodes.first().unwrap().port.rpc_port; + let casper_node_rpc_url = format!("http://0.0.0.0:{node_port}/rpc"); + const MAX_GENESIS_WAIT_TIME: Duration = Duration::from_secs(90); + + let start_time = Instant::now(); + tracing::info!("Waiting {MAX_GENESIS_WAIT_TIME:?} for the network to pass genesis"); + retry(ExponentialBackoff::default(), || async { + // This prevents retrying forever even after ctrl-c + let timed_out = start_time.elapsed() > MAX_GENESIS_WAIT_TIME; + + get_node_status( + JsonRpcId::Number(1), + &casper_node_rpc_url, + casper_client_verbosity(), + ) + .await + .map_err(|err| { + let elapsed = start_time.elapsed().as_secs(); + tracing::info!( + "Waited for {elapsed}s to pass genesis, the last reported error was: {err:?}" + ); + err + }) + .map_err(|err| match &err { + err if timed_out => backoff::Error::permanent(anyhow!("Timeout on error: {err:?}")), + Error::ResponseIsHttpError { .. } | Error::FailedToGetResponse { .. } => { + backoff::Error::transient(anyhow!(err)) + } + _ => backoff::Error::permanent(anyhow!(err)), + }) + .map(|success| match success.result.reactor_state { + ReactorState::Validate => Ok(()), + reactor_state if timed_out => Err(backoff::Error::permanent(anyhow!( + "Node didn't reach the VALIDATE state before timeout: {reactor_state:?}" + ))), + _ => Err(backoff::Error::transient(anyhow!( + "Node didn't reach the VALIDATE state yet" + ))), + })? + }) + .await + .expect("Waiting for network to pass genesis failed"); + + tracing::info!("Waiting for block 1"); + let output = Command::new("cctl-chain-await-until-block-n") + .env("CCTL_ASSETS", &assets_dir) + .arg("height=1") + .output() + .expect("Waiting for network to start processing blocks failed"); + let output = std::str::from_utf8(output.stdout.as_slice()).unwrap(); + tracing::info!("{}", output); + + if let Some(contract_to_deploy) = contract_to_deploy { + let deployer_skey = + SecretKey::from_file(working_dir.join("assets/users/user-1/secret_key.pem"))?; + let deployer_pkey = + PublicKey::from_file(working_dir.join("assets/users/user-1/public_key.pem"))?; + + let (hash_name, contract_hash) = deploy_contract( + &casper_node_rpc_url, + &deployer_skey, + &deployer_pkey, + &contract_to_deploy, + ) + .await?; + let contracts_dir = working_dir.join("contracts"); + fs::create_dir_all(&contracts_dir)?; + fs::write( + contracts_dir.join(hash_name), + // For a ContractHash contract- will always be the prefix + contract_hash + .to_formatted_string() + .strip_prefix("contract-") + .unwrap(), + )? + } + Ok(CCTLNetwork { working_dir, nodes }) + } + /// Get the deployed contract hash for a hash_name that was passed to new_contract + /// https://docs.rs/casper-contract/latest/casper_contract/contract_api/storage/fn.new_contract.html + pub fn get_contract_hash_for(&self, hash_name: &str) -> ContractHash { + let contract_hash_path = self.working_dir.join("contracts").join(hash_name); + let contract_hash_string = fs::read_to_string(contract_hash_path).unwrap(); + let contract_hash_bytes = <[u8; 32]>::from_hex(contract_hash_string).unwrap(); + ContractHash::new(contract_hash_bytes) + } +} + +impl Drop for CCTLNetwork { + fn drop(&mut self) { + let output = Command::new("cctl-infra-net-stop") + .env("CCTL_ASSETS", self.working_dir.join("assets")) + .output() + .expect("Failed to stop the network"); + io::stdout().write_all(&output.stdout).unwrap(); + io::stderr().write_all(&output.stderr).unwrap(); + } +} + +/// Deploys a contract as the given user for the contract's defined hash name located at the path. +/// The hash name should be equal to the hash name passed to https://docs.rs/casper-contract/latest/casper_contract/contract_api/storage/fn.new_locked_contract.html +async fn deploy_contract( + casper_node_rpc_url: &str, + contract_deployer_skey: &SecretKey, + contract_deployer_pkey: &PublicKey, + DeployableContract { + hash_name, + runtime_args, + path, + }: &DeployableContract, +) -> anyhow::Result<(String, ContractHash)> { + tracing::info!( + "Deploying contract {}: {}", + &hash_name, + path.to_str().unwrap() + ); + + let casper_client_verbosity = casper_client_verbosity(); + + let contract_bytes = fs::read(path)?; + let contract = + ExecutableDeployItem::new_module_bytes(contract_bytes.into(), runtime_args.clone()); + let deploy = DeployBuilder::new( + // TODO ideally make the chain-name configurable + "cspr-dev-cctl", + contract, + contract_deployer_skey, + ) + .with_standard_payment(MAX_GAS_FEE_PAYMENT_AMOUNT) // max amount allowed to be used on gas fees + .with_timestamp(Timestamp::now()) + .with_ttl(TimeDiff::from_millis(60_000)) // 1 min + .build()?; + + tracing::info!("Submitting contract deploy"); + let deploy_hash = put_deploy( + JsonRpcId::Number(1), + casper_node_rpc_url, + casper_client_verbosity, + deploy, + ) + .await + .map_err(Into::::into) + .map(|response| response.result.deploy_hash)?; + + const MAX_CONTRACT_INIT_WAIT_TIME: Duration = Duration::from_secs(60); + tracing::info!( + "Waiting {MAX_CONTRACT_INIT_WAIT_TIME:?} for successful contract initialization" + ); + let start = Instant::now(); + retry(ExponentialBackoff::default(), || async { + let timed_out = start.elapsed() > MAX_CONTRACT_INIT_WAIT_TIME; + + let response = get_deploy( + JsonRpcId::Number(1), + casper_node_rpc_url, + casper_client_verbosity, + deploy_hash, + false, + ) + .await + .map_err(|err| { + let elapsed = start.elapsed().as_secs(); + tracing::info!("Waited {elapsed}s for successful contract initialization, the last reported error was: {err:?}"); + err + }) + .map_err(|err| match &err { + err if timed_out => backoff::Error::permanent(anyhow!("Timeout on error: {err:?}")), + Error::ResponseIsHttpError { .. } | Error::FailedToGetResponse { .. } => { + backoff::Error::transient(anyhow!(err)) + } + _ => backoff::Error::permanent(anyhow!(err)), + })?; + + match response.result.execution_results.first() { + Some(result) => match &result.result { + ExecutionResult::Failure { error_message, .. } => { + Err(backoff::Error::permanent(anyhow!(error_message.clone()))) + } + ExecutionResult::Success { .. } => Ok(()), + }, + None if timed_out => Err(backoff::Error::permanent(anyhow!( + "Timeout on error: No execution results" + ))), + None => Err(backoff::Error::transient(anyhow!( + "No execution results there yet" + ))), + } + }) + .await?; + tracing::info!("Contract was deployed successfully"); + + tracing::info!("Fetching deployed contract hash"); + // Query global state + let state_root_hash = get_state_root_hash( + JsonRpcId::Number(1), + casper_node_rpc_url, + casper_client_verbosity, + Option::None, + ) + .await + .map_err(Into::::into) + .and_then(|response| { + response + .result + .state_root_hash + .ok_or(anyhow!("No state root hash present in response")) + })?; + + let account = get_account( + JsonRpcId::Number(1), + casper_node_rpc_url, + casper_client_verbosity, + Option::None, + contract_deployer_pkey.clone(), + ) + .await + .map_err(Into::::into) + .map(|response| response.result.account)?; + + let account_key = Key::Account(*account.account_hash()); + let contract_hash: ContractHash = query_global_state( + JsonRpcId::Number(1), + casper_node_rpc_url, + casper_client_verbosity, + casper_client::rpcs::GlobalStateIdentifier::StateRootHash(state_root_hash), // fetches recent blocks state root hash + account_key, + vec![hash_name.clone()], + ) + .await + .map_err(Into::::into) + .and_then(|response| match response.result.stored_value { + StoredValue::ContractPackage(contract_package) => Ok(*contract_package + .versions() + .next() + .expect("Expected at least one contract version") + .contract_hash()), + other => Err(anyhow!( + "Unexpected result type, type is not a CLValue: {:?}", + other + )), + })?; + tracing::info!( + "Successfully fetched the contract hash for {}: {}", + &hash_name, + &contract_hash + ); + Ok::<(String, ContractHash), anyhow::Error>((hash_name.clone(), contract_hash)) +} diff --git a/src/cctl/parsers.rs b/src/cctl/parsers.rs new file mode 100644 index 0000000..b569931 --- /dev/null +++ b/src/cctl/parsers.rs @@ -0,0 +1,228 @@ +use super::{CasperNodePorts, NodeState}; + +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::{multispace0, not_line_ending, space1}, + combinator::map, + multi::separated_list0, + sequence::tuple, + IResult, +}; + +pub fn parse_node_state(input: &str) -> IResult<&str, NodeState> { + alt(( + map(tag("RUNNING"), |_| NodeState::Running), + map(tag("STOPPED"), |_| NodeState::Stopped), + ))(input) +} + +pub fn parse_cctl_infra_net_start_line(input: &str) -> IResult<&str, (u8, u8, NodeState)> { + let (remainder, (_, _, group_id, _, node_id, _, status, _)) = tuple(( + multispace0, + tag("validator-group-"), + nom::character::complete::u8, + tag(":cctl-node-"), + nom::character::complete::u8, + space1, + parse_node_state, + not_line_ending, + ))(input)?; + + Ok((remainder, (group_id, node_id, status))) +} + +pub fn parse_cctl_infra_net_start_lines(input: &str) -> IResult<&str, Vec<(u8, u8, NodeState)>> { + let (remainder, _) = nom::bytes::complete::take_until("validator-group")(input)?; + separated_list0(tag("\n"), parse_cctl_infra_net_start_line)(remainder) +} + +pub fn parse_cctl_infra_node_view_port_line(input: &str) -> IResult<&str, (u8, CasperNodePorts)> { + let ( + remainder, + ( + _, + _, + group_id, + _, + consensus_port, + _, + rpc_port, + _, + rest_port, + _, + sse_port, + _, + speculative_exec_port, + _, + ), + ) = tuple(( + nom::bytes::complete::take_until("node-"), + tag("node-"), + nom::character::complete::u8, + tag(" -> CONSENSUS @ "), + nom::character::complete::u16, + tag(" :: RPC @ "), + nom::character::complete::u16, + tag(" :: REST @ "), + nom::character::complete::u16, + tag(" :: SSE @ "), + nom::character::complete::u16, + tag(" :: SPECULATIVE_EXEC @ "), + nom::character::complete::u16, + not_line_ending, + ))(input)?; + + Ok(( + remainder, + ( + group_id, + CasperNodePorts { + consensus_port, + rpc_port, + rest_port, + sse_port, + speculative_exec_port, + }, + ), + )) +} + +pub fn parse_cctl_infra_node_view_port_lines( + input: &str, +) -> IResult<&str, Vec<(u8, CasperNodePorts)>> { + separated_list0(tag("\n"), parse_cctl_infra_node_view_port_line)(input) +} + +#[cfg(test)] +mod tests { + use super::*; + use anyhow::Error; + #[test] + fn test_parse_cctl_infra_net_start_line() -> Result<(), Error> { + let input = "validator-group-1:cctl-node-1 RUNNING pid 428229, uptime 0:09:06\n"; + let (_, parsed) = parse_cctl_infra_net_start_line(input)?; + Ok(assert_eq!((1, 1, NodeState::Running), parsed)) + } + #[test] + fn test_parse_cctl_infra_net_start_lines() -> Result<(), Error> { + let input = r#" + 2024-02-06T14:06:43.332420 [INFO] [431123] CCTL :: network spin up begins ... please wait + 2024-02-06T14:06:43.334599 [INFO] [431123] CCTL :: ... starting network + 2024-02-06T14:06:43.337054 [INFO] [431123] CCTL :: ... ... genesis bootstrap nodes + 2024-02-06T14:06:44.445527 [INFO] [431123] CCTL :: ... ... genesis non-bootstrap nodes + validator-group-1:cctl-node-1 RUNNING pid 428229, uptime 0:09:06 + validator-group-1:cctl-node-2 RUNNING pid 428230, uptime 0:09:06 + validator-group-1:cctl-node-3 RUNNING pid 428231, uptime 0:09:06 + validator-group-2:cctl-node-4 RUNNING pid 428296, uptime 0:09:05 + validator-group-2:cctl-node-5 RUNNING pid 428297, uptime 0:09:05 + validator-group-3:cctl-node-10 STOPPED Not started + validator-group-3:cctl-node-6 STOPPED Not started + validator-group-3:cctl-node-7 STOPPED Not started + validator-group-3:cctl-node-8 STOPPED Not started + validator-group-3:cctl-node-9 STOPPED Not started + "#; + let (_, parsed) = parse_cctl_infra_net_start_lines(input)?; + let expected = vec![ + (1, 1, NodeState::Running), + (1, 2, NodeState::Running), + (1, 3, NodeState::Running), + (2, 4, NodeState::Running), + (2, 5, NodeState::Running), + (3, 10, NodeState::Stopped), + (3, 6, NodeState::Stopped), + (3, 7, NodeState::Stopped), + (3, 8, NodeState::Stopped), + (3, 9, NodeState::Stopped), + ]; + Ok(assert_eq!(expected, parsed)) + } + #[test] + fn test_parse_cctl_infra_node_view_port_line() -> Result<(), Error> { + let input = "2024-02-06T17:28:10.731821 [INFO] [514427] CCTL :: node-1 -> CONSENSUS @ 22101 :: RPC @ 11101 :: REST @ 14101 :: SSE @ 18101 :: SPECULATIVE_EXEC @ 25101"; + let (_, parsed) = parse_cctl_infra_node_view_port_line(input)?; + Ok(assert_eq!( + ( + 1, + CasperNodePorts { + consensus_port: 22101, + rpc_port: 11101, + rest_port: 14101, + sse_port: 18101, + speculative_exec_port: 25101 + } + ), + parsed + )) + } + #[test] + fn test_parse_cctl_infra_node_view_port_lines() -> Result<(), Error> { + let input = r#" + 2024-02-06T17:28:10.728367 [INFO] [514427] CCTL :: ------------------------------------------------------------------------------------------------------ + 2024-02-06T17:28:10.731821 [INFO] [514427] CCTL :: node-1 -> CONSENSUS @ 22101 :: RPC @ 11101 :: REST @ 14101 :: SSE @ 18101 :: SPECULATIVE_EXEC @ 25101 + 2024-02-06T17:28:10.732997 [INFO] [514427] CCTL :: ------------------------------------------------------------------------------------------------------ + 2024-02-06T17:28:10.737211 [INFO] [514427] CCTL :: node-2 -> CONSENSUS @ 22102 :: RPC @ 11102 :: REST @ 14102 :: SSE @ 18102 :: SPECULATIVE_EXEC @ 25102 + 2024-02-06T17:28:10.738952 [INFO] [514427] CCTL :: ------------------------------------------------------------------------------------------------------ + 2024-02-06T17:28:10.742946 [INFO] [514427] CCTL :: node-3 -> CONSENSUS @ 22103 :: RPC @ 11103 :: REST @ 14103 :: SSE @ 18103 :: SPECULATIVE_EXEC @ 25103 + 2024-02-06T17:28:10.744218 [INFO] [514427] CCTL :: ------------------------------------------------------------------------------------------------------ + 2024-02-06T17:28:10.748632 [INFO] [514427] CCTL :: node-4 -> CONSENSUS @ 22104 :: RPC @ 11104 :: REST @ 14104 :: SSE @ 18104 :: SPECULATIVE_EXEC @ 25104 + 2024-02-06T17:28:10.749922 [INFO] [514427] CCTL :: ------------------------------------------------------------------------------------------------------ + 2024-02-06T17:28:10.754162 [INFO] [514427] CCTL :: node-5 -> CONSENSUS @ 22105 :: RPC @ 11105 :: REST @ 14105 :: SSE @ 18105 :: SPECULATIVE_EXEC @ 25105 + 2024-02-06T17:28:10.755567 [INFO] [514427] CCTL :: ------------------------------------------------------------------------------------------------------ + "#; + let (_, parsed) = parse_cctl_infra_node_view_port_lines(input)?; + let expected = vec![ + ( + 1, + CasperNodePorts { + consensus_port: 22101, + rpc_port: 11101, + rest_port: 14101, + sse_port: 18101, + speculative_exec_port: 25101, + }, + ), + ( + 2, + CasperNodePorts { + consensus_port: 22102, + rpc_port: 11102, + rest_port: 14102, + sse_port: 18102, + speculative_exec_port: 25102, + }, + ), + ( + 3, + CasperNodePorts { + consensus_port: 22103, + rpc_port: 11103, + rest_port: 14103, + sse_port: 18103, + speculative_exec_port: 25103, + }, + ), + ( + 4, + CasperNodePorts { + consensus_port: 22104, + rpc_port: 11104, + rest_port: 14104, + sse_port: 18104, + speculative_exec_port: 25104, + }, + ), + ( + 5, + CasperNodePorts { + consensus_port: 22105, + rpc_port: 11105, + rest_port: 14105, + sse_port: 18105, + speculative_exec_port: 25105, + }, + ), + ]; + Ok(assert_eq!(expected, parsed)) + } +} diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..48a35ad --- /dev/null +++ b/src/lib.rs @@ -0,0 +1 @@ +pub mod cctl; diff --git a/test-resources/demo-contract-optimized.wasm b/test-resources/demo-contract-optimized.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2d382b63208c95af7b7e1b617ea559c324110955 GIT binary patch literal 894570 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

=B1G7rMT%!BdC<{|hL^H6-M`4FxJRn3RtL(J9i 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%0A*@nVmc{kuPQf9(E@ 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 literal 0 HcmV?d00001 diff --git a/tests/test_cctl_deploys_a_contract_successfully.rs b/tests/test_cctl_deploys_a_contract_successfully.rs new file mode 100644 index 0000000..b93c125 --- /dev/null +++ b/tests/test_cctl_deploys_a_contract_successfully.rs @@ -0,0 +1,40 @@ +use hex::FromHex; +use std::env; +use std::fs; +use std::path::PathBuf; +use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt, EnvFilter}; + +use casper_types::{runtime_args, ContractHash, RuntimeArgs}; +use cctl::cctl::{CCTLNetwork, DeployableContract}; + +fn tracing_init() { + let _ = tracing_subscriber::registry() + .with(EnvFilter::try_from_default_env().unwrap_or_else(|_| "info".into())) + .with(tracing_subscriber::fmt::layer()) + .try_init(); +} + +#[tokio::test] +async fn test_cctl_deploys_a_contract_successfully() { + tracing_init(); + + let contract_wasm_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")) + .join("test-resources/demo-contract-optimized.wasm"); + let hash_name = "kairos_contract_package_hash"; + let contract_to_deploy = DeployableContract { + hash_name: hash_name.to_string(), + runtime_args: runtime_args! { "initial_trie_root" => Option::<[u8; 32]>::None }, + path: contract_wasm_path, + }; + + let network = CCTLNetwork::run(None, Some(contract_to_deploy), None, None) + .await + .unwrap(); + let expected_contract_hash_path = network.working_dir.join("contracts").join(hash_name); + assert!(expected_contract_hash_path.exists()); + + let hash_string = fs::read_to_string(expected_contract_hash_path).unwrap(); + let contract_hash_bytes = <[u8; 32]>::from_hex(hash_string).unwrap(); + let contract_hash = ContractHash::new(contract_hash_bytes); + assert!(contract_hash.to_formatted_string().starts_with("contract-")) +} diff --git a/tests/test_cctl_network_starts_and_terminates.rs b/tests/test_cctl_network_starts_and_terminates.rs new file mode 100644 index 0000000..cb7fe7e --- /dev/null +++ b/tests/test_cctl_network_starts_and_terminates.rs @@ -0,0 +1,31 @@ +use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt, EnvFilter}; + +use casper_client::{get_node_status, rpcs::results::ReactorState, JsonRpcId, Verbosity}; +use cctl::cctl::{CCTLNetwork, NodeState}; + +fn tracing_init() { + let _ = tracing_subscriber::registry() + .with(EnvFilter::try_from_default_env().unwrap_or_else(|_| "info".into())) + .with(tracing_subscriber::fmt::layer()) + .try_init(); +} + +#[tokio::test] +async fn test_cctl_network_starts_and_terminates() { + tracing_init(); + + let network = CCTLNetwork::run(None, None, None, None).await.unwrap(); + + for node in &network.nodes { + if node.state == NodeState::Running { + let node_status = get_node_status( + JsonRpcId::Number(1), + &format!("http://0.0.0.0:{}", node.port.rpc_port), + Verbosity::High, + ) + .await + .unwrap(); + assert_eq!(node_status.result.reactor_state, ReactorState::Validate); + } + } +}