diff --git a/Cargo.lock b/Cargo.lock index d78dc7a..4116def 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,7 +8,16 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" dependencies = [ - "gimli", + "gimli 0.27.3", +] + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli 0.28.1", ] [[package]] @@ -18,26 +27,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] -name = "ahash" -version = "0.7.6" +name = "aead" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ - "getrandom 0.2.10", - "once_cell", - "version_check", + "crypto-common", + "generic-array 0.14.7", ] [[package]] -name = "ahash" +name = "aes" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle 2.5.0", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "getrandom 0.2.10", "once_cell", "version_check", + "zerocopy", ] [[package]] @@ -49,6 +83,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -73,6 +113,66 @@ dependencies = [ "winapi", ] +[[package]] +name = "anstream" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd2405b3ac1faab2990b74d728624cd9fd115651fcecc7c2d8daf01376275ba" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" + +[[package]] +name = "anstyle-parse" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" + +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" + [[package]] name = "arc-swap" version = "1.6.0" @@ -85,6 +185,12 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + [[package]] name = "async-stream" version = "0.3.5" @@ -104,7 +210,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.53", ] [[package]] @@ -115,7 +221,7 @@ checksum = "a564d521dd56509c4c47480d00b80ee55f7e385ae48db5744c67ad50c92d2ebf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.53", ] [[package]] @@ -152,21 +258,15 @@ version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" dependencies = [ - "addr2line", + "addr2line 0.20.0", "cc", "cfg-if", "libc", "miniz_oxide", - "object", + "object 0.31.1", "rustc-demangle", ] -[[package]] -name = "base-x" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" - [[package]] name = "base58" version = "0.1.0" @@ -218,6 +318,15 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + [[package]] name = "bip39" version = "1.2.0" @@ -281,9 +390,21 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" + +[[package]] +name = "bitvec" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] [[package]] name = "block-buffer" @@ -291,7 +412,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" dependencies = [ - "block-padding 0.1.5", + "block-padding", "byte-tools", "byteorder", "generic-array 0.12.4", @@ -303,7 +424,6 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "block-padding 0.2.1", "generic-array 0.14.7", ] @@ -326,10 +446,19 @@ dependencies = [ ] [[package]] -name = "block-padding" -version = "0.2.1" +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" + +[[package]] +name = "bs58" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" +checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +dependencies = [ + "tinyvec", +] [[package]] name = "bumpalo" @@ -337,6 +466,12 @@ version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + [[package]] name = "byte-tools" version = "0.3.1" @@ -360,6 +495,9 @@ name = "cc" version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +dependencies = [ + "jobserver", +] [[package]] name = "cfg-if" @@ -369,9 +507,8 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chainhook-types" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65268eb9aad0d567865cd13c5a5c7a9a301d99f6301f8f5cac1654744eda0a7c" +version = "1.3.3" +source = "git+https://github.com/hirosystems/chainhook.git?branch=chore/update-clarinet-and-clarity#160fd65a66a679efa4cf19cbe33c685eebaa9c2d" dependencies = [ "hex", "schemars", @@ -383,25 +520,88 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets 0.48.1", ] [[package]] -name = "clarinet-deployments" -version = "1.0.3" +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clap" +version = "4.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58e54881c004cec7895b0068a0a954cd5d62da01aef83fa35b1e594497bf5445" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59cb82d7f531603d2fd1f507441cdd35184fa81beff7bd489570de7f773460bb" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 2.0.53", +] + +[[package]] +name = "clap_lex" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5b484bdc8880ac7cc3fff38d1cd17d957685af68f8dde2bba82878c48381bb4" +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" + +[[package]] +name = "clar2wasm" +version = "0.1.0" +source = "git+https://github.com/stacks-network/clarity-wasm.git#5edf193d8ec7c3a60676cfa3e079af126aaf99b6" +dependencies = [ + "clap", + "clarity", + "lazy_static", + "regex", + "stacks-common", + "walrus", + "wasmtime", + "wat", +] + +[[package]] +name = "clarinet-deployments" +version = "2.4.0" +source = "git+https://github.com/hirosystems/clarinet.git?rev=a5f9fea72230b893a7d1f90bdfda3a68aa48e908#a5f9fea72230b893a7d1f90bdfda3a68aa48e908" dependencies = [ "base58 0.2.0", "base64 0.21.4", @@ -411,6 +611,7 @@ dependencies = [ "clarinet-files", "clarinet-utils", "clarity-repl", + "colored", "libsecp256k1 0.7.1", "reqwest", "serde", @@ -423,9 +624,8 @@ dependencies = [ [[package]] name = "clarinet-files" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dc81af3686bcf35e8f8bfe844473f1af3372a7e148561378f6598a871dc018b" +version = "2.4.0" +source = "git+https://github.com/hirosystems/clarinet.git?rev=a5f9fea72230b893a7d1f90bdfda3a68aa48e908#a5f9fea72230b893a7d1f90bdfda3a68aa48e908" dependencies = [ "bip39", "bitcoin", @@ -437,45 +637,65 @@ dependencies = [ "serde_derive", "serde_json", "tiny-hderive", - "toml", + "toml 0.5.11", "url", ] [[package]] name = "clarinet-utils" version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f19b3340d53afe73fb175052ab09aec54b6e3076afd30d6b907b401cb6eecf3c" +source = "git+https://github.com/hirosystems/clarinet.git?rev=a5f9fea72230b893a7d1f90bdfda3a68aa48e908#a5f9fea72230b893a7d1f90bdfda3a68aa48e908" dependencies = [ "hmac 0.12.1", "pbkdf2", - "serde", "sha2 0.10.7", ] +[[package]] +name = "clarity" +version = "2.3.0" +source = "git+https://github.com/stacks-network/stacks-core.git?branch=feat/clarity-wasm-next#5eb967cf4f58efcffe385c7a6fd2ed82e5f5da58" +dependencies = [ + "hashbrown 0.14.3", + "integer-sqrt", + "lazy_static", + "rand 0.8.5", + "rand_chacha 0.3.1", + "regex", + "rusqlite", + "serde", + "serde_derive", + "serde_json", + "serde_stacker", + "sha2-asm", + "slog", + "stacks-common", + "wasmtime", +] + [[package]] name = "clarity-repl" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ce75a1ed41a078a67f78abe73c84c241331044304831af8db8b7056dcef46fc" +version = "2.4.0" +source = "git+https://github.com/hirosystems/clarinet.git?rev=a5f9fea72230b893a7d1f90bdfda3a68aa48e908#a5f9fea72230b893a7d1f90bdfda3a68aa48e908" dependencies = [ "ansi_term", "atty", "bytes", "chrono", - "clarity-vm", + "clar2wasm", + "clarity", "debug_types", "futures", "getrandom 0.2.10", - "hiro-system-kit", + "hiro-system-kit 0.1.0 (git+https://github.com/hirosystems/clarinet.git?rev=a5f9fea72230b893a7d1f90bdfda3a68aa48e908)", "httparse", "integer-sqrt", "lazy_static", "log", "memchr", "pico-args", + "pox-locking", "prettytable-rs", - "rand 0.7.3", "regex", "reqwest", "rustyline", @@ -483,60 +703,43 @@ dependencies = [ "serde_derive", "serde_json", "sha2 0.10.7", - "sha3 0.9.1", "tokio", "tokio-util", + "wsts", ] [[package]] -name = "clarity-vm" -version = "2.1.1" +name = "clipboard-win" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90cebf93044798d7729008e9a467b16578aead7f0b3568219a2b20b421b683db" +checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" dependencies = [ - "integer-sqrt", - "lazy_static", - "rand 0.7.3", - "rand_chacha 0.2.2", - "regex", - "rstest", - "rstest_reuse", - "rusqlite", - "serde", - "serde_derive", - "serde_json", - "serde_stacker", - "sha2-asm", - "slog", - "stacks-common", - "time 0.2.27", + "error-code", + "str-buf", + "winapi", ] [[package]] -name = "clear_on_drop" -version = "0.2.5" +name = "colorchoice" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38508a63f4979f0048febc9966fadbd48e5dab31fd0ec6a3f151bbf4a74f7423" -dependencies = [ - "cc", -] +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] -name = "clipboard-win" -version = "4.5.0" +name = "colored" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" dependencies = [ - "error-code", - "str-buf", - "winapi", + "lazy_static", + "windows-sys 0.48.0", ] [[package]] -name = "const_fn" -version = "0.4.9" +name = "const-oid" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "core-foundation-sys" @@ -544,6 +747,15 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +[[package]] +name = "cpp_demangle" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" +dependencies = [ + "cfg-if", +] + [[package]] name = "cpufeatures" version = "0.2.9" @@ -554,81 +766,233 @@ dependencies = [ ] [[package]] -name = "crossbeam-channel" -version = "0.5.8" +name = "cranelift-bforest" +version = "0.102.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +checksum = "8e7e56668d2263f92b691cb9e4a2fcb186ca0384941fe420484322fa559c3329" dependencies = [ - "cfg-if", - "crossbeam-utils", + "cranelift-entity", ] [[package]] -name = "crossbeam-utils" -version = "0.8.16" +name = "cranelift-codegen" +version = "0.102.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +checksum = "2a9ff61938bf11615f55b80361288c68865318025632ea73c65c0b44fa16283c" dependencies = [ - "cfg-if", + "bumpalo", + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-control", + "cranelift-entity", + "cranelift-isle", + "gimli 0.28.1", + "hashbrown 0.14.3", + "log", + "regalloc2", + "smallvec", + "target-lexicon", ] [[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-common" -version = "0.1.6" +name = "cranelift-codegen-meta" +version = "0.102.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "50656bf19e3d4a153b404ff835b8b59e924cfa3682ebe0d3df408994f37983f6" dependencies = [ - "generic-array 0.14.7", - "typenum", + "cranelift-codegen-shared", ] [[package]] -name = "crypto-mac" -version = "0.7.0" +name = "cranelift-codegen-shared" +version = "0.102.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" -dependencies = [ - "generic-array 0.12.4", - "subtle 1.0.0", -] +checksum = "388041deeb26109f1ea73c1812ea26bfd406c94cbce0bb5230aa44277e43b209" [[package]] -name = "crypto-mac" -version = "0.8.0" +name = "cranelift-control" +version = "0.102.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +checksum = "b39b7c512ffac527e5b5df9beae3d67ab85d07dca6d88942c16195439fedd1d3" dependencies = [ - "generic-array 0.14.7", - "subtle 2.5.0", + "arbitrary", ] [[package]] -name = "csv" -version = "1.2.2" +name = "cranelift-entity" +version = "0.102.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086" +checksum = "fdb25f573701284fe2bcf88209d405342125df00764b396c923e11eafc94d892" dependencies = [ - "csv-core", - "itoa", - "ryu", "serde", + "serde_derive", ] [[package]] -name = "csv-core" -version = "0.1.10" +name = "cranelift-frontend" +version = "0.102.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" +checksum = "e57374fd11d72cf9ffb85ff64506ed831440818318f58d09f45b4185e5e9c376" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-isle" +version = "0.102.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae769b235f6ea2f86623a3ff157cc04a4ff131dc9fe782c2ebd35f272043581e" + +[[package]] +name = "cranelift-native" +version = "0.102.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dc7bfb8f13a0526fe20db338711d9354729b861c336978380bb10f7f17dd207" +dependencies = [ + "cranelift-codegen", + "libc", + "target-lexicon", +] + +[[package]] +name = "cranelift-wasm" +version = "0.102.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c5f41a4af931b756be05af0dd374ce200aae2d52cea16b0beb07e8b52732c35" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "itertools", + "log", + "smallvec", + "wasmparser 0.116.1", + "wasmtime-types", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.9.0", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array 0.14.7", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "crypto-mac" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" +dependencies = [ + "generic-array 0.12.4", + "subtle 1.0.0", +] + +[[package]] +name = "crypto-mac" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +dependencies = [ + "generic-array 0.14.7", + "subtle 2.5.0", +] + +[[package]] +name = "csv" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" dependencies = [ "memchr", ] +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + [[package]] name = "curve25519-dalek" version = "2.0.0" @@ -643,6 +1007,34 @@ dependencies = [ "zeroize", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle 2.5.0", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.53", +] + [[package]] name = "dashmap" version = "5.5.0" @@ -650,7 +1042,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6943ae99c34386c84a470c499d3414f66502a41340aa895406e0d2e4a207b91d" dependencies = [ "cfg-if", - "hashbrown 0.14.0", + "hashbrown 0.14.3", "lock_api", "once_cell", "parking_lot_core", @@ -667,6 +1059,34 @@ dependencies = [ "serde_json", ] +[[package]] +name = "debugid" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" +dependencies = [ + "uuid", +] + +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + [[package]] name = "derivative" version = "2.2.0" @@ -707,6 +1127,16 @@ dependencies = [ "subtle 2.5.0", ] +[[package]] +name = "directories-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + [[package]] name = "dirs-next" version = "2.0.0" @@ -728,29 +1158,36 @@ dependencies = [ "winapi", ] -[[package]] -name = "discard" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" - [[package]] name = "dyn-clone" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "304e6508efa593091e97a9abbc10f90aa7ca635b6d2784feff3c89d41dd12272" +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "serde", + "signature", +] + [[package]] name = "ed25519-dalek" -version = "1.0.0-pre.3" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978710b352437433c97b2bff193f2fb1dfd58a093f863dd95e225a19baa599a2" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ - "clear_on_drop", - "curve25519-dalek", - "rand 0.7.3", + "curve25519-dalek 4.1.2", + "ed25519", + "rand_core 0.6.4", "serde", - "sha2 0.8.2", + "sha2 0.10.7", + "subtle 2.5.0", + "zeroize", ] [[package]] @@ -788,23 +1225,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" -dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ - "cc", "libc", + "windows-sys 0.52.0", ] [[package]] @@ -829,12 +1255,24 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" +[[package]] +name = "fallible-iterator" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" + [[package]] name = "fallible-streaming-iterator" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + [[package]] name = "fd-lock" version = "3.0.13" @@ -843,7 +1281,25 @@ checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5" dependencies = [ "cfg-if", "rustix", - "windows-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c007b1ae3abe1cb6f85a16305acd418b7ca6343b953633fee2b76d8f108b830f" + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", ] [[package]] @@ -876,6 +1332,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures" version = "0.3.28" @@ -932,7 +1394,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.53", ] [[package]] @@ -965,6 +1427,28 @@ dependencies = [ "slab", ] +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "fxprof-processed-profile" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27d12c0aed7f1e24276a241aadc4cb8ea9f83000f34bc062b7cc2d51e3b0fabd" +dependencies = [ + "bitflags 2.4.1", + "debugid", + "fxhash", + "serde", + "serde_json", +] + [[package]] name = "generic-array" version = "0.12.4" @@ -1008,12 +1492,44 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "ghash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +dependencies = [ + "opaque-debug 0.3.0", + "polyval", +] + +[[package]] +name = "gimli" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +dependencies = [ + "fallible-iterator 0.2.0", + "indexmap 1.9.3", + "stable_deref_trait", +] + [[package]] name = "gimli" version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +dependencies = [ + "fallible-iterator 0.3.0", + "indexmap 2.2.5", + "stable_deref_trait", +] + [[package]] name = "h2" version = "0.3.20" @@ -1035,32 +1551,37 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.11.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash 0.7.6", -] +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.12.3" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] [[package]] name = "hashbrown" -version = "0.14.0" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] [[package]] name = "hashlink" -version = "0.7.0" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "hashbrown 0.11.2", + "hashbrown 0.14.3", ] [[package]] @@ -1118,6 +1639,17 @@ dependencies = [ "tokio", ] +[[package]] +name = "hiro-system-kit" +version = "0.1.0" +source = "git+https://github.com/hirosystems/clarinet.git?rev=a5f9fea72230b893a7d1f90bdfda3a68aa48e908#a5f9fea72230b893a7d1f90bdfda3a68aa48e908" +dependencies = [ + "ansi_term", + "atty", + "lazy_static", + "tokio", +] + [[package]] name = "hmac" version = "0.7.1" @@ -1169,6 +1701,15 @@ dependencies = [ "hmac 0.8.1", ] +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "http" version = "0.2.9" @@ -1226,7 +1767,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -1300,6 +1841,12 @@ dependencies = [ "cc", ] +[[package]] +name = "id-arena" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" + [[package]] name = "idna" version = "0.4.0" @@ -1310,6 +1857,26 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -1322,12 +1889,22 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.0" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" dependencies = [ "equivalent", - "hashbrown 0.14.0", + "hashbrown 0.14.3", + "serde", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array 0.14.7", ] [[package]] @@ -1362,7 +1939,16 @@ checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi 0.3.2", "rustix", - "windows-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", ] [[package]] @@ -1371,6 +1957,35 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +[[package]] +name = "ittapi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b996fe614c41395cdaedf3cf408a9534851090959d90d54a535f675550b64b1" +dependencies = [ + "anyhow", + "ittapi-sys", + "log", +] + +[[package]] +name = "ittapi-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52f5385394064fa2c886205dba02598013ce83d3e92d33dbdc0c52fe0e7bf4fc" +dependencies = [ + "cc", +] + +[[package]] +name = "jobserver" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" version = "0.3.64" @@ -1511,7 +2126,7 @@ version = "0.82.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "125331201e3073707ac79c294c89021faa76c84da3a566a3749a2a93d295c98a" dependencies = [ - "ahash 0.8.3", + "ahash", "async-trait", "backoff", "derivative", @@ -1536,11 +2151,17 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + [[package]] name = "libc" -version = "0.2.147" +version = "0.2.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" [[package]] name = "libsecp256k1" @@ -1608,9 +2229,9 @@ dependencies = [ [[package]] name = "libsqlite3-sys" -version = "0.24.2" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "898745e570c7d0453cc1fbc4a701eb6c662ed54e8fec8b7d14be137ebeeb9d14" +checksum = "29f835d03d717946d28b1d1ed632eb6f0e24a299388ee623d0c23118d3e8a7fa" dependencies = [ "cc", "pkg-config", @@ -1634,9 +2255,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "lock_api" @@ -1654,11 +2275,38 @@ version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[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.5.0" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" + +[[package]] +name = "memfd" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" +dependencies = [ + "rustix", +] [[package]] name = "memoffset" @@ -1669,6 +2317,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + [[package]] name = "memzero" version = "0.1.0" @@ -1692,13 +2349,13 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -1720,9 +2377,25 @@ dependencies = [ "cc", "cfg-if", "libc", - "memoffset", + "memoffset 0.6.5", +] + +[[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-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-traits" version = "0.2.15" @@ -1760,6 +2433,18 @@ dependencies = [ "memchr", ] +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "crc32fast", + "hashbrown 0.14.3", + "indexmap 2.2.5", + "memchr", +] + [[package]] name = "once_cell" version = "1.18.0" @@ -1801,7 +2486,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.53", ] [[package]] @@ -1825,6 +2510,60 @@ dependencies = [ "num-traits", ] +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "p256k1" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a64d160b891178fb9d43d1a58ddcafb6502daeb54d810e5e92a7c3c9bfacc07" +dependencies = [ + "bitvec", + "bs58 0.4.0", + "cc", + "hex", + "itertools", + "num-traits", + "primitive-types", + "proc-macro2", + "quote", + "rand_core 0.6.4", + "rustfmt-wrapper", + "serde", + "sha2 0.10.7", + "syn 2.0.53", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8e946cc0cc711189c0b0249fb8b599cbeeab9784d83c415719368bb8d4ac64" +dependencies = [ + "arrayvec", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a296c3079b5fefbc499e1de58dc26c09b1b9a5952d26694ee89f04a43ebbb3e" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "parking_lot" version = "0.12.1" @@ -1845,25 +2584,31 @@ dependencies = [ "libc", "redox_syscall 0.3.5", "smallvec", - "windows-targets", + "windows-targets 0.48.1", ] [[package]] name = "password-hash" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" dependencies = [ "base64ct", "rand_core 0.6.4", "subtle 2.5.0", ] +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + [[package]] name = "pbkdf2" -version = "0.11.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", "hmac 0.12.1", @@ -1886,21 +2631,11 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" -[[package]] -name = "pest" -version = "2.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d2d1d55045829d65aad9d389139882ad623b33b904e7c9f1b10c5b8927298e5" -dependencies = [ - "thiserror", - "ucd-trie", -] - [[package]] name = "pico-args" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db8bcd96cb740d03149cbad5518db9fd87126a10ab519c011893b1754134c468" +checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" [[package]] name = "pin-project" @@ -1919,14 +2654,14 @@ checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.53", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -1934,12 +2669,66 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + [[package]] name = "pkg-config" version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +[[package]] +name = "platforms" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" + +[[package]] +name = "polynomial" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27abb6e4638dcecc65a92b50d7f1d87dd6dea987ba71db987b6bf881f4877e9d" +dependencies = [ + "num-traits", + "serde", +] + +[[package]] +name = "polyval" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug 0.3.0", + "universal-hash", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "pox-locking" +version = "2.4.0" +source = "git+https://github.com/stacks-network/stacks-core.git?branch=feat/clarity-wasm-next#5eb967cf4f58efcffe385c7a6fd2ed82e5f5da58" +dependencies = [ + "clarity", + "slog", + "stacks-common", +] + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -1960,6 +2749,27 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -1984,17 +2794,11 @@ dependencies = [ "version_check", ] -[[package]] -name = "proc-macro-hack" -version = "0.5.20+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" - [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] @@ -2010,13 +2814,19 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.31" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "radix_trie" version = "0.2.1" @@ -2104,6 +2914,26 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rayon" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + [[package]] name = "redox_syscall" version = "0.2.16" @@ -2122,6 +2952,15 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "redox_users" version = "0.4.3" @@ -2134,33 +2973,61 @@ dependencies = [ ] [[package]] -name = "regex" -version = "1.9.1" +name = "regalloc2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", + "hashbrown 0.13.2", + "log", + "rustc-hash", + "slice-group-by", + "smallvec", ] [[package]] -name = "regex-automata" -version = "0.3.3" +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", +] + +[[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.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-syntax 0.8.2", ] [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" @@ -2225,42 +3092,17 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "rstest" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2288c66aeafe3b2ed227c981f364f9968fa952ef0b30e84ada4486e7ee24d00a" -dependencies = [ - "cfg-if", - "proc-macro2", - "quote", - "rustc_version 0.4.0", - "syn 1.0.109", -] - -[[package]] -name = "rstest_reuse" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32c6cfaae58c048728261723a72b80a0aa9f3768e9a7da3b302a24d262525219" -dependencies = [ - "quote", - "rustc_version 0.3.3", - "syn 1.0.109", -] - [[package]] name = "rusqlite" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85127183a999f7db96d1a976a309eebbfb6ea3b0b400ddd8340190129de6eb7a" +checksum = "01e213bc3ecb39ac32e81e51ebe31fd888a940515173e3a18a35f8c6e896422a" dependencies = [ "bitflags 1.3.2", - "fallible-iterator", + "fallible-iterator 0.2.0", "fallible-streaming-iterator", "hashlink", "libsqlite3-sys", - "memchr", "serde_json", "smallvec", ] @@ -2272,22 +3114,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] -name = "rustc_version" -version = "0.2.3" +name = "rustc-hash" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver 0.9.0", -] +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] -name = "rustc_version" -version = "0.3.3" +name = "rustc-hex" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" [[package]] name = "rustc_version" @@ -2295,20 +3131,33 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.18", + "semver", +] + +[[package]] +name = "rustfmt-wrapper" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1adc9dfed5cc999077978cc7163b9282c5751c8d39827c4ea8c8c220ca5a440" +dependencies = [ + "serde", + "tempfile", + "thiserror", + "toml 0.8.8", + "toolchain_find", ] [[package]] name = "rustix" -version = "0.38.4" +version = "0.38.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "errno", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -2378,11 +3227,19 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + [[package]] name = "schemars" version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c613288622e5f0c3fdc5dbd4db1c5fbe752746b1d1a56a0630b78fd00de44f" +source = "git+https://github.com/hirosystems/schemars.git?branch=feat-chainhook-fixes#15fdd4711700114d57c090aad62516593bd4ca6d" dependencies = [ "dyn-clone", "schemars_derive", @@ -2393,8 +3250,7 @@ dependencies = [ [[package]] name = "schemars_derive" version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109da1e6b197438deb6db99952990c7f959572794b80ff93707d55a232545e7c" +source = "git+https://github.com/hirosystems/schemars.git?branch=feat-chainhook-fixes#15fdd4711700114d57c090aad62516593bd4ca6d" dependencies = [ "proc-macro2", "quote", @@ -2448,50 +3304,17 @@ dependencies = [ "zeroize", ] -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser 0.7.0", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser 0.10.2", -] - [[package]] name = "semver" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - [[package]] name = "serde" -version = "1.0.171" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] @@ -2508,13 +3331,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.171" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.53", ] [[package]] @@ -2530,16 +3353,25 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.105" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.2.5", "itoa", "ryu", "serde", ] +[[package]] +name = "serde_spanned" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +dependencies = [ + "serde", +] + [[package]] name = "serde_stacker" version = "0.1.10" @@ -2580,7 +3412,7 @@ version = "0.9.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd5f51e3fdb5b9cdd1577e1cb7a733474191b1aca6a72c2e50913241632c1180" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.2.5", "itoa", "ryu", "serde", @@ -2609,24 +3441,9 @@ checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", -] - -[[package]] -name = "sha1" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" -dependencies = [ - "sha1_smol", + "syn 2.0.53", ] -[[package]] -name = "sha1_smol" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" - [[package]] name = "sha2" version = "0.8.2" @@ -2674,24 +3491,21 @@ dependencies = [ [[package]] name = "sha3" -version = "0.9.1" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", + "digest 0.10.7", "keccak", - "opaque-debug 0.3.0", ] [[package]] -name = "sha3" -version = "0.10.8" +name = "sharded-slab" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ - "digest 0.10.7", - "keccak", + "lazy_static", ] [[package]] @@ -2703,6 +3517,15 @@ dependencies = [ "libc", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "rand_core 0.6.4", +] + [[package]] name = "slab" version = "0.4.8" @@ -2712,6 +3535,12 @@ dependencies = [ "autocfg", ] +[[package]] +name = "slice-group-by" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" + [[package]] name = "slog" version = "2.7.0" @@ -2749,7 +3578,7 @@ dependencies = [ "serde", "serde_json", "slog", - "time 0.3.23", + "time", ] [[package]] @@ -2773,7 +3602,7 @@ dependencies = [ "slog", "term", "thread_local", - "time 0.3.23", + "time", ] [[package]] @@ -2792,12 +3621,44 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "spin" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "sptr" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "stacker" version = "0.1.15" @@ -2814,16 +3675,17 @@ dependencies = [ [[package]] name = "stacks-common" version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c887baefb047fb7cd1c82d5a62e1deaca4b9ea9c701f965407db6c39a3fc902f" +source = "git+https://github.com/stacks-network/stacks-core.git?branch=feat/clarity-wasm-next#5eb967cf4f58efcffe385c7a6fd2ed82e5f5da58" dependencies = [ "chrono", - "curve25519-dalek", + "curve25519-dalek 2.0.0", "ed25519-dalek", + "hashbrown 0.14.3", "lazy_static", "libc", + "nix", "percent-encoding", - "rand 0.7.3", + "rand 0.8.5", "ripemd", "rusqlite", "secp256k1", @@ -2831,11 +3693,13 @@ dependencies = [ "serde_derive", "serde_json", "sha2 0.10.7", - "sha3 0.10.8", + "sha3", "slog", "slog-json", "slog-term", - "time 0.2.27", + "time", + "winapi", + "wsts", ] [[package]] @@ -2846,9 +3710,8 @@ dependencies = [ "clarinet-deployments", "clarinet-files", "clarity-repl", - "clarity-vm", "futures", - "hiro-system-kit", + "hiro-system-kit 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "http-body", "hyper", "k8s-openapi", @@ -2862,16 +3725,15 @@ dependencies = [ "strum_macros 0.24.3", "test-case", "tokio", - "toml", + "toml 0.5.11", "tower", "tower-test", ] [[package]] name = "stacks-rpc-client" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12eef9ff174e8345b414abbfa5ed7e271e772d1e6b2c3eaa9f7f02209c87f48e" +version = "2.4.0" +source = "git+https://github.com/hirosystems/clarinet.git?rev=a5f9fea72230b893a7d1f90bdfda3a68aa48e908#a5f9fea72230b893a7d1f90bdfda3a68aa48e908" dependencies = [ "clarity-repl", "hmac 0.12.1", @@ -2886,62 +3748,10 @@ dependencies = [ ] [[package]] -name = "standback" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff" -dependencies = [ - "version_check", -] - -[[package]] -name = "stdweb" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" -dependencies = [ - "discard", - "rustc_version 0.2.3", - "stdweb-derive", - "stdweb-internal-macros", - "stdweb-internal-runtime", - "wasm-bindgen", -] - -[[package]] -name = "stdweb-derive" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" -dependencies = [ - "proc-macro2", - "quote", - "serde", - "serde_derive", - "syn 1.0.109", -] - -[[package]] -name = "stdweb-internal-macros" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" -dependencies = [ - "base-x", - "proc-macro2", - "quote", - "serde", - "serde_derive", - "serde_json", - "sha1", - "syn 1.0.109", -] - -[[package]] -name = "stdweb-internal-runtime" -version = "0.1.5" +name = "static_assertions" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "str-buf" @@ -2949,6 +3759,12 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + [[package]] name = "strum" version = "0.23.0" @@ -3015,9 +3831,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.26" +version = "2.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970" +checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" dependencies = [ "proc-macro2", "quote", @@ -3030,6 +3846,31 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "target-lexicon" +version = "0.12.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" + +[[package]] +name = "tempfile" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +dependencies = [ + "cfg-if", + "fastrand", + "redox_syscall 0.4.1", + "rustix", + "windows-sys 0.52.0", +] + [[package]] name = "term" version = "0.7.0" @@ -3078,22 +3919,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.43" +version = "1.0.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42" +checksum = "6e3de26b0965292219b4287ff031fcba86837900fe9cd2b34ea8ad893c0953d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.43" +version = "1.0.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f" +checksum = "268026685b2be38d7103e9e507c938a1fcb3d7e6eb15e87870b617bf37b6d581" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.53", ] [[package]] @@ -3108,82 +3949,37 @@ dependencies = [ [[package]] name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - -[[package]] -name = "time" -version = "0.2.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242" -dependencies = [ - "const_fn", - "libc", - "standback", - "stdweb", - "time-macros 0.1.1", - "version_check", - "winapi", -] - -[[package]] -name = "time" -version = "0.3.23" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59e399c068f43a5d116fedaf73b203fa4f9c519f17e2b34f63221d3792f81446" +checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" dependencies = [ + "deranged", "itoa", "libc", + "num-conv", "num_threads", + "powerfmt", "serde", "time-core", - "time-macros 0.2.10", + "time-macros", ] [[package]] name = "time-core" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" - -[[package]] -name = "time-macros" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1" -dependencies = [ - "proc-macro-hack", - "time-macros-impl", -] +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.10" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96ba15a897f3c86766b757e5ac7221554c6750054d74d5b28844fce5fb36a6c4" +checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" dependencies = [ + "num-conv", "time-core", ] -[[package]] -name = "time-macros-impl" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f" -dependencies = [ - "proc-macro-hack", - "proc-macro2", - "quote", - "standback", - "syn 1.0.109", -] - [[package]] name = "tiny-hderive" version = "0.3.0" @@ -3214,11 +4010,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.1" +version = "1.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", @@ -3227,9 +4022,9 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.5", "tokio-macros", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -3244,13 +4039,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.53", ] [[package]] @@ -3301,9 +4096,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" dependencies = [ "bytes", "futures-core", @@ -3324,6 +4119,64 @@ dependencies = [ "serde", ] +[[package]] +name = "toml" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.21.0", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.2.5", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" +dependencies = [ + "indexmap 2.2.5", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toolchain_find" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc8c9a7f0a2966e1acdaf0461023d0b01471eeead645370cf4c3f5cff153f2a" +dependencies = [ + "home", + "once_cell", + "regex", + "semver", + "walkdir", +] + [[package]] name = "tower" version = "0.4.13" @@ -3348,7 +4201,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ac8060a61f8758a61562f6fb53ba3cbe1ca906f001df2e53cccddcdbee91e7c" dependencies = [ "base64 0.21.4", - "bitflags 2.3.3", + "bitflags 2.4.1", "bytes", "futures-core", "futures-util", @@ -3409,7 +4262,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.53", ] [[package]] @@ -3419,6 +4272,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" 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]] @@ -3443,10 +4326,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] -name = "ucd-trie" -version = "0.1.6" +name = "uint" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] [[package]] name = "unicode-bidi" @@ -3481,6 +4370,22 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle 2.5.0", +] + [[package]] name = "unsafe-libyaml" version = "0.2.9" @@ -3511,6 +4416,18 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" + +[[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" @@ -3523,6 +4440,44 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "walkdir" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "walrus" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c03529cd0c4400a2449f640d2f27cd1b48c3065226d15e26d98e4429ab0adb7" +dependencies = [ + "anyhow", + "gimli 0.26.2", + "id-arena", + "leb128", + "log", + "walrus-macro", + "wasm-encoder 0.29.0", + "wasmparser 0.80.2", +] + +[[package]] +name = "walrus-macro" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e5bd22c71e77d60140b0bd5be56155a37e5bd14e24f5f87298040d0cc40d7" +dependencies = [ + "heck 0.3.3", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "want" version = "0.3.1" @@ -3538,12 +4493,6 @@ version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3571,7 +4520,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.53", "wasm-bindgen-shared", ] @@ -3605,7 +4554,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.53", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3616,6 +4565,354 @@ version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +[[package]] +name = "wasm-encoder" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18c41dbd92eaebf3612a39be316540b8377c871cb9bde6b064af962984912881" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasm-encoder" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "822b645bf4f2446b949776ffca47e2af60b167209ffb70814ef8779d299cd421" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasm-encoder" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "111495d6204760238512f57a9af162f45086504da332af210f2f75dd80b34f1d" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasmparser" +version = "0.80.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "449167e2832691a1bff24cde28d2804e90e09586a448c8e76984792c44334a6b" + +[[package]] +name = "wasmparser" +version = "0.116.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a58e28b80dd8340cb07b8242ae654756161f6fc8d0038123d679b7b99964fa50" +dependencies = [ + "indexmap 2.2.5", + "semver", +] + +[[package]] +name = "wasmtime" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "642e12d108e800215263e3b95972977f473957923103029d7d617db701d67ba4" +dependencies = [ + "anyhow", + "async-trait", + "bincode", + "bumpalo", + "cfg-if", + "fxprof-processed-profile", + "indexmap 2.2.5", + "libc", + "log", + "object 0.32.2", + "once_cell", + "paste", + "psm", + "rayon", + "serde", + "serde_derive", + "serde_json", + "target-lexicon", + "wasm-encoder 0.36.2", + "wasmparser 0.116.1", + "wasmtime-cache", + "wasmtime-component-macro", + "wasmtime-cranelift", + "wasmtime-environ", + "wasmtime-fiber", + "wasmtime-jit", + "wasmtime-runtime", + "wat", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-asm-macros" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "beada8bb15df52503de0a4c58de4357bfd2f96d9a44a6e547bad11efdd988b47" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "wasmtime-cache" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aba5bf44d044d25892c03fb3534373936ee204141ff92bac8297787ac7f22318" +dependencies = [ + "anyhow", + "base64 0.21.4", + "bincode", + "directories-next", + "log", + "rustix", + "serde", + "serde_derive", + "sha2 0.10.7", + "toml 0.5.11", + "windows-sys 0.48.0", + "zstd", +] + +[[package]] +name = "wasmtime-component-macro" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ccba556991465cca68d5a54769684bcf489fb532059da55105f851642d52c1" +dependencies = [ + "anyhow", + "proc-macro2", + "quote", + "syn 2.0.53", + "wasmtime-component-util", + "wasmtime-wit-bindgen", + "wit-parser", +] + +[[package]] +name = "wasmtime-component-util" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05492a177a6006cb73f034d6e9a6fad6da55b23c4398835cb0012b5fa51ecf67" + +[[package]] +name = "wasmtime-cranelift" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe2e7532f1d6adbcc57e69bb6a7c503f0859076d07a9b4b6aabe8021ff8a05fd" +dependencies = [ + "anyhow", + "cfg-if", + "cranelift-codegen", + "cranelift-control", + "cranelift-entity", + "cranelift-frontend", + "cranelift-native", + "cranelift-wasm", + "gimli 0.28.1", + "log", + "object 0.32.2", + "target-lexicon", + "thiserror", + "wasmparser 0.116.1", + "wasmtime-cranelift-shared", + "wasmtime-environ", + "wasmtime-versioned-export-macros", +] + +[[package]] +name = "wasmtime-cranelift-shared" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c98d5378a856cbf058d36278627dfabf0ed68a888142958c7ae8e6af507dafa" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-control", + "cranelift-native", + "gimli 0.28.1", + "object 0.32.2", + "target-lexicon", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-environ" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6d33a9f421da810a070cd56add9bc51f852bd66afbb8b920489d6242f15b70e" +dependencies = [ + "anyhow", + "cranelift-entity", + "gimli 0.28.1", + "indexmap 2.2.5", + "log", + "object 0.32.2", + "serde", + "serde_derive", + "target-lexicon", + "thiserror", + "wasmparser 0.116.1", + "wasmtime-types", +] + +[[package]] +name = "wasmtime-fiber" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "404741f4c6d7f4e043be2e8b466406a2aee289ccdba22bf9eba6399921121b97" +dependencies = [ + "anyhow", + "cc", + "cfg-if", + "rustix", + "wasmtime-asm-macros", + "wasmtime-versioned-export-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-jit" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d0994a86d6dca5f7d9740d7f2bd0568be06d2014a550361dc1c397d289d81ef" +dependencies = [ + "addr2line 0.21.0", + "anyhow", + "bincode", + "cfg-if", + "cpp_demangle", + "gimli 0.28.1", + "ittapi", + "log", + "object 0.32.2", + "rustc-demangle", + "rustix", + "serde", + "serde_derive", + "target-lexicon", + "wasmtime-environ", + "wasmtime-jit-debug", + "wasmtime-jit-icache-coherence", + "wasmtime-runtime", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-jit-debug" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e0c4b74e606d1462d648631d5bc328e3d5b14e7f9d3ff93bc6db062fb8c5cd8" +dependencies = [ + "object 0.32.2", + "once_cell", + "rustix", + "wasmtime-versioned-export-macros", +] + +[[package]] +name = "wasmtime-jit-icache-coherence" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3090a69ba1476979e090aa7ed4bc759178bafdb65b22f98b9ba24fc6e7e578d5" +dependencies = [ + "cfg-if", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-runtime" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b993ac8380385ed67bf71b51b9553edcf1ab0801b78a805a067de581b9a3e88a" +dependencies = [ + "anyhow", + "cc", + "cfg-if", + "indexmap 2.2.5", + "libc", + "log", + "mach", + "memfd", + "memoffset 0.9.0", + "paste", + "rand 0.8.5", + "rustix", + "sptr", + "wasm-encoder 0.36.2", + "wasmtime-asm-macros", + "wasmtime-environ", + "wasmtime-fiber", + "wasmtime-jit-debug", + "wasmtime-versioned-export-macros", + "wasmtime-wmemcheck", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-types" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b5778112fcab2dc3d4371f4203ab8facf0c453dd94312b0a88dd662955e64e0" +dependencies = [ + "cranelift-entity", + "serde", + "serde_derive", + "thiserror", + "wasmparser 0.116.1", +] + +[[package]] +name = "wasmtime-versioned-export-macros" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f50f51f8d79bfd2aa8e9d9a0ae7c2d02b45fe412e62ff1b87c0c81b07c738231" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.53", +] + +[[package]] +name = "wasmtime-wit-bindgen" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b804dfd3d0c0d6d37aa21026fe7772ba1a769c89ee4f5c4f13b82d91d75216f" +dependencies = [ + "anyhow", + "heck 0.4.1", + "indexmap 2.2.5", + "wit-parser", +] + +[[package]] +name = "wasmtime-wmemcheck" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b6060bc082cc32d9a45587c7640e29e3c7b89ada82677ac25d87850aaccb368" + +[[package]] +name = "wast" +version = "70.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee4bc54bbe1c6924160b9f75e374a1d07532e7580eb632c0ee6cdd109bb217e" +dependencies = [ + "leb128", + "memchr", + "unicode-width", + "wasm-encoder 0.39.0", +] + +[[package]] +name = "wat" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f0dce8cdc288c717cf01e461a1e451a7b8445d53451123536ba576e423a101a" +dependencies = [ + "wast", +] + [[package]] name = "web-sys" version = "0.3.64" @@ -3661,6 +4958,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -3673,7 +4979,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets", + "windows-targets 0.48.1", ] [[package]] @@ -3682,7 +4988,16 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.1", +] + +[[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.0", ] [[package]] @@ -3691,13 +5006,28 @@ version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -3706,42 +5036,93 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + +[[package]] +name = "winnow" +version = "0.5.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.10.1" @@ -3751,6 +5132,54 @@ dependencies = [ "winapi", ] +[[package]] +name = "wit-parser" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df4913a2219096373fd6512adead1fb77ecdaa59d7fc517972a7d30b12f625be" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.2.5", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", +] + +[[package]] +name = "wsts" +version = "8.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467aa8e40ed0277d19922fd0e7357c16552cb900e5138f61a48ac23c4b7878e0" +dependencies = [ + "aes-gcm", + "bs58 0.5.0", + "hashbrown 0.14.3", + "hex", + "num-traits", + "p256k1", + "polynomial", + "primitive-types", + "rand_core 0.6.4", + "serde", + "sha2 0.10.7", + "thiserror", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "yaml-rust" version = "0.4.5" @@ -3760,8 +5189,57 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "zerocopy" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.53", +] + [[package]] name = "zeroize" version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.9+zstd.1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/Cargo.toml b/Cargo.toml index cb663ca..79f7dc3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,9 +15,9 @@ repository = "https://github.com/hirosystems/stacks-devnet-api" kube = { version="0.82.2", features = ["client", "runtime"] } k8s-openapi = { version = "0.18.0", features = ["v1_25"] } futures = "0.3.28" -tokio = { version = "1.27.0", features = ["full"] } +tokio = { version = "1.35.1", features = ["full"] } serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0.96" +serde_json = "1.0.114" serde_yaml = "0.8.23" hyper = { version = "0.14", features = ["full"] } tower = "0.4.13" @@ -25,11 +25,17 @@ http-body = "0.4.5" hiro-system-kit = {version = "0.1.0", features = ["log"]} strum_macros = "0.24.3" strum = "0.24.1" -clarity-vm = "2.1.1" -clarity-repl = "1.8.0" -clarinet-files = {version = "1.0.3" } -chainhook-types = "1.0" -clarinet-deployments = {version = "1.0.3" } +# clarity-repl = "1.8.0" +# clarity-repl = {version = "2.2.0", path = "../clarinet/components/clarity-repl" } +clarity-repl = {version = "2.3.1", git = "https://github.com/hirosystems/clarinet.git", rev="a5f9fea72230b893a7d1f90bdfda3a68aa48e908" } +# clarinet-files = {version = "1.0.3" } +# clarinet-files = {version = "2.2.0", path = "../clarinet/components/clarinet-files" } +clarinet-files = {version = "2.3.1", git = "https://github.com/hirosystems/clarinet.git", rev="a5f9fea72230b893a7d1f90bdfda3a68aa48e908" } +# clarinet-deployments = {version = "1.0.3" } +# clarinet-deployments = {version = "2.2.0", path = "../clarinet/components/clarinet-deployments" } +clarinet-deployments = {version = "2.3.1", git = "https://github.com/hirosystems/clarinet.git", rev="a5f9fea72230b893a7d1f90bdfda3a68aa48e908" } +# chainhook-types = "1.0" +chainhook-types = { version = "1.3", git = "https://github.com/hirosystems/chainhook.git", branch="chore/update-clarinet-and-clarity" } toml = "0.5.9" [dev-dependencies] diff --git a/Dockerfile b/Dockerfile index d2278f1..f046520 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,10 @@ FROM rust:bullseye as builder -RUN apt update && apt install -y ca-certificates pkg-config libssl-dev +RUN apt update && apt install -y ca-certificates pkg-config libssl-dev libclang-dev WORKDIR /src COPY . /src RUN mkdir /out +RUN rustup component add rustfmt RUN cargo build --release --manifest-path ./Cargo.toml RUN cp target/release/stacks-devnet-api /out diff --git a/rust-toolchain b/rust-toolchain new file mode 100644 index 0000000..292fe49 --- /dev/null +++ b/rust-toolchain @@ -0,0 +1,2 @@ +[toolchain] +channel = "stable" diff --git a/src/config.rs b/src/config.rs index efea780..a1a7017 100644 --- a/src/config.rs +++ b/src/config.rs @@ -30,7 +30,7 @@ pub struct StacksDevnetConfig { disable_bitcoin_explorer: Option, // todo: currently unused disable_stacks_explorer: Option, // todo: currently unused deployment_plan: DeploymentSpecification, - network_manifest: NetworkManifest, + pub network_manifest: NetworkManifest, project_manifest: ProjectManifest, } impl StacksDevnetConfig { diff --git a/src/lib.rs b/src/lib.rs index 400de22..474cd54 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,7 @@ use chainhook_types::StacksNetwork; -use clarinet_files::compute_addresses; +use clarinet_files::{ + compute_addresses, DEFAULT_STACKS_API_IMAGE_NAKA, DEFAULT_STACKS_NODE_IMAGE_NAKA, +}; use futures::future::try_join4; use hiro_system_kit::{slog, Logger}; use hyper::{body::Bytes, Body, Client as HttpClient, Request, Response, Uri}; @@ -19,7 +21,7 @@ use resources::{ deployment::StacksDevnetDeployment, pvc::StacksDevnetPvc, service::{get_service_port, ServicePort}, - stateful_set::StacksDevnetStatefulSet, + stateful_set::{SignerIdx, StacksDevnetStatefulSet}, StacksDevnetResource, }; use serde::{de::DeserializeOwned, Deserialize, Serialize}; @@ -45,7 +47,6 @@ use crate::resources::service::{get_service_url, StacksDevnetService}; const COMPONENT_SELECTOR: &str = "app.kubernetes.io/component"; const USER_SELECTOR: &str = "app.kubernetes.io/instance"; const NAME_SELECTOR: &str = "app.kubernetes.io/name"; - #[derive(Clone, Debug)] pub struct DevNetError { pub message: String, @@ -222,6 +223,21 @@ impl StacksDevnetApiK8sManager { sleep(Duration::from_secs(5)); self.deploy_stacks_blockchain(&config).await?; + if config.devnet_config.use_nakamoto { + self.deploy_stacks_signer( + &config, + SignerIdx::Signer0, + "7287ba251d44a4d3fd9276c88ce34c5c52a038955511cccaf77e61068649c17801", + ) + .await?; + + self.deploy_stacks_signer( + &config, + SignerIdx::Signer1, + "530d9f61984c888536871c6573073bdfc0058896dc1adfe9a6a10dfacadc209101", + ) + .await?; + } if !config.disable_stacks_api { self.deploy_stacks_blockchain_api(&config).await?; @@ -251,7 +267,25 @@ impl StacksDevnetApiK8sManager { let stateful_sets: Vec = StacksDevnetStatefulSet::iter() .map(|p| p.to_string()) .collect(); + for stateful_set in stateful_sets { + // todo: remove once Clarinet removes `use_nakamoto` + // becuase the devnet api is stateless, we don't have access to the config + // that was used to create the devnet originally. So, we don't know if this + // devnet has the nakamoto assets deployed or not. + // So when deleting the signer assets, just skip instead of erroring if they don't exist + if &stateful_set.as_str() == &"stacks-signer-0" + || &stateful_set.as_str() == &"stacks-signer-1" + { + match self + .check_resource_exists::(namespace, &stateful_set) + .await + { + Ok(true) | Err(_) => {} + Ok(false) => continue, + } + }; + if let Err(e) = self .delete_resource::(namespace, &stateful_set) .await @@ -264,6 +298,19 @@ impl StacksDevnetApiK8sManager { .map(|c| c.to_string()) .collect(); for configmap in configmaps { + // todo: remove once Clarinet removes `use_nakamoto` + if &configmap.as_str() == &"stacks-signer-0" + || &configmap.as_str() == &"stacks-signer-1" + { + match self + .check_resource_exists::(namespace, &configmap) + .await + { + Ok(true) | Err(_) => {} + Ok(false) => continue, + } + }; + if let Err(e) = self .delete_resource::(namespace, &configmap) .await @@ -275,6 +322,18 @@ impl StacksDevnetApiK8sManager { let services: Vec = StacksDevnetService::iter().map(|s| s.to_string()).collect(); for service in services { + // todo: remove once Clarinet removes `use_nakamoto` + if &service.as_str() == &"stacks-signer-0" + || &service.as_str() == &"stacks-signer-1" + { + match self + .check_resource_exists::(namespace, &service) + .await + { + Ok(true) | Err(_) => {} + Ok(false) => continue, + } + }; if let Err(e) = self.delete_resource::(namespace, &service).await { errors.push(e); } @@ -283,6 +342,18 @@ impl StacksDevnetApiK8sManager { let pvcs: Vec = StacksDevnetPvc::iter().map(|pvc| pvc.to_string()).collect(); for pvc in pvcs { + // todo: remove once Clarinet removes `use_nakamoto` + if &pvc.as_str() == &"stacks-signer-0" || &pvc.as_str() == &"stacks-signer-1" { + match self + .check_resource_exists_by_label::( + namespace, &pvc, user_id, + ) + .await + { + Ok(true) | Err(_) => {} + Ok(false) => continue, + } + }; if let Err(e) = self .delete_resource_by_label::(namespace, &pvc, user_id) .await @@ -384,8 +455,13 @@ impl StacksDevnetApiK8sManager { return Ok(true); } } - - for stateful_set in StacksDevnetStatefulSet::iter() { + // todo: we are not checking for assets that are only deployed if use_nakamoto is true (remove filter once `use_nakamoto` is no longer around) + for stateful_set in StacksDevnetStatefulSet::iter().filter(|sts| match sts { + StacksDevnetStatefulSet::StacksSigner0 | StacksDevnetStatefulSet::StacksSigner1 => { + false + } + _ => true, + }) { if self .check_resource_exists::(namespace, &stateful_set.to_string()) .await? @@ -393,8 +469,11 @@ impl StacksDevnetApiK8sManager { return Ok(true); } } - - for pod in StacksDevnetPod::iter() { + // todo: remove filter when nakamoto is stable + for pod in StacksDevnetPod::iter().filter(|pod| match pod { + StacksDevnetPod::StacksSigner0 | StacksDevnetPod::StacksSigner1 => false, + _ => true, + }) { if self .check_resource_exists_by_label::(namespace, &pod.to_string(), user_id) .await? @@ -403,7 +482,11 @@ impl StacksDevnetApiK8sManager { } } - for configmap in StacksDevnetConfigmap::iter() { + // todo: remove filter when nakamoto is stable + for configmap in StacksDevnetConfigmap::iter().filter(|c| match c { + StacksDevnetConfigmap::StacksSigner0 | StacksDevnetConfigmap::StacksSigner1 => false, + _ => true, + }) { if self .check_resource_exists::(namespace, &configmap.to_string()) .await? @@ -412,7 +495,11 @@ impl StacksDevnetApiK8sManager { } } - for service in StacksDevnetService::iter() { + // todo: remove filter when nakamoto is stable + for service in StacksDevnetService::iter().filter(|svc| match svc { + StacksDevnetService::StacksSigner0 | StacksDevnetService::StacksSigner1 => false, + _ => true, + }) { if self .check_resource_exists::(namespace, &service.to_string()) .await? @@ -421,7 +508,11 @@ impl StacksDevnetApiK8sManager { } } - for pvc in StacksDevnetPvc::iter() { + // todo: remove filter when nakamoto is stable + for pvc in StacksDevnetPvc::iter().filter(|pvc| match pvc { + StacksDevnetPvc::StacksSigner0 | StacksDevnetPvc::StacksSigner1 => false, + _ => true, + }) { if self .check_resource_exists_by_label::( namespace, @@ -455,8 +546,13 @@ impl StacksDevnetApiK8sManager { return Ok(false); } } - - for stateful_set in StacksDevnetStatefulSet::iter() { + // todo: we are not checking for assets that are only deployed if use_nakamoto is true (remove filter once `use_nakamoto` is no longer around) + for stateful_set in StacksDevnetStatefulSet::iter().filter(|sts| match sts { + StacksDevnetStatefulSet::StacksSigner0 | StacksDevnetStatefulSet::StacksSigner1 => { + false + } + _ => true, + }) { if !self .check_resource_exists::(namespace, &stateful_set.to_string()) .await? @@ -465,7 +561,11 @@ impl StacksDevnetApiK8sManager { } } - for configmap in StacksDevnetConfigmap::iter() { + // todo: remove filter when nakamoto is stable + for configmap in StacksDevnetConfigmap::iter().filter(|c| match c { + StacksDevnetConfigmap::StacksSigner0 | StacksDevnetConfigmap::StacksSigner1 => false, + _ => true, + }) { if !self .check_resource_exists::(namespace, &configmap.to_string()) .await? @@ -474,7 +574,11 @@ impl StacksDevnetApiK8sManager { } } - for service in StacksDevnetService::iter() { + // todo: remove filter when nakamoto is stable + for service in StacksDevnetService::iter().filter(|svc| match svc { + StacksDevnetService::StacksSigner0 | StacksDevnetService::StacksSigner1 => false, + _ => true, + }) { if !self .check_resource_exists::(namespace, &service.to_string()) .await? @@ -939,16 +1043,19 @@ impl StacksDevnetApiK8sManager { async fn deploy_deployment( &self, - deployment: StacksDevnetDeployment, + deployment_type: StacksDevnetDeployment, namespace: &str, user_id: &str, + use_nakamoto: bool, ) -> Result<(), DevNetError> { + let deployment_type_moved = deployment_type.clone(); let mut deployment: Deployment = - self.get_resource_from_file(StacksDevnetResource::Deployment(deployment))?; + self.get_resource_from_file(StacksDevnetResource::Deployment(deployment_type_moved))?; let key = "app.kubernetes.io/instance".to_string(); let user_id = user_id.to_owned(); + // set deployment metadata labels to include user id if let Some(mut labels) = deployment.clone().metadata.labels { if let Some(label) = labels.get_mut(&key) { *label = user_id.clone(); @@ -958,6 +1065,7 @@ impl StacksDevnetApiK8sManager { deployment.metadata.labels = Some(labels); } + // set deployment spec with user-specific data if let Some(mut spec) = deployment.clone().spec { if let Some(mut match_labels) = spec.selector.match_labels { if let Some(match_label) = match_labels.get_mut(&key) { @@ -968,7 +1076,8 @@ impl StacksDevnetApiK8sManager { spec.selector.match_labels = Some(match_labels); } - if let Some(mut metadata) = spec.template.metadata { + let mut template = spec.template; + if let Some(mut metadata) = template.metadata { if let Some(mut labels) = metadata.labels { if let Some(label) = labels.get_mut(&key) { *label = user_id.clone(); @@ -977,8 +1086,40 @@ impl StacksDevnetApiK8sManager { } metadata.labels = Some(labels); } - spec.template.metadata = Some(metadata); + template.metadata = Some(metadata); + } + + if use_nakamoto { + match &deployment_type { + StacksDevnetDeployment::StacksBlockchain => { + if let Some(mut pod_spec) = template.spec { + for container in &mut pod_spec.containers { + if container.name == "stacks-blockchain" { + container.image = + Some(DEFAULT_STACKS_NODE_IMAGE_NAKA.to_owned()); + } + } + template.spec = Some(pod_spec); + } else { + let msg = format!( + "failed to set nakamoto image for RESOURCE: deployment, NAME: {}, NAMESPACE: {}", + deployment_type, namespace + ); + self.ctx.try_log(|logger| slog::error!(logger, "{}", msg)); + return Err(DevNetError { + message: msg, + code: 500, + }); + } + } + // note: initially the plan was to conditionally upgrade the version of clarinet we're using + // however, when the platform sends us a config from `clarinet devnet package`, it will contain + // new fields that the devnet needs to handle; if we have multiple clarinet versions here, + // we need multiple clarinet versions at the platform level, and multiple config types + StacksDevnetDeployment::BitcoindNode => {} + } } + spec.template = template; deployment.spec = Some(spec); } @@ -990,12 +1131,14 @@ impl StacksDevnetApiK8sManager { async fn deploy_stateful_set( &self, - stateful_set: StacksDevnetStatefulSet, + stateful_set_type: StacksDevnetStatefulSet, namespace: &str, user_id: &str, + use_nakamoto: bool, ) -> Result<(), DevNetError> { - let mut stateful_set: StatefulSet = - self.get_resource_from_file(StacksDevnetResource::StatefulSet(stateful_set))?; + let stateful_set_type_moved = stateful_set_type.clone(); + let mut stateful_set: StatefulSet = self + .get_resource_from_file(StacksDevnetResource::StatefulSet(stateful_set_type_moved))?; let key = "app.kubernetes.io/instance".to_string(); let user_id = user_id.to_owned(); @@ -1018,7 +1161,8 @@ impl StacksDevnetApiK8sManager { spec.selector.match_labels = Some(match_labels); } - if let Some(mut metadata) = spec.template.metadata { + let mut template = spec.template; + if let Some(mut metadata) = template.metadata { if let Some(mut labels) = metadata.labels { if let Some(label) = labels.get_mut(&key) { *label = user_id.clone(); @@ -1027,9 +1171,34 @@ impl StacksDevnetApiK8sManager { } metadata.labels = Some(labels); } - spec.template.metadata = Some(metadata); + template.metadata = Some(metadata); } + if use_nakamoto { + match &stateful_set_type { + StacksDevnetStatefulSet::StacksBlockchainApi => { + if let Some(mut pod_spec) = template.spec { + for container in &mut pod_spec.containers { + if container.name == "stacks-blockchain-api" { + container.image = + Some(DEFAULT_STACKS_API_IMAGE_NAKA.to_owned()); + } + } + template.spec = Some(pod_spec); + } else { + let msg = format!("failed to set nakamoto image for RESOURCE: deployment, NAME: {}, NAMESPACE: {}", stateful_set_type, namespace); + self.ctx.try_log(|logger| slog::error!(logger, "{}", msg)); + return Err(DevNetError { + message: msg, + code: 500, + }); + } + } + StacksDevnetStatefulSet::StacksSigner0 + | StacksDevnetStatefulSet::StacksSigner1 => {} + } + } + spec.template = template; stateful_set.spec = Some(spec); } @@ -1071,6 +1240,7 @@ impl StacksDevnetApiK8sManager { service.spec = Some(spec); } + service.metadata.namespace = Some(namespace.to_owned()); self.deploy_resource(namespace, service, "service").await } @@ -1185,8 +1355,13 @@ impl StacksDevnetApiK8sManager { ) .await?; - self.deploy_deployment(StacksDevnetDeployment::BitcoindNode, &namespace, &user_id) - .await?; + self.deploy_deployment( + StacksDevnetDeployment::BitcoindNode, + &namespace, + &user_id, + config.devnet_config.use_nakamoto, + ) + .await?; self.deploy_service(StacksDevnetService::BitcoindNode, namespace, &user_id) .await?; @@ -1218,12 +1393,15 @@ impl StacksDevnetApiK8sManager { working_dir = "/devnet" rpc_bind = "0.0.0.0:{}" p2p_bind = "0.0.0.0:{}" + data_url = "http://127.0.0.1:{}" + p2p_address = "127.0.0.1:{}" miner = true seed = "{}" local_peer_seed = "{}" pox_sync_sample_secs = 0 wait_time_for_blocks = 0 - wait_time_for_microblocks = {} + wait_time_for_microblocks = 0 + mine_microblocks = false microblock_frequency = 1000 [connection_options] @@ -1234,18 +1412,24 @@ impl StacksDevnetApiK8sManager { disable_inbound_handshakes = true disable_inbound_walks = true public_ip_address = "1.1.1.1:1234" + block_proposal_token = "12345" [miner] + min_tx_fee = 1 first_attempt_time_ms = {} - subsequent_attempt_time_ms = {} + second_attempt_time_ms = {} block_reward_recipient = "{}" - # microblock_attempt_time_ms = 15000 + wait_for_block_download = false + microblock_attempt_time_ms = 10 + self_signing_seed = 1 + mining_key = "19ec1c3e31d139c989a23a27eac60d1abfad5277d3ae9604242514c738258efa01" "#, get_service_port(StacksDevnetService::StacksBlockchain, ServicePort::RPC).unwrap(), get_service_port(StacksDevnetService::StacksBlockchain, ServicePort::P2P).unwrap(), + get_service_port(StacksDevnetService::StacksBlockchain, ServicePort::RPC).unwrap(), + get_service_port(StacksDevnetService::StacksBlockchain, ServicePort::P2P).unwrap(), stacks_miner_secret_key_hex, stacks_miner_secret_key_hex, - devnet_config.stacks_node_wait_time_for_microblocks, devnet_config.stacks_node_first_attempt_time_ms, devnet_config.stacks_node_subsequent_attempt_time_ms, miner_coinbase_recipient @@ -1301,22 +1485,69 @@ impl StacksDevnetApiK8sManager { .unwrap(), )); + if devnet_config.use_nakamoto { + for signer_idx in SignerIdx::iter() { + let (url, port) = match signer_idx { + SignerIdx::Signer0 => ( + get_service_url(&namespace, StacksDevnetService::StacksSigner0), + get_service_port( + StacksDevnetService::StacksSigner0, + ServicePort::Event, + ) + .unwrap(), + ), + SignerIdx::Signer1 => ( + get_service_url(&namespace, StacksDevnetService::StacksSigner1), + get_service_port( + StacksDevnetService::StacksSigner1, + ServicePort::Event, + ) + .unwrap(), + ), + }; + + stacks_conf.push_str(&format!( + r#" + # Add stacks-signer-{} as an event observer + [[events_observer]] + endpoint = "{}:{}" + retry_count = 255 + include_data_events = false + events_keys = ["stackerdb", "block_proposal", "burn_blocks"] + "#, + signer_idx.to_string(), + url, + port, + )); + } + } + stacks_conf.push_str(&format!( r#" [burnchain] chain = "bitcoin" - mode = "krypton" + mode = "{}" + magic_bytes = "T3" + pox_prepare_length = 4 + pox_reward_length = 10 + burn_fee_cap = 20_000 poll_time_secs = 1 timeout = 30 peer_host = "{}" rpc_ssl = false - wallet_name = "devnet" + wallet_name = "{}" username = "{}" password = "{}" rpc_port = {} peer_port = {} "#, + if devnet_config.use_nakamoto { + "nakamoto-neon" + } else { + "krypton" + }, bitcoind_chain_coordinator_host, + devnet_config.miner_wallet_name, devnet_config.bitcoin_node_username, devnet_config.bitcoin_node_password, chain_coordinator_ingestion_port, @@ -1325,8 +1556,6 @@ impl StacksDevnetApiK8sManager { stacks_conf.push_str(&format!( r#" - pox_2_activation = {} - [[burnchain.epochs]] epoch_name = "1.0" start_height = 0 @@ -1343,16 +1572,38 @@ impl StacksDevnetApiK8sManager { epoch_name = "2.1" start_height = {} - # [[burnchain.epochs]] - # epoch_name = "2.2" - # start_height = {} + [[burnchain.epochs]] + epoch_name = "2.2" + start_height = {} + + [[burnchain.epochs]] + epoch_name = "2.3" + start_height = {} + + [[burnchain.epochs]] + epoch_name = "2.4" + start_height = {} "#, - devnet_config.pox_2_activation, devnet_config.epoch_2_0, devnet_config.epoch_2_05, devnet_config.epoch_2_1, devnet_config.epoch_2_2, + devnet_config.epoch_2_3, + devnet_config.epoch_2_4 )); + if devnet_config.use_nakamoto { + stacks_conf.push_str(&format!( + r#" + [[burnchain.epochs]] + epoch_name = "2.5" + start_height = {} + [[burnchain.epochs]] + epoch_name = "3.0" + start_height = {} + "#, + devnet_config.epoch_2_5, devnet_config.epoch_3_0, + )); + } stacks_conf }; @@ -1367,6 +1618,7 @@ impl StacksDevnetApiK8sManager { StacksDevnetDeployment::StacksBlockchain, &namespace, &user_id, + config.devnet_config.use_nakamoto, ) .await?; @@ -1434,6 +1686,7 @@ impl StacksDevnetApiK8sManager { StacksDevnetStatefulSet::StacksBlockchainApi, &namespace, user_id, + config.devnet_config.use_nakamoto, ) .await?; @@ -1447,6 +1700,72 @@ impl StacksDevnetApiK8sManager { Ok(()) } + async fn deploy_stacks_signer( + &self, + config: &ValidatedStacksDevnetConfig, + signer_idx: SignerIdx, + signer_key: &str, + ) -> Result<(), DevNetError> { + let namespace = &config.namespace; + let user_id = &config.user_id; + + let signer_port = match signer_idx { + SignerIdx::Signer0 => { + get_service_port(StacksDevnetService::StacksSigner0, ServicePort::Event).unwrap() + } + SignerIdx::Signer1 => { + get_service_port(StacksDevnetService::StacksSigner1, ServicePort::Event).unwrap() + } + }; + + let configmap = match signer_idx { + SignerIdx::Signer0 => StacksDevnetConfigmap::StacksSigner0, + SignerIdx::Signer1 => StacksDevnetConfigmap::StacksSigner1, + }; + + let sts = match signer_idx { + SignerIdx::Signer0 => StacksDevnetStatefulSet::StacksSigner0, + SignerIdx::Signer1 => StacksDevnetStatefulSet::StacksSigner1, + }; + + let service = match signer_idx { + SignerIdx::Signer0 => StacksDevnetService::StacksSigner0, + SignerIdx::Signer1 => StacksDevnetService::StacksSigner1, + }; + + // configmap env vars for api conatainer + let signer_conf = format!( + r#" + stacks_private_key = "{}" + node_host = "{}:{}" + # must be added as event_observer in node config: + endpoint = "0.0.0.0:{}" + network = "testnet" + auth_password = "12345" + db_path = "/chainstate/stacks-signer-{}.sqlite" + "#, + signer_key, + get_service_url(&namespace, StacksDevnetService::StacksBlockchain), + get_service_port(StacksDevnetService::StacksBlockchain, ServicePort::RPC).unwrap(), + signer_port, + signer_idx.to_string() + ); + + self.deploy_configmap( + configmap, + &namespace, + Some(vec![("Signer.toml".into(), signer_conf)]), + ) + .await?; + + self.deploy_stateful_set(sts, &namespace, user_id, config.devnet_config.use_nakamoto) + .await?; + + self.deploy_service(service, &namespace, &user_id).await?; + + Ok(()) + } + async fn delete_resource>( &self, namespace: &str, diff --git a/src/resources/configmap.rs b/src/resources/configmap.rs index 773c172..9cfec10 100644 --- a/src/resources/configmap.rs +++ b/src/resources/configmap.rs @@ -7,6 +7,8 @@ pub enum StacksDevnetConfigmap { StacksBlockchain, StacksBlockchainApi, StacksBlockchainApiPg, + StacksSigner0, + StacksSigner1, DeploymentPlan, Devnet, ProjectDir, @@ -20,6 +22,8 @@ impl fmt::Display for StacksDevnetConfigmap { StacksDevnetConfigmap::StacksBlockchain => write!(f, "stacks-blockchain"), StacksDevnetConfigmap::StacksBlockchainApi => write!(f, "stacks-blockchain-api"), StacksDevnetConfigmap::StacksBlockchainApiPg => write!(f, "stacks-blockchain-api-pg"), + StacksDevnetConfigmap::StacksSigner0 => write!(f, "stacks-signer-0"), + StacksDevnetConfigmap::StacksSigner1 => write!(f, "stacks-signer-1"), StacksDevnetConfigmap::DeploymentPlan => write!(f, "deployment-plan"), StacksDevnetConfigmap::Devnet => write!(f, "devnet"), StacksDevnetConfigmap::ProjectDir => write!(f, "project-dir"), diff --git a/src/resources/deployment.rs b/src/resources/deployment.rs index 8635cd6..6eed220 100644 --- a/src/resources/deployment.rs +++ b/src/resources/deployment.rs @@ -1,7 +1,7 @@ use std::fmt; use strum_macros::EnumIter; -#[derive(EnumIter, Debug)] +#[derive(EnumIter, Debug, Clone)] pub enum StacksDevnetDeployment { BitcoindNode, StacksBlockchain, diff --git a/src/resources/pod.rs b/src/resources/pod.rs index 4270a79..2de33e1 100644 --- a/src/resources/pod.rs +++ b/src/resources/pod.rs @@ -6,6 +6,8 @@ pub enum StacksDevnetPod { BitcoindNode, StacksBlockchain, StacksBlockchainApi, + StacksSigner0, + StacksSigner1, } impl fmt::Display for StacksDevnetPod { @@ -14,6 +16,8 @@ impl fmt::Display for StacksDevnetPod { StacksDevnetPod::BitcoindNode => write!(f, "bitcoind-chain-coordinator"), StacksDevnetPod::StacksBlockchain => write!(f, "stacks-blockchain"), StacksDevnetPod::StacksBlockchainApi => write!(f, "stacks-blockchain-api"), + StacksDevnetPod::StacksSigner0 => write!(f, "stacks-signer-0"), + StacksDevnetPod::StacksSigner1 => write!(f, "stacks-signer-1"), } } } diff --git a/src/resources/pvc.rs b/src/resources/pvc.rs index 58404b4..fe70cf3 100644 --- a/src/resources/pvc.rs +++ b/src/resources/pvc.rs @@ -4,12 +4,16 @@ use strum_macros::EnumIter; #[derive(EnumIter, Debug)] pub enum StacksDevnetPvc { StacksBlockchainApiPg, + StacksSigner0, + StacksSigner1, } impl fmt::Display for StacksDevnetPvc { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match self { StacksDevnetPvc::StacksBlockchainApiPg => write!(f, "stacks-blockchain-api"), + StacksDevnetPvc::StacksSigner0 => write!(f, "stacks-signer-0"), + StacksDevnetPvc::StacksSigner1 => write!(f, "stacks-signer-1"), } } } diff --git a/src/resources/service.rs b/src/resources/service.rs index 852e125..1a1d6a2 100644 --- a/src/resources/service.rs +++ b/src/resources/service.rs @@ -6,6 +6,8 @@ pub enum StacksDevnetService { BitcoindNode, StacksBlockchain, StacksBlockchainApi, + StacksSigner0, + StacksSigner1, } pub enum ServicePort { @@ -24,6 +26,8 @@ impl fmt::Display for StacksDevnetService { StacksDevnetService::BitcoindNode => write!(f, "bitcoind-chain-coordinator"), StacksDevnetService::StacksBlockchain => write!(f, "stacks-blockchain"), StacksDevnetService::StacksBlockchainApi => write!(f, "stacks-blockchain-api"), + StacksDevnetService::StacksSigner0 => write!(f, "stacks-signer-0"), + StacksDevnetService::StacksSigner1 => write!(f, "stacks-signer-1"), } } } @@ -39,6 +43,10 @@ pub fn get_service_port(service: StacksDevnetService, port_type: ServicePort) -> (StacksDevnetService::StacksBlockchainApi, ServicePort::API) => Some("3999".into()), (StacksDevnetService::StacksBlockchainApi, ServicePort::Event) => Some("3700".into()), (StacksDevnetService::StacksBlockchainApi, ServicePort::DB) => Some("5432".into()), + ( + StacksDevnetService::StacksSigner0 | StacksDevnetService::StacksSigner1, + ServicePort::Event, + ) => Some("30001".into()), (_, _) => None, } } @@ -49,6 +57,7 @@ pub fn get_user_facing_port(service: StacksDevnetService) -> Option { get_service_port(service, ServicePort::RPC) } StacksDevnetService::StacksBlockchainApi => get_service_port(service, ServicePort::API), + StacksDevnetService::StacksSigner0 | StacksDevnetService::StacksSigner1 => None, } } @@ -61,6 +70,8 @@ pub fn get_service_from_path_part(path_part: &str) -> Option Some(StacksDevnetService::BitcoindNode), "stacks-blockchain" => Some(StacksDevnetService::StacksBlockchain), "stacks-blockchain-api" => Some(StacksDevnetService::StacksBlockchainApi), + "stacks-signer-0" => Some(StacksDevnetService::StacksSigner0), + "stacks-signer-1" => Some(StacksDevnetService::StacksSigner1), _ => None, } } diff --git a/src/resources/stateful_set.rs b/src/resources/stateful_set.rs index c843604..13bdf0a 100644 --- a/src/resources/stateful_set.rs +++ b/src/resources/stateful_set.rs @@ -1,15 +1,34 @@ use std::fmt; use strum_macros::EnumIter; -#[derive(EnumIter, Debug)] +#[derive(EnumIter, Debug, Clone)] pub enum StacksDevnetStatefulSet { StacksBlockchainApi, + StacksSigner0, + StacksSigner1, } impl fmt::Display for StacksDevnetStatefulSet { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match self { StacksDevnetStatefulSet::StacksBlockchainApi => write!(f, "stacks-blockchain-api"), + StacksDevnetStatefulSet::StacksSigner0 => write!(f, "stacks-signer-0"), + StacksDevnetStatefulSet::StacksSigner1 => write!(f, "stacks-signer-1"), + } + } +} + +#[derive(EnumIter, Debug, Clone)] +pub enum SignerIdx { + Signer0, + Signer1, +} + +impl SignerIdx { + pub fn to_string(&self) -> String { + match &self { + SignerIdx::Signer0 => String::from("0"), + SignerIdx::Signer1 => String::from("1"), } } } diff --git a/src/resources/tests.rs b/src/resources/tests.rs index 38a6b7d..2ffe755 100644 --- a/src/resources/tests.rs +++ b/src/resources/tests.rs @@ -10,6 +10,8 @@ use test_case::test_case; #[test_case(StacksDevnetConfigmap::StacksBlockchain => is equal_to "stacks-blockchain".to_string(); "for StacksBlockchain")] #[test_case(StacksDevnetConfigmap::StacksBlockchainApi => is equal_to "stacks-blockchain-api".to_string(); "for StacksBlockchainApi")] #[test_case(StacksDevnetConfigmap::StacksBlockchainApiPg => is equal_to "stacks-blockchain-api-pg".to_string(); "for StacksBlockchainApiPg")] +#[test_case(StacksDevnetConfigmap::StacksSigner0 => is equal_to "stacks-signer-0".to_string(); "for StacksSigner0")] +#[test_case(StacksDevnetConfigmap::StacksSigner1 => is equal_to "stacks-signer-1".to_string(); "for StacksSigner1")] #[test_case(StacksDevnetConfigmap::DeploymentPlan => is equal_to "deployment-plan".to_string(); "for DeploymentPlan")] #[test_case(StacksDevnetConfigmap::Devnet => is equal_to "devnet".to_string(); "for Devnet")] #[test_case(StacksDevnetConfigmap::ProjectDir => is equal_to "project-dir".to_string(); "for ProjectDir")] @@ -32,6 +34,8 @@ fn it_prints_correct_name_for_deployment(deployment: StacksDevnetDeployment) -> } #[test_case(StacksDevnetStatefulSet::StacksBlockchainApi => is equal_to "stacks-blockchain-api".to_string(); "for StacksBlockchainApi")] +#[test_case(StacksDevnetStatefulSet::StacksSigner0 => is equal_to "stacks-signer-0".to_string(); "for StacksSigner0")] +#[test_case(StacksDevnetStatefulSet::StacksSigner1 => is equal_to "stacks-signer-1".to_string(); "for StacksSigner1")] fn it_prints_correct_name_for_stateful_set(pod: StacksDevnetStatefulSet) -> String { pod.to_string() } @@ -39,6 +43,8 @@ fn it_prints_correct_name_for_stateful_set(pod: StacksDevnetStatefulSet) -> Stri #[test_case(StacksDevnetService::BitcoindNode => is equal_to "bitcoind-chain-coordinator".to_string(); "for BitcoindNode")] #[test_case(StacksDevnetService::StacksBlockchain => is equal_to "stacks-blockchain".to_string(); "for StacksBlockchain")] #[test_case(StacksDevnetService::StacksBlockchainApi => is equal_to "stacks-blockchain-api".to_string(); "for StacksBlockchainApi")] +#[test_case(StacksDevnetService::StacksSigner0 => is equal_to "stacks-signer-0".to_string(); "for StacksSigner0")] +#[test_case(StacksDevnetService::StacksSigner1 => is equal_to "stacks-signer-1".to_string(); "for StacksSigner1")] fn it_prints_correct_name_for_service(service: StacksDevnetService) -> String { service.to_string() } @@ -52,6 +58,8 @@ fn it_prints_correct_name_for_service(service: StacksDevnetService) -> String { #[test_case(StacksDevnetService::StacksBlockchainApi, ServicePort::API => is equal_to Some("3999".to_string()); "for StacksBlockchainApi API port")] #[test_case(StacksDevnetService::StacksBlockchainApi, ServicePort::Event => is equal_to Some("3700".to_string()); "for StacksBlockchainApi Event port")] #[test_case(StacksDevnetService::StacksBlockchainApi, ServicePort::DB => is equal_to Some("5432".to_string()); "for StacksBlockchainApi DB port")] +#[test_case(StacksDevnetService::StacksSigner0, ServicePort::Event => is equal_to Some("30001".to_string()); "for StacksSigner0 Event port")] +#[test_case(StacksDevnetService::StacksSigner1, ServicePort::Event => is equal_to Some("30001".to_string()); "for StacksSigner1 Event port")] #[test_case(StacksDevnetService::StacksBlockchainApi, ServicePort::RPC => is equal_to None; "invalid service port combination")] fn it_gets_correct_port_for_service( service: StacksDevnetService, @@ -63,14 +71,18 @@ fn it_gets_correct_port_for_service( #[test_case("bitcoin-node" => is equal_to Some(StacksDevnetService::BitcoindNode); "for bitcoin-node")] #[test_case("stacks-blockchain" => is equal_to Some(StacksDevnetService::StacksBlockchain); "for stacks-blockchain")] #[test_case("stacks-blockchain-api" => is equal_to Some(StacksDevnetService::StacksBlockchainApi); "for stacks-blockchain-api")] +#[test_case("stacks-signer-0" => is equal_to Some(StacksDevnetService::StacksSigner0); "for stacks-signer-0")] +#[test_case("stacks-signer-1" => is equal_to Some(StacksDevnetService::StacksSigner1); "for stacks-signer-1")] #[test_case("invalid" => is equal_to None; "returning None for invalid paths")] fn it_prints_service_from_path_part(path_part: &str) -> Option { get_service_from_path_part(path_part) } -#[test_case(StacksDevnetService::BitcoindNode => is equal_to Some("18443".to_string()); "for BitcoindNode")] -#[test_case(StacksDevnetService::StacksBlockchain => is equal_to Some("20443".to_string()); "for StacksBlockchain")] -#[test_case(StacksDevnetService::StacksBlockchainApi => is equal_to Some("3999".to_string()); "for StacksBlockchainApi")] +#[test_case(StacksDevnetService::BitcoindNode => is equal_to Some("18443".to_string()); "for BitcoindNode")] +#[test_case(StacksDevnetService::StacksBlockchain => is equal_to Some("20443".to_string()); "for StacksBlockchain")] +#[test_case(StacksDevnetService::StacksBlockchainApi => is equal_to Some("3999".to_string()); "for StacksBlockchainApi")] +#[test_case(StacksDevnetService::StacksSigner0 => is equal_to None; "for StacksSigner0")] +#[test_case(StacksDevnetService::StacksSigner1 => is equal_to None; "for StacksSigner1")] fn it_gets_user_facing_port_for_service(service: StacksDevnetService) -> Option { get_user_facing_port(service) } diff --git a/src/template_parser.rs b/src/template_parser.rs index afa97d0..d158444 100644 --- a/src/template_parser.rs +++ b/src/template_parser.rs @@ -49,5 +49,23 @@ pub fn get_yaml_from_resource(resource: StacksDevnetResource) -> &'static str { } StacksDevnetResource::Namespace => include_str!("../templates/namespace.template.yaml"), StacksDevnetResource::Pod(_) | StacksDevnetResource::Pvc(_) => unreachable!(), + StacksDevnetResource::StatefulSet(StacksDevnetStatefulSet::StacksSigner0) => { + include_str!("../templates/stateful-sets/stacks-signer-0.template.yaml") + } + StacksDevnetResource::Service(StacksDevnetService::StacksSigner0) => { + include_str!("../templates/services/stacks-signer-0.template.yaml") + } + StacksDevnetResource::Configmap(StacksDevnetConfigmap::StacksSigner0) => { + include_str!("../templates/configmaps/stacks-signer-0.template.yaml") + } + StacksDevnetResource::StatefulSet(StacksDevnetStatefulSet::StacksSigner1) => { + include_str!("../templates/stateful-sets/stacks-signer-1.template.yaml") + } + StacksDevnetResource::Service(StacksDevnetService::StacksSigner1) => { + include_str!("../templates/services/stacks-signer-1.template.yaml") + } + StacksDevnetResource::Configmap(StacksDevnetConfigmap::StacksSigner1) => { + include_str!("../templates/configmaps/stacks-signer-1.template.yaml") + } } } diff --git a/src/tests/fixtures/network-manifest.yaml b/src/tests/fixtures/network-manifest.yaml index e4d84b7..82d5ebe 100644 --- a/src/tests/fixtures/network-manifest.yaml +++ b/src/tests/fixtures/network-manifest.yaml @@ -107,6 +107,7 @@ devnet_settings: miner_mnemonic: fragile loan twenty basic net assault jazz absorb diet talk art shock innocent float punch travel gadget embrace caught blossom hockey surround initial reduce miner_derivation_path: "m/44'/5757'/0'/0/0" miner_coinbase_recipient: ST3Q96TFVE6E0Q91XVX6S8RWAJW5R8XTZ8YEBM8RQ + miner_wallet_name: "" faucet_stx_address: STNHKEPYEPJ8ET55ZZ0M5A34J0R3N5FM2CMMMAZ6 faucet_secret_key_hex: de433bdfa14ec43aa1098d5be594c8ffb20a31485ff9de2923b2689471c401b801 faucet_btc_address: mjSrB3wS4xab3kYqFktwBzfTdPg367ZJ2d @@ -124,19 +125,23 @@ devnet_settings: wallet: wallet_1 slots: 2 btc_address: mr1iPkD9N3RJZZxXRk7xF9d36gffa6exNC + auto_extend: ~ - start_at_cycle: 3 duration: 12 wallet: wallet_2 slots: 1 btc_address: muYdXKmX9bByAueDe6KFfHd5Ff1gdN9ErG + auto_extend: ~ - start_at_cycle: 3 duration: 12 wallet: wallet_3 slots: 1 btc_address: mvZtbibDAAA3WLpY7zXXFqRa3T4XSknBX7 + auto_extend: ~ execute_script: [] bitcoin_node_image_url: "quay.io/hirosystems/bitcoind:devnet-v3" stacks_node_image_url: "quay.io/hirosystems/stacks-node:devnet-2.4.0.0.0" + stacks_signer_image_url: "quay.io/hirosystems/stacks-node:devnet-2.4.0.0.0" stacks_api_image_url: "hirosystems/stacks-blockchain-api:latest" stacks_explorer_image_url: "hirosystems/explorer:latest" postgres_image_url: "postgres:14" @@ -172,6 +177,8 @@ devnet_settings: epoch_2_2: 103 epoch_2_3: 104 epoch_2_4: 105 - pox_2_activation: 102 + epoch_2_5: 105 + epoch_3_0: 121 use_docker_gateway_routing: false docker_platform: linux/amd64 + use_nakamoto: false diff --git a/src/tests/fixtures/project-manifest.yaml b/src/tests/fixtures/project-manifest.yaml index 2f08b5c..127246e 100644 --- a/src/tests/fixtures/project-manifest.yaml +++ b/src/tests/fixtures/project-manifest.yaml @@ -21,3 +21,5 @@ repl: trusted_sender: false trusted_caller: false callee_filter: false + clarity_wasm_mode: false + show_timings: false diff --git a/src/tests/fixtures/stacks-devnet-config.json b/src/tests/fixtures/stacks-devnet-config.json index fd57f0c..d5913f2 100644 --- a/src/tests/fixtures/stacks-devnet-config.json +++ b/src/tests/fixtures/stacks-devnet-config.json @@ -258,6 +258,7 @@ "miner_mnemonic": "fragile loan twenty basic net assault jazz absorb diet talk art shock innocent float punch travel gadget embrace caught blossom hockey surround initial reduce", "miner_derivation_path": "m/44'/5757'/0'/0/0", "miner_coinbase_recipient": "ST3Q96TFVE6E0Q91XVX6S8RWAJW5R8XTZ8YEBM8RQ", + "miner_wallet_name": "", "faucet_stx_address": "STNHKEPYEPJ8ET55ZZ0M5A34J0R3N5FM2CMMMAZ6", "faucet_secret_key_hex": "de433bdfa14ec43aa1098d5be594c8ffb20a31485ff9de2923b2689471c401b801", "faucet_btc_address": "mjSrB3wS4xab3kYqFktwBzfTdPg367ZJ2d", @@ -295,6 +296,7 @@ "execute_script": [], "bitcoin_node_image_url": "quay.io/hirosystems/bitcoind:devnet-v3", "stacks_node_image_url": "quay.io/hirosystems/stacks-node:devnet-2.4.0.0.0", + "stacks_signer_image_url": "quay.io/hirosystems/stacks-node:devnet-2.4.0.0.0", "stacks_api_image_url": "hirosystems/stacks-blockchain-api:latest", "stacks_explorer_image_url": "hirosystems/explorer:latest", "postgres_image_url": "postgres:14", @@ -330,9 +332,11 @@ "epoch_2_2": 103, "epoch_2_3": 104, "epoch_2_4": 105, - "pox_2_activation": 102, + "epoch_2_5": 105, + "epoch_3_0": 121, "use_docker_gateway_routing": false, - "docker_platform": "linux/amd64" + "docker_platform": "linux/amd64", + "use_nakamoto": false } }, "project_manifest": { @@ -360,7 +364,9 @@ "trusted_caller": false, "callee_filter": false } - } + }, + "clarity_wasm_mode": false, + "show_timings": false } } } diff --git a/src/tests/mod.rs b/src/tests/mod.rs index 86f3763..d37789a 100644 --- a/src/tests/mod.rs +++ b/src/tests/mod.rs @@ -31,7 +31,7 @@ const PRJ_NAME: &str = env!("CARGO_PKG_NAME"); fn get_version_info() -> String { format!("{{\"version\":\"{PRJ_NAME} v{VERSION}\"}}") } -fn get_template_config() -> StacksDevnetConfig { +fn get_template_config(use_nakamoto: bool) -> StacksDevnetConfig { let file_path = "src/tests/fixtures/stacks-devnet-config.json"; let file = File::open(file_path) .unwrap_or_else(|e| panic!("unable to read file {}\n{:?}", file_path, e)); @@ -41,12 +41,21 @@ fn get_template_config() -> StacksDevnetConfig { .read_to_end(&mut file_buffer) .unwrap_or_else(|e| panic!("unable to read file {}\n{:?}", file_path, e)); - let config_file: StacksDevnetConfig = match serde_json::from_slice(&file_buffer) { - Ok(s) => s, - Err(e) => { - panic!("Config file malformatted {}", e.to_string()); - } - }; + let config_file: StacksDevnetConfig = + match serde_json::from_slice::(&file_buffer) { + Ok(mut s) => { + if use_nakamoto { + if let Some(mut devnet) = s.network_manifest.devnet { + devnet.use_nakamoto = true; + s.network_manifest.devnet = Some(devnet); + } + }; + s + } + Err(e) => { + panic!("Config file malformatted {}", e.to_string()); + } + }; config_file } @@ -112,12 +121,13 @@ enum TestBody { CreateNetwork, } -#[test_case("/api/v1/network/{namespace}", Method::DELETE, None, false => is equal_to (StatusCode::OK, "Ok".to_string()); "200 for network DELETE request")] -#[test_case("/api/v1/network/{namespace}", Method::DELETE, None, true => using assert_cannot_delete_devnet_multiple_errs; "500 for network DELETE request with multiple errors")] -#[test_case("/api/v1/networks", Method::POST, Some(TestBody::CreateNetwork), true => using assert_cannot_create_devnet_err; "409 for create network POST request if devnet exists")] -#[test_case("/api/v1/network/{namespace}", Method::GET, None, true => using assert_get_network; "200 for network GET request to existing network")] -#[test_case("/api/v1/network/{namespace}", Method::HEAD, None, true => is equal_to (StatusCode::OK, "Ok".to_string()); "200 for network HEAD request to existing network")] -#[test_case("/api/v1/network/{namespace}/stacks-blockchain/v2/info/", Method::GET, None, true => using assert_failed_proxy; "proxies requests to downstream nodes")] +#[test_case("/api/v1/network/{namespace}", Method::DELETE, None, false, None => is equal_to (StatusCode::OK, "Ok".to_string()); "200 for network DELETE request")] +#[test_case("/api/v1/network/{namespace}", Method::DELETE, None, true, None => using assert_cannot_delete_devnet_multiple_errs; "500 for network DELETE request with multiple errors")] +#[test_case("/api/v1/networks", Method::POST, Some(TestBody::CreateNetwork), true, None => using assert_cannot_create_devnet_err; "409 for create network POST request if devnet exists")] +#[test_case("/api/v1/network/{namespace}", Method::GET, None, true, None => using assert_get_network; "200 for network GET request to existing network")] +#[test_case("/api/v1/network/{namespace}", Method::HEAD, None, true, None => is equal_to (StatusCode::OK, "Ok".to_string()); "200 for network HEAD request to existing network")] +#[test_case("/api/v1/network/{namespace}", Method::HEAD, None, true, Some(true) => is equal_to (StatusCode::OK, "Ok".to_string()); "200 for network HEAD request to existing network; use_nakamoto")] +#[test_case("/api/v1/network/{namespace}/stacks-blockchain/v2/info/", Method::GET, None, true, None => using assert_failed_proxy; "proxies requests to downstream nodes")] #[serial_test::serial] #[tokio::test] #[cfg_attr(not(feature = "k8s_tests"), ignore)] @@ -126,6 +136,7 @@ async fn it_responds_to_valid_requests_with_deploy( method: Method, body: Option, tear_down: bool, + use_nakamoto: Option, ) -> (StatusCode, String) { let namespace = &get_random_namespace(); @@ -141,7 +152,7 @@ async fn it_responds_to_valid_requests_with_deploy( let _ = k8s_manager.deploy_namespace(&namespace).await.unwrap(); - let mut config = get_template_config(); + let mut config = get_template_config(use_nakamoto.unwrap_or(false)); config.namespace = namespace.to_owned(); let validated_config = config.to_validated_config(&namespace, ctx.clone()).unwrap(); let user_id = &namespace; @@ -152,7 +163,7 @@ async fn it_responds_to_valid_requests_with_deploy( let body = match body { None => Body::empty(), Some(TestBody::CreateNetwork) => { - let mut config = get_template_config(); + let mut config = get_template_config(use_nakamoto.unwrap_or(false)); config.namespace = namespace.to_owned(); Body::from(serde_json::to_string(&config).unwrap()) } diff --git a/templates/configmaps/stacks-signer-0.template.yaml b/templates/configmaps/stacks-signer-0.template.yaml new file mode 100644 index 0000000..c47cd8c --- /dev/null +++ b/templates/configmaps/stacks-signer-0.template.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +data: + Signer.toml: "{data}" +kind: ConfigMap +metadata: + name: stacks-signer-0 + namespace: "{namespace}" + labels: + app.kubernetes.io/managed-by: stacks-devnet-api + app.kubernetes.io/name: stacks-signer-0 + app.kubernetes.io/component: stacks-signer-0 + argocd.argoproj.io/instance: platform-user-resources.platform \ No newline at end of file diff --git a/templates/configmaps/stacks-signer-1.template.yaml b/templates/configmaps/stacks-signer-1.template.yaml new file mode 100644 index 0000000..96b76a7 --- /dev/null +++ b/templates/configmaps/stacks-signer-1.template.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +data: + Signer.toml: "{data}" +kind: ConfigMap +metadata: + name: stacks-signer-1 + namespace: "{namespace}" + labels: + app.kubernetes.io/managed-by: stacks-devnet-api + app.kubernetes.io/name: stacks-signer-1 + app.kubernetes.io/component: stacks-signer-1 + argocd.argoproj.io/instance: platform-user-resources.platform \ No newline at end of file diff --git a/templates/deployments/bitcoind-chain-coordinator.template.yaml b/templates/deployments/bitcoind-chain-coordinator.template.yaml index 2f1ac1a..9dcd577 100644 --- a/templates/deployments/bitcoind-chain-coordinator.template.yaml +++ b/templates/deployments/bitcoind-chain-coordinator.template.yaml @@ -38,7 +38,7 @@ spec: - -conf=/etc/bitcoin/bitcoin.conf - -nodebuglogfile - -pid=/run/bitcoind.pid - image: quay.io/hirosystems/bitcoind:devnet-v3 + image: quay.io/hirosystems/bitcoind:26.0 imagePullPolicy: IfNotPresent name: bitcoind ports: @@ -71,7 +71,7 @@ spec: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - image: hirosystems/stacks-network-orchestrator@sha256:e9c88e46adb10deba74e29883533de747a2200665f919d1708a5ea0f2638d32a + image: hirosystems/stacks-network-orchestrator:clarinet-2.4.0-beta2 imagePullPolicy: IfNotPresent name: chain-coordinator ports: diff --git a/templates/deployments/stacks-blockchain.template.yaml b/templates/deployments/stacks-blockchain.template.yaml index 824c1a2..ff8d70a 100644 --- a/templates/deployments/stacks-blockchain.template.yaml +++ b/templates/deployments/stacks-blockchain.template.yaml @@ -36,15 +36,14 @@ spec: - command: - stacks-node - start - - --config=/src/stacks-blockchain/Stacks.toml + - --config + - /src/stacks-blockchain/Stacks.toml env: - name: STACKS_LOG_PP value: "1" - name: BLOCKSTACK_USE_TEST_GENESIS_CHAINSTATE value: "1" - - name: STACKS_LOG_DEBUG - value: "0" - image: quay.io/hirosystems/stacks-node:devnet-v3 + image: quay.io/hirosystems/stacks-node:devnet-2.4.0.0.0 imagePullPolicy: IfNotPresent name: stacks-blockchain ports: diff --git a/templates/services/stacks-signer-0.template.yaml b/templates/services/stacks-signer-0.template.yaml new file mode 100644 index 0000000..bcda393 --- /dev/null +++ b/templates/services/stacks-signer-0.template.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: stacks-signer-0 + app.kubernetes.io/instance: "{user_id}" + app.kubernetes.io/managed-by: stacks-devnet-api + app.kubernetes.io/name: stacks-signer-0 + argocd.argoproj.io/instance: platform-user-resources.platform + name: stacks-signer-0 + namespace: "{namespace}" +spec: + ports: + - name: http-signer-event + port: 30001 + protocol: TCP + targetPort: 30001 + selector: + app.kubernetes.io/component: stacks-signer-0 + app.kubernetes.io/instance: "{user_id}" + app.kubernetes.io/managed-by: stacks-devnet-api + app.kubernetes.io/name: stacks-signer-0 diff --git a/templates/services/stacks-signer-1.template.yaml b/templates/services/stacks-signer-1.template.yaml new file mode 100644 index 0000000..5cdf09b --- /dev/null +++ b/templates/services/stacks-signer-1.template.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: stacks-signer-1 + app.kubernetes.io/instance: "{user_id}" + app.kubernetes.io/managed-by: stacks-devnet-api + app.kubernetes.io/name: stacks-signer-1 + argocd.argoproj.io/instance: platform-user-resources.platform + name: stacks-signer-1 + namespace: "{namespace}" +spec: + ports: + - name: http-signer-event + port: 30001 + protocol: TCP + targetPort: 30001 + selector: + app.kubernetes.io/component: stacks-signer-1 + app.kubernetes.io/instance: "{user_id}" + app.kubernetes.io/managed-by: stacks-devnet-api + app.kubernetes.io/name: stacks-signer-1 diff --git a/templates/stateful-sets/stacks-signer-0.template.yaml b/templates/stateful-sets/stacks-signer-0.template.yaml new file mode 100644 index 0000000..2df4988 --- /dev/null +++ b/templates/stateful-sets/stacks-signer-0.template.yaml @@ -0,0 +1,79 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/component: stacks-signer-0 + app.kubernetes.io/instance: "{user_id}" + app.kubernetes.io/managed-by: stacks-devnet-api + app.kubernetes.io/name: stacks-signer-0 + argocd.argoproj.io/instance: platform-user-resources.platform + name: stacks-signer-0 + namespace: "{namespace}" +spec: + replicas: 1 + serviceName: stacks-signer-0 + selector: + matchLabels: + app.kubernetes.io/component: stacks-signer-0 + app.kubernetes.io/instance: "{user_id}" + app.kubernetes.io/managed-by: stacks-devnet-api + app.kubernetes.io/name: stacks-signer-0 + template: + metadata: + labels: + app.kubernetes.io/component: stacks-signer-0 + app.kubernetes.io/instance: "{user_id}" + app.kubernetes.io/managed-by: stacks-devnet-api + app.kubernetes.io/name: stacks-signer-0 + spec: + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: cloud.google.com/gke-preemptible + operator: DoesNotExist + containers: + - name: stacks-signer-0 + command: + - stacks-signer + - run + - --config=/src/stacks-signer-0/Signer.toml + image: quay.io/hirosystems/stacks-node:devnet-with-signer-beta4 + imagePullPolicy: IfNotPresent + ports: + - containerPort: 30001 + name: signer-event + protocol: TCP + resources: + requests: + cpu: 250m + memory: 750Mi # todo: revisit allocation + limits: + memory: 750Mi # todo: revisit allocation + volumeMounts: + - mountPath: /chainstate/ + name: signer-db + - mountPath: /src/stacks-signer-0 + name: stacks-signer-0 + readOnly: true + resources: + requests: + cpu: 250m + memory: 750Mi # todo: revisit allocation + limits: + memory: 750Mi # todo: revisit allocation + volumes: + - configMap: + name: stacks-signer-0 + name: stacks-signer-0 + volumeClaimTemplates: + - metadata: + name: signer-db + spec: + accessModes: + - ReadWriteOnce + storageClassName: premium-rwo + resources: + requests: + storage: 1Gi \ No newline at end of file diff --git a/templates/stateful-sets/stacks-signer-1.template.yaml b/templates/stateful-sets/stacks-signer-1.template.yaml new file mode 100644 index 0000000..511d5ad --- /dev/null +++ b/templates/stateful-sets/stacks-signer-1.template.yaml @@ -0,0 +1,79 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/component: stacks-signer-1 + app.kubernetes.io/instance: "{user_id}" + app.kubernetes.io/managed-by: stacks-devnet-api + app.kubernetes.io/name: stacks-signer-1 + argocd.argoproj.io/instance: platform-user-resources.platform + name: stacks-signer-1 + namespace: "{namespace}" +spec: + replicas: 1 + serviceName: stacks-signer-1 + selector: + matchLabels: + app.kubernetes.io/component: stacks-signer-1 + app.kubernetes.io/instance: "{user_id}" + app.kubernetes.io/managed-by: stacks-devnet-api + app.kubernetes.io/name: stacks-signer-1 + template: + metadata: + labels: + app.kubernetes.io/component: stacks-signer-1 + app.kubernetes.io/instance: "{user_id}" + app.kubernetes.io/managed-by: stacks-devnet-api + app.kubernetes.io/name: stacks-signer-1 + spec: + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: cloud.google.com/gke-preemptible + operator: DoesNotExist + containers: + - name: stacks-signer-1 + command: + - stacks-signer + - run + - --config=/src/stacks-signer-1/Signer.toml + image: quay.io/hirosystems/stacks-node:devnet-with-signer-beta4 + imagePullPolicy: IfNotPresent + ports: + - containerPort: 30001 + name: signer-event + protocol: TCP + resources: + requests: + cpu: 250m + memory: 750Mi # todo: revisit allocation + limits: + memory: 750Mi # todo: revisit allocation + volumeMounts: + - mountPath: /chainstate/ + name: signer-db + - mountPath: /src/stacks-signer-1 + name: stacks-signer-1 + readOnly: true + resources: + requests: + cpu: 250m + memory: 750Mi # todo: revisit allocation + limits: + memory: 750Mi # todo: revisit allocation + volumes: + - configMap: + name: stacks-signer-1 + name: stacks-signer-1 + volumeClaimTemplates: + - metadata: + name: signer-db + spec: + accessModes: + - ReadWriteOnce + storageClassName: premium-rwo + resources: + requests: + storage: 1Gi \ No newline at end of file