diff --git a/.cargo/config.toml b/.cargo/config.toml index e61e7526b..69ad233c6 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -4,3 +4,6 @@ unit-test = "test --lib" [build] rustflags = ["--cfg", "tracing_unstable"] + +[net] +git-fetch-with-cli = true diff --git a/Cargo.lock b/Cargo.lock index 91b7e1a96..f2aba9bc0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -25,18 +25,18 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.22.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] [[package]] -name = "adler" -version = "1.0.2" +name = "adler2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "aead" @@ -73,13 +73,28 @@ dependencies = [ "subtle", ] +[[package]] +name = "aes-gcm-siv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "polyval", + "subtle", + "zeroize", +] + [[package]] name = "ahash" version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom", + "getrandom 0.2.15", "once_cell", "version_check", ] @@ -91,6 +106,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", + "getrandom 0.2.15", "once_cell", "version_check", "zerocopy", @@ -136,14 +152,14 @@ dependencies = [ "bytes", "cfg-if", "const-hex", - "derive_more", - "getrandom", + "derive_more 0.99.18", + "getrandom 0.2.15", "hex-literal", "itoa", "k256", "keccak-asm", "proptest", - "rand", + "rand 0.8.5", "ruint", "serde", "tiny-keccak", @@ -151,9 +167,9 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.4" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d58d9f5da7b40e9bfff0b7e7816700be4019db97d4b6359fe7f94a9e22e42ac" +checksum = "da0822426598f95e45dd1ea32a738dac057529a709ee645fcc516ffa4cbde08f" dependencies = [ "arrayvec", "bytes", @@ -168,9 +184,9 @@ dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -182,11 +198,11 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.2.6", + "indexmap 2.6.0", "proc-macro-error", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", "syn-solidity", "tiny-keccak", ] @@ -200,9 +216,9 @@ dependencies = [ "const-hex", "dunce", "heck 0.5.0", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", "syn-solidity", ] @@ -223,11 +239,14 @@ name = "ampd" version = "1.3.1" dependencies = [ "async-trait", + "axelar-solana-encoding", + "axelar-solana-gateway", "axelar-wasm-std", - "axum 0.7.5", + "axum 0.7.9", "base64 0.21.7", "bcs", - "clap", + "borsh 1.5.3", + "clap 4.5.21", "config", "cosmrs", "cosmwasm-std", @@ -236,7 +255,7 @@ dependencies = [ "dirs", "ecdsa", "ed25519 2.2.3", - "ed25519-dalek", + "ed25519-dalek 2.1.1", "elliptic-curve", "enum-display-derive", "error-stack", @@ -248,6 +267,7 @@ dependencies = [ "evm-gateway", "faux", "futures", + "gateway-event-stack", "generic-array", "hex", "humantime-serde", @@ -261,7 +281,7 @@ dependencies = [ "openssl", "prost 0.11.9", "prost-types", - "rand", + "rand 0.8.5", "random-string", "report", "reqwest 0.11.27", @@ -270,8 +290,17 @@ dependencies = [ "serde", "serde_json", "serde_with 3.11.0", + "service-registry", "service-registry-api", - "sha3", + "sha3 0.10.8", + "solana-account-decoder", + "solana-client", + "solana-program", + "solana-rpc-client-api", + "solana-sdk", + "solana-transaction-status", + "solana-version", + "solana-zk-token-sdk", "stellar", "stellar-rpc-client", "stellar-xdr", @@ -280,6 +309,7 @@ dependencies = [ "sui-types 0.1.0", "tendermint 0.33.0", "tendermint-rpc", + "test-log", "thiserror", "tokio", "tokio-stream", @@ -330,7 +360,7 @@ dependencies = [ "pkcs8 0.9.0", "quinn", "quinn-proto", - "rand", + "rand 0.8.5", "rcgen", "ring 0.16.20", "rustls 0.21.12", @@ -342,16 +372,25 @@ dependencies = [ "thiserror", "tokio", "tokio-util", - "tower", + "tower 0.4.13", "tracing", "x509-parser", ] +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + [[package]] name = "anstream" -version = "0.6.14" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -364,43 +403,43 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.7" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.3" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.89" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" [[package]] name = "ark-bls12-381" @@ -471,7 +510,7 @@ dependencies = [ "ark-serialize 0.3.0", "ark-std 0.3.0", "derivative", - "num-bigint 0.4.5", + "num-bigint 0.4.6", "num-traits", "paste", "rustc_version 0.3.3", @@ -491,10 +530,10 @@ dependencies = [ "derivative", "digest 0.10.7", "itertools 0.10.5", - "num-bigint 0.4.5", + "num-bigint 0.4.6", "num-traits", "paste", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "zeroize", ] @@ -504,7 +543,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" dependencies = [ - "quote 1.0.36", + "quote 1.0.37", "syn 1.0.109", ] @@ -514,7 +553,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" dependencies = [ - "quote 1.0.36", + "quote 1.0.37", "syn 1.0.109", ] @@ -524,9 +563,9 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" dependencies = [ - "num-bigint 0.4.5", + "num-bigint 0.4.6", "num-traits", - "quote 1.0.36", + "quote 1.0.37", "syn 1.0.109", ] @@ -536,10 +575,10 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" dependencies = [ - "num-bigint 0.4.5", + "num-bigint 0.4.6", "num-traits", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -612,7 +651,7 @@ dependencies = [ "ark-serialize-derive", "ark-std 0.4.0", "digest 0.10.7", - "num-bigint 0.4.5", + "num-bigint 0.4.6", ] [[package]] @@ -621,8 +660,8 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -645,7 +684,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", ] [[package]] @@ -655,20 +694,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", ] [[package]] name = "arrayref" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "ascii" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" [[package]] name = "asn1-rs" @@ -692,10 +737,10 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", - "synstructure", + "synstructure 0.12.6", ] [[package]] @@ -704,24 +749,55 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] +[[package]] +name = "assert_matches" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" + [[package]] name = "assert_ok" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c770ef7624541db11cce57929f00e737fef89157d7c1cd1977b20ee74fefd84" +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + [[package]] name = "async-compression" version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" dependencies = [ - "brotli", + "brotli 3.5.0", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "async-compression" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df895a515f70646414f4b45c0b79082783b80552b373a68283012928df56f522" +dependencies = [ + "brotli 7.0.0", "flate2", "futures-core", "memchr", @@ -738,11 +814,20 @@ dependencies = [ "event-listener", ] +[[package]] +name = "async-mutex" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e" +dependencies = [ + "event-listener", +] + [[package]] name = "async-stream" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ "async-stream-impl", "futures-core", @@ -751,24 +836,24 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] name = "async-trait" -version = "0.1.80" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -779,7 +864,7 @@ checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" dependencies = [ "futures", "pharos", - "rustc_version 0.4.0", + "rustc_version 0.4.1", ] [[package]] @@ -788,15 +873,26 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + [[package]] name = "auto_impl" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -807,9 +903,9 @@ checksum = "7460f7dd8e100147b82a63afca1a20eb6c231ee36b90ba7272e14951cb58af59" [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axelar-core-std" @@ -822,7 +918,7 @@ dependencies = [ "error-stack", "goldie", "hex", - "rand", + "rand 0.8.5", "router-api", "schemars", "serde", @@ -830,6 +926,61 @@ dependencies = [ "thiserror", ] +[[package]] +name = "axelar-message-primitives" +version = "0.1.0" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=0be172e#0be172ec2d0b24e236d4131e8db46d93c98fe5f9" +dependencies = [ + "alloy-primitives", + "alloy-sol-types", + "bnum", + "borsh 1.5.3", + "bytemuck", + "hex", + "rkyv", + "solana-program", + "thiserror", +] + +[[package]] +name = "axelar-solana-encoding" +version = "0.1.0" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=0be172e#0be172ec2d0b24e236d4131e8db46d93c98fe5f9" +dependencies = [ + "arrayref", + "borsh 1.5.3", + "bs58 0.5.1", + "hex", + "rkyv", + "rs_merkle", + "sha3 0.10.8", + "solana-program", + "thiserror", + "udigest", +] + +[[package]] +name = "axelar-solana-gateway" +version = "0.1.0" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=0be172e#0be172ec2d0b24e236d4131e8db46d93c98fe5f9" +dependencies = [ + "axelar-message-primitives", + "axelar-solana-encoding", + "bincode", + "bitvec 1.0.1", + "borsh 1.5.3", + "bytemuck", + "ed25519-dalek 2.1.1", + "hex", + "itertools 0.12.1", + "libsecp256k1", + "num-derive 0.4.2", + "num-traits", + "program-utils", + "solana-program", + "thiserror", +] + [[package]] name = "axelar-wasm-std" version = "1.0.0" @@ -851,14 +1002,14 @@ dependencies = [ "itertools 0.11.0", "lazy_static", "num-traits", - "rand", + "rand 0.8.5", "regex", "report", "schemars", "serde", "serde_json", "serde_with 3.11.0", - "sha3", + "sha3 0.10.8", "stellar-xdr", "strum 0.25.0", "sui-types 1.0.0", @@ -872,9 +1023,9 @@ version = "1.0.0" dependencies = [ "axelar-wasm-std", "error-stack", - "quote 1.0.36", + "quote 1.0.37", "report", - "syn 2.0.68", + "syn 2.0.89", "thiserror", ] @@ -896,12 +1047,12 @@ dependencies = [ "hex", "itertools 0.11.0", "msgs-derive", - "rand", + "rand 0.8.5", "report", "router-api", "serde", "serde_json", - "sha3", + "sha3 0.10.8", "thiserror", ] @@ -920,7 +1071,7 @@ dependencies = [ "headers", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.29", + "hyper 0.14.31", "itoa", "matchit 0.7.3", "memchr", @@ -936,25 +1087,25 @@ dependencies = [ "sync_wrapper 0.1.2", "tokio", "tokio-tungstenite", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", ] [[package]] name = "axum" -version = "0.7.5" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", - "axum-core 0.4.3", + "axum-core 0.4.5", "bytes", "futures-util", "http 1.1.0", - "http-body 1.0.0", + "http-body 1.0.1", "http-body-util", - "hyper 1.3.1", + "hyper 1.5.1", "hyper-util", "itoa", "matchit 0.7.3", @@ -967,9 +1118,9 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tokio", - "tower", + "tower 0.5.1", "tower-layer", "tower-service", "tracing", @@ -994,20 +1145,20 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", "bytes", "futures-util", "http 1.1.0", - "http-body 1.0.0", + "http-body 1.0.1", "http-body-util", "mime", "pin-project-lite", "rustversion", - "sync_wrapper 0.1.2", + "sync_wrapper 1.0.2", "tower-layer", "tower-service", "tracing", @@ -1015,17 +1166,17 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.73" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if", "libc", "miniz_oxide", "object", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -1046,6 +1197,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa" +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + [[package]] name = "base64" version = "0.13.1" @@ -1140,8 +1297,8 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3deeecb812ca5300b7d3f66f730cc2ebd3511c3d36c691dd79c165d5b19a26e3" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -1156,15 +1313,15 @@ dependencies = [ [[package]] name = "bip32" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e141fb0f8be1c7b45887af94c88b182472b57c96b56773250ae00cd6a14a164" +checksum = "aa13fae8b6255872fd86f7faf4b41168661d7d78609f7bfe6771b85c6739a15b" dependencies = [ "bs58 0.5.1", - "hmac", + "hmac 0.12.1", "k256", "once_cell", - "pbkdf2", + "pbkdf2 0.12.2", "rand_core 0.6.4", "ripemd", "sha2 0.10.8", @@ -1174,12 +1331,12 @@ dependencies = [ [[package]] name = "bip39" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" +checksum = "33415e24172c1b7d6066f6d999545375ab8e1d95421d6784bdfff9496f292387" dependencies = [ - "bitcoin_hashes 0.11.0", - "rand", + "bitcoin_hashes 0.13.0", + "rand 0.8.5", "rand_core 0.6.4", "serde", "unicode-normalization", @@ -1200,6 +1357,12 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +[[package]] +name = "bitcoin-internals" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" + [[package]] name = "bitcoin-private" version = "0.1.0" @@ -1208,17 +1371,21 @@ checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57" [[package]] name = "bitcoin_hashes" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" +checksum = "5d7066118b13d4b20b23645932dfb3a81ce7e29f95726c2036fa33cd7b092501" +dependencies = [ + "bitcoin-private", +] [[package]] name = "bitcoin_hashes" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d7066118b13d4b20b23645932dfb3a81ce7e29f95726c2036fa33cd7b092501" +checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" dependencies = [ - "bitcoin-private", + "bitcoin-internals", + "hex-conservative", ] [[package]] @@ -1229,9 +1396,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +dependencies = [ + "serde", +] [[package]] name = "bitmaps" @@ -1297,12 +1467,27 @@ dependencies = [ "constant_time_eq", ] +[[package]] +name = "blake3" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "digest 0.10.7", +] + [[package]] name = "block-buffer" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ + "block-padding 0.2.1", "generic-array", ] @@ -1315,6 +1500,12 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + [[package]] name = "block-padding" version = "0.3.3" @@ -1326,9 +1517,9 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62dc83a094a71d43eeadd254b1ec2d24cb6a0bb6cadce00df51f0db594711a32" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" dependencies = [ "cc", "glob", @@ -1357,6 +1548,78 @@ name = "bnum" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56953345e39537a3e18bdaeba4cb0c58a78c1f61f361dc0fa7c5c7340ae87c5f" +dependencies = [ + "serde", + "serde-big-array", +] + +[[package]] +name = "borsh" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115e54d64eb62cdebad391c19efc9dce4981c690c85a33a12199d99bb9546fee" +dependencies = [ + "borsh-derive 0.10.4", + "hashbrown 0.13.2", +] + +[[package]] +name = "borsh" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2506947f73ad44e344215ccd6403ac2ae18cd8e046e581a441bf8d199f257f03" +dependencies = [ + "borsh-derive 1.5.3", + "cfg_aliases 0.2.1", +] + +[[package]] +name = "borsh-derive" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831213f80d9423998dd696e2c5345aba6be7a0bd8cd19e31c5243e13df1cef89" +dependencies = [ + "borsh-derive-internal", + "borsh-schema-derive-internal", + "proc-macro-crate 0.1.5", + "proc-macro2 1.0.92", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2593a3b8b938bd68373196c9832f516be11fa487ef4ae745eb282e6a56a7244" +dependencies = [ + "once_cell", + "proc-macro-crate 3.2.0", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", +] + +[[package]] +name = "borsh-derive-internal" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65d6ba50644c98714aa2a70d13d7df3cd75cd2b523a2b452bf010443800976b3" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 1.0.109", +] + +[[package]] +name = "borsh-schema-derive-internal" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "276691d96f063427be83e6692b86148e488ebba9f48f77788724ca027ba3b6d4" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 1.0.109", +] [[package]] name = "brotli" @@ -1366,7 +1629,18 @@ checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", - "brotli-decompressor", + "brotli-decompressor 2.5.1", +] + +[[package]] +name = "brotli" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor 4.0.1", ] [[package]] @@ -1379,6 +1653,16 @@ dependencies = [ "alloc-stdlib", ] +[[package]] +name = "brotli-decompressor" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + [[package]] name = "bs58" version = "0.4.0" @@ -1397,9 +1681,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.9.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" +checksum = "1a68f1f47cdf0ec8ee4b941b2eee2a80cb796db73118c0dd09ac63fbe405be22" dependencies = [ "memchr", "serde", @@ -1411,12 +1695,44 @@ version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +[[package]] +name = "bv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340" +dependencies = [ + "feature-probe", + "serde", +] + [[package]] name = "byte-slice-cast" version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 1.0.109", +] + [[package]] name = "bytecount" version = "0.6.8" @@ -1425,34 +1741,58 @@ checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" [[package]] name = "bytemuck" -version = "1.16.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" +checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" +dependencies = [ + "bytemuck_derive", +] [[package]] -name = "byteorder" -version = "1.5.0" +name = "bytemuck_derive" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" dependencies = [ "serde", ] [[package]] name = "camino" -version = "1.1.7" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" dependencies = [ "serde", ] +[[package]] +name = "caps" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "190baaad529bcfbde9e1a19022c42781bdb6ff9de25721abdb8fd98c0807730b" +dependencies = [ + "libc", + "thiserror", +] + [[package]] name = "cargo-platform" version = "0.1.8" @@ -1487,9 +1827,14 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.99" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" +checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" +dependencies = [ + "jobserver", + "libc", + "shlex", +] [[package]] name = "cfg-if" @@ -1497,6 +1842,18 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chrono" version = "0.4.38" @@ -1509,7 +1866,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -1524,9 +1881,40 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.7" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags 1.3.2", + "strsim 0.8.0", + "textwrap 0.11.0", + "unicode-width 0.1.14", + "vec_map", +] + +[[package]] +name = "clap" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" +dependencies = [ + "atty", + "bitflags 1.3.2", + "clap_lex 0.2.4", + "indexmap 1.9.3", + "once_cell", + "strsim 0.10.0", + "termcolor", + "textwrap 0.16.1", +] + +[[package]] +name = "clap" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" +checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" dependencies = [ "clap_builder", "clap_derive", @@ -1534,34 +1922,43 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.7" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" +checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" dependencies = [ "anstream", "anstyle", - "clap_lex", + "clap_lex 0.7.3", "strsim 0.11.1", "terminal_size", ] [[package]] name = "clap_derive" -version = "4.5.5" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck 0.5.0", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] name = "clap_lex" -version = "0.7.1" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "clap_lex" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" +checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" [[package]] name = "client" @@ -1591,14 +1988,14 @@ checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" dependencies = [ "serde", "termcolor", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] name = "colorchoice" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "colored" @@ -1610,6 +2007,28 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "config" version = "0.13.4" @@ -1636,7 +2055,7 @@ source = "git+https://github.com/mystenlabs/sui?tag=mainnet-v1.26.2#f531168c7452 dependencies = [ "fastcrypto", "mysten-network", - "rand", + "rand 0.8.5", "serde", "shared-crypto", ] @@ -1650,14 +2069,35 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", + "unicode-width 0.1.14", "windows-sys 0.52.0", ] +[[package]] +name = "console_error_panic_hook" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +dependencies = [ + "cfg-if", + "wasm-bindgen", +] + +[[package]] +name = "console_log" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f" +dependencies = [ + "log", + "web-sys", +] + [[package]] name = "const-hex" -version = "1.12.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +checksum = "487981fa1af147182687064d0a2c336586d337a606595ced9ffb0c685c250c73" dependencies = [ "cfg-if", "cpufeatures", @@ -1674,9 +2114,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "constant_time_eq" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" @@ -1720,9 +2160,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core2" @@ -1755,7 +2195,7 @@ dependencies = [ "cosmos-sdk-proto", "ecdsa", "eyre", - "getrandom", + "getrandom 0.2.15", "k256", "rand_core 0.6.4", "serde", @@ -1767,12 +2207,11 @@ dependencies = [ [[package]] name = "cosmwasm-crypto" -version = "1.5.5" +version = "1.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd50718a2b6830ce9eb5d465de5a018a12e71729d66b70807ce97e6dd14f931d" +checksum = "58535cbcd599b3c193e3967c8292fe1dbbb5de7c2a2d87380661091dd4744044" dependencies = [ "digest 0.10.7", - "ecdsa", "ed25519-zebra", "k256", "rand_core 0.6.4", @@ -1781,18 +2220,18 @@ dependencies = [ [[package]] name = "cosmwasm-derive" -version = "1.5.5" +version = "1.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "242e98e7a231c122e08f300d9db3262d1007b51758a8732cd6210b3e9faa4f3a" +checksum = "a8e07de16c800ac82fd188d055ecdb923ead0cf33960d3350089260bb982c09f" dependencies = [ "syn 1.0.109", ] [[package]] name = "cosmwasm-schema" -version = "1.5.5" +version = "1.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7879036156092ad1c22fe0d7316efc5a5eceec2bc3906462a2560215f2a2f929" +checksum = "93d388adfa9cb449557a92e9318121ac1a481fc4f599213b03a5b62699b403b4" dependencies = [ "cosmwasm-schema-derive", "schemars", @@ -1803,20 +2242,20 @@ dependencies = [ [[package]] name = "cosmwasm-schema-derive" -version = "1.5.5" +version = "1.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb57855fbfc83327f8445ae0d413b1a05ac0d68c396ab4d122b2abd7bb82cb6" +checksum = "2411b389e56e6484f81ba955b758d02522d620c98fc960c4bd2251d48b7aa19f" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] [[package]] name = "cosmwasm-std" -version = "1.5.5" +version = "1.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c1556156fdf892a55cced6115968b961eaaadd6f724a2c2cb7d1e168e32dd3" +checksum = "c21fde95ccd20044a23c0ac6fd8c941f3e8c158169dc94b5aa6491a2d9551a8d" dependencies = [ "base64 0.21.7", "bech32 0.9.1", @@ -1846,9 +2285,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -1873,6 +2312,40 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "crossbeam-channel" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + [[package]] name = "crunchy" version = "0.2.2" @@ -1902,6 +2375,16 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-mac" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +dependencies = [ + "generic-array", + "subtle", +] + [[package]] name = "ct-logs" version = "0.8.0" @@ -1922,13 +2405,13 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +version = "3.2.1" +source = "git+https://github.com/dalek-cryptography/curve25519-dalek?rev=8274d5cbb6fc3f38cdc742b4798173895cd2a290#8274d5cbb6fc3f38cdc742b4798173895cd2a290" dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", + "serde", "subtle", "zeroize", ] @@ -1944,7 +2427,7 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "subtle", "zeroize", ] @@ -1955,9 +2438,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -2114,12 +2597,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "darling_core 0.20.9", - "darling_macro 0.20.9", + "darling_core 0.20.10", + "darling_macro 0.20.10", ] [[package]] @@ -2130,24 +2613,24 @@ checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "strsim 0.10.0", "syn 1.0.109", ] [[package]] name = "darling_core" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "strsim 0.11.1", - "syn 2.0.68", + "syn 2.0.89", ] [[package]] @@ -2157,19 +2640,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ "darling_core 0.14.4", - "quote 1.0.36", + "quote 1.0.37", "syn 1.0.109", ] [[package]] name = "darling_macro" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core 0.20.9", - "quote 1.0.36", - "syn 2.0.68", + "darling_core 0.20.10", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -2243,20 +2726,20 @@ dependencies = [ "asn1-rs", "displaydoc", "nom", - "num-bigint 0.4.5", + "num-bigint 0.4.6", "num-traits", "rusticata-macros", ] [[package]] name = "der_derive" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fe87ce4529967e0ba1dcf8450bab64d97dfd5010a6256187ffe2e43e6f0e049" +checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -2275,19 +2758,25 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4255bb7dd538590188bd0aea52e48bd699b19bd90b0d069ec2ced8461fe23273" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] +[[package]] +name = "derivation-path" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" + [[package]] name = "derivative" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -2298,10 +2787,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ "convert_case", - "proc-macro2 1.0.85", - "quote 1.0.36", - "rustc_version 0.4.0", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "rustc_version 0.4.1", + "syn 2.0.89", +] + +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", +] + +[[package]] +name = "dialoguer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59c6f2989294b9a498d3ad5491a79c6deb604617378e1cdc4bfc1c1361fe2f87" +dependencies = [ + "console", + "shell-words", + "tempfile", + "zeroize", ] [[package]] @@ -2387,13 +2908,36 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.4" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", +] + +[[package]] +name = "dlopen2" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b4f5f101177ff01b8ec4ecc81eead416a8aa42819a2869311b3420fa114ffa" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +checksum = "a6cbae11b3de8fce2a456e8ea3dada226b35fe791f0dc1d360c0941f0bb681f3" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -2410,9 +2954,9 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "dunce" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" @@ -2420,6 +2964,12 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" + [[package]] name = "ecdsa" version = "0.16.9" @@ -2470,6 +3020,20 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ed25519-dalek" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +dependencies = [ + "curve25519-dalek 3.2.1", + "ed25519 1.5.3", + "rand 0.7.3", + "serde", + "sha2 0.9.9", + "zeroize", +] + [[package]] name = "ed25519-dalek" version = "2.1.1" @@ -2479,18 +3043,31 @@ dependencies = [ "curve25519-dalek 4.1.3", "ed25519 2.2.3", "rand_core 0.6.4", + "serde", "sha2 0.10.8", "subtle", "zeroize", ] +[[package]] +name = "ed25519-dalek-bip32" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d2be62a4061b872c8c0873ee4fc6f101ce7b889d039f019c5fa2af471a59908" +dependencies = [ + "derivation-path", + "ed25519-dalek 1.0.1", + "hmac 0.12.1", + "sha2 0.10.8", +] + [[package]] name = "ed25519-zebra" version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" dependencies = [ - "curve25519-dalek 3.2.0", + "curve25519-dalek 3.2.1", "hashbrown 0.12.3", "hex", "rand_core 0.6.4", @@ -2501,9 +3078,9 @@ dependencies = [ [[package]] name = "either" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "elliptic-curve" @@ -2533,9 +3110,9 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] @@ -2551,10 +3128,10 @@ dependencies = [ "hex", "k256", "log", - "rand", + "rand 0.8.5", "rlp", "serde", - "sha3", + "sha3 0.10.8", "zeroize", ] @@ -2572,11 +3149,31 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f16ef37b2a9b242295d61a154ee91ae884afff6b8b933b486b12481cc58310ca" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] +[[package]] +name = "enum-iterator" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fd242f399be1da0a5354aa462d57b4ab2b4ee0683cc552f7c007d2d12d36e94" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", +] + [[package]] name = "enum_dispatch" version = "0.3.13" @@ -2584,9 +3181,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" dependencies = [ "once_cell", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", +] + +[[package]] +name = "env_logger" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" +dependencies = [ + "atty", + "humantime", + "log", + "regex", + "termcolor", ] [[package]] @@ -2613,7 +3223,7 @@ checksum = "27a72baa257b5e0e2de241967bc5ee8f855d6072351042688621081d66b2a76b" dependencies = [ "anyhow", "eyre", - "rustc_version 0.4.0", + "rustc_version 0.4.1", ] [[package]] @@ -2634,7 +3244,7 @@ dependencies = [ "regex", "serde", "serde_json", - "sha3", + "sha3 0.10.8", "thiserror", "uint", ] @@ -2699,14 +3309,14 @@ dependencies = [ "dunce", "ethers-core", "eyre", - "prettyplease 0.2.20", - "proc-macro2 1.0.85", - "quote 1.0.36", + "prettyplease 0.2.25", + "proc-macro2 1.0.92", + "quote 1.0.37", "regex", "serde", "serde_json", - "syn 2.0.68", - "toml 0.8.14", + "syn 2.0.89", + "toml 0.8.19", "walkdir", ] @@ -2720,10 +3330,10 @@ dependencies = [ "const-hex", "ethers-contract-abigen", "ethers-core", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "serde_json", - "syn 2.0.68", + "syn 2.0.89", ] [[package]] @@ -2741,19 +3351,19 @@ dependencies = [ "ethabi", "generic-array", "k256", - "num_enum 0.7.2", + "num_enum 0.7.3", "once_cell", "open-fastrlp", - "rand", + "rand 0.8.5", "rlp", "serde", "serde_json", - "strum 0.26.2", - "syn 2.0.68", + "strum 0.26.3", + "syn 2.0.89", "tempfile", "thiserror", "tiny-keccak", - "unicode-xid 0.2.4", + "unicode-xid 0.2.6", ] [[package]] @@ -2824,10 +3434,10 @@ version = "1.0.0" dependencies = [ "error-stack", "events", - "quote 1.0.36", + "quote 1.0.37", "serde", "serde_json", - "syn 2.0.68", + "syn 2.0.89", ] [[package]] @@ -2842,7 +3452,7 @@ dependencies = [ "k256", "multisig", "router-api", - "sha3", + "sha3 0.10.8", "thiserror", ] @@ -2877,7 +3487,7 @@ dependencies = [ "cbc", "ctr", "curve25519-dalek-ng", - "derive_more", + "derive_more 0.99.18", "digest 0.10.7", "ecdsa", "ed25519-consensus", @@ -2888,10 +3498,10 @@ dependencies = [ "hex-literal", "hkdf", "lazy_static", - "num-bigint 0.4.5", + "num-bigint 0.4.6", "once_cell", "p256", - "rand", + "rand 0.8.5", "readonly", "rfc6979", "rsa", @@ -2901,7 +3511,7 @@ dependencies = [ "serde_json", "serde_with 2.3.3", "sha2 0.10.8", - "sha3", + "sha3 0.10.8", "signature 2.2.0", "static_assertions", "thiserror", @@ -2915,7 +3525,7 @@ name = "fastcrypto-derive" version = "0.1.3" source = "git+https://github.com/MystenLabs/fastcrypto?rev=4988a4744fcaf8bc7f60bf660d9a223ed0f54cc6#4988a4744fcaf8bc7f60bf660d9a223ed0f54cc6" dependencies = [ - "quote 1.0.36", + "quote 1.0.37", "syn 1.0.109", ] @@ -2929,9 +3539,9 @@ dependencies = [ "fastcrypto", "hex", "itertools 0.10.5", - "rand", + "rand 0.8.5", "serde", - "sha3", + "sha3 0.10.8", "tap", "tracing", "typenum", @@ -2952,14 +3562,14 @@ dependencies = [ "ark-snark", "blst", "byte-slice-cast", - "derive_more", + "derive_more 0.99.18", "fastcrypto", "ff", "im", "itertools 0.12.1", "lazy_static", "neptune", - "num-bigint 0.4.5", + "num-bigint 0.4.6", "once_cell", "reqwest 0.11.27", "schemars", @@ -2979,9 +3589,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] name = "fastrlp" @@ -3010,13 +3620,19 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d15473d7f83b54a44826907af16ae5727eaacaf6e53b51474016d3efd9aa35d5" dependencies = [ - "darling 0.20.9", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", - "uuid 1.10.0", + "darling 0.20.10", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", + "uuid 1.11.0", ] +[[package]] +name = "feature-probe" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" + [[package]] name = "ff" version = "0.13.0" @@ -3041,8 +3657,8 @@ dependencies = [ "num-bigint 0.3.3", "num-integer", "num-traits", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -3059,7 +3675,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" dependencies = [ "byteorder", - "rand", + "rand 0.8.5", "rustc-hex", "static_assertions", ] @@ -3071,7 +3687,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand", + "rand 0.8.5", "rustc-hex", "static_assertions", ] @@ -3090,18 +3706,18 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flagset" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdeb3aa5e95cf9aabc17f060cfa0ced7b83f042390760ca53bf09df9968acaa1" +checksum = "b3ea1ec5f8307826a5b71094dd91fc04d4ae75d5709b20ad351c7fb4815c86ec" dependencies = [ "serde", ] [[package]] name = "flate2" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", "miniz_oxide", @@ -3182,9 +3798,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -3197,9 +3813,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -3207,15 +3823,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -3224,32 +3840,32 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" @@ -3263,9 +3879,9 @@ dependencies = [ [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -3302,7 +3918,7 @@ dependencies = [ "error-stack", "gateway-api", "itertools 0.11.0", - "rand", + "rand 0.8.5", "report", "router-api", "serde", @@ -3326,6 +3942,17 @@ dependencies = [ "thiserror", ] +[[package]] +name = "gateway-event-stack" +version = "0.1.0" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=0be172e#0be172ec2d0b24e236d4131e8db46d93c98fe5f9" +dependencies = [ + "axelar-solana-gateway", + "base64 0.21.7", + "solana-sdk", + "tracing", +] + [[package]] name = "generic-array" version = "0.14.7" @@ -3338,6 +3965,29 @@ dependencies = [ "zeroize", ] +[[package]] +name = "gethostname" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", + "wasm-bindgen", +] + [[package]] name = "getrandom" version = "0.2.15" @@ -3347,7 +3997,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", "wasm-bindgen", ] @@ -3363,9 +4013,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.29.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" @@ -3375,15 +4025,15 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "globset" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" +checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19" dependencies = [ "aho-corasick", "bstr", "log", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] @@ -3399,10 +4049,21 @@ dependencies = [ ] [[package]] -name = "goldie" -version = "0.5.0" +name = "goblin" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa70c42797cac60e6182e00f33f629212e02ba80d67e8a976f6168b57568d78e" +checksum = "a7666983ed0dd8d21a6f6576ee00053ca0926fb281a5522577a4dbd0f1b54143" +dependencies = [ + "log", + "plain", + "scroll", +] + +[[package]] +name = "goldie" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa70c42797cac60e6182e00f33f629212e02ba80d67e8a976f6168b57568d78e" dependencies = [ "anyhow", "once_cell", @@ -3410,7 +4071,7 @@ dependencies = [ "serde", "serde_json", "upon", - "yansi 1.0.1", + "yansi", ] [[package]] @@ -3420,7 +4081,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand", + "rand 0.8.5", "rand_core 0.6.4", "rand_xorshift", "subtle", @@ -3438,7 +4099,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.2.6", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", @@ -3447,9 +4108,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", "bytes", @@ -3457,13 +4118,22 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.2.6", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", "tracing", ] +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -3488,6 +4158,12 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + [[package]] name = "hashers" version = "1.0.1" @@ -3543,6 +4219,15 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + [[package]] name = "hermit-abi" version = "0.3.9" @@ -3558,19 +4243,41 @@ dependencies = [ "serde", ] +[[package]] +name = "hex-conservative" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" + [[package]] name = "hex-literal" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +[[package]] +name = "histogram" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cb882ccb290b8646e554b157ab0b71e64e8d5bef775cd66b6531e52d302669" + [[package]] name = "hkdf" version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ - "hmac", + "hmac 0.12.1", +] + +[[package]] +name = "hmac" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" +dependencies = [ + "crypto-mac", + "digest 0.9.0", ] [[package]] @@ -3582,6 +4289,17 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "hmac-drbg" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" +dependencies = [ + "digest 0.9.0", + "generic-array", + "hmac 0.8.1", +] + [[package]] name = "home" version = "0.5.9" @@ -3626,9 +4344,9 @@ dependencies = [ [[package]] name = "http-body" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", "http 1.1.0", @@ -3643,7 +4361,7 @@ dependencies = [ "bytes", "futures-util", "http 1.1.0", - "http-body 1.0.0", + "http-body 1.0.1", "pin-project-lite", ] @@ -3655,9 +4373,9 @@ checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] name = "httparse" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "httpdate" @@ -3683,9 +4401,9 @@ dependencies = [ [[package]] name = "hyper" -version = "0.14.29" +version = "0.14.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" +checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" dependencies = [ "bytes", "futures-channel", @@ -3707,16 +4425,16 @@ dependencies = [ [[package]] name = "hyper" -version = "1.3.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" +checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.6", + "h2 0.4.7", "http 1.1.0", - "http-body 1.0.0", + "http-body 1.0.1", "httparse", "httpdate", "itoa", @@ -3736,7 +4454,7 @@ dependencies = [ "futures", "headers", "http 0.2.12", - "hyper 0.14.29", + "hyper 0.14.31", "hyper-rustls 0.22.1", "rustls-native-certs 0.5.0", "tokio", @@ -3753,7 +4471,7 @@ checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" dependencies = [ "ct-logs", "futures-util", - "hyper 0.14.29", + "hyper 0.14.31", "log", "rustls 0.19.1", "rustls-native-certs 0.5.0", @@ -3770,7 +4488,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" dependencies = [ "http 0.2.12", - "hyper 0.14.29", + "hyper 0.14.31", "log", "rustls 0.20.9", "rustls-native-certs 0.6.3", @@ -3787,7 +4505,7 @@ checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", "http 0.2.12", - "hyper 0.14.29", + "hyper 0.14.31", "log", "rustls 0.21.12", "rustls-native-certs 0.6.3", @@ -3797,15 +4515,15 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.2" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", "http 1.1.0", - "hyper 1.3.1", + "hyper 1.5.1", "hyper-util", - "rustls 0.23.12", + "rustls 0.23.18", "rustls-pki-types", "tokio", "tokio-rustls 0.26.0", @@ -3818,7 +4536,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper 0.14.29", + "hyper 0.14.31", "pin-project-lite", "tokio", "tokio-io-timeout", @@ -3832,7 +4550,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.3.1", + "hyper 1.5.1", "hyper-util", "native-tls", "tokio", @@ -3842,29 +4560,28 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.5" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", "futures-util", "http 1.1.0", - "http-body 1.0.0", - "hyper 1.3.1", + "http-body 1.0.1", + "hyper 1.5.1", "pin-project-lite", "socket2", "tokio", - "tower", "tower-service", "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3883,6 +4600,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -3891,12 +4726,23 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] @@ -3928,7 +4774,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" dependencies = [ - "parity-scale-codec 3.6.12", + "parity-scale-codec 3.7.0", ] [[package]] @@ -3960,13 +4806,13 @@ dependencies = [ [[package]] name = "impl-trait-for-tuples" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 1.0.109", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -3988,30 +4834,43 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.2", "serde", ] +[[package]] +name = "indicatif" +version = "0.17.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281" +dependencies = [ + "console", + "number_prefix", + "portable-atomic", + "unicode-width 0.2.0", + "web-time", +] + [[package]] name = "inout" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "block-padding", + "block-padding 0.3.3", "generic-array", ] [[package]] name = "insta" -version = "1.39.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "810ae6042d48e2c9e9215043563a58a80b877bc863228a74cf10c49d4620a6f5" +checksum = "7e9ffc4d4892617c50a928c52b2961cb5174b6fc6ebf252b2fac9d21955c48b8" dependencies = [ "console", "lazy_static", @@ -4047,7 +4906,7 @@ dependencies = [ "k256", "multisig", "multisig-prover", - "rand", + "rand 0.8.5", "report", "rewards", "router", @@ -4057,7 +4916,7 @@ dependencies = [ "serde_json", "service-registry", "service-registry-api", - "sha3", + "sha3 0.10.8", "tofn", "voting-verifier", ] @@ -4087,7 +4946,7 @@ dependencies = [ "schemars", "serde", "serde_json", - "sha3", + "sha3 0.10.8", "strum 0.25.0", "thiserror", ] @@ -4098,17 +4957,17 @@ version = "1.0.0" dependencies = [ "axelar-wasm-std", "error-stack", - "quote 1.0.36", + "quote 1.0.37", "report", - "syn 2.0.68", + "syn 2.0.89", "thiserror", ] [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "iri-string" @@ -4121,9 +4980,9 @@ dependencies = [ [[package]] name = "is_terminal_polyfill" -version = "1.70.0" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itertools" @@ -4163,15 +5022,24 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "540654e97a3f4470a492cd30ff187bc95d89557a903a2bbf112e2fae98104ef2" + +[[package]] +name = "jobserver" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ "wasm-bindgen", ] @@ -4196,6 +5064,21 @@ dependencies = [ "tabled", ] +[[package]] +name = "jsonrpc-core" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" +dependencies = [ + "futures", + "futures-executor", + "futures-util", + "log", + "serde", + "serde_derive", + "serde_json", +] + [[package]] name = "jsonrpsee" version = "0.16.2" @@ -4244,10 +5127,10 @@ dependencies = [ "futures-timer", "futures-util", "globset", - "hyper 0.14.29", + "hyper 0.14.31", "jsonrpsee-types 0.16.2", "parking_lot", - "rand", + "rand 0.8.5", "rustc-hash", "serde", "serde_json", @@ -4267,7 +5150,7 @@ dependencies = [ "async-trait", "beef", "futures-util", - "hyper 0.14.29", + "hyper 0.14.31", "jsonrpsee-types 0.20.4", "serde", "serde_json", @@ -4282,7 +5165,7 @@ version = "0.16.2" source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8" dependencies = [ "async-trait", - "hyper 0.14.29", + "hyper 0.14.31", "hyper-rustls 0.23.2", "jsonrpsee-core 0.16.2", "jsonrpsee-types 0.16.2", @@ -4301,7 +5184,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c7b9f95208927653e7965a98525e7fc641781cab89f0e27c43fa2974405683" dependencies = [ "async-trait", - "hyper 0.14.29", + "hyper 0.14.31", "hyper-rustls 0.24.2", "jsonrpsee-core 0.20.4", "jsonrpsee-types 0.20.4", @@ -4309,7 +5192,7 @@ dependencies = [ "serde_json", "thiserror", "tokio", - "tower", + "tower 0.4.13", "tracing", "url", ] @@ -4321,8 +5204,8 @@ source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcd dependencies = [ "heck 0.4.1", "proc-macro-crate 1.1.3", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -4334,7 +5217,7 @@ dependencies = [ "futures-channel", "futures-util", "http 0.2.12", - "hyper 0.14.29", + "hyper 0.14.31", "jsonrpsee-core 0.16.2", "jsonrpsee-types 0.16.2", "serde", @@ -4343,7 +5226,7 @@ dependencies = [ "tokio", "tokio-stream", "tokio-util", - "tower", + "tower 0.4.13", "tracing", ] @@ -4401,9 +5284,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.1" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa", @@ -4424,9 +5307,9 @@ dependencies = [ [[package]] name = "keccak-asm" -version = "0.1.1" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47a3633291834c4fbebf8673acbc1b04ec9d151418ff9b8e26dcd79129928758" +checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" dependencies = [ "digest 0.10.7", "sha3-asm", @@ -4449,15 +5332,15 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.155" +version = "0.2.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libredox" @@ -4465,10 +5348,58 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "libc", ] +[[package]] +name = "libsecp256k1" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73" +dependencies = [ + "arrayref", + "base64 0.12.3", + "digest 0.9.0", + "hmac-drbg", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", + "rand 0.7.3", + "serde", + "sha2 0.9.9", + "typenum", +] + +[[package]] +name = "libsecp256k1-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80" +dependencies = [ + "crunchy", + "digest 0.9.0", + "subtle", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" +dependencies = [ + "libsecp256k1-core", +] + [[package]] name = "linked-hash-map" version = "0.5.6" @@ -4481,6 +5412,12 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litemap" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" + [[package]] name = "lock_api" version = "0.4.12" @@ -4493,9 +5430,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" dependencies = [ "serde", ] @@ -4542,6 +5479,36 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "merlin" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" +dependencies = [ + "byteorder", + "keccak", + "rand_core 0.6.4", + "zeroize", +] + [[package]] name = "mime" version = "0.3.17" @@ -4550,9 +5517,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "mime_guess" -version = "2.0.4" +version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" dependencies = [ "mime", "unicase", @@ -4566,22 +5533,23 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ - "adler", + "adler2", ] [[package]] name = "mio" -version = "0.8.11" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ + "hermit-abi 0.3.9", "libc", - "wasi", - "windows-sys 0.48.0", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", ] [[package]] @@ -4610,7 +5578,7 @@ dependencies = [ "fragile", "lazy_static", "mockall_derive 0.12.1", - "predicates 3.1.0", + "predicates 3.1.2", "predicates-tree", ] @@ -4621,8 +5589,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" dependencies = [ "cfg-if", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -4633,9 +5601,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2" dependencies = [ "cfg-if", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -4733,7 +5701,7 @@ dependencies = [ "dirs-next", "hex", "move-core-types", - "num-bigint 0.4.5", + "num-bigint 0.4.6", "once_cell", "serde", "sha2 0.9.9", @@ -4748,7 +5716,7 @@ source = "git+https://github.com/mystenlabs/sui?tag=mainnet-v1.26.2#f531168c7452 dependencies = [ "anyhow", "bcs", - "clap", + "clap 4.5.21", "codespan-reporting", "dunce", "hex", @@ -4785,10 +5753,10 @@ dependencies = [ "hex", "leb128", "move-proc-macros", - "num", + "num 0.4.3", "once_cell", "primitive-types 0.10.1", - "rand", + "rand 0.8.5", "ref-cast", "serde", "serde_bytes", @@ -4803,7 +5771,7 @@ source = "git+https://github.com/mystenlabs/sui?tag=mainnet-v1.26.2#f531168c7452 dependencies = [ "anyhow", "bcs", - "clap", + "clap 4.5.21", "codespan", "colored", "move-abstract-interpreter", @@ -4823,7 +5791,7 @@ source = "git+https://github.com/mystenlabs/sui?tag=mainnet-v1.26.2#f531168c7452 dependencies = [ "anyhow", "bcs", - "clap", + "clap 4.5.21", "colored", "hex", "move-abstract-interpreter", @@ -4886,8 +5854,8 @@ version = "0.1.0" source = "git+https://github.com/mystenlabs/sui?tag=mainnet-v1.26.2#f531168c745260b60a4ec4906c9f2b22240d872d" dependencies = [ "enum-compat-util", - "quote 1.0.36", - "syn 2.0.68", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -4956,9 +5924,9 @@ dependencies = [ "cosmwasm-std", "error-stack", "itertools 0.11.0", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -4967,8 +5935,8 @@ version = "0.1.0" source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=077b735b484cf33e79f9d621db1d0c3a5827b81e#077b735b484cf33e79f9d621db1d0c3a5827b81e" dependencies = [ "darling 0.14.4", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -5021,10 +5989,10 @@ checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro-error", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", - "synstructure", + "synstructure 0.12.6", ] [[package]] @@ -5047,10 +6015,10 @@ dependencies = [ "cw-storage-plus 1.2.0", "cw-utils 1.0.3", "cw2 1.1.2", - "ed25519-dalek", + "ed25519-dalek 2.1.1", "enum-display-derive", "error-stack", - "getrandom", + "getrandom 0.2.15", "goldie", "hex", "itertools 0.11.0", @@ -5061,7 +6029,7 @@ dependencies = [ "router-api", "serde", "serde_json", - "sha3", + "sha3 0.10.8", "signature-verifier-api", "thiserror", ] @@ -5072,6 +6040,7 @@ version = "1.1.1" dependencies = [ "anyhow", "assert_ok", + "axelar-solana-encoding", "axelar-wasm-std", "bcs", "client", @@ -5102,7 +6071,7 @@ dependencies = [ "serde_json", "service-registry", "service-registry-api", - "sha3", + "sha3 0.10.8", "stellar", "stellar-xdr", "sui-gateway", @@ -5123,21 +6092,21 @@ dependencies = [ "bip39", "ctr", "hex", - "hmac", + "hmac 0.12.1", "itertools 0.13.0", "log", - "pbkdf2", + "pbkdf2 0.12.2", "pem 3.0.4", - "rand", - "reqwest 0.12.5", + "rand 0.8.5", + "reqwest 0.12.9", "scrypt", "serde", "serde_json", "serde_repr", "sha2 0.10.8", - "sha3", + "sha3 0.10.8", "tokio", - "uuid 1.10.0", + "uuid 1.11.0", "zeroize", ] @@ -5158,7 +6127,7 @@ dependencies = [ "tap", "tokio", "tracing", - "uuid 1.10.0", + "uuid 1.11.0", ] [[package]] @@ -5180,7 +6149,7 @@ dependencies = [ "tokio-stream", "tonic 0.11.0", "tonic-health", - "tower", + "tower 0.4.13", "tower-http", "tracing", ] @@ -5196,7 +6165,7 @@ dependencies = [ "fastcrypto-tbls", "hashbrown 0.12.3", "impl-trait-for-tuples", - "indexmap 2.2.6", + "indexmap 2.6.0", "mysten-util-mem-derive", "once_cell", "parking_lot", @@ -5209,9 +6178,9 @@ name = "mysten-util-mem-derive" version = "0.1.0" source = "git+https://github.com/mystenlabs/sui?tag=mainnet-v1.26.2#f531168c745260b60a4ec4906c9f2b22240d872d" dependencies = [ - "proc-macro2 1.0.85", + "proc-macro2 1.0.92", "syn 1.0.109", - "synstructure", + "synstructure 0.12.6", ] [[package]] @@ -5224,7 +6193,7 @@ dependencies = [ "mysten-network", "mysten-util-mem", "narwhal-crypto", - "rand", + "rand 0.8.5", "serde", "serde_json", "thiserror", @@ -5278,6 +6247,19 @@ dependencies = [ "trait-set", ] +[[package]] +name = "nix" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "cfg_aliases 0.1.1", + "libc", + "memoffset", +] + [[package]] name = "nom" version = "7.1.3" @@ -5310,25 +6292,39 @@ dependencies = [ "winapi", ] +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex 0.2.4", + "num-integer", + "num-iter", + "num-rational 0.2.4", + "num-traits", +] + [[package]] name = "num" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" dependencies = [ - "num-bigint 0.4.5", - "num-complex", + "num-bigint 0.4.6", + "num-complex 0.4.6", "num-integer", "num-iter", - "num-rational", + "num-rational 0.4.2", "num-traits", ] [[package]] name = "num-bigint" -version = "0.3.3" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" dependencies = [ "autocfg", "num-integer", @@ -5337,19 +6333,30 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.5" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" dependencies = [ + "autocfg", "num-integer", "num-traits", - "rand", ] [[package]] -name = "num-bigint-dig" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" dependencies = [ "byteorder", @@ -5358,11 +6365,21 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "rand", + "rand 0.8.5", "smallvec", "zeroize", ] +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "num-traits", +] + [[package]] name = "num-complex" version = "0.4.6" @@ -5384,11 +6401,22 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", +] + [[package]] name = "num-integer" version = "0.1.46" @@ -5409,13 +6437,25 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint 0.2.6", + "num-integer", + "num-traits", +] + [[package]] name = "num-rational" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "num-bigint 0.4.5", + "num-bigint 0.4.6", "num-integer", "num-traits", ] @@ -5436,7 +6476,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi", + "hermit-abi 0.3.9", "libc", ] @@ -5451,11 +6491,11 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ - "num_enum_derive 0.7.2", + "num_enum_derive 0.7.3", ] [[package]] @@ -5465,28 +6505,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" dependencies = [ "proc-macro-crate 1.1.3", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] name = "num_enum_derive" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro-crate 3.2.0", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + [[package]] name = "object" -version = "0.36.0" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "576dfe1fc8f9df304abb159d767a29d0476f7750fbf8aa7ad07816004a207434" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ "memchr", ] @@ -5502,9 +6548,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "opaque-debug" @@ -5532,18 +6578,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" dependencies = [ "bytes", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] [[package]] name = "openssl" -version = "0.10.66" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if", "foreign-types", "libc", @@ -5558,9 +6604,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -5571,18 +6617,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.3.2+3.3.2" +version = "300.4.1+3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b" +checksum = "faa4eac4138c62414b5622d1b31c5c304f34b406b013c079c2bbc652fdd6678c" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.103" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", @@ -5607,6 +6653,12 @@ dependencies = [ "hashbrown 0.12.3", ] +[[package]] +name = "os_str_bytes" +version = "6.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" + [[package]] name = "ouroboros" version = "0.17.2" @@ -5626,9 +6678,9 @@ checksum = "ec4c6225c69b4ca778c0aea097321a64c421cf4577b331c61b229267edabb6f8" dependencies = [ "heck 0.4.1", "proc-macro-error", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -5666,7 +6718,7 @@ checksum = "ae7891b22598926e4398790c8fe6447930c72a67d36d983a49d6ce682ce83290" dependencies = [ "bytecount", "fnv", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -5685,15 +6737,16 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.6.12" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +checksum = "8be4817d39f3272f69c59fe05d0535ae6456c2dc2fa1ba02910296c7e0a5c590" dependencies = [ "arrayvec", "bitvec 1.0.1", "byte-slice-cast", "impl-trait-for-tuples", - "parity-scale-codec-derive 3.6.12", + "parity-scale-codec-derive 3.7.0", + "rustversion", "serde", ] @@ -5704,21 +6757,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" dependencies = [ "proc-macro-crate 1.1.3", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] [[package]] name = "parity-scale-codec-derive" -version = "3.6.12" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +checksum = "8781a75c6205af67215f382092b6e0a4ff3734798523e69073d4bcd294ec767b" dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 1.0.109", + "proc-macro-crate 3.2.0", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -5741,7 +6794,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -5766,7 +6819,7 @@ dependencies = [ "group", "hex", "lazy_static", - "rand", + "rand 0.8.5", "serde", "static_assertions", "subtle", @@ -5780,9 +6833,27 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pathdiff" -version = "0.2.1" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c5ce1153ab5b689d0c074c4e7fc613e942dfb7dd9eea5ab202d2ad91fe361" + +[[package]] +name = "pbkdf2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" +dependencies = [ + "crypto-mac", +] + +[[package]] +name = "pbkdf2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", +] [[package]] name = "pbkdf2" @@ -5791,7 +6862,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", - "hmac", + "hmac 0.12.1", ] [[package]] @@ -5811,8 +6882,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5aa52829b8decbef693af90202711348ab001456803ba2a98eb4ec8fb70844c" dependencies = [ "peg-runtime", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", ] [[package]] @@ -5864,11 +6935,20 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "percentage" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num 0.2.1", +] + [[package]] name = "pest" -version = "2.7.10" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" +checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ "memchr", "thiserror", @@ -5877,9 +6957,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.10" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" +checksum = "d214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd" dependencies = [ "pest", "pest_generator", @@ -5887,22 +6967,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.10" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" +checksum = "eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] name = "pest_meta" -version = "2.7.10" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" +checksum = "b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d" dependencies = [ "once_cell", "pest", @@ -5926,7 +7006,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset 0.4.2", - "indexmap 2.2.6", + "indexmap 2.6.0", ] [[package]] @@ -5936,7 +7016,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" dependencies = [ "futures", - "rustc_version 0.4.0", + "rustc_version 0.4.1", ] [[package]] @@ -5956,7 +7036,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" dependencies = [ "phf_shared", - "rand", + "rand 0.8.5", ] [[package]] @@ -5967,9 +7047,9 @@ checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" dependencies = [ "phf_generator", "phf_shared", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -5983,29 +7063,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -6047,9 +7127,15 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" + +[[package]] +name = "plain" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "polyval" @@ -6063,6 +7149,12 @@ dependencies = [ "universal-hash", ] +[[package]] +name = "portable-atomic" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" + [[package]] name = "powerfmt" version = "0.2.0" @@ -6071,9 +7163,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "predicates" @@ -6091,9 +7186,9 @@ dependencies = [ [[package]] name = "predicates" -version = "3.1.0" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8" +checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97" dependencies = [ "anstyle", "predicates-core", @@ -6101,15 +7196,15 @@ dependencies = [ [[package]] name = "predicates-core" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" +checksum = "ae8177bee8e75d6846599c6b9ff679ed51e882816914eec639944d7c9aa11931" [[package]] name = "predicates-tree" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +checksum = "41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13" dependencies = [ "predicates-core", "termtree", @@ -6117,12 +7212,12 @@ dependencies = [ [[package]] name = "pretty_assertions" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" dependencies = [ "diff", - "yansi 0.5.1", + "yansi", ] [[package]] @@ -6131,18 +7226,18 @@ version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" dependencies = [ - "proc-macro2 1.0.85", + "proc-macro2 1.0.92", "syn 1.0.109", ] [[package]] name = "prettyplease" -version = "0.2.20" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ - "proc-macro2 1.0.85", - "syn 2.0.68", + "proc-macro2 1.0.92", + "syn 2.0.89", ] [[package]] @@ -6180,6 +7275,15 @@ dependencies = [ "uint", ] +[[package]] +name = "proc-macro-crate" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +dependencies = [ + "toml 0.5.11", +] + [[package]] name = "proc-macro-crate" version = "1.1.3" @@ -6192,11 +7296,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.21.1", + "toml_edit", ] [[package]] @@ -6206,8 +7310,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", "version_check", ] @@ -6218,8 +7322,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "version_check", ] @@ -6234,13 +7338,22 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.85" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] +[[package]] +name = "program-utils" +version = "0.1.0" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=0be172e#0be172ec2d0b24e236d4131e8db46d93c98fe5f9" +dependencies = [ + "rkyv", + "solana-program", +] + [[package]] name = "prometheus" version = "0.13.4" @@ -6268,19 +7381,19 @@ dependencies = [ [[package]] name = "proptest" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" +checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.5.0", + "bitflags 2.6.0", "lazy_static", "num-traits", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "rand_xorshift", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", "rusty-fork", "tempfile", "unarray", @@ -6357,8 +7470,8 @@ checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" dependencies = [ "anyhow", "itertools 0.10.5", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -6370,8 +7483,8 @@ checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools 0.10.5", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -6383,9 +7496,9 @@ checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", "itertools 0.12.1", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -6408,13 +7521,42 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.21" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +checksum = "200b9ff220857e53e184257720a14553b2f4aa02577d2ed9842d45d4b9654810" dependencies = [ "cc", ] +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 1.0.109", +] + +[[package]] +name = "qstring" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e" +dependencies = [ + "percent-encoding", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -6446,10 +7588,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a" dependencies = [ "bytes", - "rand", + "rand 0.8.5", "ring 0.16.20", "rustc-hash", "rustls 0.21.12", + "rustls-native-certs 0.6.3", "slab", "thiserror", "tinyvec", @@ -6480,11 +7623,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ - "proc-macro2 1.0.85", + "proc-macro2 1.0.92", ] [[package]] @@ -6499,6 +7642,19 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + [[package]] name = "rand" version = "0.8.5" @@ -6506,10 +7662,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", + "rand_chacha 0.3.1", "rand_core 0.6.4", ] +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + [[package]] name = "rand_chacha" version = "0.3.1" @@ -6525,6 +7691,9 @@ name = "rand_core" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] [[package]] name = "rand_core" @@ -6532,7 +7701,16 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", ] [[package]] @@ -6562,6 +7740,26 @@ dependencies = [ "fastrand 1.9.0", ] +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + [[package]] name = "rcgen" version = "0.9.3" @@ -6580,27 +7778,27 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a25d631e41bfb5fdcde1d4e2215f62f7f0afa3ff11e26563765bd6ea1d229aeb" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] name = "redox_syscall" -version = "0.5.2" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", ] [[package]] name = "redox_users" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom", + "getrandom 0.2.15", "libredox", "thiserror", ] @@ -6620,21 +7818,21 @@ version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] name = "regex" -version = "1.10.5" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] @@ -6648,13 +7846,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] @@ -6665,9 +7863,18 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "rend" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] [[package]] name = "report" @@ -6686,6 +7893,7 @@ version = "0.11.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ + "async-compression 0.4.18", "base64 0.21.7", "bytes", "encoding_rs", @@ -6694,12 +7902,13 @@ dependencies = [ "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.29", + "hyper 0.14.31", "hyper-rustls 0.24.2", "ipnet", "js-sys", "log", "mime", + "mime_guess", "once_cell", "percent-encoding", "pin-project-lite", @@ -6709,23 +7918,24 @@ dependencies = [ "serde_json", "serde_urlencoded", "sync_wrapper 0.1.2", - "system-configuration", + "system-configuration 0.5.1", "tokio", "tokio-rustls 0.24.1", + "tokio-util", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", "webpki-roots 0.25.4", - "winreg 0.50.0", + "winreg", ] [[package]] name = "reqwest" -version = "0.12.5" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "base64 0.22.1", "bytes", @@ -6733,12 +7943,12 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.4.6", + "h2 0.4.7", "http 1.1.0", - "http-body 1.0.0", + "http-body 1.0.1", "http-body-util", - "hyper 1.3.1", - "hyper-rustls 0.27.2", + "hyper 1.5.1", + "hyper-rustls 0.27.3", "hyper-tls", "hyper-util", "ipnet", @@ -6749,12 +7959,12 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls-pemfile 2.1.3", + "rustls-pemfile 2.2.0", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", - "system-configuration", + "sync_wrapper 1.0.2", + "system-configuration 0.6.1", "tokio", "tokio-native-tls", "tower-service", @@ -6762,7 +7972,22 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg 0.52.0", + "windows-registry", +] + +[[package]] +name = "reqwest-middleware" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a735987236a8e238bf0296c7e351b999c188ccc11477f311b82b55c93984216" +dependencies = [ + "anyhow", + "async-trait", + "http 0.2.12", + "reqwest 0.11.27", + "serde", + "task-local-extensions", + "thiserror", ] [[package]] @@ -6791,7 +8016,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ - "hmac", + "hmac 0.12.1", "subtle", ] @@ -6818,7 +8043,7 @@ checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if", - "getrandom", + "getrandom 0.2.15", "libc", "spin 0.9.8", "untrusted 0.9.0", @@ -6834,6 +8059,35 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "rkyv" +version = "0.7.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" +dependencies = [ + "bitvec 1.0.1", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid 1.11.0", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 1.0.109", +] + [[package]] name = "rlp" version = "0.5.2" @@ -6851,16 +8105,16 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] [[package]] name = "roaring" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7699249cc2c7d71939f30868f47e9d7add0bdc030d90ee10bfd16887ff8bb1c8" +checksum = "8f4b84ba6e838ceb47b41de5194a60244fac43d9fe03b71dbe8c5a201081d6d1" dependencies = [ "bytemuck", "byteorder", @@ -6898,7 +8152,7 @@ dependencies = [ "itertools 0.11.0", "mockall 0.12.1", "msgs-derive", - "rand", + "rand 0.8.5", "report", "router-api", "serde_json", @@ -6918,16 +8172,36 @@ dependencies = [ "flagset", "hex", "msgs-derive", - "rand", + "rand 0.8.5", "report", "schemars", "serde", "serde_json", - "sha3", + "sha3 0.10.8", "thiserror", "valuable", ] +[[package]] +name = "rpassword" +version = "7.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" +dependencies = [ + "libc", + "rtoolbox", + "windows-sys 0.48.0", +] + +[[package]] +name = "rs_merkle" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b241d2e59b74ef9e98d94c78c47623d04c8392abaf82014dfd372a16041128f" +dependencies = [ + "sha2 0.10.8", +] + [[package]] name = "rsa" version = "0.8.2" @@ -6949,6 +8223,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rtoolbox" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "ruint" version = "1.12.3" @@ -6960,12 +8244,12 @@ dependencies = [ "ark-ff 0.4.2", "bytes", "fastrlp", - "num-bigint 0.4.5", + "num-bigint 0.4.6", "num-traits", - "parity-scale-codec 3.6.12", + "parity-scale-codec 3.7.0", "primitive-types 0.12.2", "proptest", - "rand", + "rand 0.8.5", "rlp", "ruint-macro", "serde", @@ -7018,9 +8302,9 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver 1.0.23", ] @@ -7036,11 +8320,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", @@ -7086,13 +8370,13 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.12" +version = "0.23.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +checksum = "9c9cc1d47e243d655ace55ed38201c19ae02c148ae56412ab8750e8f0166ab7f" dependencies = [ "once_cell", "rustls-pki-types", - "rustls-webpki 0.102.6", + "rustls-webpki 0.102.8", "subtle", "zeroize", ] @@ -7132,19 +8416,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" [[package]] name = "rustls-webpki" @@ -7158,9 +8441,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.6" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring 0.17.8", "rustls-pki-types", @@ -7169,9 +8452,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" [[package]] name = "rusty-fork" @@ -7211,35 +8494,35 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.11.3" +version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" dependencies = [ "cfg-if", - "derive_more", - "parity-scale-codec 3.6.12", + "derive_more 1.0.0", + "parity-scale-codec 3.7.0", "scale-info-derive", ] [[package]] name = "scale-info-derive" -version = "2.11.3" +version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 1.0.109", + "proc-macro-crate 3.2.0", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -7261,10 +8544,10 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "serde_derive_internals", - "syn 2.0.68", + "syn 2.0.89", ] [[package]] @@ -7274,19 +8557,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] -name = "scrypt" +name = "scroll" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" +checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" dependencies = [ - "password-hash", - "pbkdf2", - "salsa20", - "sha2 0.10.8", + "scroll_derive", ] [[package]] -name = "sct" +name = "scroll_derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", +] + +[[package]] +name = "scrypt" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" +dependencies = [ + "password-hash", + "pbkdf2 0.12.2", + "salsa20", + "sha2 0.10.8", +] + +[[package]] +name = "sct" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" @@ -7305,6 +8608,12 @@ dependencies = [ "untrusted 0.9.0", ] +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + [[package]] name = "sec1" version = "0.7.3" @@ -7326,7 +8635,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" dependencies = [ "bitcoin_hashes 0.12.0", - "rand", + "rand 0.8.5", "secp256k1-sys", ] @@ -7341,11 +8650,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "core-foundation", "core-foundation-sys", "libc", @@ -7354,9 +8663,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", @@ -7382,9 +8691,9 @@ dependencies = [ [[package]] name = "semver-parser" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" dependencies = [ "pest", ] @@ -7403,9 +8712,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.203" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] @@ -7421,6 +8730,15 @@ dependencies = [ "serde_json", ] +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + [[package]] name = "serde-json-wasm" version = "0.5.2" @@ -7453,22 +8771,22 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.14" +version = "0.11.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.203" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -7477,18 +8795,18 @@ version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] name = "serde_json" -version = "1.0.128" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.6.0", "itoa", "memchr", "ryu", @@ -7511,16 +8829,16 @@ version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] name = "serde_spanned" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -7563,7 +8881,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.2.6", + "indexmap 2.6.0", "serde", "serde_derive", "serde_json", @@ -7577,10 +8895,10 @@ version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" dependencies = [ - "darling 0.20.9", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "darling 0.20.10", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -7589,10 +8907,10 @@ version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" dependencies = [ - "darling 0.20.9", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "darling 0.20.10", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -7689,226 +9007,1227 @@ dependencies = [ ] [[package]] -name = "sha2" -version = "0.10.8" +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", + "sha2-asm", +] + +[[package]] +name = "sha2-asm" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b845214d6175804686b2bd482bcffe96651bb2d1200742b712003504a2dac1ab" +dependencies = [ + "cc", +] + +[[package]] +name = "sha3" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sha3-asm" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" +dependencies = [ + "cc", + "cfg-if", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shared-crypto" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/sui?tag=mainnet-v1.26.2#f531168c745260b60a4ec4906c9f2b22240d872d" +dependencies = [ + "bcs", + "eyre", + "fastcrypto", + "serde", + "serde_repr", +] + +[[package]] +name = "shell-words" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "signature-verifier-api" +version = "1.0.0" +dependencies = [ + "cosmwasm-schema", + "cosmwasm-std", + "error-stack", + "thiserror", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "similar" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e" + +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "thiserror", + "time", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "sized-chunks" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" +dependencies = [ + "bitmaps", + "typenum", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "soketto" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +dependencies = [ + "base64 0.13.1", + "bytes", + "futures", + "http 0.2.12", + "httparse", + "log", + "rand 0.8.5", + "sha-1", +] + +[[package]] +name = "solana-account-decoder" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579e643c71b7529b512faba433b5337184cf086d4a879c083b419eabb602dd94" +dependencies = [ + "Inflector", + "base64 0.22.1", + "bincode", + "bs58 0.5.1", + "bv", + "lazy_static", + "serde", + "serde_derive", + "serde_json", + "solana-config-program", + "solana-sdk", + "spl-token", + "spl-token-2022", + "spl-token-group-interface", + "spl-token-metadata-interface", + "thiserror", + "zstd", +] + +[[package]] +name = "solana-clap-utils" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19cc2e303a4f81b7ede3e572380911b122718c6329d253d855d11a784c42658e" +dependencies = [ + "chrono", + "clap 2.34.0", + "rpassword", + "solana-remote-wallet", + "solana-sdk", + "thiserror", + "tiny-bip39", + "uriparse", + "url", +] + +[[package]] +name = "solana-client" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4042e0b2c2b44db89d59eab832b4a66c6fc03e2a7e9383e7b75faf76d162c61" +dependencies = [ + "async-trait", + "bincode", + "dashmap", + "futures", + "futures-util", + "indexmap 2.6.0", + "indicatif", + "log", + "quinn", + "rayon", + "solana-connection-cache", + "solana-measure", + "solana-metrics", + "solana-pubsub-client", + "solana-quic-client", + "solana-rpc-client", + "solana-rpc-client-api", + "solana-rpc-client-nonce-utils", + "solana-sdk", + "solana-streamer", + "solana-thin-client", + "solana-tpu-client", + "solana-udp-client", + "thiserror", + "tokio", +] + +[[package]] +name = "solana-compute-budget" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9747d10c30a2beb91b6950b65788dbf74cb39beb53c58814a859f0cccb4ada97" +dependencies = [ + "rustc_version 0.4.1", + "solana-sdk", +] + +[[package]] +name = "solana-config-program" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44106069aec6950a4769622ab0eb3213d00be8bbcb35355570f914367616257c" +dependencies = [ + "bincode", + "chrono", + "serde", + "serde_derive", + "solana-program-runtime", + "solana-sdk", +] + +[[package]] +name = "solana-connection-cache" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "199dabec2156092380510e841691cd6783679dce5838dcb5c3f467ce3189df03" +dependencies = [ + "async-trait", + "bincode", + "crossbeam-channel", + "futures-util", + "indexmap 2.6.0", + "log", + "rand 0.8.5", + "rayon", + "solana-measure", + "solana-metrics", + "solana-sdk", + "thiserror", + "tokio", +] + +[[package]] +name = "solana-curve25519" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f42c6b987786d8cca7fc14749bbcbe514dd1e61d91b316b98ea1342cf670e18" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek 3.2.1", + "solana-program", + "thiserror", +] + +[[package]] +name = "solana-inline-spl" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a140c334bca2fe1c7794985655fe6412b29550eabd0be953e2cb7c2357013214" +dependencies = [ + "bytemuck", + "rustc_version 0.4.1", + "solana-sdk", +] + +[[package]] +name = "solana-logger" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79a42aecca4cb913f52b39141fc7ce766350e46332a9df57d8f9d14661dc2c7" +dependencies = [ + "env_logger", + "lazy_static", + "log", +] + +[[package]] +name = "solana-measure" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "128b0571ee7ffa4cb674f9dd88d15606d3c5a714ea07de3ab0a122735c340061" +dependencies = [ + "log", + "solana-sdk", +] + +[[package]] +name = "solana-metrics" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719e8c73cb13ac616a04cf7a2e318a05d67ce198d5500ffea725bbe11d23a2e2" +dependencies = [ + "crossbeam-channel", + "gethostname", + "lazy_static", + "log", + "reqwest 0.11.27", + "solana-sdk", + "thiserror", +] + +[[package]] +name = "solana-net-utils" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78adcd60bdd270ff6d60c422baa83bf0edba7e3660a4d1779083aae35c9c27ae" +dependencies = [ + "bincode", + "clap 3.2.25", + "crossbeam-channel", + "log", + "nix", + "rand 0.8.5", + "serde", + "serde_derive", + "socket2", + "solana-logger", + "solana-sdk", + "solana-version", + "static_assertions", + "tokio", + "url", +] + +[[package]] +name = "solana-perf" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce2d03a15b8ddcec849b6c7c701aabcc8430926719d74b6c40c574aa0e2e2a8" +dependencies = [ + "ahash 0.8.11", + "bincode", + "bv", + "caps", + "curve25519-dalek 3.2.1", + "dlopen2", + "fnv", + "lazy_static", + "libc", + "log", + "nix", + "rand 0.8.5", + "rayon", + "rustc_version 0.4.1", + "serde", + "solana-metrics", + "solana-rayon-threadlimit", + "solana-sdk", + "solana-vote-program", +] + +[[package]] +name = "solana-program" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59e18fa32fb3e915fd76faa6e8c73089d0f29dd15d9dd3970897e6d17dded920" +dependencies = [ + "ark-bn254", + "ark-ec", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "base64 0.22.1", + "bincode", + "bitflags 2.6.0", + "blake3", + "borsh 0.10.4", + "borsh 1.5.3", + "bs58 0.5.1", + "bv", + "bytemuck", + "bytemuck_derive", + "console_error_panic_hook", + "console_log", + "curve25519-dalek 3.2.1", + "getrandom 0.2.15", + "js-sys", + "lazy_static", + "libsecp256k1", + "log", + "memoffset", + "num-bigint 0.4.6", + "num-derive 0.4.2", + "num-traits", + "parking_lot", + "rand 0.8.5", + "rustc_version 0.4.1", + "rustversion", + "serde", + "serde_bytes", + "serde_derive", + "sha2 0.10.8", + "sha3 0.10.8", + "solana-sdk-macro", + "thiserror", + "wasm-bindgen", +] + +[[package]] +name = "solana-program-runtime" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a35691ece2b5e204e30a3d06bdd5e9c43d71693ee9c5ebb401f8d2b5dabe59d3" +dependencies = [ + "base64 0.22.1", + "bincode", + "eager", + "enum-iterator", + "itertools 0.12.1", + "libc", + "log", + "num-derive 0.4.2", + "num-traits", + "percentage", + "rand 0.8.5", + "rustc_version 0.4.1", + "serde", + "solana-compute-budget", + "solana-measure", + "solana-metrics", + "solana-sdk", + "solana-type-overrides", + "solana-vote", + "solana_rbpf", + "thiserror", +] + +[[package]] +name = "solana-pubsub-client" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8370f3ac44f623356c0475fd024488dfa702bbfd1eab92edb199bb05a0e53051" +dependencies = [ + "crossbeam-channel", + "futures-util", + "log", + "reqwest 0.11.27", + "semver 1.0.23", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-rpc-client-api", + "solana-sdk", + "thiserror", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tungstenite", + "url", +] + +[[package]] +name = "solana-quic-client" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc7e8bf457ce4d9c4fd2ff12f467ee957fa309e2f10451f2f402357de30279f" +dependencies = [ + "async-mutex", + "async-trait", + "futures", + "itertools 0.12.1", + "lazy_static", + "log", + "quinn", + "quinn-proto", + "rustls 0.21.12", + "solana-connection-cache", + "solana-measure", + "solana-metrics", + "solana-net-utils", + "solana-rpc-client-api", + "solana-sdk", + "solana-streamer", + "thiserror", + "tokio", +] + +[[package]] +name = "solana-rayon-threadlimit" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cee0199cd96d8beb0cc1c9b82148f99467cf87bc25eb763b7ce680615a658467" +dependencies = [ + "lazy_static", + "num_cpus", +] + +[[package]] +name = "solana-remote-wallet" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68c0274fa9bb3eacf696d4f0da888f44a6a9d6e6ef00c518eaddb8c0fb96c193" +dependencies = [ + "console", + "dialoguer", + "log", + "num-derive 0.4.2", + "num-traits", + "parking_lot", + "qstring", + "semver 1.0.23", + "solana-sdk", + "thiserror", + "uriparse", +] + +[[package]] +name = "solana-rpc-client" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86d5bb5a3dc5512f00559807bf23ca7ad7a677c00aa87fc6307460ed3731ba7e" +dependencies = [ + "async-trait", + "base64 0.22.1", + "bincode", + "bs58 0.5.1", + "indicatif", + "log", + "reqwest 0.11.27", + "reqwest-middleware", + "semver 1.0.23", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-rpc-client-api", + "solana-sdk", + "solana-transaction-status", + "solana-version", + "solana-vote-program", + "tokio", +] + +[[package]] +name = "solana-rpc-client-api" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a97cc3998953cc387015c1d7fad6aa8a320d3780e3ddc96f60d3544fea99b1" +dependencies = [ + "anyhow", + "base64 0.22.1", + "bs58 0.5.1", + "jsonrpc-core", + "reqwest 0.11.27", + "reqwest-middleware", + "semver 1.0.23", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-inline-spl", + "solana-sdk", + "solana-transaction-status", + "solana-version", + "thiserror", +] + +[[package]] +name = "solana-rpc-client-nonce-utils" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859792ccf41789d66ddace34a416c3fe6777c3325ee295ea3a89ad0c2c555b63" +dependencies = [ + "clap 2.34.0", + "solana-clap-utils", + "solana-rpc-client", + "solana-sdk", + "thiserror", +] + +[[package]] +name = "solana-sdk" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02782e56b06086b6eefe98a807f084c81813cc441e0f1839981f1a5b01ad7a24" +dependencies = [ + "bincode", + "bitflags 2.6.0", + "borsh 1.5.3", + "bs58 0.5.1", + "bytemuck", + "bytemuck_derive", + "byteorder", + "chrono", + "derivation-path", + "digest 0.10.7", + "ed25519-dalek 1.0.1", + "ed25519-dalek-bip32", + "generic-array", + "getrandom 0.1.16", + "hmac 0.12.1", + "itertools 0.12.1", + "js-sys", + "lazy_static", + "libsecp256k1", + "log", + "memmap2", + "num_enum 0.7.3", + "pbkdf2 0.11.0", + "qstring", + "rand 0.7.3", + "rand 0.8.5", + "rustc_version 0.4.1", + "rustversion", + "serde", + "serde_bytes", + "serde_derive", + "serde_json", + "serde_with 2.3.3", + "sha2 0.10.8", + "sha3 0.10.8", + "siphasher", + "solana-program", + "solana-sdk-macro", + "thiserror", + "uriparse", + "wasm-bindgen", +] + +[[package]] +name = "solana-sdk-macro" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88859f5d5486fe029bc8937af5437fc027a2110bf9df34d5f8fbf46c7cf0497b" +dependencies = [ + "bs58 0.5.1", + "proc-macro2 1.0.92", + "quote 1.0.37", + "rustversion", + "syn 2.0.89", +] + +[[package]] +name = "solana-security-txt" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "468aa43b7edb1f9b7b7b686d5c3aeb6630dc1708e86e31343499dd5c4d775183" + +[[package]] +name = "solana-streamer" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9abcd34b637b34371a0f1dadff431b80154b3169dd275641cf9d7cfd6b3e2176" +dependencies = [ + "async-channel", + "bytes", + "crossbeam-channel", + "dashmap", + "futures-util", + "histogram", + "indexmap 2.6.0", + "itertools 0.12.1", + "libc", + "log", + "nix", + "pem 1.1.1", + "percentage", + "quinn", + "quinn-proto", + "rand 0.8.5", + "rustls 0.21.12", + "smallvec", + "solana-measure", + "solana-metrics", + "solana-perf", + "solana-sdk", + "solana-transaction-metrics-tracker", + "thiserror", + "tokio", + "x509-parser", +] + +[[package]] +name = "solana-thin-client" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c618d5027222b62329f732fe5ea9b841c20293131844a7f98270f999aa5d0c" +dependencies = [ + "bincode", + "log", + "rayon", + "solana-connection-cache", + "solana-rpc-client", + "solana-rpc-client-api", + "solana-sdk", +] + +[[package]] +name = "solana-tpu-client" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11bc9151bd2a0bd8ca37ca54b32e8175cace98621b75c72e4ca1e9b7d69c52c3" +dependencies = [ + "async-trait", + "bincode", + "futures-util", + "indexmap 2.6.0", + "indicatif", + "log", + "rayon", + "solana-connection-cache", + "solana-measure", + "solana-metrics", + "solana-pubsub-client", + "solana-rpc-client", + "solana-rpc-client-api", + "solana-sdk", + "thiserror", + "tokio", +] + +[[package]] +name = "solana-transaction-metrics-tracker" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38ef92c6a3bab7f359ef30356237c00638204a8dbd3ee6185ec131205fbbea9b" +dependencies = [ + "Inflector", + "base64 0.22.1", + "bincode", + "lazy_static", + "log", + "rand 0.8.5", + "solana-perf", + "solana-sdk", +] + +[[package]] +name = "solana-transaction-status" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "036c2189a6a5de419fc4ac887f5bee83bc6facea75cdcfe02773a8b83574f846" +dependencies = [ + "Inflector", + "base64 0.22.1", + "bincode", + "borsh 1.5.3", + "bs58 0.5.1", + "lazy_static", + "log", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-sdk", + "spl-associated-token-account", + "spl-memo", + "spl-token", + "spl-token-2022", + "spl-token-group-interface", + "spl-token-metadata-interface", + "thiserror", +] + +[[package]] +name = "solana-type-overrides" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80bb3af963b890ef6610357d454a30b157cc1f94eaf9e5fc2b8851a824a42583" +dependencies = [ + "lazy_static", + "rand 0.8.5", +] + +[[package]] +name = "solana-udp-client" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9609b5c5859437562228ced2aa7cf2a21c1c9cc06c0e27b0919875f327bff7a" +dependencies = [ + "async-trait", + "solana-connection-cache", + "solana-net-utils", + "solana-sdk", + "solana-streamer", + "thiserror", + "tokio", +] + +[[package]] +name = "solana-version" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f3ae5a33994b43d564bbe699f21a6b7bc18fd325a3579887c3f722276b91344" +dependencies = [ + "log", + "rustc_version 0.4.1", + "semver 1.0.23", + "serde", + "serde_derive", + "solana-sdk", +] + +[[package]] +name = "solana-vote" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51c6946fb194e001c3aef2ae8cf6385f4f819a09bbdcf2f87e418876697d47f5" +dependencies = [ + "itertools 0.12.1", + "log", + "rustc_version 0.4.1", + "serde", + "serde_derive", + "solana-sdk", + "thiserror", +] + +[[package]] +name = "solana-vote-program" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c767b55ffbe8fdbdcbf20b910fd13e697d4ef4ab9ebdec2899f7ea3beb4820be" +dependencies = [ + "bincode", + "log", + "num-derive 0.4.2", + "num-traits", + "rustc_version 0.4.1", + "serde", + "serde_derive", + "solana-metrics", + "solana-program", + "solana-program-runtime", + "solana-sdk", + "thiserror", +] + +[[package]] +name = "solana-zk-token-sdk" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413a83694f06f0e299064ab294c5537aa00c5d8625d4bba9daf6037696ebfe1f" +dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "byteorder", + "curve25519-dalek 3.2.1", + "itertools 0.12.1", + "lazy_static", + "merlin", + "num-derive 0.4.2", + "num-traits", + "rand 0.7.3", + "serde", + "serde_derive", + "serde_json", + "sha3 0.9.1", + "solana-curve25519", + "solana-program", + "solana-sdk", + "subtle", + "thiserror", + "zeroize", +] + +[[package]] +name = "solana_rbpf" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "ff08afd63f70a1ba712fb0017be41e93b017f7e874785b54bb5ec9aa8949781d" dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", - "sha2-asm", + "byteorder", + "combine", + "goblin", + "hash32", + "libc", + "log", + "rand 0.8.5", + "rustc-demangle", + "scroll", + "thiserror", + "winapi", ] [[package]] -name = "sha2-asm" -version = "0.6.4" +name = "spin" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b845214d6175804686b2bd482bcffe96651bb2d1200742b712003504a2dac1ab" -dependencies = [ - "cc", -] +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] -name = "sha3" -version = "0.10.8" +name = "spin" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest 0.10.7", - "keccak", -] +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] -name = "sha3-asm" -version = "0.1.1" +name = "spki" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9b57fd861253bff08bb1919e995f90ba8f4889de2726091c8876f3a4e823b40" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" dependencies = [ - "cc", - "cfg-if", + "base64ct", + "der 0.6.1", ] [[package]] -name = "sharded-slab" -version = "0.1.7" +name = "spki" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ - "lazy_static", + "base64ct", + "der 0.7.9", ] [[package]] -name = "shared-crypto" -version = "0.0.0" -source = "git+https://github.com/mystenlabs/sui?tag=mainnet-v1.26.2#f531168c745260b60a4ec4906c9f2b22240d872d" +name = "spl-associated-token-account" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68034596cf4804880d265f834af1ff2f821ad5293e41fa0f8f59086c181fc38e" dependencies = [ - "bcs", - "eyre", - "fastcrypto", - "serde", - "serde_repr", + "assert_matches", + "borsh 1.5.3", + "num-derive 0.4.2", + "num-traits", + "solana-program", + "spl-token", + "spl-token-2022", + "thiserror", ] [[package]] -name = "signal-hook-registry" -version = "1.4.2" +name = "spl-discriminator" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +checksum = "a38ea8b6dedb7065887f12d62ed62c1743aa70749e8558f963609793f6fb12bc" dependencies = [ - "libc", + "bytemuck", + "solana-program", + "spl-discriminator-derive", ] [[package]] -name = "signature" -version = "1.6.4" +name = "spl-discriminator-derive" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750" +dependencies = [ + "quote 1.0.37", + "spl-discriminator-syn", + "syn 2.0.89", +] [[package]] -name = "signature" -version = "2.2.0" +name = "spl-discriminator-syn" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +checksum = "8c1f05593b7ca9eac7caca309720f2eafb96355e037e6d373b909a80fe7b69b9" dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", + "proc-macro2 1.0.92", + "quote 1.0.37", + "sha2 0.10.8", + "syn 2.0.89", + "thiserror", ] [[package]] -name = "signature-verifier-api" -version = "1.0.0" +name = "spl-memo" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0dba2f2bb6419523405d21c301a32c9f9568354d4742552e7972af801f4bdb3" dependencies = [ - "cosmwasm-schema", - "cosmwasm-std", - "error-stack", - "thiserror", + "solana-program", ] [[package]] -name = "similar" -version = "2.5.0" +name = "spl-pod" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640" +checksum = "c704c88fc457fa649ba3aabe195c79d885c3f26709efaddc453c8de352c90b87" +dependencies = [ + "borsh 1.5.3", + "bytemuck", + "bytemuck_derive", + "solana-program", + "solana-zk-token-sdk", + "spl-program-error", +] [[package]] -name = "simple_asn1" -version = "0.6.2" +name = "spl-program-error" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +checksum = "d7b28bed65356558133751cc32b48a7a5ddfc59ac4e941314630bbed1ac10532" dependencies = [ - "num-bigint 0.4.5", + "num-derive 0.4.2", "num-traits", + "solana-program", + "spl-program-error-derive", "thiserror", - "time", ] [[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - -[[package]] -name = "sized-chunks" -version = "0.6.5" +name = "spl-program-error-derive" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" +checksum = "e6d375dd76c517836353e093c2dbb490938ff72821ab568b545fd30ab3256b3e" dependencies = [ - "bitmaps", - "typenum", + "proc-macro2 1.0.92", + "quote 1.0.37", + "sha2 0.10.8", + "syn 2.0.89", ] [[package]] -name = "slab" -version = "0.4.9" +name = "spl-tlv-account-resolution" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +checksum = "37a75a5f0fcc58126693ed78a17042e9dc53f07e357d6be91789f7d62aff61a4" dependencies = [ - "autocfg", + "bytemuck", + "solana-program", + "spl-discriminator", + "spl-pod", + "spl-program-error", + "spl-type-length-value", ] [[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "snap" -version = "1.1.1" +name = "spl-token" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" +checksum = "70a0f06ac7f23dc0984931b1fe309468f14ea58e32660439c1cef19456f5d0e3" +dependencies = [ + "arrayref", + "bytemuck", + "num-derive 0.4.2", + "num-traits", + "num_enum 0.7.3", + "solana-program", + "thiserror", +] [[package]] -name = "socket2" -version = "0.5.7" +name = "spl-token-2022" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "d9c10f3483e48679619c76598d4e4aebb955bc49b0a5cc63323afbf44135c9bf" dependencies = [ - "libc", - "windows-sys 0.52.0", + "arrayref", + "bytemuck", + "num-derive 0.4.2", + "num-traits", + "num_enum 0.7.3", + "solana-program", + "solana-security-txt", + "solana-zk-token-sdk", + "spl-memo", + "spl-pod", + "spl-token", + "spl-token-group-interface", + "spl-token-metadata-interface", + "spl-transfer-hook-interface", + "spl-type-length-value", + "thiserror", ] [[package]] -name = "soketto" -version = "0.7.1" +name = "spl-token-group-interface" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +checksum = "df8752b85a5ecc1d9f3a43bce3dd9a6a053673aacf5deb513d1cbb88d3534ffd" dependencies = [ - "base64 0.13.1", - "bytes", - "futures", - "http 0.2.12", - "httparse", - "log", - "rand", - "sha-1", + "bytemuck", + "solana-program", + "spl-discriminator", + "spl-pod", + "spl-program-error", ] [[package]] -name = "spin" -version = "0.5.2" +name = "spl-token-metadata-interface" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +checksum = "c6c2318ddff97e006ed9b1291ebec0750a78547f870f62a69c56fe3b46a5d8fc" +dependencies = [ + "borsh 1.5.3", + "solana-program", + "spl-discriminator", + "spl-pod", + "spl-program-error", + "spl-type-length-value", +] [[package]] -name = "spin" -version = "0.9.8" +name = "spl-transfer-hook-interface" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +checksum = "a110f33d941275d9f868b96daaa993f1e73b6806cc8836e43075b4d3ad8338a7" +dependencies = [ + "arrayref", + "bytemuck", + "solana-program", + "spl-discriminator", + "spl-pod", + "spl-program-error", + "spl-tlv-account-resolution", + "spl-type-length-value", +] [[package]] -name = "spki" -version = "0.6.0" +name = "spl-type-length-value" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +checksum = "bdcd73ec187bc409464c60759232e309f83b52a18a9c5610bf281c9c6432918c" dependencies = [ - "base64ct", - "der 0.6.1", + "bytemuck", + "solana-program", + "spl-discriminator", + "spl-pod", + "spl-program-error", ] [[package]] -name = "spki" -version = "0.7.3" +name = "stable_deref_trait" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der 0.7.9", -] +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stacker" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +checksum = "799c883d55abdb5e98af1a7b3f23b9b6de8ecada0ecac058672d7635eb48ca7b" dependencies = [ "cc", "cfg-if", "libc", "psm", - "winapi", + "windows-sys 0.59.0", ] [[package]] @@ -7927,11 +10246,11 @@ dependencies = [ "goldie", "hex", "multisig", - "rand", + "rand 0.8.5", "router-api", "serde", "serde_json", - "sha3", + "sha3 0.10.8", "stellar-strkey 0.0.10", "stellar-xdr", "thiserror", @@ -7943,7 +10262,7 @@ version = "21.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c735c8e456fa7c37f72dd2a6abc022a111b3bf9b0520d50eef091eb1336ad370" dependencies = [ - "clap", + "clap 4.5.21", "hex", "http 1.1.0", "itertools 0.10.5", @@ -8000,6 +10319,12 @@ dependencies = [ "stellar-strkey 0.0.8", ] +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + [[package]] name = "strsim" version = "0.10.0" @@ -8032,9 +10357,9 @@ dependencies = [ [[package]] name = "strum" -version = "0.26.2" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" dependencies = [ "strum_macros 0.26.4", ] @@ -8046,8 +10371,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "rustversion", "syn 1.0.109", ] @@ -8059,10 +10384,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "rustversion", - "syn 2.0.68", + "syn 2.0.89", ] [[package]] @@ -8072,17 +10397,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ "heck 0.5.0", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "rustversion", - "syn 2.0.68", + "syn 2.0.89", ] [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "subtle-encoding" @@ -8117,11 +10442,11 @@ dependencies = [ "error-stack", "hex", "multisig", - "rand", + "rand 0.8.5", "router-api", "serde", "serde_json", - "sha3", + "sha3 0.10.8", "sui-types 1.0.0", "thiserror", ] @@ -8209,10 +10534,10 @@ version = "0.7.0" source = "git+https://github.com/mystenlabs/sui?tag=mainnet-v1.26.2#f531168c745260b60a4ec4906c9f2b22240d872d" dependencies = [ "msim-macros", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "sui-enum-compat-util", - "syn 2.0.68", + "syn 2.0.89", ] [[package]] @@ -8220,7 +10545,7 @@ name = "sui-protocol-config" version = "0.1.0" source = "git+https://github.com/mystenlabs/sui?tag=mainnet-v1.26.2#f531168c745260b60a4ec4906c9f2b22240d872d" dependencies = [ - "clap", + "clap 4.5.21", "insta", "move-vm-config", "schemars", @@ -8235,8 +10560,8 @@ name = "sui-protocol-config-macros" version = "0.1.0" source = "git+https://github.com/mystenlabs/sui?tag=mainnet-v1.26.2#f531168c745260b60a4ec4906c9f2b22240d872d" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -8250,7 +10575,7 @@ dependencies = [ "bcs", "fastcrypto", "mime", - "rand", + "rand 0.8.5", "reqwest 0.11.27", "serde", "serde_json", @@ -8274,14 +10599,14 @@ dependencies = [ "chrono", "consensus-config", "derivative", - "derive_more", + "derive_more 0.99.18", "enum_dispatch", "eyre", "fastcrypto", "fastcrypto-tbls", "fastcrypto-zkp", "im", - "indexmap 2.2.6", + "indexmap 2.6.0", "itertools 0.10.5", "jsonrpsee", "lru", @@ -8299,7 +10624,7 @@ dependencies = [ "narwhal-config", "narwhal-crypto", "nonempty", - "num-bigint 0.4.5", + "num-bigint 0.4.6", "num-traits", "num_enum 0.6.1", "once_cell", @@ -8307,7 +10632,7 @@ dependencies = [ "prometheus", "proptest", "proptest-derive", - "rand", + "rand 0.8.5", "roaring", "schemars", "serde", @@ -8335,7 +10660,7 @@ version = "1.0.0" dependencies = [ "error-stack", "hex", - "rand", + "rand 0.8.5", "serde", "thiserror", ] @@ -8357,19 +10682,19 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.68" +version = "2.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9" +checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "unicode-ident", ] @@ -8380,9 +10705,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" dependencies = [ "paste", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -8393,9 +10718,12 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] [[package]] name = "synstructure" @@ -8403,10 +10731,21 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", - "unicode-xid 0.2.4", + "unicode-xid 0.2.6", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -8417,7 +10756,18 @@ checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.3.2", "core-foundation", - "system-configuration-sys", + "system-configuration-sys 0.5.0", +] + +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "system-configuration-sys 0.6.0", ] [[package]] @@ -8430,6 +10780,16 @@ dependencies = [ "libc", ] +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tabled" version = "0.12.2" @@ -8438,7 +10798,7 @@ checksum = "0ce69a5028cd9576063ec1f48edb2c75339fd835e6094ef3e05b3a079bf594a6" dependencies = [ "papergrid", "tabled_derive", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -8449,8 +10809,8 @@ checksum = "99f688a08b54f4f02f0a3c382aefdb7884d3d69609f785bd253dc033243e3fe4" dependencies = [ "heck 0.4.1", "proc-macro-error", - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -8460,16 +10820,26 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" +[[package]] +name = "task-local-extensions" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba323866e5d033818e3240feeb9f7db2c4296674e4d9e16b97b7bf8f490434e8" +dependencies = [ + "pin-utils", +] + [[package]] name = "tempfile" -version = "3.10.1" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", - "fastrand 2.1.0", + "fastrand 2.2.0", + "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -8552,7 +10922,7 @@ checksum = "c0cec054567d16d85e8c3f6a3139963d1a66d9d3051ed545d31562550e9bcc3d" dependencies = [ "bytes", "flex-error", - "num-derive", + "num-derive 0.3.3", "num-traits", "prost 0.11.9", "prost-types", @@ -8569,7 +10939,7 @@ source = "git+https://github.com/axelarnetwork/tendermint-rs.git?branch=v0.33.x# dependencies = [ "bytes", "flex-error", - "num-derive", + "num-derive 0.3.3", "num-traits", "prost 0.11.9", "prost-types", @@ -8588,9 +10958,9 @@ dependencies = [ "bytes", "flex-error", "futures", - "getrandom", + "getrandom 0.2.15", "http 0.2.12", - "hyper 0.14.29", + "hyper 0.14.31", "hyper-proxy", "hyper-rustls 0.22.1", "peg", @@ -8639,39 +11009,75 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f34dde0bb841eb3762b42bdff8db11bbdbc0a3bd7b32012955f5ce1d081f86c1" [[package]] -name = "terminal_size" -version = "0.3.0" +name = "terminal_size" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f599bd7ca042cfdf8f4512b277c02ba102247820f9d9d4a9f521f496751a6ef" +dependencies = [ + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + +[[package]] +name = "test-log" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dffced63c2b5c7be278154d76b479f9f9920ed34e7574201407f0b14e2bbb93" +dependencies = [ + "test-log-macros", + "tracing-subscriber", +] + +[[package]] +name = "test-log-macros" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5999e24eaa32083191ba4e425deb75cdf25efefabe5aaccb7446dd0d4122a3f5" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", +] + +[[package]] +name = "textwrap" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" dependencies = [ - "rustix", - "windows-sys 0.48.0", + "unicode-width 0.1.14", ] [[package]] -name = "termtree" -version = "0.4.1" +name = "textwrap" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" +checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" [[package]] name = "thiserror" -version = "1.0.61" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.61" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -8724,6 +11130,25 @@ dependencies = [ "time-core", ] +[[package]] +name = "tiny-bip39" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" +dependencies = [ + "anyhow", + "hmac 0.8.1", + "once_cell", + "pbkdf2 0.4.0", + "rand 0.7.3", + "rustc-hash", + "sha2 0.9.9", + "thiserror", + "unicode-normalization", + "wasm-bindgen", + "zeroize", +] + [[package]] name = "tiny-keccak" version = "2.0.2" @@ -8733,11 +11158,21 @@ dependencies = [ "crunchy", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -8758,11 +11193,11 @@ dependencies = [ "crypto-bigint", "ecdsa", "ed25519 2.2.3", - "ed25519-dalek", - "hmac", + "ed25519-dalek 2.1.1", + "hmac 0.12.1", "k256", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "serde", "sha2 0.10.8", "tracing", @@ -8771,21 +11206,20 @@ dependencies = [ [[package]] name = "tokio" -version = "1.38.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -8800,13 +11234,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -8857,16 +11291,16 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.12", + "rustls 0.23.18", "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", "pin-project-lite", @@ -8891,9 +11325,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", @@ -8914,47 +11348,36 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.14" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.14", + "toml_edit", ] [[package]] name = "toml_datetime" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap 2.2.6", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.22.14" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.6.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.13", + "winnow", ] [[package]] @@ -8972,14 +11395,14 @@ dependencies = [ "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.29", + "hyper 0.14.31", "hyper-timeout", "percent-encoding", "pin-project", "prost 0.11.9", "tokio", "tokio-stream", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", "tracing", @@ -8999,14 +11422,14 @@ dependencies = [ "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.29", + "hyper 0.14.31", "hyper-timeout", "percent-encoding", "pin-project", "prost 0.12.6", "tokio", "tokio-stream", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", "tracing", @@ -9019,9 +11442,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bf5e9b9c0f7e0a7c027dcfaba7b2c60816c7049171f679d99ee2ff65d0de8c4" dependencies = [ "prettyplease 0.1.25", - "proc-macro2 1.0.85", + "proc-macro2 1.0.92", "prost-build", - "quote 1.0.36", + "quote 1.0.37", "syn 1.0.109", ] @@ -9050,7 +11473,7 @@ dependencies = [ "indexmap 1.9.3", "pin-project", "pin-project-lite", - "rand", + "rand 0.8.5", "slab", "tokio", "tokio-util", @@ -9059,13 +11482,29 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 0.1.2", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tower-http" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" dependencies = [ - "async-compression", + "async-compression 0.3.15", "base64 0.13.1", "bitflags 1.3.2", "bytes", @@ -9082,24 +11521,24 @@ dependencies = [ "pin-project-lite", "tokio", "tokio-util", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", "tracing", - "uuid 1.10.0", + "uuid 1.11.0", ] [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -9119,9 +11558,9 @@ version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -9196,8 +11635,8 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b79e2e9c9ab44c6d7c20d5976961b47e8f49ac199154daa514b77cd1ab536625" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -9219,12 +11658,13 @@ dependencies = [ "http 0.2.12", "httparse", "log", - "rand", + "rand 0.8.5", "rustls 0.21.12", "sha1", "thiserror", "url", "utf-8", + "webpki-roots 0.24.0", ] [[package]] @@ -9242,9 +11682,9 @@ version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f718dfaf347dcb5b983bfc87608144b0bad87970aebcbea5ce44d2a30c08e63" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] @@ -9264,9 +11704,30 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" + +[[package]] +name = "udigest" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "81cd61fa9fb78569e9fe34acf0048fd8cb9ebdbacc47af740745487287043ff0" +dependencies = [ + "digest 0.10.7", + "udigest-derive", +] + +[[package]] +name = "udigest-derive" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "603329303137e0d59238ee4d6b9c085eada8e2a9d20666f3abd9dadf8f8543f4" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", +] [[package]] name = "uint" @@ -9288,24 +11749,15 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicase" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.15" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-normalization" @@ -9318,9 +11770,15 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.13" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-width" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" [[package]] name = "unicode-xid" @@ -9330,9 +11788,9 @@ checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "universal-hash" @@ -9344,6 +11802,15 @@ dependencies = [ "subtle", ] +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + [[package]] name = "unsigned-varint" version = "0.7.2" @@ -9370,14 +11837,24 @@ checksum = "9fe29601d1624f104fa9a35ea71a5f523dd8bd1cfc8c31f8124ad2b829f013c0" dependencies = [ "serde", "unicode-ident", - "unicode-width", + "unicode-width 0.1.14", +] + +[[package]] +name = "uriparse" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0200d0fc04d809396c2ad43f3c95da3582a2556eba8d453c1087f4120ee352ff" +dependencies = [ + "fnv", + "lazy_static", ] [[package]] name = "url" -version = "2.5.2" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -9390,6 +11867,18 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -9404,12 +11893,12 @@ checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" [[package]] name = "uuid" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ - "getrandom", - "rand", + "getrandom 0.2.15", + "rand 0.8.5", ] [[package]] @@ -9427,8 +11916,8 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d44690c645190cfce32f91a1582281654b2338c6073fa250b0949fd25c55b32" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -9448,7 +11937,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aae2faf80ac463422992abf4de234731279c058aaf33171ca70277c98406b124" dependencies = [ - "quote 1.0.36", + "quote 1.0.37", "syn 1.0.109", ] @@ -9458,11 +11947,17 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "vfs" @@ -9470,6 +11965,12 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e4fe92cfc1bad19c19925d5eee4b30584dbbdee4ff10183b261acccbef74e2d" +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + [[package]] name = "voting-verifier" version = "1.1.0" @@ -9489,14 +11990,14 @@ dependencies = [ "itertools 0.11.0", "msgs-derive", "multisig", - "rand", + "rand 0.8.5", "report", "rewards", "router-api", "serde_json", "service-registry", "service-registry-api", - "sha3", + "sha3 0.10.8", "thiserror", ] @@ -9528,6 +12029,12 @@ dependencies = [ "try-lock", ] +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -9536,34 +12043,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", @@ -9573,38 +12081,48 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ - "quote 1.0.36", + "quote 1.0.37", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -9648,6 +12166,15 @@ dependencies = [ "webpki 0.22.4", ] +[[package]] +name = "webpki-roots" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b291546d5d9d1eab74f069c77749f2cb8504a12caa20f0f2de93ddbf6f411888" +dependencies = [ + "rustls-webpki 0.101.7", +] + [[package]] name = "webpki-roots" version = "0.25.4" @@ -9684,11 +12211,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -9703,7 +12230,37 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", ] [[package]] @@ -9721,7 +12278,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -9741,18 +12307,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -9763,9 +12329,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -9775,9 +12341,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -9787,15 +12353,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -9805,9 +12371,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -9817,9 +12383,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -9829,9 +12395,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -9841,24 +12407,15 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" - -[[package]] -name = "winnow" -version = "0.5.40" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.13" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] @@ -9874,14 +12431,16 @@ dependencies = [ ] [[package]] -name = "winreg" -version = "0.52.0" +name = "write16" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "ws_stream_wasm" @@ -9894,7 +12453,7 @@ dependencies = [ "js-sys", "log", "pharos", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "send_wrapper 0.6.0", "thiserror", "wasm-bindgen", @@ -9944,12 +12503,6 @@ dependencies = [ "linked-hash-map", ] -[[package]] -name = "yansi" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" - [[package]] name = "yansi" version = "1.0.1" @@ -9965,24 +12518,70 @@ dependencies = [ "time", ] +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", + "synstructure 0.13.1", +] + [[package]] name = "zerocopy" -version = "0.7.34" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ + "byteorder", "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.34" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", + "synstructure 0.13.1", ] [[package]] @@ -10000,7 +12599,58 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.85", - "quote 1.0.36", - "syn 2.0.68", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.89", +] + +[[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.13+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +dependencies = [ + "cc", + "pkg-config", ] diff --git a/Cargo.toml b/Cargo.toml index f8b73745e..9ae08ff83 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,10 +1,10 @@ [workspace] members = [ - "ampd", - "contracts/*", - "external-gateways/*", - "integration-tests", - "packages/*" + "ampd", + "contracts/*", + "external-gateways/*", + "integration-tests", + "packages/*", ] resolver = "2" @@ -28,6 +28,7 @@ cosmwasm-std = "1.5.5" cw-multi-test = "1.2.0" cw-storage-plus = { version = "1.2.0", features = ["iterator", "macro"] } cw2 = "1.1.0" +bs58 = "0.5.1" ed25519-dalek = { version = "2.1.1", default-features = false } error-stack = { version = "0.4.0", features = ["eyre"] } ethers-contract = { version = "2.0.14", default-features = false, features = ["abigen"] } @@ -62,6 +63,9 @@ service-registry = { version = "^1.1.0", path = "contracts/service-registry" } service-registry-api = { version = "^1.0.0", path = "packages/service-registry-api" } sha3 = { version = "0.10.8", default-features = false, features = [] } signature-verifier-api = { version = "^1.0.0", path = "packages/signature-verifier-api" } +axelar-solana-encoding = { git = "https://github.com/eigerco/solana-axelar.git", rev = "0be172e" } +gateway-event-stack = { git = "https://github.com/eigerco/solana-axelar.git", rev = "0be172e" } +axelar-solana-gateway = { git = "https://github.com/eigerco/solana-axelar.git", rev = "0be172e" } stellar = { version = "^1.0.0", path = "external-gateways/stellar" } stellar-xdr = { version = "21.2.0" } strum = { version = "0.25", default-features = false, features = ["derive"] } @@ -89,3 +93,12 @@ debug-assertions = false codegen-units = 1 incremental = false overflow-checks = true + +[patch.crates-io] +# aes-gcm-siv 0.10.3 and curve25519-dalek 3.x pin zeroize to <1.4 +# which conflicts with other dependencies requiring zeroize ^1.5. +# We’re patching both crates to unpin zeroize. +# +# For curve25519-dalek we’re using commit from a PR, see +# https://github.com/dalek-cryptography/curve25519-dalek/pull/606 +curve25519-dalek = { git = "https://github.com/dalek-cryptography/curve25519-dalek", rev = "8274d5cbb6fc3f38cdc742b4798173895cd2a290" } diff --git a/ampd/Cargo.toml b/ampd/Cargo.toml index fee1d54ac..a718e8fcf 100644 --- a/ampd/Cargo.toml +++ b/ampd/Cargo.toml @@ -11,6 +11,7 @@ axelar-wasm-std = { workspace = true } axum = "0.7.5" base64 = "0.21.2" bcs = { workspace = true } +borsh = { version = "1.2.0", features = ["derive"] } clap = { version = "4.2.7", features = ["derive", "cargo"] } config = "0.13.2" cosmrs = { version = "0.14.0", features = ["cosmwasm", "grpc"] } @@ -25,7 +26,7 @@ error-stack = { workspace = true } ethers-contract = { workspace = true } ethers-core = { workspace = true } ethers-providers = { version = "2.0.13", default-features = false, features = [ - "rustls", + "rustls", ] } events = { workspace = true } events-derive = { workspace = true } @@ -40,7 +41,9 @@ move-core-types = { git = "https://github.com/mystenlabs/sui", tag = "mainnet-v1 multisig = { workspace = true, features = ["library"] } multiversx-sdk = "0.6.1" num-traits = { workspace = true } -openssl = { version = "0.10.35", features = ["vendored"] } # Needed to make arm compilation work by forcing vendoring +openssl = { version = "0.10.35", features = [ + "vendored", +] } # Needed to make arm compilation work by forcing vendoring prost = "0.11.9" prost-types = "0.11.9" report = { workspace = true } @@ -50,6 +53,16 @@ router-api = { workspace = true } serde = { version = "1.0.147", features = ["derive"] } serde_json = { workspace = true } serde_with = "3.2.0" +service-registry = { workspace = true } +solana-account-decoder = "=2.0.16" +solana-client = "=2.0.16" +solana-program = "=2.0.16" +solana-sdk = "=2.0.16" +solana-rpc-client-api = "=2.0.16" +solana-version = "=2.0.16" +solana-zk-token-sdk = "=2.0.16" +solana-transaction-status = "=2.0.16" +gateway-event-stack = { workspace = true } service-registry-api = { workspace = true } sha3 = { workspace = true } stellar = { workspace = true } @@ -58,14 +71,14 @@ stellar-xdr = { workspace = true, features = ["serde_json"] } sui-gateway = { workspace = true } sui-json-rpc-types = { git = "https://github.com/mystenlabs/sui", tag = "mainnet-v1.26.2" } sui-types = { git = "https://github.com/mystenlabs/sui", features = [ - "test-utils", + "test-utils", ], tag = "mainnet-v1.26.2" } # Need to switch to our own fork of tendermint and tendermint-rpc due to event attribute value being nullable. # Can switch back once https://github.com/informalsystems/tendermint-rs/issues/1216 is resolved. # The fix for the issue is at https://github.com/axelarnetwork/tendermint-rs/commit/e97033e20e660a7e707ea86db174ec047bbba50d. tendermint = { git = "https://github.com/axelarnetwork/tendermint-rs.git", branch = "v0.33.x" } tendermint-rpc = { git = "https://github.com/axelarnetwork/tendermint-rs.git", branch = "v0.33.x", features = [ - "http-client", + "http-client", ] } thiserror = { workspace = true } tokio = { workspace = true, features = ["signal"] } @@ -75,12 +88,18 @@ toml = "0.5.9" tonic = "0.9.2" tracing = { version = "0.1.37", features = ["valuable", "log"] } tracing-core = { version = "0.1.30", features = ["valuable"] } -tracing-subscriber = { version = "0.3.16", features = ["json", "valuable", "env-filter"] } +tracing-subscriber = { version = "0.3.16", features = [ + "json", + "valuable", + "env-filter", +] } typed-builder = "0.18.2" url = "2.3.1" valuable = { version = "0.1.0", features = ["derive"] } valuable-serde = { version = "0.1.0", features = ["std"] } voting-verifier = { workspace = true } +axelar-solana-gateway = { workspace = true } +axelar-solana-encoding = { workspace = true } [dev-dependencies] ed25519-dalek = { workspace = true, features = ["rand_core"] } @@ -91,6 +110,8 @@ multisig = { workspace = true, features = ["test", "library"] } rand = { workspace = true } random-string = "1.0.0" tokio = { workspace = true, features = ["test-util"] } +axelar-solana-encoding = { workspace = true } +test-log = { version = "0.2", features = ["trace"], default-features = false } [build-dependencies] tonic-build = "0.8.3" diff --git a/ampd/README.md b/ampd/README.md index 997fbb10c..473c654ec 100644 --- a/ampd/README.md +++ b/ampd/README.md @@ -44,14 +44,14 @@ type="MultisigSigner" chain_name=[chain name. Not necessary in the Sui case] chain_rpc_url=[URL of JSON-RPC endpoint for external chain] cosmwasm_contract=[verifier contract address] -type=[handler type. Could be EvmMsgVerifier | SuiMsgVerifier] +type=[handler type. Could be EvmMsgVerifier | SuiMsgVerifier | SolanaMsgVerifier] # handler to verify verifier set rotations. One per supported chain [[handlers]] chain_name=[chain name. Not necessary in the Sui case] chain_rpc_url=[URL of JSON-RPC endpoint for external chain] cosmwasm_contract=[verifier contract address] -type=[handler type. Could be EvmVerifierSetVerifier | SuiVerifierSetVerifier] +type=[handler type. Could be EvmVerifierSetVerifier | SuiVerifierSetVerifier | SolanaVerifierSetVerifier] ``` Below is an example config for connecting to a local axelard node and local tofnd process, and verifying transactions @@ -108,6 +108,19 @@ cosmwasm_contract = 'axelar14lh98gp06zdqh5r9qj3874hdmfzs4sh5tkfzg3cyty4xeqsufdjq chain_name = 'avalanche' chain_rpc_url = "https://api.avax-test.network/ext/bc/C/rpc" +[[handlers]] +type = "SolanaMsgVerifier" +cosmwasm_contract = "axelar1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqecnww6" +chain_name = "solana" +chain_rpc_url = "https://api.devnet.solana.com" +max_tx_cache_entries = 6 + +[[handlers]] +cosmwasm_contract = "axelar1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqecnww6" +type = "SolanaVerifierSetVerifier" +chain_name = "solana" +chain_rpc_url = "https://api.devnet.solana.com" + ``` By default, ampd loads the config file from `~/.ampd/config.toml` when running any command. diff --git a/ampd/src/config.rs b/ampd/src/config.rs index eaab6ff91..7441bb3a9 100644 --- a/ampd/src/config.rs +++ b/ampd/src/config.rs @@ -131,6 +131,22 @@ mod tests { [[handlers]] type = 'StellarVerifierSetVerifier' cosmwasm_contract = '{}' + rpc_url = 'http://localhost:8000' + + [handlers.rpc_timeout] + secs = 3 + nanos = 0 + + [[handlers]] + type = 'SolanaMsgVerifier' + rpc_url = 'http://127.0.0.1' + cosmwasm_contract = '{}' + max_tx_cache_entries = 6 + + [[handlers]] + type = 'SolanaVerifierSetVerifier' + chain_rpc_url = 'http://127.0.0.1' + cosmwasm_contract = '{}' rpc_url = 'http://localhost:7545' ", TMAddress::random(PREFIX), @@ -143,10 +159,12 @@ mod tests { TMAddress::random(PREFIX), TMAddress::random(PREFIX), TMAddress::random(PREFIX), + TMAddress::random(PREFIX), + TMAddress::random(PREFIX), ); let cfg: Config = toml::from_str(config_str.as_str()).unwrap(); - assert_eq!(cfg.handlers.len(), 10); + assert_eq!(cfg.handlers.len(), 12); } #[test] @@ -350,6 +368,20 @@ mod tests { ), rpc_url: Url::from_str("http://127.0.0.1").unwrap(), }, + HandlerConfig::SolanaMsgVerifier { + cosmwasm_contract: TMAddress::from( + AccountId::new("axelar", &[0u8; 32]).unwrap(), + ), + rpc_url: Url::from_str("http://127.0.0.1").unwrap(), + rpc_timeout: Some(Duration::from_secs(3)), + }, + HandlerConfig::SolanaVerifierSetVerifier { + cosmwasm_contract: TMAddress::from( + AccountId::new("axelar", &[0u8; 32]).unwrap(), + ), + rpc_url: Url::from_str("http://127.0.0.1").unwrap(), + rpc_timeout: Some(Duration::from_secs(3)), + }, ], ..Config::default() } diff --git a/ampd/src/evm/finalizer.rs b/ampd/src/evm/finalizer.rs index f47cdbf47..b50c97b08 100644 --- a/ampd/src/evm/finalizer.rs +++ b/ampd/src/evm/finalizer.rs @@ -15,7 +15,7 @@ pub trait Finalizer: Send + Sync { async fn latest_finalized_block_height(&self) -> Result; } -#[derive(Debug, Deserialize, Serialize, PartialEq, Default)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Default)] pub enum Finalization { #[default] RPCFinalizedBlock, diff --git a/ampd/src/handlers/config.rs b/ampd/src/handlers/config.rs index c7bb9da9b..c42b15c4e 100644 --- a/ampd/src/handlers/config.rs +++ b/ampd/src/handlers/config.rs @@ -10,7 +10,7 @@ use crate::evm::finalizer::Finalization; use crate::types::TMAddress; use crate::url::Url; -#[derive(Debug, Deserialize, Serialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] pub struct Chain { pub name: ChainName, pub rpc_url: Url, @@ -19,7 +19,7 @@ pub struct Chain { } with_prefix!(chain "chain_"); -#[derive(Debug, Deserialize, Serialize, PartialEq)] +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] #[serde(tag = "type")] pub enum Config { EvmMsgVerifier { @@ -63,6 +63,16 @@ pub enum Config { cosmwasm_contract: TMAddress, rpc_url: Url, }, + SolanaMsgVerifier { + cosmwasm_contract: TMAddress, + rpc_url: Url, + rpc_timeout: Option, + }, + SolanaVerifierSetVerifier { + cosmwasm_contract: TMAddress, + rpc_url: Url, + rpc_timeout: Option, + }, } fn validate_evm_verifier_set_verifier_configs<'de, D>(configs: &[Config]) -> Result<(), D::Error> @@ -159,6 +169,16 @@ where Config::StellarVerifierSetVerifier, "Stellar verifier set verifier" )?; + ensure_unique_config!( + &configs, + Config::SolanaMsgVerifier, + "Solana message verifier" + )?; + ensure_unique_config!( + &configs, + Config::SolanaVerifierSetVerifier, + "Solana verifier set verifier" + )?; Ok(configs) } @@ -305,5 +325,33 @@ mod tests { Err(e) if e.to_string().contains("only one Stellar verifier set verifier config is allowed") ) ); + + let sample_config = Config::SolanaMsgVerifier { + cosmwasm_contract: TMAddress::random(PREFIX), + rpc_url: "http://localhost:8080/".parse().unwrap(), + rpc_timeout: None, + }; + + let configs = vec![sample_config.clone(), sample_config]; + + assert!( + matches!(deserialize_handler_configs(to_value(configs).unwrap()), + Err(e) if e.to_string().contains("only one Solana message verifier config is allowed") + ) + ); + + let sample_config = Config::SolanaVerifierSetVerifier { + cosmwasm_contract: TMAddress::random(PREFIX), + rpc_url: "http://localhost:8080/".parse().unwrap(), + rpc_timeout: None, + }; + + let configs = vec![sample_config.clone(), sample_config]; + + assert!( + matches!(deserialize_handler_configs(to_value(configs).unwrap()), + Err(e) if e.to_string().contains("only one Solana verifier set verifier config is allowed") + ) + ); } } diff --git a/ampd/src/handlers/mod.rs b/ampd/src/handlers/mod.rs index 1f8868164..dd1a31fc1 100644 --- a/ampd/src/handlers/mod.rs +++ b/ampd/src/handlers/mod.rs @@ -5,6 +5,8 @@ pub mod evm_verify_verifier_set; pub mod multisig; pub mod mvx_verify_msg; pub mod mvx_verify_verifier_set; +pub mod solana_verify_msg; +pub mod solana_verify_verifier_set; pub(crate) mod stellar_verify_msg; pub(crate) mod stellar_verify_verifier_set; pub mod sui_verify_msg; diff --git a/ampd/src/handlers/solana_verify_msg.rs b/ampd/src/handlers/solana_verify_msg.rs new file mode 100644 index 000000000..b886b98a7 --- /dev/null +++ b/ampd/src/handlers/solana_verify_msg.rs @@ -0,0 +1,383 @@ +use std::collections::HashMap; +use std::convert::TryInto; + +use async_trait::async_trait; +use axelar_wasm_std::msg_id::Base58SolanaTxSignatureAndEventIndex; +use axelar_wasm_std::voting::{PollId, Vote}; +use cosmrs::cosmwasm::MsgExecuteContract; +use cosmrs::tx::Msg; +use cosmrs::Any; +use error_stack::ResultExt; +use events::Error::EventTypeMismatch; +use events_derive::try_from; +use gateway_event_stack::MatchContext; +use router_api::ChainName; +use serde::Deserialize; +use solana_sdk::pubkey::Pubkey; +use solana_transaction_status::UiTransactionStatusMeta; +use tokio::sync::watch::Receiver; +use tracing::{info, info_span}; +use valuable::Valuable; +use voting_verifier::msg::ExecuteMsg; + +use crate::event_processor::EventHandler; +use crate::handlers::errors::Error; +use crate::handlers::errors::Error::DeserializeEvent; +use crate::solana::msg_verifier::verify_message; +use crate::solana::SolanaRpcClientProxy; +use crate::types::{Hash, TMAddress}; + +type Result = error_stack::Result; + +#[derive(Deserialize, Debug)] +pub struct Message { + pub message_id: Base58SolanaTxSignatureAndEventIndex, + pub destination_address: String, + pub destination_chain: ChainName, + #[serde(deserialize_with = "crate::solana::deserialize_pubkey")] + pub source_address: Pubkey, + pub payload_hash: Hash, +} + +#[derive(Deserialize, Debug)] +#[try_from("wasm-messages_poll_started")] +struct PollStartedEvent { + poll_id: PollId, + source_chain: ChainName, + expires_at: u64, + messages: Vec, + participants: Vec, +} + +pub struct Handler { + verifier: TMAddress, + voting_verifier_contract: TMAddress, + rpc_client: C, + latest_block_height: Receiver, + event_match_context: MatchContext, +} + +impl Handler { + pub fn new( + verifier: TMAddress, + voting_verifier_contract: TMAddress, + rpc_client: C, + latest_block_height: Receiver, + ) -> Self { + let event_match_context = MatchContext::new(&axelar_solana_gateway::ID.to_string()); + + Self { + verifier, + voting_verifier_contract, + rpc_client, + event_match_context, + latest_block_height, + } + } + + fn vote_msg(&self, poll_id: PollId, votes: Vec) -> MsgExecuteContract { + MsgExecuteContract { + sender: self.verifier.as_ref().clone(), + contract: self.voting_verifier_contract.as_ref().clone(), + msg: serde_json::to_vec(&ExecuteMsg::Vote { poll_id, votes }) + .expect("vote msg should serialize"), + funds: vec![], + } + } + + async fn fetch_message( + &self, + msg: &Message, + ) -> Option<(solana_sdk::signature::Signature, UiTransactionStatusMeta)> { + let signature = solana_sdk::signature::Signature::from(msg.message_id.raw_signature); + self.rpc_client + .get_tx(&signature) + .await + .map(|tx| (signature, tx)) + } +} + +#[async_trait] +impl EventHandler for Handler { + type Err = Error; + + async fn handle(&self, event: &events::Event) -> Result> { + if !event.is_from_contract(self.voting_verifier_contract.as_ref()) { + return Ok(vec![]); + } + + let PollStartedEvent { + poll_id, + source_chain, + messages, + expires_at, + participants, + } = match event.try_into() as error_stack::Result<_, _> { + Err(report) if matches!(report.current_context(), EventTypeMismatch(_)) => { + return Ok(vec![]) + } + event => event.change_context(DeserializeEvent)?, + }; + if !participants.contains(&self.verifier) { + return Ok(vec![]); + } + + let latest_block_height = *self.latest_block_height.borrow(); + if latest_block_height >= expires_at { + info!(poll_id = poll_id.to_string(), "skipping expired poll"); + return Ok(vec![]); + } + + let tx_calls = messages.iter().map(|msg| self.fetch_message(msg)); + + let finalized_tx_receipts = futures::future::join_all(tx_calls) + .await + .into_iter() + .filter_map(|tx_data| tx_data) + .collect::>(); + + let poll_id_str: String = poll_id.into(); + let source_chain_str: String = source_chain.into(); + let votes = info_span!( + "verify messages from Solana", + poll_id = poll_id_str, + source_chain = source_chain_str, + message_ids = messages + .iter() + .map(|msg| msg.message_id.to_string()) + .collect::>() + .as_value(), + ) + .in_scope(|| { + info!("ready to verify messages in poll",); + + let votes: Vec<_> = messages + .iter() + .map(|msg| { + finalized_tx_receipts + .get_key_value(&msg.message_id.raw_signature.into()) + .map_or(Vote::NotFound, |entry| { + verify_message(&self.event_match_context, entry, msg) + }) + }) + .collect(); + info!( + votes = votes.as_value(), + "ready to vote for messages in poll" + ); + + votes + }); + + Ok(vec![self + .vote_msg(poll_id, votes) + .into_any() + .expect("vote msg should serialize")]) + } +} + +#[cfg(test)] +mod test { + use solana_sdk::signature::Signature; + use solana_transaction_status::option_serializer::OptionSerializer; + use tokio::sync::watch; + use voting_verifier::events::{PollMetadata, PollStarted, TxEventConfirmation}; + + use crate::{ + handlers::tests::into_structured_event, + types::{EVMAddress, TMAddress}, + PREFIX, + }; + + use super::*; + + struct EmptyResponseSolanaRpc; + #[async_trait::async_trait] + impl SolanaRpcClientProxy for EmptyResponseSolanaRpc { + async fn get_tx(&self, _signature: &Signature) -> Option { + None + } + + async fn get_domain_separator(&self) -> Option<[u8; 32]> { + unimplemented!() + } + } + + struct ValidResponseSolanaRpc; + #[async_trait::async_trait] + impl SolanaRpcClientProxy for ValidResponseSolanaRpc { + async fn get_tx(&self, _signature: &Signature) -> Option { + Some(UiTransactionStatusMeta { + err: None, + status: Ok(()), + fee: 0, + pre_balances: vec![], + post_balances: vec![], + inner_instructions: OptionSerializer::None, + log_messages: OptionSerializer::None, + pre_token_balances: OptionSerializer::None, + post_token_balances: OptionSerializer::None, + rewards: OptionSerializer::None, + loaded_addresses: OptionSerializer::None, + return_data: OptionSerializer::None, + compute_units_consumed: OptionSerializer::None, + }) + } + + async fn get_domain_separator(&self) -> Option<[u8; 32]> { + unimplemented!() + } + } + + // Should not handle event if it is not a poll started event + #[tokio::test] + async fn not_poll_started_event() { + let event = into_structured_event( + cosmwasm_std::Event::new("transfer"), + &TMAddress::random(PREFIX), + ); + + let handler = super::Handler::new( + TMAddress::random(PREFIX), + TMAddress::random(PREFIX), + EmptyResponseSolanaRpc, + watch::channel(0).1, + ); + + assert!(handler.handle(&event).await.is_ok()); + } + + // Should not handle event if it is not emitted from voting verifier + #[tokio::test] + async fn contract_is_not_voting_verifier() { + let event = into_structured_event( + poll_started_event(participants(5, None), 100), + &TMAddress::random(PREFIX), + ); + + let handler = super::Handler::new( + TMAddress::random(PREFIX), + TMAddress::random(PREFIX), + EmptyResponseSolanaRpc, + watch::channel(0).1, + ); + + assert!(handler.handle(&event).await.is_ok()); + } + + // Should not handle event if worker is not a poll participant + #[tokio::test] + async fn verifier_is_not_a_participant() { + let voting_verifier = TMAddress::random(PREFIX); + let event = into_structured_event( + poll_started_event(participants(5, None), 100), + &voting_verifier, + ); + + let handler = super::Handler::new( + TMAddress::random(PREFIX), + voting_verifier, + EmptyResponseSolanaRpc, + watch::channel(0).1, + ); + + assert!(handler.handle(&event).await.is_ok()); + } + + #[tokio::test] + async fn should_vote_correctly() { + let voting_verifier = TMAddress::random(PREFIX); + let worker = TMAddress::random(PREFIX); + let event = into_structured_event( + poll_started_event(participants(5, Some(worker.clone())), 100), + &voting_verifier, + ); + + let handler = super::Handler::new( + worker, + voting_verifier, + ValidResponseSolanaRpc, + watch::channel(0).1, + ); + + let actual = handler.handle(&event).await.unwrap(); + assert_eq!(actual.len(), 1); + assert!(MsgExecuteContract::from_any(actual.first().unwrap()).is_ok()); + } + + #[tokio::test] + async fn should_skip_expired_poll() { + let voting_verifier = TMAddress::random(PREFIX); + let worker = TMAddress::random(PREFIX); + let expiration = 100u64; + let event = into_structured_event( + poll_started_event(participants(5, Some(worker.clone())), expiration), + &voting_verifier, + ); + + let (tx, rx) = watch::channel(expiration - 1); + + let handler = super::Handler::new(worker, voting_verifier, ValidResponseSolanaRpc, rx); + + // poll is not expired yet, should hit proxy + let actual = handler.handle(&event).await.unwrap(); + assert_eq!(actual.len(), 1); + + let _ = tx.send(expiration + 1); + + // poll is expired + assert_eq!(handler.handle(&event).await.unwrap(), vec![]); + } + + fn poll_started_event(participants: Vec, expires_at: u64) -> PollStarted { + let signature_1 = "3GLo4z4siudHxW1BMHBbkTKy7kfbssNFaxLR5hTjhEXCUzp2Pi2VVwybc1s96pEKjRre7CcKKeLhni79zWTNUseP"; + let event_idx_1 = 10_u32; + let message_id_1 = format!("{signature_1}-{event_idx_1}"); + + let signature_2 = "41SgBTfsWbkdixDdVNESM6YmDAzEcKEubGPkaXmtTVUd2EhMaqPEy3qh5ReTtTb4Le4F16SSBFjQCxkekamNrFNT"; + let event_idx_2 = 88_u32; + let message_id_2 = format!("{signature_2}-{event_idx_2}"); + + PollStarted::Messages { + metadata: PollMetadata { + poll_id: "100".parse().unwrap(), + source_chain: "solana".parse().unwrap(), + source_gateway_address: Pubkey::new_unique().to_string().parse().unwrap(), + confirmation_height: 15, + expires_at, + participants: participants + .into_iter() + .map(|addr| cosmwasm_std::Addr::unchecked(addr.to_string())) + .collect(), + }, + #[allow(deprecated)] + messages: vec![ + TxEventConfirmation { + tx_id: signature_1.parse().unwrap(), + event_index: event_idx_1, + source_address: Pubkey::new_unique().to_string().parse().unwrap(), + message_id: message_id_1.parse().unwrap(), + destination_chain: "ethereum".parse().unwrap(), + destination_address: format!("0x{:x}", EVMAddress::random()).parse().unwrap(), + payload_hash: Hash::random().to_fixed_bytes(), + }, + TxEventConfirmation { + tx_id: signature_2.parse().unwrap(), + event_index: event_idx_2, + source_address: Pubkey::new_unique().to_string().parse().unwrap(), + message_id: message_id_2.parse().unwrap(), + destination_chain: "ethereum".parse().unwrap(), + destination_address: format!("0x{:x}", EVMAddress::random()).parse().unwrap(), + payload_hash: Hash::random().to_fixed_bytes(), + }, + ], + } + } + + fn participants(n: u8, worker: Option) -> Vec { + (0..n) + .map(|_| TMAddress::random(PREFIX)) + .chain(worker) + .collect() + } +} diff --git a/ampd/src/handlers/solana_verify_verifier_set.rs b/ampd/src/handlers/solana_verify_verifier_set.rs new file mode 100644 index 000000000..afe6fd5b9 --- /dev/null +++ b/ampd/src/handlers/solana_verify_verifier_set.rs @@ -0,0 +1,377 @@ +use std::convert::TryInto; + +use async_trait::async_trait; +use axelar_wasm_std::msg_id::Base58SolanaTxSignatureAndEventIndex; +use axelar_wasm_std::voting::{PollId, Vote}; +use cosmrs::cosmwasm::MsgExecuteContract; +use cosmrs::tx::Msg; +use cosmrs::Any; +use error_stack::ResultExt; +use events::Error::EventTypeMismatch; +use events_derive::try_from; +use gateway_event_stack::MatchContext; +use multisig::verifier_set::VerifierSet; +use router_api::ChainName; +use serde::Deserialize; +use solana_transaction_status::UiTransactionStatusMeta; +use tokio::sync::watch::Receiver; +use tracing::{info, info_span}; +use valuable::Valuable; +use voting_verifier::msg::ExecuteMsg; + +use crate::event_processor::EventHandler; +use crate::handlers::errors::Error; +use crate::solana::verifier_set_verifier::verify_verifier_set; +use crate::solana::SolanaRpcClientProxy; +use crate::types::TMAddress; + +type Result = error_stack::Result; + +#[derive(Deserialize, Debug)] +pub struct VerifierSetConfirmation { + pub message_id: Base58SolanaTxSignatureAndEventIndex, + pub verifier_set: VerifierSet, +} + +#[derive(Deserialize, Debug)] +#[try_from("wasm-verifier_set_poll_started")] +struct PollStartedEvent { + verifier_set: VerifierSetConfirmation, + poll_id: PollId, + source_chain: ChainName, + expires_at: u64, + participants: Vec, +} + +pub struct Handler { + verifier: TMAddress, + voting_verifier_contract: TMAddress, + rpc_client: C, + solana_gateway_domain_separator: [u8; 32], + latest_block_height: Receiver, + event_match_context: MatchContext, +} + +impl Handler { + pub async fn new( + verifier: TMAddress, + voting_verifier_contract: TMAddress, + rpc_client: C, + latest_block_height: Receiver, + ) -> Self { + let domain_separator = rpc_client + .get_domain_separator() + .await + .expect("cannot start handler without fetching domain separator for Solana"); + let event_match_context = MatchContext::new(&axelar_solana_gateway::ID.to_string()); + + Self { + verifier, + solana_gateway_domain_separator: domain_separator, + event_match_context, + voting_verifier_contract, + rpc_client, + latest_block_height, + } + } + + fn vote_msg(&self, poll_id: PollId, vote: Vote) -> MsgExecuteContract { + MsgExecuteContract { + sender: self.verifier.as_ref().clone(), + contract: self.voting_verifier_contract.as_ref().clone(), + msg: serde_json::to_vec(&ExecuteMsg::Vote { + poll_id, + votes: vec![vote], + }) + .expect("vote msg should serialize"), + funds: vec![], + } + } + + async fn fetch_message( + &self, + msg: &VerifierSetConfirmation, + ) -> Option<(solana_sdk::signature::Signature, UiTransactionStatusMeta)> { + let signature = solana_sdk::signature::Signature::from(msg.message_id.raw_signature); + self.rpc_client + .get_tx(&signature) + .await + .map(|tx| (signature, tx)) + } +} + +#[async_trait] +impl EventHandler for Handler { + type Err = Error; + + async fn handle(&self, event: &events::Event) -> Result> { + if !event.is_from_contract(self.voting_verifier_contract.as_ref()) { + return Ok(vec![]); + } + + let PollStartedEvent { + poll_id, + source_chain, + expires_at, + participants, + verifier_set, + } = match event.try_into() as error_stack::Result<_, _> { + Err(report) if matches!(report.current_context(), EventTypeMismatch(_)) => { + return Ok(vec![]) + } + event => event.change_context(Error::DeserializeEvent)?, + }; + + if !participants.contains(&self.verifier) { + return Ok(vec![]); + } + + let latest_block_height = *self.latest_block_height.borrow(); + if latest_block_height >= expires_at { + info!(poll_id = poll_id.to_string(), "skipping expired poll"); + return Ok(vec![]); + } + + let tx_receipt = self.fetch_message(&verifier_set).await; + let vote = info_span!( + "verify a new verifier set for Solana", + poll_id = poll_id.to_string(), + source_chain = source_chain.to_string(), + id = verifier_set.message_id.to_string() + ) + .in_scope(|| { + info!("ready to verify a new verifier set in poll"); + + let vote = tx_receipt.map_or(Vote::NotFound, |(signature, tx_receipt)| { + verify_verifier_set( + &self.event_match_context, + (&signature, &tx_receipt), + &verifier_set, + &self.solana_gateway_domain_separator, + ) + }); + info!( + vote = vote.as_value(), + "ready to vote for a new verifier set in poll" + ); + + vote + }); + + Ok(vec![self + .vote_msg(poll_id, vote) + .into_any() + .expect("vote msg should serialize")]) + } +} + +#[cfg(test)] +mod tests { + use std::convert::TryInto; + + use cosmrs::cosmwasm::MsgExecuteContract; + use cosmrs::tx::Msg; + use cosmwasm_std; + + use events::Event; + + use multisig::key::KeyType; + use multisig::test::common::{build_verifier_set, ecdsa_test_data}; + use solana_sdk::signature::Signature; + use solana_transaction_status::option_serializer::OptionSerializer; + use tokio::sync::watch; + use tokio::test as async_test; + use voting_verifier::events::{PollMetadata, PollStarted, VerifierSetConfirmation}; + + use crate::event_processor::EventHandler; + use crate::handlers::tests::into_structured_event; + use crate::types::TMAddress; + use crate::PREFIX; + + use super::*; + + struct EmptyResponseSolanaRpc; + #[async_trait::async_trait] + impl SolanaRpcClientProxy for EmptyResponseSolanaRpc { + async fn get_tx(&self, _signature: &Signature) -> Option { + None + } + + async fn get_domain_separator(&self) -> Option<[u8; 32]> { + Some([42; 32]) + } + } + + struct ValidResponseSolanaRpc; + #[async_trait::async_trait] + impl SolanaRpcClientProxy for ValidResponseSolanaRpc { + async fn get_tx(&self, _signature: &Signature) -> Option { + Some(UiTransactionStatusMeta { + err: None, + status: Ok(()), + fee: 0, + pre_balances: vec![], + post_balances: vec![], + inner_instructions: OptionSerializer::None, + log_messages: OptionSerializer::None, + pre_token_balances: OptionSerializer::None, + post_token_balances: OptionSerializer::None, + rewards: OptionSerializer::None, + loaded_addresses: OptionSerializer::None, + return_data: OptionSerializer::None, + compute_units_consumed: OptionSerializer::None, + }) + } + + async fn get_domain_separator(&self) -> Option<[u8; 32]> { + Some([42; 32]) + } + } + + #[async_test] + async fn not_poll_started_event() { + let event = into_structured_event( + cosmwasm_std::Event::new("transfer"), + &TMAddress::random(PREFIX), + ); + + let handler = super::Handler::new( + TMAddress::random(PREFIX), + TMAddress::random(PREFIX), + EmptyResponseSolanaRpc, + watch::channel(0).1, + ) + .await; + + assert_eq!(handler.handle(&event).await.unwrap(), vec![]); + } + + #[async_test] + async fn contract_is_not_voting_verifier() { + let event = into_structured_event( + verifier_set_poll_started_event(participants(5, None), 100), + &TMAddress::random(PREFIX), + ); + + let handler = super::Handler::new( + TMAddress::random(PREFIX), + TMAddress::random(PREFIX), + EmptyResponseSolanaRpc, + watch::channel(0).1, + ) + .await; + + assert_eq!(handler.handle(&event).await.unwrap(), vec![]); + } + + #[async_test] + async fn verifier_is_not_a_participant() { + let voting_verifier = TMAddress::random(PREFIX); + let event = into_structured_event( + verifier_set_poll_started_event(participants(5, None), 100), + &voting_verifier, + ); + + let handler = super::Handler::new( + TMAddress::random(PREFIX), + voting_verifier, + EmptyResponseSolanaRpc, + watch::channel(0).1, + ) + .await; + + assert_eq!(handler.handle(&event).await.unwrap(), vec![]); + } + + #[async_test] + async fn should_skip_expired_poll() { + let voting_verifier = TMAddress::random(PREFIX); + let verifier = TMAddress::random(PREFIX); + let expiration = 100u64; + let event: Event = into_structured_event( + verifier_set_poll_started_event( + vec![verifier.clone()].into_iter().collect(), + expiration, + ), + &voting_verifier, + ); + + let (tx, rx) = watch::channel(expiration - 1); + + let handler = + super::Handler::new(verifier, voting_verifier, ValidResponseSolanaRpc, rx).await; + + // poll is not expired yet, should hit proxy + let actual = handler.handle(&event).await.unwrap(); + assert_eq!(actual.len(), 1); + + let _ = tx.send(expiration + 1); + + // poll is expired + assert_eq!(handler.handle(&event).await.unwrap(), vec![]); + } + + #[async_test] + async fn should_vote_correctly() { + let voting_verifier = TMAddress::random(PREFIX); + let worker = TMAddress::random(PREFIX); + + let event = into_structured_event( + verifier_set_poll_started_event(participants(5, Some(worker.clone())), 100), + &voting_verifier, + ); + + let handler = super::Handler::new( + worker, + voting_verifier, + ValidResponseSolanaRpc, + watch::channel(0).1, + ) + .await; + + let actual = handler.handle(&event).await.unwrap(); + assert_eq!(actual.len(), 1); + assert!(MsgExecuteContract::from_any(actual.first().unwrap()).is_ok()); + } + + fn verifier_set_poll_started_event( + participants: Vec, + expires_at: u64, + ) -> PollStarted { + let signature_1 = "3GLo4z4siudHxW1BMHBbkTKy7kfbssNFaxLR5hTjhEXCUzp2Pi2VVwybc1s96pEKjRre7CcKKeLhni79zWTNUseP"; + let event_idx_1 = 10_u32; + let message_id_1 = format!("{signature_1}-{event_idx_1}"); + PollStarted::VerifierSet { + metadata: PollMetadata { + poll_id: "100".parse().unwrap(), + source_chain: "solana".parse().unwrap(), + source_gateway_address: axelar_solana_gateway::ID.to_string().parse().unwrap(), + confirmation_height: 15, + expires_at, + participants: participants + .into_iter() + .map(|addr| cosmwasm_std::Addr::unchecked(addr.to_string())) + .collect(), + }, + #[allow(deprecated)] // TODO: The below event uses the deprecated tx_id and event_index fields. Remove this attribute when those fields are removed + verifier_set: VerifierSetConfirmation { + tx_id: signature_1 + .parse() + .unwrap(), + event_index: event_idx_1, + message_id: message_id_1 + .to_string() + .try_into() + .unwrap(), + verifier_set: build_verifier_set(KeyType::Ecdsa, &ecdsa_test_data::signers()), + }, + } + } + + fn participants(n: u8, worker: Option) -> Vec { + (0..n) + .map(|_| TMAddress::random(PREFIX)) + .chain(worker) + .collect() + } +} diff --git a/ampd/src/lib.rs b/ampd/src/lib.rs index 75d258504..08cc99fe5 100644 --- a/ampd/src/lib.rs +++ b/ampd/src/lib.rs @@ -14,6 +14,8 @@ use evm::json_rpc::EthereumClient; use multiversx_sdk::gateway::GatewayProxy; use queue::queued_broadcaster::QueuedBroadcaster; use router_api::ChainName; +use solana_client::nonblocking::rpc_client::RpcClient; +use solana_sdk::commitment_config::CommitmentConfig; use thiserror::Error; use tofnd::grpc::{Multisig, MultisigClient}; use tokio::signal::unix::{signal, SignalKind}; @@ -40,6 +42,7 @@ mod health_check; mod json_rpc; mod mvx; mod queue; +mod solana; mod stellar; mod sui; mod tm_client; @@ -388,6 +391,43 @@ where ), event_processor_config.clone(), ), + handlers::config::Config::SolanaMsgVerifier { + cosmwasm_contract, + rpc_url, + rpc_timeout, + } => self.create_handler_task( + "solana-msg-verifier", + handlers::solana_verify_msg::Handler::new( + verifier.clone(), + cosmwasm_contract, + RpcClient::new_with_timeout_and_commitment( + rpc_url.to_string(), + rpc_timeout.unwrap_or(DEFAULT_RPC_TIMEOUT), + CommitmentConfig::finalized(), + ), + self.block_height_monitor.latest_block_height(), + ), + event_processor_config.clone(), + ), + handlers::config::Config::SolanaVerifierSetVerifier { + cosmwasm_contract, + rpc_url, + rpc_timeout, + } => self.create_handler_task( + "solana-verifier-set-verifier", + handlers::solana_verify_verifier_set::Handler::new( + verifier.clone(), + cosmwasm_contract, + RpcClient::new_with_timeout_and_commitment( + rpc_url.to_string(), + rpc_timeout.unwrap_or(DEFAULT_RPC_TIMEOUT), + CommitmentConfig::finalized(), + ), + self.block_height_monitor.latest_block_height(), + ) + .await, + event_processor_config.clone(), + ), }; self.event_processor = self.event_processor.add_task(task); } diff --git a/ampd/src/solana/mod.rs b/ampd/src/solana/mod.rs new file mode 100644 index 000000000..caec3e686 --- /dev/null +++ b/ampd/src/solana/mod.rs @@ -0,0 +1,135 @@ +use axelar_solana_gateway::processor::GatewayEvent; +use axelar_wasm_std::msg_id::Base58SolanaTxSignatureAndEventIndex; +use axelar_wasm_std::voting::Vote; +use gateway_event_stack::MatchContext; +use solana_transaction_status::option_serializer::OptionSerializer; +use solana_transaction_status::UiTransactionStatusMeta; +use std::str::FromStr; +use tracing::{error, warn}; + +use futures::FutureExt; +use serde::{Deserialize, Deserializer}; +use solana_client::nonblocking::rpc_client::RpcClient; +use solana_sdk::{pubkey::Pubkey, signature::Signature}; + +pub mod msg_verifier; +pub mod verifier_set_verifier; + +#[async_trait::async_trait] +pub trait SolanaRpcClientProxy: Send + Sync + 'static { + async fn get_tx(&self, signature: &Signature) -> Option; + async fn get_domain_separator(&self) -> Option<[u8; 32]>; +} + +#[async_trait::async_trait] +impl SolanaRpcClientProxy for RpcClient { + async fn get_tx(&self, signature: &Signature) -> Option { + self.get_transaction( + &signature, + solana_transaction_status::UiTransactionEncoding::Base58, + ) + .map(|tx_data_result| { + tx_data_result + .map(|tx_data| tx_data.transaction.meta) + .ok() + .flatten() + }) + .await + } + + async fn get_domain_separator(&self) -> Option<[u8; 32]> { + let (gateway_root_pda, ..) = axelar_solana_gateway::get_gateway_root_config_pda(); + let config = self.get_account(&gateway_root_pda).await.ok()?.data; + let config = + borsh::from_slice::(&config).ok()?; + let domain_separator = config.domain_separator; + Some(domain_separator) + } +} + +pub fn deserialize_pubkey<'de, D>(deserializer: D) -> Result +where + D: Deserializer<'de>, +{ + let s = String::deserialize(deserializer)?; + Pubkey::from_str(&s).map_err(serde::de::Error::custom) +} + +pub fn verify( + match_context: &MatchContext, + tx: (&Signature, &UiTransactionStatusMeta), + message_id: &Base58SolanaTxSignatureAndEventIndex, + evens_are_equal: F, +) -> Vote +where + F: Fn(&GatewayEvent) -> bool, +{ + // the event idx cannot be larger than usize + let desired_event_idx: usize = match message_id.event_index.try_into() { + Ok(idx) => idx, + Err(_) => { + error!("Invalid event index in message ID"); + return Vote::NotFound; + } + }; + + // message id signatures must match + let (signature, tx) = tx; + if signature.as_ref() != message_id.raw_signature { + error!("signatures don't match"); + return Vote::NotFound; + } + + // logs must be attached to the TX + let logs = match tx.log_messages.as_ref() { + OptionSerializer::Some(logs) => logs, + _ => { + error!("Logs not attached to the transaction object"); + return Vote::NotFound; + } + }; + + // pare the events + let event_stack = gateway_event_stack::build_program_event_stack( + &match_context, + logs, + gateway_event_stack::parse_gateway_logs, + ); + + for invocation_state in event_stack { + use gateway_event_stack::ProgramInvocationState::*; + let (vote, gateway_events) = match invocation_state { + Succeeded(events) => ( + { + // if tx was successful and ix invocation was successful, + // then the final outcome (if event can be found) will be of `Vote::SucceededOnChain` + if tx.err.is_none() { + Vote::SucceededOnChain + } else { + // if tx was NOT successful then we don't care if the ix invocatoin succeeded, + // therefore the final outcome (if event can be found) will be of `Vote::FailedOnChain` + Vote::FailedOnChain + } + }, + events, + ), + Failed(events) | InProgress(events) => (Vote::FailedOnChain, events), + }; + + if let Some((_, event)) = gateway_events + .into_iter() + .find(|(idx, _)| *idx == desired_event_idx) + { + if evens_are_equal(&event) { + // proxy the desired vote status of whether the ix succeeded + return vote; + } + + warn!(?event, "event was found, but contents were not equal"); + return Vote::NotFound; + } + } + + warn!("not found"); + Vote::NotFound +} diff --git a/ampd/src/solana/msg_verifier.rs b/ampd/src/solana/msg_verifier.rs new file mode 100644 index 000000000..8149d4319 --- /dev/null +++ b/ampd/src/solana/msg_verifier.rs @@ -0,0 +1,296 @@ +use axelar_solana_gateway::processor::GatewayEvent; +use axelar_wasm_std::voting::Vote; +use gateway_event_stack::MatchContext; +use solana_sdk::signature::Signature; +use solana_transaction_status::UiTransactionStatusMeta; + +use crate::handlers::solana_verify_msg::Message; + +use super::verify; + +pub fn verify_message( + match_context: &MatchContext, + tx: (&Signature, &UiTransactionStatusMeta), + message: &Message, +) -> Vote { + verify(match_context, tx, &message.message_id, |gateway_event| { + let GatewayEvent::CallContract(event) = gateway_event else { + return false; + }; + return event.sender_key == message.source_address + && event.payload_hash == message.payload_hash.0 + && message.destination_chain == event.destination_chain + && event.destination_contract_address == message.destination_address; + }) +} + +#[cfg(test)] +mod tests { + use axelar_solana_gateway::processor::CallContractEvent; + use solana_sdk::pubkey::Pubkey; + use solana_transaction_status::option_serializer::OptionSerializer; + + use std::str::FromStr; + + use router_api::ChainName; + + use super::*; + #[test_log::test] + fn should_verify_msg_if_correct() { + let ((signature, tx), _event, msg) = fixture_success_call_contract_tx_data(); + dbg!(&tx); + assert_eq!( + Vote::SucceededOnChain, + verify_message( + &create_matcher(&GATEWAY_PROGRAM_ID), + (&signature, &tx), + &msg + ) + ); + } + + #[test] + fn should_not_verify_msg_if_event_idx_is_invalid() { + let ((signature, tx), _event, mut msg) = fixture_success_call_contract_tx_data(); + msg.message_id.event_index = 100; + assert_eq!( + Vote::NotFound, + verify_message( + &create_matcher(&GATEWAY_PROGRAM_ID), + (&signature, &tx), + &msg + ) + ); + } + + #[test] + fn should_not_verify_msg_if_destination_chain_does_not_match() { + let ((signature, tx), _event, mut msg) = fixture_success_call_contract_tx_data(); + msg.destination_chain = ChainName::from_str("badchain").unwrap(); + assert_eq!( + Vote::NotFound, + verify_message( + &create_matcher(&GATEWAY_PROGRAM_ID), + (&signature, &tx), + &msg + ) + ); + } + + #[test] + fn should_not_verify_msg_if_source_address_does_not_match() { + let ((signature, tx), _event, mut msg) = fixture_success_call_contract_tx_data(); + msg.source_address = Pubkey::from([13; 32]); + assert_eq!( + Vote::NotFound, + verify_message( + &create_matcher(&GATEWAY_PROGRAM_ID), + (&signature, &tx), + &msg + ) + ); + } + + #[test] + fn should_not_verify_msg_if_destination_address_does_not_match() { + let ((signature, tx), _event, mut msg) = fixture_success_call_contract_tx_data(); + msg.destination_address = "bad_address".to_string(); + assert_eq!( + Vote::NotFound, + verify_message( + &create_matcher(&GATEWAY_PROGRAM_ID), + (&signature, &tx), + &msg + ) + ); + } + + #[test] + fn should_not_verify_msg_if_payload_hash_does_not_match() { + let ((signature, tx), _event, mut msg) = fixture_success_call_contract_tx_data(); + msg.payload_hash = [1; 32].into(); + assert_eq!( + Vote::NotFound, + verify_message( + &create_matcher(&GATEWAY_PROGRAM_ID), + (&signature, &tx), + &msg + ) + ); + } + + #[test] + fn should_not_verify_msg_gateway_does_not_match() { + let ((signature, tx), _event, msg) = fixture_success_call_contract_tx_data(); + assert_eq!( + Vote::NotFound, + verify_message( + &create_matcher(&Pubkey::new_unique()), + (&signature, &tx), + &msg + ) + ); + } + + #[test] + fn should_fail_tx_failed() { + let (base64_data, event) = fixture_call_contract_log(); + let logs = vec![ + format!("Program {GATEWAY_PROGRAM_ID} invoke [1]"), + "Program log: Instruction: Call Contract".to_owned(), + format!("Program data: {}", base64_data), + format!("Program {GATEWAY_PROGRAM_ID} success"), + ]; + + let msg = create_msg_counterpart(&event, 2); + let signature = msg.message_id.raw_signature.into(); + let mut tx = tx_meta(logs); + tx.err = Some(solana_sdk::transaction::TransactionError::AccountNotFound); + + assert_eq!( + Vote::FailedOnChain, + verify_message( + &create_matcher(&GATEWAY_PROGRAM_ID), + (&signature, &tx), + &msg + ) + ); + } + + #[test] + fn should_fail_tx_succeeded_with_failed_ix() { + let (base64_data, event) = fixture_call_contract_log(); + let logs = vec![ + format!("Program {GATEWAY_PROGRAM_ID} invoke [1]"), + "Program log: Instruction: Call Contract".to_owned(), + format!("Program data: {}", base64_data), + format!("Program {GATEWAY_PROGRAM_ID} failed"), // Invocation 1 fails + ]; + + let msg = create_msg_counterpart(&event, 2); + let tx = tx_meta(logs); + let signature = msg.message_id.raw_signature.into(); + + assert_eq!( + Vote::FailedOnChain, + verify_message( + &create_matcher(&GATEWAY_PROGRAM_ID), + (&signature, &tx), + &msg + ) + ); + } + + #[test] + fn should_find_the_correct_index() { + let (base64_data, event) = fixture_call_contract_log(); + let base64_data_different = "Y2FsbCBjb250cmFjdF9fXw== 6NGe5cm7PkXHz/g8V2VdRg0nU0l7R48x8lll4s0Clz0= xtlu5J3pLn7c4BhqnNSrP1wDZK/pQOJVCYbk6sroJhY= ZXRoZXJldW0= MHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBhMGRlYWUyYzVlYzU0YTFkNmU0M2VhODU2YjI3N2RkMTExNjVhYjRk 8J+QqvCfkKrwn5Cq8J+Qqg=="; + assert_ne!(base64_data_different, base64_data); + let logs = vec![ + format!("Program {GATEWAY_PROGRAM_ID} invoke [1]"), + "Program log: Instruction: Call Contract".to_owned(), + format!("Program data: {}", base64_data_different), + format!("Program {GATEWAY_PROGRAM_ID} failed"), // Invocation 1 fails + format!("Program {GATEWAY_PROGRAM_ID} invoke [1]"), + "Program log: Instruction: Call Contract".to_owned(), + format!("Program data: {}", base64_data), + format!("Program {GATEWAY_PROGRAM_ID} success"), // Invocation 1 succeeds + format!("Program {GATEWAY_PROGRAM_ID} invoke [1]"), + "Program log: Instruction: Call Contract".to_owned(), + format!("Program data: {}", base64_data_different), + format!("Program {GATEWAY_PROGRAM_ID} failed"), // Invocation 1 fails + ]; + + let msg = create_msg_counterpart(&event, 6); + let signature = msg.message_id.raw_signature.into(); + let tx = tx_meta(logs); + + assert_eq!( + Vote::SucceededOnChain, + verify_message( + &create_matcher(&GATEWAY_PROGRAM_ID), + (&signature, &tx), + &msg + ) + ); + } + + const GATEWAY_PROGRAM_ID: Pubkey = axelar_solana_gateway::ID; + const RAW_SIGNATURE: [u8; 64] = [42; 64]; + + fn fixture_call_contract_log() -> (String, CallContractEvent) { + // this is a `CallContract` extract form other unittests + let base64_data = "Y2FsbCBjb250cmFjdF9fXw== 6NGe5cm7PkXHz/g8V2VdRg0nU0l7R48x8lll4s0Clz0= xtlu5J3pLn7c4BhqnNSrP1wDZK/pQOJVCYbk6sroJhY= ZXRoZXJldW0= MHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2YzIwNjAzYzdiODc2NjgyYzEyMTczYmRlZjlhMWRjYTUyOGYxNGZk 8J+QqvCfkKrwn5Cq8J+Qqg=="; + // Simple `CallContract` fixture + let event = CallContractEvent { + sender_key: Pubkey::from_str("GfpyaXoJrd9XHHRehAPCGETie3wpM8xDxscAUoC12Cxt").unwrap(), + destination_chain: "ethereum".to_owned(), + destination_contract_address: + "0x0000000000000000000000006c20603c7b876682c12173bdef9a1dca528f14fd".to_owned(), + payload: vec![ + 240, 159, 144, 170, 240, 159, 144, 170, 240, 159, 144, 170, 240, 159, 144, 170, + ], + payload_hash: [ + 198, 217, 110, 228, 157, 233, 46, 126, 220, 224, 24, 106, 156, 212, 171, 63, 92, 3, + 100, 175, 233, 64, 226, 85, 9, 134, 228, 234, 202, 232, 38, 22, + ], + }; + + (base64_data.to_string(), event) + } + + fn create_msg_counterpart(event: &CallContractEvent, event_index: u64) -> Message { + let msg = Message { + message_id: axelar_wasm_std::msg_id::Base58SolanaTxSignatureAndEventIndex { + raw_signature: RAW_SIGNATURE, + event_index, + }, + destination_address: event.destination_contract_address.clone(), + destination_chain: event.destination_chain.clone().parse().unwrap(), + source_address: event.sender_key, + payload_hash: event.payload_hash.into(), + }; + msg + } + + fn fixture_success_call_contract_tx_data() -> ( + (Signature, UiTransactionStatusMeta), + CallContractEvent, + Message, + ) { + let (base64_data, event) = fixture_call_contract_log(); + let logs = vec![ + format!("Program {GATEWAY_PROGRAM_ID} invoke [1]"), // Invocation 1 starts + "Program log: Instruction: Call Contract".to_owned(), + format!("Program data: {}", base64_data), + format!("Program {GATEWAY_PROGRAM_ID} success"), // Invocation 1 succeeds + ]; + + let msg = create_msg_counterpart(&event, 2); + let signature = msg.message_id.raw_signature.into(); + + ((signature, tx_meta(logs)), event, msg) + } + + fn tx_meta(logs: Vec) -> UiTransactionStatusMeta { + UiTransactionStatusMeta { + err: None, + status: Ok(()), + fee: 0, + pre_balances: vec![0], + post_balances: vec![0], + inner_instructions: OptionSerializer::None, + log_messages: OptionSerializer::Some(logs), + pre_token_balances: OptionSerializer::None, + post_token_balances: OptionSerializer::None, + rewards: OptionSerializer::None, + loaded_addresses: OptionSerializer::None, + return_data: OptionSerializer::None, + compute_units_consumed: OptionSerializer::None, + } + } + + fn create_matcher(gateway_program_id: &Pubkey) -> MatchContext { + MatchContext::new(gateway_program_id.to_string().as_str()) + } +} diff --git a/ampd/src/solana/verifier_set_verifier.rs b/ampd/src/solana/verifier_set_verifier.rs new file mode 100644 index 000000000..798040c5a --- /dev/null +++ b/ampd/src/solana/verifier_set_verifier.rs @@ -0,0 +1,320 @@ +use std::collections::BTreeMap; + +use axelar_solana_encoding::hasher::NativeHasher; +use axelar_solana_gateway::processor::GatewayEvent; +use axelar_solana_gateway::processor::VerifierSetRotated; +use axelar_wasm_std::voting::Vote; +use gateway_event_stack::MatchContext; +use multisig::key::PublicKey; +use multisig::verifier_set::VerifierSet; +use solana_sdk::signature::Signature; +use solana_transaction_status::UiTransactionStatusMeta; + +use crate::handlers::solana_verify_verifier_set::VerifierSetConfirmation; +use crate::solana::verify; +use tracing::error; + +pub fn verify_verifier_set( + match_context: &MatchContext, + tx: (&Signature, &UiTransactionStatusMeta), + message: &VerifierSetConfirmation, + domain_separator: &[u8; 32], +) -> Vote { + use axelar_solana_encoding::types::verifier_set::verifier_set_hash; + + verify(match_context, tx, &message.message_id, |gateway_event| { + let GatewayEvent::VerifierSetRotated(VerifierSetRotated { + verifier_set_hash: incoming_verifier_set_hash, + epoch: _, + }) = gateway_event + else { + error!("found gateway event but it's not VerifierSetRotated event"); + return false; + }; + + let Some(verifier_set) = to_verifier_set(&message.verifier_set) else { + error!("verifier set data structure could not be parsed"); + return false; + }; + + let Ok(desired_hash) = verifier_set_hash::(&verifier_set, &domain_separator) + else { + error!("verifier set could not be hashed"); + return false; + }; + + return &desired_hash == incoming_verifier_set_hash; + }) +} + +/// Transform from Axelar VerifierSet to axelar_solana_encoding VerifierSet +fn to_verifier_set( + vs: &VerifierSet, +) -> Option { + let mut signers = BTreeMap::new(); + + for (_cosmwasm_adr, signer) in vs.signers.iter() { + let pub_key = to_pub_key(&signer.pub_key)?; + let weight = signer.weight.u128(); + signers.insert(pub_key, weight); + } + + let verifier_set = axelar_solana_encoding::types::verifier_set::VerifierSet { + nonce: vs.created_at, + signers, + quorum: vs.threshold.u128(), + }; + Some(verifier_set) +} + +fn to_pub_key(pk: &PublicKey) -> Option { + use axelar_solana_encoding::types::pubkey::ED25519_PUBKEY_LEN; + use axelar_solana_encoding::types::pubkey::SECP256K1_COMPRESSED_PUBKEY_LEN; + Some(match pk { + PublicKey::Ecdsa(hb) => axelar_solana_encoding::types::pubkey::PublicKey::Secp256k1( + hb.to_array::().ok()?, + ), + PublicKey::Ed25519(hb) => axelar_solana_encoding::types::pubkey::PublicKey::Ed25519( + hb.to_array::().ok()?, + ), + }) +} + +#[cfg(test)] +mod tests { + use super::*; + use std::collections::BTreeMap; + + use axelar_solana_gateway::processor::VerifierSetRotated; + use axelar_wasm_std::msg_id::Base58SolanaTxSignatureAndEventIndex; + use axelar_wasm_std::voting::Vote; + use cosmwasm_std::{HexBinary, Uint128}; + + use solana_sdk::pubkey::Pubkey; + use solana_transaction_status::option_serializer::OptionSerializer; + use solana_transaction_status::UiTransactionStatusMeta; + + use super::verify_verifier_set; + + #[test] + fn should_not_verify_verifier_set_if_tx_id_does_not_match() { + let ((signature, tx), mut event) = fixture_success_call_contract_tx_data(); + + event.message_id.raw_signature = [0; 64]; + assert_eq!( + verify_verifier_set( + &create_matcher(&GATEWAY_PROGRAM_ID), + (&signature, &tx), + &event, + &DOMAIN_SEPARATOR + ), + Vote::NotFound + ); + } + + #[test] + fn should_not_verify_verifier_set_if_tx_failed() { + let ((signature, mut tx), event) = fixture_success_call_contract_tx_data(); + + tx.err = Some(solana_sdk::transaction::TransactionError::AccountInUse); + assert_eq!( + verify_verifier_set( + &create_matcher(&GATEWAY_PROGRAM_ID), + (&signature, &tx), + &event, + &DOMAIN_SEPARATOR + ), + Vote::FailedOnChain + ); + } + + #[test] + fn should_not_verify_verifier_set_if_gateway_address_does_not_match() { + let ((signature, tx), event) = fixture_success_call_contract_tx_data(); + + let gateway_address = Pubkey::new_unique(); + assert_eq!( + verify_verifier_set( + &create_matcher(&gateway_address), + (&signature, &tx), + &event, + &DOMAIN_SEPARATOR + ), + Vote::NotFound + ); + } + + #[test] + fn should_not_verify_verifier_set_if_log_index_does_not_match() { + let ((signature, tx), mut event) = fixture_success_call_contract_tx_data(); + + event.message_id.event_index -= 1; + assert_eq!( + verify_verifier_set( + &create_matcher(&GATEWAY_PROGRAM_ID), + (&signature, &tx), + &event, + &DOMAIN_SEPARATOR + ), + Vote::NotFound + ); + event.message_id.event_index += 2; + assert_eq!( + verify_verifier_set( + &create_matcher(&GATEWAY_PROGRAM_ID), + (&signature, &tx), + &event, + &DOMAIN_SEPARATOR + ), + Vote::NotFound + ); + } + + #[test] + fn should_not_verify_verifier_set_if_log_index_greater_than_u32_max() { + let ((signature, tx), mut event) = fixture_success_call_contract_tx_data(); + + event.message_id.event_index = u32::MAX as u64 + 1; + assert_eq!( + verify_verifier_set( + &create_matcher(&GATEWAY_PROGRAM_ID), + (&signature, &tx), + &event, + &DOMAIN_SEPARATOR + ), + Vote::NotFound + ); + } + + #[test] + fn should_not_verify_verifier_set_if_verifier_set_does_not_match() { + let ((signature, tx), mut event) = fixture_success_call_contract_tx_data(); + + event.verifier_set.threshold = Uint128::from(50u64); + assert_eq!( + verify_verifier_set( + &create_matcher(&GATEWAY_PROGRAM_ID), + (&signature, &tx), + &event, + &DOMAIN_SEPARATOR + ), + Vote::NotFound + ); + } + + #[test_log::test] + fn should_verify_verifier_set_if_correct() { + let ((signature, tx), event) = fixture_success_call_contract_tx_data(); + + assert_eq!( + verify_verifier_set( + &create_matcher(&GATEWAY_PROGRAM_ID), + (&signature, &tx), + &event, + &DOMAIN_SEPARATOR + ), + Vote::SucceededOnChain + ); + } + + const DOMAIN_SEPARATOR: [u8; 32] = [42; 32]; + const GATEWAY_PROGRAM_ID: Pubkey = axelar_solana_gateway::ID; + const RAW_SIGNATURE: [u8; 64] = [42; 64]; + + fn fixture_rotate_verifier_set() -> ( + String, + VerifierSetRotated, + multisig::verifier_set::VerifierSet, + ) { + let base64_data = "c2lnbmVycyByb3RhdGVkXw== AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= rGbfImIlluyfNx5TfhnZEDS+uUBKCSDRAJ28Znulbgw="; + let verifier_set = multisig::verifier_set::VerifierSet { + signers: { + let mut map = BTreeMap::new(); + map.insert( + "aabbcc".to_string(), + multisig::msg::Signer { + weight: 500_u128.into(), + address: cosmwasm_std::Addr::unchecked("axelar1abc"), + pub_key: multisig::key::PublicKey::Ecdsa(HexBinary::from_hex( + "036773a9d49a2a2f04b4aa8724d0f40e197570e4bb85f6b826da2a4ec25996d018", + ) + .unwrap()), + }, + ); + map.insert("aabbccdd".to_string(), multisig::msg::Signer { + weight: 200_u128.into(), + address: cosmwasm_std::Addr::unchecked("axelar1abcaa"), + pub_key: multisig::key::PublicKey::Ecdsa(HexBinary::from_hex("038f8504c6ec6c16f2b37897d33bdb0667da32d18c7144365a47ac934abedcc0ba").unwrap()) + }); + map + }, + threshold: 700_u128.into(), + created_at: 1, + }; + let verifier_set_hash = [ + 172, 102, 223, 34, 98, 37, 150, 236, 159, 55, 30, 83, 126, 25, 217, 16, 52, 190, 185, + 64, 74, 9, 32, 209, 0, 157, 188, 102, 123, 165, 110, 12, + ]; + let newly_created_vs = to_verifier_set(&verifier_set).unwrap(); + let expected_hash = axelar_solana_encoding::types::verifier_set::verifier_set_hash::< + NativeHasher, + >(&newly_created_vs, &DOMAIN_SEPARATOR) + .unwrap(); + assert_eq!(verifier_set_hash, expected_hash); + let event = VerifierSetRotated { + epoch: 2_u64.into(), + verifier_set_hash, + }; + + (base64_data.to_string(), event, verifier_set) + } + + fn fixture_success_call_contract_tx_data() -> ( + (Signature, UiTransactionStatusMeta), + VerifierSetConfirmation, + ) { + let (base64_data, _event, actual_verifier_set) = fixture_rotate_verifier_set(); + let logs = vec![ + format!("Program {GATEWAY_PROGRAM_ID} invoke [1]"), + "Program log: Instruction: Rotate Signers".to_string(), + "Program 11111111111111111111111111111111 invoke [2]".to_string(), + "Program 11111111111111111111111111111111 success".to_string(), + format!("Program data: {base64_data}"), + format!("Program {GATEWAY_PROGRAM_ID} consumed 11970 of 200000 compute units"), + format!("Program {GATEWAY_PROGRAM_ID} success"), + ]; + + ( + (RAW_SIGNATURE.into(), tx_meta(logs)), + VerifierSetConfirmation { + message_id: Base58SolanaTxSignatureAndEventIndex { + raw_signature: RAW_SIGNATURE, + event_index: 4, + }, + verifier_set: actual_verifier_set, + }, + ) + } + + fn tx_meta(logs: Vec) -> UiTransactionStatusMeta { + UiTransactionStatusMeta { + err: None, + status: Ok(()), + fee: 0, + pre_balances: vec![0], + post_balances: vec![0], + inner_instructions: OptionSerializer::None, + log_messages: OptionSerializer::Some(logs), + pre_token_balances: OptionSerializer::None, + post_token_balances: OptionSerializer::None, + rewards: OptionSerializer::None, + loaded_addresses: OptionSerializer::None, + return_data: OptionSerializer::None, + compute_units_consumed: OptionSerializer::None, + } + } + + fn create_matcher(gateway_program_id: &Pubkey) -> MatchContext { + MatchContext::new(gateway_program_id.to_string().as_str()) + } +} diff --git a/ampd/src/tests/config_template.toml b/ampd/src/tests/config_template.toml index ec99f3de7..aad53b6b5 100644 --- a/ampd/src/tests/config_template.toml +++ b/ampd/src/tests/config_template.toml @@ -82,6 +82,24 @@ type = 'StellarVerifierSetVerifier' cosmwasm_contract = 'axelar1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqecnww6' rpc_url = 'http://127.0.0.1/' +[[handlers]] +type = 'SolanaMsgVerifier' +cosmwasm_contract = 'axelar1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqecnww6' +rpc_url = 'http://127.0.0.1/' + +[handlers.rpc_timeout] +secs = 3 +nanos = 0 + +[[handlers]] +type = 'SolanaVerifierSetVerifier' +cosmwasm_contract = 'axelar1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqecnww6' +rpc_url = 'http://127.0.0.1/' + +[handlers.rpc_timeout] +secs = 3 +nanos = 0 + [tofnd_config] url = 'http://localhost:50051/' party_uid = 'ampd' diff --git a/contracts/multisig-prover/Cargo.toml b/contracts/multisig-prover/Cargo.toml index 59ea5a93c..fb4e2b756 100644 --- a/contracts/multisig-prover/Cargo.toml +++ b/contracts/multisig-prover/Cargo.toml @@ -6,8 +6,8 @@ edition = { workspace = true } description = "Multisig prover contract" exclude = [ - "contract.wasm", - "hash.txt" + "contract.wasm", + "hash.txt", ] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -63,6 +63,7 @@ stellar-xdr = { workspace = true } sui-gateway = { workspace = true } thiserror = { workspace = true } voting-verifier = { workspace = true, features = ["library"] } +axelar-solana-encoding = { workspace = true } [dev-dependencies] anyhow = "1.0" diff --git a/contracts/multisig-prover/src/encoding/mod.rs b/contracts/multisig-prover/src/encoding/mod.rs index dec71dcbc..d7a273343 100644 --- a/contracts/multisig-prover/src/encoding/mod.rs +++ b/contracts/multisig-prover/src/encoding/mod.rs @@ -1,5 +1,6 @@ mod abi; mod bcs; +mod solana; mod stellar_xdr; use axelar_wasm_std::hash::Hash; @@ -17,6 +18,7 @@ use crate::payload::Payload; pub enum Encoder { Abi, Bcs, + Solana, StellarXdr, } @@ -33,6 +35,7 @@ impl Encoder { Encoder::StellarXdr => { stellar_xdr::payload_digest(domain_separator, verifier_set, payload) } + Encoder::Solana => solana::payload_digest(domain_separator, verifier_set, payload), } } @@ -47,6 +50,9 @@ impl Encoder { Encoder::Abi => abi::encode_execute_data(domain_separator, verifier_set, sigs, payload), Encoder::Bcs => bcs::encode_execute_data(domain_separator, verifier_set, sigs, payload), Encoder::StellarXdr => stellar_xdr::encode_execute_data(verifier_set, sigs, payload), + Encoder::Solana => { + solana::encode_execute_data(sigs, verifier_set, payload, domain_separator) + } } } } diff --git a/contracts/multisig-prover/src/encoding/solana.rs b/contracts/multisig-prover/src/encoding/solana.rs new file mode 100644 index 000000000..cd61dcd03 --- /dev/null +++ b/contracts/multisig-prover/src/encoding/solana.rs @@ -0,0 +1,188 @@ +use axelar_wasm_std::hash::Hash; +use cosmwasm_std::HexBinary; +use itertools::Itertools; +use k256::ecdsa::RecoveryId; +use multisig::{ + key::{PublicKey, Recoverable, Signature}, + msg::SignerWithSig, + verifier_set::VerifierSet, +}; +use router_api::Message; +use std::{array::TryFromSliceError, collections::BTreeMap}; + +use crate::{error::ContractError, payload::Payload}; + +pub fn encode_execute_data( + signers_with_sigs: Vec, + verifier_set: &VerifierSet, + payload: &Payload, + domain_separator: &Hash, +) -> error_stack::Result { + // construct the base types + let verifier_set = to_verifier_set(&verifier_set)?; + let payload = to_payload(payload)?; + let payload_hash = + axelar_solana_encoding::hash_payload(domain_separator, &verifier_set, payload.clone()) + .map_err(|err| ContractError::SolanaEncoding { + reason: err.to_string(), + })?; + + // encode the signers & their signatures + let mut signers_with_signatures = BTreeMap::< + axelar_solana_encoding::types::pubkey::PublicKey, + axelar_solana_encoding::types::pubkey::Signature, + >::new(); + for signer in signers_with_sigs { + let pubkey = to_pub_key(&signer.signer.pub_key)?; + let signature = to_signature(&signer.signature, &signer.signer.pub_key, &payload_hash)?; + signers_with_signatures.insert(pubkey, signature); + } + + // encode all the data + let bytes = axelar_solana_encoding::encode( + &verifier_set, + &signers_with_signatures, + *domain_separator, + payload, + ) + .map_err(|e| ContractError::SolanaEncoding { + reason: e.to_string(), + })?; + + Ok(HexBinary::from(bytes)) +} + +pub fn payload_digest( + domain_separator: &Hash, + verifier_set: &VerifierSet, + payload: &Payload, +) -> error_stack::Result { + let verifier_set = to_verifier_set(verifier_set)?; + let payload = to_payload(payload)?; + let hash = axelar_solana_encoding::hash_payload(domain_separator, &verifier_set, payload) + .map_err(|err| ContractError::SolanaEncoding { + reason: err.to_string(), + })?; + Ok(hash) +} + +/// Transform from Axelar VerifierSet to axelar_solana_encoding VerifierSet +fn to_verifier_set( + vs: &VerifierSet, +) -> error_stack::Result { + let mut signers = BTreeMap::new(); + + for (_cosmwasm_adr, signer) in vs.signers.iter() { + let pub_key = to_pub_key(&signer.pub_key)?; + let weight = signer.weight.u128(); + signers.insert(pub_key, weight); + } + + let verifier_set = axelar_solana_encoding::types::verifier_set::VerifierSet { + nonce: vs.created_at, + signers, + quorum: vs.threshold.u128(), + }; + Ok(verifier_set) +} + +fn to_pub_key( + pk: &PublicKey, +) -> error_stack::Result { + use axelar_solana_encoding::types::pubkey::ED25519_PUBKEY_LEN; + use axelar_solana_encoding::types::pubkey::SECP256K1_COMPRESSED_PUBKEY_LEN; + Ok(match pk { + PublicKey::Ecdsa(hb) => axelar_solana_encoding::types::pubkey::PublicKey::Secp256k1( + hb.to_array::() + .map_err(|err| ContractError::SolanaEncoding { + reason: err.to_string(), + })?, + ), + PublicKey::Ed25519(hb) => axelar_solana_encoding::types::pubkey::PublicKey::Ed25519( + hb.to_array::() + .map_err(|err| ContractError::SolanaEncoding { + reason: err.to_string(), + })?, + ), + }) +} + +fn to_payload( + payload: &Payload, +) -> error_stack::Result { + let payload = match payload { + Payload::Messages(msgs) => { + let messages = msgs.into_iter().map(|msg| to_msg(msg)).collect_vec(); + let messages = axelar_solana_encoding::types::messages::Messages(messages); + axelar_solana_encoding::types::payload::Payload::Messages(messages) + } + Payload::VerifierSet(vs) => { + let verifier_set = to_verifier_set(&vs)?; + axelar_solana_encoding::types::payload::Payload::NewVerifierSet(verifier_set) + } + }; + Ok(payload) +} + +fn to_msg(msg: &Message) -> axelar_solana_encoding::types::messages::Message { + let cc_id = axelar_solana_encoding::types::messages::CrossChainId { + chain: msg.cc_id.source_chain.to_string(), + id: msg.cc_id.message_id.to_string(), + }; + + axelar_solana_encoding::types::messages::Message { + cc_id, + source_address: msg.source_address.to_string(), + destination_chain: msg.destination_chain.to_string(), + destination_address: msg.destination_address.to_string(), + payload_hash: msg.payload_hash, + } +} + +fn to_signature( + sig: &Signature, + pub_key: &PublicKey, + payload_hash: &[u8; 32], +) -> error_stack::Result { + let recovery_transform = |recovery_byte: RecoveryId| -> u8 { recovery_byte.to_byte() }; + match sig { + Signature::Ecdsa(nonrec) => { + let recov = nonrec + .to_recoverable(payload_hash, pub_key, recovery_transform) + .map_err(|e| ContractError::SolanaEncoding { + reason: e.to_string(), + })?; + Ok( + axelar_solana_encoding::types::pubkey::Signature::EcdsaRecoverable( + recoverable_ecdsa_to_array(&recov)?, + ), + ) + } + Signature::EcdsaRecoverable(r) => Ok( + axelar_solana_encoding::types::pubkey::Signature::EcdsaRecoverable( + recoverable_ecdsa_to_array(r)?, + ), + ), + Signature::Ed25519(ed) => { + let data = ed.as_ref().try_into().map_err(|e: TryFromSliceError| { + ContractError::SolanaEncoding { + reason: e.to_string(), + } + })?; + + Ok(axelar_solana_encoding::types::pubkey::Signature::Ed25519( + data, + )) + } + } +} + +fn recoverable_ecdsa_to_array(rec: &Recoverable) -> error_stack::Result<[u8; 65], ContractError> { + let res = + rec.as_ref() + .try_into() + .map_err(|e: TryFromSliceError| ContractError::SolanaEncoding { + reason: e.to_string(), + })?; + Ok(res) +} diff --git a/contracts/multisig-prover/src/error.rs b/contracts/multisig-prover/src/error.rs index f0f946a60..12e03c849 100644 --- a/contracts/multisig-prover/src/error.rs +++ b/contracts/multisig-prover/src/error.rs @@ -39,6 +39,10 @@ pub enum ContractError { #[error(transparent)] BcsError(#[from] bcs::Error), + // NOTE: using string "reason" because the `axelar_solana_encoding::error::Error` does not implement PartialEq + #[error("Solana encoding/decoding error: [0]")] + SolanaEncoding { reason: String }, + #[error("verifier set has not changed sufficiently since last update")] VerifierSetUnchanged, diff --git a/packages/axelar-wasm-std/Cargo.toml b/packages/axelar-wasm-std/Cargo.toml index 3472b6de8..5623240e2 100644 --- a/packages/axelar-wasm-std/Cargo.toml +++ b/packages/axelar-wasm-std/Cargo.toml @@ -6,8 +6,8 @@ edition = { workspace = true } description = "Axelar cosmwasm standard library crate" exclude = [ - "contract.wasm", - "hash.txt" + "contract.wasm", + "hash.txt", ] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -29,7 +29,7 @@ optimize = """docker run --rm -v "$(pwd)":/code \ [dependencies] alloy-primitives = { workspace = true } axelar-wasm-std-derive = { workspace = true, optional = true } -bs58 = "0.5.1" +bs58 = { workspace = true } cosmwasm-schema = { workspace = true } cosmwasm-std = { workspace = true } cw-storage-plus = { workspace = true } diff --git a/packages/axelar-wasm-std/src/address.rs b/packages/axelar-wasm-std/src/address.rs index ea1544c44..3e5560ccd 100644 --- a/packages/axelar-wasm-std/src/address.rs +++ b/packages/axelar-wasm-std/src/address.rs @@ -19,6 +19,7 @@ pub enum AddressFormat { Eip55, Sui, Stellar, + Base58Solana, } pub fn validate_address(address: &str, format: &AddressFormat) -> Result<(), Error> { @@ -38,6 +39,16 @@ pub fn validate_address(address: &str, format: &AddressFormat) -> Result<(), Err ScAddress::from_str(address) .change_context(Error::InvalidAddress(address.to_string()))?; } + AddressFormat::Base58Solana => { + const SOLANA_PUBKEY_LEN: usize = 32; + + let pubkey_vec = bs58::decode(address) + .into_vec() + .change_context(Error::InvalidAddress(address.to_string()))?; + if pubkey_vec.len() != SOLANA_PUBKEY_LEN { + bail!(Error::InvalidAddress(address.to_string())) + } + } } Ok(()) @@ -187,4 +198,57 @@ mod tests { address::Error::InvalidAddress(..) ); } + + #[test] + fn validate_solana_address() { + use crate::{address, assert_err_contains}; + + // Valid Solana address + let addr = "4f3J7t1HgX1t36k6rph2pYJrWxk9uT1RrB2K3nVHDh8D"; + + assert_ok!(address::validate_address( + addr, + &address::AddressFormat::Base58Solana + )); + + // Invalid address: contains invalid character '0' (zero) + let invalid_char_addr = "4f3J7t1HgX1t36k6rph2pYJrWxk9uT1RrB2K3nVHDh8D0"; + assert_err_contains!( + address::validate_address(invalid_char_addr, &address::AddressFormat::Base58Solana), + address::Error, + address::Error::InvalidAddress(..) + ); + + // Invalid address: contains invalid character 'O' + let invalid_char_addr2 = "4f3J7t1HgX1t36k6rph2pYJrWxk9uT1RrB2K3nVHDh8DO"; + assert_err_contains!( + address::validate_address(invalid_char_addr2, &address::AddressFormat::Base58Solana), + address::Error, + address::Error::InvalidAddress(..) + ); + + // Invalid address: incorrect length (too short) + let short_addr = "4f3J7t1HgX1t36k6rph2pYJrWxk9uT1RrB2K3nVHDh"; + assert_err_contains!( + address::validate_address(short_addr, &address::AddressFormat::Base58Solana), + address::Error, + address::Error::InvalidAddress(..) + ); + + // Invalid address: incorrect length (too long) + let long_addr = format!("{}A", addr); + assert_err_contains!( + address::validate_address(&long_addr, &address::AddressFormat::Base58Solana), + address::Error, + address::Error::InvalidAddress(..) + ); + + // Invalid address: contains invalid character 'I' + let invalid_char_addr3 = "4f3J7t1HgX1t36k6rph2pYJrWxk9uT1RrB2K3nVHDh8DI"; + assert_err_contains!( + address::validate_address(invalid_char_addr3, &address::AddressFormat::Base58Solana), + address::Error, + address::Error::InvalidAddress(..) + ); + } } diff --git a/packages/axelar-wasm-std/src/msg_id/base_58_solana_event_index.rs b/packages/axelar-wasm-std/src/msg_id/base_58_solana_event_index.rs index d90c2e066..f4e06e882 100644 --- a/packages/axelar-wasm-std/src/msg_id/base_58_solana_event_index.rs +++ b/packages/axelar-wasm-std/src/msg_id/base_58_solana_event_index.rs @@ -5,18 +5,32 @@ use std::str::FromStr; use error_stack::{Report, ResultExt}; use lazy_static::lazy_static; use regex::Regex; +use serde::{Deserialize, Deserializer}; use super::Error; use crate::nonempty; type RawSignature = [u8; 64]; +#[derive(Debug, Clone)] pub struct Base58SolanaTxSignatureAndEventIndex { // Base58 decoded bytes of the Solana signature. pub raw_signature: RawSignature, pub event_index: u64, } +impl<'de> Deserialize<'de> for Base58SolanaTxSignatureAndEventIndex { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + // Deserialize the input as a string + let s = String::deserialize(deserializer)?; + // Use the FromStr implementation to parse the string into the struct + Base58SolanaTxSignatureAndEventIndex::from_str(&s).map_err(serde::de::Error::custom) + } +} + impl Base58SolanaTxSignatureAndEventIndex { pub fn signature_as_base58(&self) -> nonempty::String { bs58::encode(self.raw_signature)