diff --git a/relayer/Cargo.lock b/relayer/Cargo.lock index ff7278e5..a92a2447 100644 --- a/relayer/Cargo.lock +++ b/relayer/Cargo.lock @@ -679,15 +679,34 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "cgp" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cf6008adf1725d51be8a8e6e93c83b5cf19fb2e7f2061328af663aa97c306a1" +dependencies = [ + "cgp-core 0.1.0", + "cgp-extra 0.1.0", +] + [[package]] name = "cgp" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ea80431b9e73ebb8b04657c3890f80b40b987f505f91a65659614d397ec89c5" dependencies = [ - "cgp-async", - "cgp-core", - "cgp-extra", + "cgp-async 0.3.0", + "cgp-core 0.3.1", + "cgp-extra 0.3.0", +] + +[[package]] +name = "cgp-async" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d071d4e97afc6ce344786d52f513204e271032e1dc51e59408b6ea545fd270b7" +dependencies = [ + "cgp-async-macro 0.1.0", ] [[package]] @@ -696,10 +715,21 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cca3a368634ced2b77f1e00e7ebb0872402a1d8fd6dbf05880329b0a001b37e" dependencies = [ - "cgp-async-macro", + "cgp-async-macro 0.3.0", "cgp-sync", ] +[[package]] +name = "cgp-async-macro" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4eeae095965f957262c70b7b3d52eeb7859c5a7f24db7e4330e02ba4e500d7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "cgp-async-macro" version = "0.3.0" @@ -711,19 +741,52 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "cgp-component" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2622c229c16df5194795974fe869c875371ac526398f35b9f42853e73123e4dc" +dependencies = [ + "cgp-async 0.1.0", + "cgp-component-macro 0.1.0", +] + [[package]] name = "cgp-component" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12793289566a983f8a3151448cb8820bcc4704c34a0a9cf19bb1ed48e0844e81" +[[package]] +name = "cgp-component-macro" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b293063f328ce024cce876357dbaf4e0341cd202c32ad02d182c00b894d8a1" +dependencies = [ + "cgp-component-macro-lib 0.1.0", + "proc-macro2", +] + [[package]] name = "cgp-component-macro" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f37331b62cbb29d159d2c3bc3c21bdc885576d9c024d0e9ea4cb3e7513138897" dependencies = [ - "cgp-component-macro-lib", + "cgp-component-macro-lib 0.3.0", + "syn 2.0.96", +] + +[[package]] +name = "cgp-component-macro-lib" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2505f365511950fec58adb513a8307b11ffea1a06f10b647aa51162de217b424" +dependencies = [ + "itertools 0.11.0", + "prettyplease", + "proc-macro2", + "quote", "syn 2.0.96", ] @@ -740,30 +803,53 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "cgp-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff5a8db0975e0efa7bb1b8295a0b582059552d0228d441e47c5f4196914f3bd4" +dependencies = [ + "cgp-async 0.1.0", + "cgp-component 0.1.0", + "cgp-error 0.1.0", + "cgp-field 0.1.0", + "cgp-inner 0.1.0", +] + [[package]] name = "cgp-core" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbc9ec022a14d652748da1cfb4a880a9046fe9b0fddbe20faf4955e3237dd51a" dependencies = [ - "cgp-async", - "cgp-component", - "cgp-component-macro", - "cgp-error", - "cgp-field", - "cgp-field-macro", + "cgp-async 0.3.0", + "cgp-component 0.3.0", + "cgp-component-macro 0.3.0", + "cgp-error 0.3.1", + "cgp-field 0.3.0", + "cgp-field-macro 0.3.0", "cgp-type", ] +[[package]] +name = "cgp-error" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a40e53c31277f55360d2ba76a616f2335e006a58ff19c05e6070a0f45931e1cb" +dependencies = [ + "cgp-async 0.1.0", + "cgp-component 0.1.0", +] + [[package]] name = "cgp-error" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed10c471f0af57e4f5a196e21af4f95c7ba3fb6d990d623eb3f47a0f75b4d385" dependencies = [ - "cgp-async", - "cgp-component", - "cgp-component-macro", + "cgp-async 0.3.0", + "cgp-component 0.3.0", + "cgp-component-macro 0.3.0", "cgp-type", ] @@ -773,7 +859,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffb44c5e45fb8de9d5e8d77a4736c01d09fdee2f4e822b5ea5a3b6243ddbdd9c" dependencies = [ - "cgp-error", + "cgp-error 0.3.1", ] [[package]] @@ -782,10 +868,19 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b55353f7f8495c809b21e386f2a35c4665f382836a46a2c961216b5aa2bcdc05" dependencies = [ - "cgp-core", + "cgp-core 0.3.1", "eyre", ] +[[package]] +name = "cgp-extra" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "704f0d30d3235cb181cc83146f3c9d42999435ff9236743be71aaf182e758ba9" +dependencies = [ + "cgp-run 0.1.0", +] + [[package]] name = "cgp-extra" version = "0.3.0" @@ -793,31 +888,63 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04a67b3e5c5fd4420c0fd16c1e93a9e28a7e10f9aa911b66d7a2b9588fbb11c4" dependencies = [ "cgp-error-extra", - "cgp-inner", - "cgp-run", + "cgp-inner 0.3.0", + "cgp-run 0.3.0", "cgp-runtime", ] +[[package]] +name = "cgp-field" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea5c75d9db95765005f357690a589c357debb95b6a3233737e095560c5e273cb" +dependencies = [ + "cgp-field-macro 0.1.0", +] + [[package]] name = "cgp-field" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "193dec7508c4b4efd6a1ef5eac6789eb0a297561e55dcb8cd377a904f055a176" dependencies = [ - "cgp-component", + "cgp-component 0.3.0", "cgp-type", ] +[[package]] +name = "cgp-field-macro" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c315a7a8847191333ab189234e5eae77df650b9bdf57abfdfc5fe83f188b883" +dependencies = [ + "cgp-field-macro-lib 0.1.0", + "proc-macro2", +] + [[package]] name = "cgp-field-macro" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7853451aedcc73c0edf67d44ca9652a7b1ba8a18ac0499f4fced1ac845b7711" dependencies = [ - "cgp-field-macro-lib", + "cgp-field-macro-lib 0.3.0", "proc-macro2", ] +[[package]] +name = "cgp-field-macro-lib" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba35e703bac9e476efb61793bdd79b2bfd6abc551f4c7bf9f42899766536d87c" +dependencies = [ + "itertools 0.11.0", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "cgp-field-macro-lib" version = "0.3.0" @@ -830,14 +957,35 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "cgp-inner" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9992e1a6cf0bb8a13bb72e8a91125a5594c1616555776905043e5924a8e12dd7" +dependencies = [ + "cgp-async 0.1.0", + "cgp-component 0.1.0", +] + [[package]] name = "cgp-inner" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be4e35f1ad7bfb5df01c9f263d054ba53ff87c3d1da20cb5c0872191df904583" dependencies = [ - "cgp-component", - "cgp-component-macro", + "cgp-component 0.3.0", + "cgp-component-macro 0.3.0", +] + +[[package]] +name = "cgp-run" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44a08c8d94641ad0376d23aab67b703d0aac7f178d3a2483cf679074fc2b277d" +dependencies = [ + "cgp-async 0.1.0", + "cgp-component 0.1.0", + "cgp-error 0.1.0", ] [[package]] @@ -846,10 +994,10 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ec7009079ecfd0a5db07a5dda0e7cece70b1774ead842a42919a93b4662eb96" dependencies = [ - "cgp-async", - "cgp-component", - "cgp-component-macro", - "cgp-error", + "cgp-async 0.3.0", + "cgp-component 0.3.0", + "cgp-component-macro 0.3.0", + "cgp-error 0.3.1", ] [[package]] @@ -858,7 +1006,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "332d92088b07754adbde9ecdf894b8c3b9303b287c8d82d11f8886a394121925" dependencies = [ - "cgp-core", + "cgp-core 0.3.1", ] [[package]] @@ -867,7 +1015,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb37ca18a65f3603aaa307ba76d92f64025db56160143a0e96466b5855d61a29" dependencies = [ - "cgp-async-macro", + "cgp-async-macro 0.3.0", ] [[package]] @@ -876,8 +1024,8 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a4638c888a38fbb1c88406c224c38d7b9e230a306e7b07f796280b89f5baa54" dependencies = [ - "cgp-component", - "cgp-component-macro", + "cgp-component 0.3.0", + "cgp-component-macro 0.3.0", ] [[package]] @@ -1824,7 +1972,7 @@ name = "hermes-any-counterparty" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-cosmos-chain-components", "hermes-encoding-components", "hermes-error", @@ -1842,7 +1990,7 @@ version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ "async-trait", - "cgp", + "cgp 0.3.1", "futures-channel", "futures-core", "futures-util", @@ -1853,7 +2001,7 @@ dependencies = [ name = "hermes-cairo-encoding-components" version = "0.1.0" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-encoding-components", "hermes-relayer-components", "starknet", @@ -1864,7 +2012,7 @@ name = "hermes-chain-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-chain-type-components", "hermes-encoding-components", "hermes-runtime-components", @@ -1875,7 +2023,46 @@ name = "hermes-chain-type-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", +] + +[[package]] +name = "hermes-cli" +version = "0.1.0" +source = "git+https://github.com/informalsystems/hermes-sdk.git#3ff219f7d09795dcc33f6034aa234811dd82b5c9" +dependencies = [ + "cgp 0.3.1", + "clap", + "dirs-next", + "eyre", + "futures", + "hdpath", + "hermes-any-counterparty", + "hermes-chain-components", + "hermes-cli-components", + "hermes-cli-framework", + "hermes-cosmos-chain-components", + "hermes-cosmos-integration-tests", + "hermes-cosmos-relayer", + "hermes-cosmos-test-components", + "hermes-encoding-components", + "hermes-error", + "hermes-logger", + "hermes-logging-components", + "hermes-protobuf-encoding-components", + "hermes-relayer-components", + "hermes-runtime", + "hermes-runtime-components", + "http 1.2.0", + "humantime", + "ibc", + "oneline-eyre", + "prost", + "serde", + "serde_json", + "toml", + "tonic", + "tracing", ] [[package]] @@ -1883,7 +2070,7 @@ name = "hermes-cli-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "clap", "hermes-encoding-components", "hermes-error", @@ -1896,12 +2083,32 @@ dependencies = [ "toml", ] +[[package]] +name = "hermes-cli-framework" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d50bb06d49488083dc3dc7f576a65e47fbb858360dfc6bb21d086704f2e7997f" +dependencies = [ + "cgp 0.1.0", + "clap", + "eyre", + "hermes-cosmos-relayer", + "hermes-error", + "hermes-runtime", + "oneline-eyre", + "serde", + "serde_json", + "tokio", + "tracing", + "tracing-subscriber", +] + [[package]] name = "hermes-comet-light-client-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-chain-type-components", ] @@ -1910,7 +2117,7 @@ name = "hermes-comet-light-client-context" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "eyre", "hermes-chain-components", "hermes-chain-type-components", @@ -1928,7 +2135,7 @@ source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171 dependencies = [ "bech32 0.9.1", "bitcoin", - "cgp", + "cgp 0.3.1", "digest 0.10.7", "dirs-next", "eyre", @@ -1979,7 +2186,7 @@ name = "hermes-cosmos-encoding-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-encoding-components", "hermes-protobuf-encoding-components", "ibc", @@ -1993,7 +2200,7 @@ name = "hermes-cosmos-integration-tests" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "eyre", "hermes-async-runtime-components", "hermes-cosmos-chain-components", @@ -2026,7 +2233,7 @@ name = "hermes-cosmos-relayer" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "dirs-next", "eyre", "futures", @@ -2075,7 +2282,7 @@ name = "hermes-cosmos-test-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "hdpath", "hermes-cosmos-chain-components", "hermes-relayer-components", @@ -2102,7 +2309,7 @@ name = "hermes-cosmos-wasm-relayer" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "eyre", "futures", "hermes-any-counterparty", @@ -2151,7 +2358,7 @@ name = "hermes-encoding-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", ] [[package]] @@ -2159,7 +2366,7 @@ name = "hermes-error" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "eyre", "hermes-relayer-components", ] @@ -2169,7 +2376,7 @@ name = "hermes-ibc-test-suite" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-logging-components", "hermes-relayer-components", "hermes-test-components", @@ -2180,7 +2387,7 @@ name = "hermes-logger" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-logging-components", "hermes-relayer-components", "hermes-relayer-components-extra", @@ -2192,7 +2399,7 @@ name = "hermes-logging-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", ] [[package]] @@ -2200,7 +2407,7 @@ name = "hermes-protobuf-encoding-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-encoding-components", "prost", "prost-types", @@ -2211,7 +2418,7 @@ name = "hermes-relayer-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-chain-components", "hermes-chain-type-components", "hermes-encoding-components", @@ -2224,7 +2431,7 @@ name = "hermes-relayer-components-extra" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-chain-type-components", "hermes-logging-components", "hermes-relayer-components", @@ -2236,7 +2443,7 @@ name = "hermes-runtime" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-async-runtime-components", "hermes-runtime-components", "hermes-tokio-runtime-components", @@ -2248,7 +2455,7 @@ name = "hermes-runtime-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", ] [[package]] @@ -2256,7 +2463,7 @@ name = "hermes-starknet-chain-components" version = "0.1.0" dependencies = [ "cairo-lang-starknet-classes", - "cgp", + "cgp 0.3.1", "crypto-bigint", "futures", "hermes-async-runtime-components", @@ -2288,7 +2495,7 @@ name = "hermes-starknet-chain-context" version = "0.1.0" dependencies = [ "cairo-lang-starknet-classes", - "cgp", + "cgp 0.3.1", "eyre", "hermes-async-runtime-components", "hermes-cairo-encoding-components", @@ -2320,11 +2527,12 @@ dependencies = [ name = "hermes-starknet-cli" version = "0.1.0" dependencies = [ - "cgp", + "cgp 0.3.1", "cgp-error-eyre", "clap", "eyre", "hermes-any-counterparty", + "hermes-cli", "hermes-cli-components", "hermes-cosmos-chain-components", "hermes-cosmos-integration-tests", @@ -2336,6 +2544,7 @@ dependencies = [ "hermes-runtime", "hermes-runtime-components", "hermes-starknet-chain-components", + "hermes-starknet-chain-context", "hermes-starknet-integration-tests", "hermes-starknet-relayer", "hermes-starknet-test-components", @@ -2355,7 +2564,7 @@ dependencies = [ name = "hermes-starknet-integration-tests" version = "0.1.0" dependencies = [ - "cgp", + "cgp 0.3.1", "eyre", "flate2", "hermes-chain-components", @@ -2395,7 +2604,7 @@ dependencies = [ name = "hermes-starknet-relayer" version = "0.1.0" dependencies = [ - "cgp", + "cgp 0.3.1", "eyre", "futures", "hermes-cosmos-chain-components", @@ -2419,7 +2628,7 @@ dependencies = [ name = "hermes-starknet-test-components" version = "0.1.0" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-cosmos-test-components", "hermes-relayer-components", "hermes-runtime-components", @@ -2434,7 +2643,7 @@ name = "hermes-test-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-chain-type-components", "hermes-relayer-components", "hermes-relayer-components-extra", @@ -2446,7 +2655,7 @@ name = "hermes-tokio-runtime-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "futures", "hermes-async-runtime-components", "hermes-runtime-components", @@ -2460,7 +2669,7 @@ name = "hermes-tracing-logging-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-logging-components", "hermes-relayer-components", "hermes-relayer-components-extra", @@ -2472,7 +2681,7 @@ name = "hermes-wasm-client-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-cosmos-chain-components", "hermes-cosmos-encoding-components", "hermes-encoding-components", @@ -2491,7 +2700,7 @@ name = "hermes-wasm-encoding-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-cosmos-encoding-components", "hermes-encoding-components", "hermes-protobuf-encoding-components", @@ -2505,7 +2714,7 @@ name = "hermes-wasm-test-components" version = "0.1.0" source = "git+https://github.com/informalsystems/hermes-sdk.git#4414c1237b35c171c4232ff84dfd844e5b458f45" dependencies = [ - "cgp", + "cgp 0.3.1", "hermes-chain-type-components", "hermes-cosmos-chain-components", "hermes-cosmos-test-components", @@ -2620,6 +2829,12 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + [[package]] name = "hyper" version = "0.14.32" @@ -2858,7 +3073,7 @@ dependencies = [ name = "ibc-client-starknet-types" version = "0.1.0" dependencies = [ - "cgp", + "cgp 0.3.1", "derive_more 0.99.18", "hermes-cosmos-encoding-components", "hermes-encoding-components", @@ -3985,6 +4200,15 @@ version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +[[package]] +name = "oneline-eyre" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "862f17a1e689c0ce8ca158ea48e776c5101c5d14fdfbed3e01c15f89604c3097" +dependencies = [ + "eyre", +] + [[package]] name = "oorandom" version = "11.1.4" @@ -5073,6 +5297,7 @@ version = "1.0.135" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" dependencies = [ + "indexmap 2.7.0", "itoa", "memchr", "ryu", @@ -6204,6 +6429,16 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-serde" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1" +dependencies = [ + "serde", + "tracing-core", +] + [[package]] name = "tracing-subscriber" version = "0.3.19" @@ -6214,12 +6449,15 @@ dependencies = [ "nu-ansi-term", "once_cell", "regex", + "serde", + "serde_json", "sharded-slab", "smallvec", "thread_local", "tracing", "tracing-core", "tracing-log", + "tracing-serde", ] [[package]] diff --git a/relayer/Cargo.toml b/relayer/Cargo.toml index 97aba73e..936dace6 100644 --- a/relayer/Cargo.toml +++ b/relayer/Cargo.toml @@ -81,6 +81,7 @@ hermes-wasm-client-components = { version = "0.1.0" } hermes-wasm-test-components = { version = "0.1.0" } hermes-wasm-encoding-components = { version = "0.1.0" } hermes-cli-components = { version = "0.1.0" } +hermes-cli = { version = "0.1.0" } hermes-test-components = { version = "0.1.0" } hermes-cairo-encoding-components = { version = "0.1.0" } hermes-protobuf-encoding-components = { version = "0.1.0" } @@ -163,3 +164,4 @@ hermes-wasm-test-components = { git = "https://github.com/informalsyste hermes-wasm-client-components = { git = "https://github.com/informalsystems/hermes-sdk.git" } hermes-wasm-encoding-components = { git = "https://github.com/informalsystems/hermes-sdk.git" } hermes-cli-components = { git = "https://github.com/informalsystems/hermes-sdk.git" } +hermes-cli = { git = "https://github.com/informalsystems/hermes-sdk.git" } diff --git a/relayer/crates/starknet-chain-context/src/contexts/chain.rs b/relayer/crates/starknet-chain-context/src/contexts/chain.rs index d34f0094..25c509d3 100644 --- a/relayer/crates/starknet-chain-context/src/contexts/chain.rs +++ b/relayer/crates/starknet-chain-context/src/contexts/chain.rs @@ -94,7 +94,9 @@ use hermes_relayer_components::chain::traits::types::connection::{ HasInitConnectionOptionsType, }; use hermes_relayer_components::chain::traits::types::consensus_state::HasConsensusStateType; -use hermes_relayer_components::chain::traits::types::create_client::HasCreateClientEvent; +use hermes_relayer_components::chain::traits::types::create_client::{ + HasCreateClientEvent, HasCreateClientMessageOptionsType, HasCreateClientPayloadOptionsType, +}; use hermes_relayer_components::chain::traits::types::event::HasEventType; use hermes_relayer_components::chain::traits::types::ibc::{ HasChannelIdType, HasClientIdType, HasConnectionIdType, HasCounterpartyMessageHeight, @@ -152,6 +154,7 @@ use hermes_starknet_chain_components::types::cosmos::consensus_state::CometConse use hermes_starknet_chain_components::types::cosmos::update::CometUpdateHeader; use hermes_starknet_chain_components::types::event::StarknetEvent; use hermes_starknet_chain_components::types::message_response::StarknetMessageResponse; +use hermes_starknet_chain_components::types::payloads::client::StarknetCreateClientPayloadOptions; use hermes_starknet_test_components::impls::types::wallet::ProvideStarknetWalletType; use hermes_test_components::chain::traits::queries::balance::CanQueryBalance; use hermes_test_components::chain::traits::types::address::HasAddressType; @@ -334,6 +337,11 @@ pub trait CanUseStarknetChain: + CanQueryContractAddress + HasCreateClientEvent + CanBuildCreateClientPayload + + HasCreateClientMessageOptionsType + + HasCreateClientPayloadOptionsType< + CosmosChain, + CreateClientPayloadOptions = StarknetCreateClientPayloadOptions, + > + CanBuildCreateClientPayload + CanBuildCreateClientMessage + CanBuildUpdateClientPayload + CanBuildUpdateClientMessage diff --git a/relayer/crates/starknet-cli/Cargo.toml b/relayer/crates/starknet-cli/Cargo.toml index 1682ad08..fbe14633 100644 --- a/relayer/crates/starknet-cli/Cargo.toml +++ b/relayer/crates/starknet-cli/Cargo.toml @@ -20,6 +20,7 @@ cgp = { workspace = true } cgp-error-eyre = { workspace = true } hermes-any-counterparty = { workspace = true } hermes-cli-components = { workspace = true } +hermes-cli = { workspace = true } hermes-error = { workspace = true } hermes-runtime = { workspace = true } hermes-runtime-components = { workspace = true } @@ -30,6 +31,7 @@ hermes-cosmos-relayer = { workspace = true } hermes-cosmos-integration-tests = { workspace = true } hermes-cosmos-chain-components = { workspace = true } hermes-starknet-chain-components = { workspace = true } +hermes-starknet-chain-context = { workspace = true } hermes-starknet-relayer = { workspace = true } hermes-starknet-integration-tests = { workspace = true } hermes-starknet-test-components = { workspace = true } diff --git a/relayer/crates/starknet-cli/bin/hermes_starknet.rs b/relayer/crates/starknet-cli/bin/hermes_starknet.rs index 1e8e950e..147a969a 100644 --- a/relayer/crates/starknet-cli/bin/hermes_starknet.rs +++ b/relayer/crates/starknet-cli/bin/hermes_starknet.rs @@ -1,3 +1,5 @@ +#![recursion_limit = "256"] + use std::path::PathBuf; use std::sync::Arc; diff --git a/relayer/crates/starknet-cli/src/commands/create/mod.rs b/relayer/crates/starknet-cli/src/commands/create/mod.rs new file mode 100644 index 00000000..271401f7 --- /dev/null +++ b/relayer/crates/starknet-cli/src/commands/create/mod.rs @@ -0,0 +1 @@ +pub mod subcommand; diff --git a/relayer/crates/starknet-cli/src/commands/create/subcommand.rs b/relayer/crates/starknet-cli/src/commands/create/subcommand.rs new file mode 100644 index 00000000..00f7d56c --- /dev/null +++ b/relayer/crates/starknet-cli/src/commands/create/subcommand.rs @@ -0,0 +1,23 @@ +use hermes_cli::commands::client::create::CreateClientArgs; +use hermes_cli_components::traits::command::{CanRunCommand, CommandRunner}; + +#[derive(Debug, clap::Subcommand)] +pub enum CreateSubCommand { + Client(CreateClientArgs), +} + +pub struct RunCreateSubCommand; + +impl CommandRunner for RunCreateSubCommand +where + App: CanRunCommand, +{ + async fn run_command( + app: &App, + subcommand: &CreateSubCommand, + ) -> Result { + match subcommand { + CreateSubCommand::Client(args) => app.run_command(args).await, + } + } +} diff --git a/relayer/crates/starknet-cli/src/commands/mod.rs b/relayer/crates/starknet-cli/src/commands/mod.rs index 630bbfd4..48d3746d 100644 --- a/relayer/crates/starknet-cli/src/commands/mod.rs +++ b/relayer/crates/starknet-cli/src/commands/mod.rs @@ -1,2 +1,3 @@ -pub mod client; +pub mod create; pub mod query; +pub mod update; diff --git a/relayer/crates/starknet-cli/src/commands/update/mod.rs b/relayer/crates/starknet-cli/src/commands/update/mod.rs new file mode 100644 index 00000000..271401f7 --- /dev/null +++ b/relayer/crates/starknet-cli/src/commands/update/mod.rs @@ -0,0 +1 @@ +pub mod subcommand; diff --git a/relayer/crates/starknet-cli/src/commands/client/subcommand.rs b/relayer/crates/starknet-cli/src/commands/update/subcommand.rs similarity index 57% rename from relayer/crates/starknet-cli/src/commands/client/subcommand.rs rename to relayer/crates/starknet-cli/src/commands/update/subcommand.rs index 0958afa7..d6c08090 100644 --- a/relayer/crates/starknet-cli/src/commands/client/subcommand.rs +++ b/relayer/crates/starknet-cli/src/commands/update/subcommand.rs @@ -2,22 +2,22 @@ use hermes_cli_components::impls::commands::client::update::UpdateClientArgs; use hermes_cli_components::traits::command::{CanRunCommand, CommandRunner}; #[derive(Debug, clap::Subcommand)] -pub enum ClientSubCommand { - UpdateClient(UpdateClientArgs), +pub enum UpdateSubCommand { + Client(UpdateClientArgs), } -pub struct RunClientSubCommand; +pub struct RunUpdateSubCommand; -impl CommandRunner for RunClientSubCommand +impl CommandRunner for RunUpdateSubCommand where App: CanRunCommand, { async fn run_command( app: &App, - subcommand: &ClientSubCommand, + subcommand: &UpdateSubCommand, ) -> Result { match subcommand { - ClientSubCommand::UpdateClient(args) => app.run_command(args).await, + UpdateSubCommand::Client(args) => app.run_command(args).await, } } } diff --git a/relayer/crates/starknet-cli/src/contexts/app.rs b/relayer/crates/starknet-cli/src/contexts/app.rs index 7271e7a0..fe5353ce 100644 --- a/relayer/crates/starknet-cli/src/contexts/app.rs +++ b/relayer/crates/starknet-cli/src/contexts/app.rs @@ -2,10 +2,14 @@ use std::path::PathBuf; use cgp::core::component::UseDelegate; use cgp::core::error::{ErrorRaiserComponent, ErrorTypeComponent}; -use cgp::core::field::WithField; +use cgp::core::field::{Index, WithField}; use cgp::core::types::WithType; use cgp::prelude::*; +use hermes_cli::commands::client::create::CreateClientArgs; use hermes_cli_components::impls::commands::bootstrap::chain::RunBootstrapChainCommand; +use hermes_cli_components::impls::commands::client::create::{ + CreateClientOptionsParser, RunCreateClientCommand, +}; use hermes_cli_components::impls::commands::client::update::{ RunUpdateClientCommand, UpdateClientArgs, }; @@ -43,6 +47,7 @@ use hermes_cli_components::traits::output::{ }; use hermes_cli_components::traits::parse::ArgParserComponent; use hermes_cli_components::traits::types::config::ConfigTypeComponent; +use hermes_cosmos_chain_components::types::payloads::client::CosmosCreateClientOptions; use hermes_cosmos_relayer::contexts::chain::CosmosChain; use hermes_error::traits::wrap::CanWrapError; use hermes_error::types::HermesError; @@ -59,6 +64,8 @@ use hermes_starknet_chain_components::impls::types::config::{ StarknetChainConfig, StarknetRelayerConfig, }; use hermes_starknet_chain_components::types::client_id::ClientId; +use hermes_starknet_chain_components::types::payloads::client::StarknetCreateClientPayloadOptions; +use hermes_starknet_chain_context::contexts::chain::StarknetChain; use hermes_starknet_integration_tests::contexts::bootstrap::StarknetBootstrap; use hermes_starknet_integration_tests::contexts::chain_driver::StarknetChainDriver; use hermes_starknet_relayer::contexts::builder::StarknetBuilder; @@ -68,8 +75,9 @@ use ibc::core::host::types::identifiers::{ChainId, ClientId as CosmosClientId}; use starknet::core::types::Felt; use toml::to_string_pretty; -use crate::commands::client::subcommand::{ClientSubCommand, RunClientSubCommand}; +use crate::commands::create::subcommand::{CreateSubCommand, RunCreateSubCommand}; use crate::commands::query::subcommand::{QuerySubCommand, RunQuerySubCommand}; +use crate::commands::update::subcommand::{RunUpdateSubCommand, UpdateSubCommand}; use crate::impls::bootstrap::starknet_chain::{BootstrapStarknetChainArgs, LoadStarknetBootstrap}; use crate::impls::bootstrap::subcommand::{BootstrapSubCommand, RunBootstrapSubCommand}; use crate::impls::build::LoadStarknetBuilder; @@ -156,6 +164,9 @@ delegate_components! { (UpdateClientArgs, symbol!("client_id")): ParseFromString, (UpdateClientArgs, symbol!("counterparty_client_id")): ParseFromString, (UpdateClientArgs, symbol!("target_height")): ParseFromOptionalString, + + (CreateClientArgs, symbol!("target_chain_id")): ParseFromString, + (CreateClientArgs, symbol!("counterparty_chain_id")): ParseFromString, } } @@ -170,8 +181,11 @@ delegate_components! { QueryChainStatusArgs: RunQueryChainStatusCommand, QueryBalanceArgs: RunQueryBalanceCommand, - ClientSubCommand: RunClientSubCommand, + CreateSubCommand: RunCreateSubCommand, + UpdateSubCommand: RunUpdateSubCommand, + UpdateClientArgs: RunUpdateClientCommand, + CreateClientArgs: RunCreateClientCommand, BootstrapStarknetChainArgs: RunBootstrapChainCommand, } @@ -218,6 +232,52 @@ impl ConfigUpdater for UpdateStarkne } } +impl CreateClientOptionsParser, Index<1>> + for StarknetAppComponents +{ + async fn parse_create_client_options( + _app: &StarknetApp, + args: &CreateClientArgs, + _target_chain: &StarknetChain, + counterparty_chain: &CosmosChain, + ) -> Result<((), CosmosCreateClientOptions), HermesError> { + let max_clock_drift = match args.clock_drift.map(|d| d.into()) { + Some(input) => input, + None => { + counterparty_chain.chain_config.clock_drift + + counterparty_chain.chain_config.max_block_time + } + }; + + let settings = CosmosCreateClientOptions { + max_clock_drift, + trusting_period: args.trusting_period.map(|d| d.into()).unwrap_or_default(), + trust_threshold: args + .trust_threshold + .map(|threshold| threshold.into()) + .unwrap_or_default(), + }; + + Ok(((), settings)) + } +} + +// TODO(seanchen1991): Implement Cosmos-to-Starknet client creation +pub struct CreateCosmosClientOnStarknetArgs; + +impl CreateClientOptionsParser, Index<0>> + for StarknetAppComponents +{ + async fn parse_create_client_options( + _app: &StarknetApp, + _args: &CreateCosmosClientOnStarknetArgs, + _target_chain: &CosmosChain, + _counterparty_chain: &StarknetChain, + ) -> Result<((), StarknetCreateClientPayloadOptions), HermesError> { + todo!() + } +} + pub trait CanUseStarknetApp: HasRuntime + HasLogger @@ -235,8 +295,10 @@ pub trait CanUseStarknetApp: + CanRunCommand + CanRunCommand + CanRunCommand - + CanRunCommand + + CanRunCommand + + CanRunCommand + CanRunCommand + + CanRunCommand { } diff --git a/relayer/crates/starknet-cli/src/impls/subcommand.rs b/relayer/crates/starknet-cli/src/impls/subcommand.rs index 859a1515..967f5da6 100644 --- a/relayer/crates/starknet-cli/src/impls/subcommand.rs +++ b/relayer/crates/starknet-cli/src/impls/subcommand.rs @@ -1,6 +1,8 @@ use hermes_cli_components::traits::command::{CanRunCommand, CommandRunner}; +use crate::commands::create::subcommand::CreateSubCommand; use crate::commands::query::subcommand::QuerySubCommand; +use crate::commands::update::subcommand::UpdateSubCommand; use crate::impls::bootstrap::subcommand::BootstrapSubCommand; #[derive(Debug, clap::Subcommand)] @@ -9,13 +11,20 @@ pub enum AllSubCommands { Bootstrap(BootstrapSubCommand), #[clap(subcommand)] Query(QuerySubCommand), + #[clap(subcommand)] + Create(CreateSubCommand), + #[clap(subcommand)] + Update(UpdateSubCommand), } pub struct RunAllSubCommand; impl CommandRunner for RunAllSubCommand where - App: CanRunCommand + CanRunCommand, + App: CanRunCommand + + CanRunCommand + + CanRunCommand + + CanRunCommand, { async fn run_command( app: &App, @@ -24,6 +33,8 @@ where match subcommand { AllSubCommands::Bootstrap(args) => app.run_command(args).await, AllSubCommands::Query(args) => app.run_command(args).await, + AllSubCommands::Create(args) => app.run_command(args).await, + AllSubCommands::Update(args) => app.run_command(args).await, } } }