diff --git a/Cargo.lock b/Cargo.lock index 4c6a93a2..58729036 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "addr2line" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ "gimli", ] @@ -17,6 +17,18 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + [[package]] name = "anstream" version = "0.6.14" @@ -49,9 +61,9 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" +checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" dependencies = [ "windows-sys 0.52.0", ] @@ -103,7 +115,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -114,7 +126,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -170,9 +182,9 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.71" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11" dependencies = [ "addr2line", "cc", @@ -232,7 +244,7 @@ dependencies = [ "tendermint-rpc", "tiny-bip39", "tokio", - "toml", + "toml 0.8.14", "tonic", "tonic-reflection", "tower-abci", @@ -278,6 +290,7 @@ dependencies = [ "serde_derive", "serde_json", "sha2 0.10.8", + "sov-celestia-client", "tendermint 0.36.0", "tendermint-rpc", "tonic", @@ -409,6 +422,52 @@ dependencies = [ "generic-array", ] +[[package]] +name = "borsh" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" +dependencies = [ + "borsh-derive", + "bytes", + "hashbrown 0.13.2", +] + +[[package]] +name = "borsh-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" +dependencies = [ + "borsh-derive-internal", + "borsh-schema-derive-internal", + "proc-macro-crate", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "borsh-schema-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "bs58" version = "0.5.1" @@ -483,7 +542,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -510,6 +569,12 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + [[package]] name = "core-foundation" version = "0.9.4" @@ -528,20 +593,18 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cosmos-sdk-proto" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e23f6ab56d5f031cde05b8b82a5fefd3a1a223595c79e32317a97189e612bc" +version = "0.22.0-pre" +source = "git+https://github.com/cosmos/cosmos-rust.git?rev=ced74a7#ced74a754669ebf698decdae33ceeb2cc9a0839b" dependencies = [ "prost", "prost-types", - "tendermint-proto 0.35.0", + "tendermint-proto 0.37.0", ] [[package]] name = "cosmrs" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d184abb7b0039cc64f282dfa5b34165e4c5a7410ab46804636d53f4d09aee44" +version = "0.17.0-pre" +source = "git+https://github.com/cosmos/cosmos-rust.git?rev=ced74a7#ced74a754669ebf698decdae33ceeb2cc9a0839b" dependencies = [ "bip32", "cosmos-sdk-proto", @@ -553,7 +616,7 @@ dependencies = [ "serde_json", "signature", "subtle-encoding", - "tendermint 0.35.0", + "tendermint 0.37.0", "thiserror", ] @@ -632,8 +695,10 @@ version = "0.99.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ + "convert_case", "proc-macro2", "quote", + "rustc_version", "syn 1.0.109", ] @@ -666,9 +731,15 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + [[package]] name = "ecdsa" version = "0.16.9" @@ -865,7 +936,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -924,9 +995,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "group" @@ -964,6 +1035,15 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] + [[package]] name = "hashbrown" version = "0.14.5" @@ -1064,9 +1144,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "0.14.28" +version = "0.14.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" dependencies = [ "bytes", "futures-channel", @@ -1115,7 +1195,7 @@ dependencies = [ [[package]] name = "ibc" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "ibc-apps", "ibc-clients", @@ -1128,7 +1208,7 @@ dependencies = [ [[package]] name = "ibc-app-transfer" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "ibc-app-transfer-types", "ibc-core", @@ -1138,7 +1218,7 @@ dependencies = [ [[package]] name = "ibc-app-transfer-types" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "derive_more", "displaydoc", @@ -1152,7 +1232,7 @@ dependencies = [ [[package]] name = "ibc-apps" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "ibc-app-transfer", ] @@ -1160,7 +1240,7 @@ dependencies = [ [[package]] name = "ibc-client-tendermint" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "derive_more", "ibc-client-tendermint-types", @@ -1177,7 +1257,7 @@ dependencies = [ [[package]] name = "ibc-client-tendermint-types" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "displaydoc", "ibc-core-client-types", @@ -1194,7 +1274,7 @@ dependencies = [ [[package]] name = "ibc-client-wasm-types" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "base64 0.21.7", "displaydoc", @@ -1208,7 +1288,7 @@ dependencies = [ [[package]] name = "ibc-clients" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "ibc-client-tendermint", "ibc-client-wasm-types", @@ -1217,7 +1297,7 @@ dependencies = [ [[package]] name = "ibc-core" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "ibc-core-channel", "ibc-core-client", @@ -1233,7 +1313,7 @@ dependencies = [ [[package]] name = "ibc-core-channel" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "ibc-core-channel-types", "ibc-core-client", @@ -1248,8 +1328,9 @@ dependencies = [ [[package]] name = "ibc-core-channel-types" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ + "borsh", "derive_more", "displaydoc", "ibc-core-client-types", @@ -1258,6 +1339,7 @@ dependencies = [ "ibc-core-host-types", "ibc-primitives", "ibc-proto", + "schemars", "serde", "sha2 0.10.8", "subtle-encoding", @@ -1267,7 +1349,7 @@ dependencies = [ [[package]] name = "ibc-core-client" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "ibc-core-client-context", "ibc-core-client-types", @@ -1280,7 +1362,7 @@ dependencies = [ [[package]] name = "ibc-core-client-context" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "derive_more", "displaydoc", @@ -1296,14 +1378,16 @@ dependencies = [ [[package]] name = "ibc-core-client-types" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ + "borsh", "derive_more", "displaydoc", "ibc-core-commitment-types", "ibc-core-host-types", "ibc-primitives", "ibc-proto", + "schemars", "serde", "subtle-encoding", "tendermint 0.36.0", @@ -1312,13 +1396,15 @@ dependencies = [ [[package]] name = "ibc-core-commitment-types" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ + "borsh", "derive_more", "displaydoc", "ibc-primitives", "ibc-proto", "ics23", + "schemars", "serde", "subtle-encoding", ] @@ -1326,20 +1412,23 @@ dependencies = [ [[package]] name = "ibc-core-connection" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ + "ibc-client-wasm-types", "ibc-core-client", "ibc-core-connection-types", "ibc-core-handler-types", "ibc-core-host", "ibc-primitives", + "prost", ] [[package]] name = "ibc-core-connection-types" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ + "borsh", "derive_more", "displaydoc", "ibc-core-client-types", @@ -1347,6 +1436,7 @@ dependencies = [ "ibc-core-host-types", "ibc-primitives", "ibc-proto", + "schemars", "serde", "subtle-encoding", "tendermint 0.36.0", @@ -1355,7 +1445,7 @@ dependencies = [ [[package]] name = "ibc-core-handler" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "ibc-core-channel", "ibc-core-client", @@ -1370,8 +1460,9 @@ dependencies = [ [[package]] name = "ibc-core-handler-types" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ + "borsh", "derive_more", "displaydoc", "ibc-core-channel-types", @@ -1382,6 +1473,7 @@ dependencies = [ "ibc-core-router-types", "ibc-primitives", "ibc-proto", + "schemars", "serde", "subtle-encoding", "tendermint 0.36.0", @@ -1390,7 +1482,7 @@ dependencies = [ [[package]] name = "ibc-core-host" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "derive_more", "displaydoc", @@ -1408,7 +1500,7 @@ dependencies = [ [[package]] name = "ibc-core-host-cosmos" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "derive_more", "displaydoc", @@ -1431,18 +1523,20 @@ dependencies = [ [[package]] name = "ibc-core-host-types" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ + "borsh", "derive_more", "displaydoc", "ibc-primitives", + "schemars", "serde", ] [[package]] name = "ibc-core-router" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "derive_more", "displaydoc", @@ -1456,13 +1550,15 @@ dependencies = [ [[package]] name = "ibc-core-router-types" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ + "borsh", "derive_more", "displaydoc", "ibc-core-host-types", "ibc-primitives", "ibc-proto", + "schemars", "serde", "subtle-encoding", "tendermint 0.36.0", @@ -1471,22 +1567,24 @@ dependencies = [ [[package]] name = "ibc-derive" version = "0.7.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] name = "ibc-primitives" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ + "borsh", "derive_more", "displaydoc", "ibc-proto", "prost", + "schemars", "serde", "tendermint 0.36.0", "time", @@ -1499,11 +1597,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66080040d5a4800d52966d55b055400f86b79c34b854b935bef03c87aacda62a" dependencies = [ "base64 0.22.1", + "borsh", "bytes", "flex-error", "ics23", "informalsystems-pbjson", "prost", + "schemars", "serde", "subtle-encoding", "tendermint-proto 0.36.0", @@ -1513,7 +1613,7 @@ dependencies = [ [[package]] name = "ibc-query" version = "0.53.0" -source = "git+https://github.com/cosmos/ibc-rs.git?rev=01506d4#01506d4c9275760c5437f8e6af23771b77927e12" +source = "git+https://github.com/cosmos/ibc-rs.git?branch=rano/downgrade-borsh#d90295e3ff386d786c996d8ff3a42e79d4c4dcea" dependencies = [ "displaydoc", "ibc", @@ -1607,6 +1707,15 @@ version = "1.70.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.12.1" @@ -1622,6 +1731,28 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +[[package]] +name = "jmt" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2950721a65dff82492e30fe67076127135d0d710aa0140f21efafda2aee7849" +dependencies = [ + "anyhow", + "borsh", + "digest 0.10.7", + "hashbrown 0.13.2", + "hex", + "ics23", + "itertools 0.10.5", + "mirai-annotations", + "num-derive", + "num-traits", + "serde", + "sha2 0.10.8", + "thiserror", + "tracing", +] + [[package]] name = "js-sys" version = "0.3.69" @@ -1724,6 +1855,12 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "mirai-annotations" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1" + [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -1742,13 +1879,13 @@ checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] name = "num-derive" -version = "0.4.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 1.0.109", ] [[package]] @@ -1772,9 +1909,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.2" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e" dependencies = [ "memchr", ] @@ -1805,9 +1942,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "parking_lot" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", "parking_lot_core", @@ -1891,7 +2028,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -1939,11 +2076,20 @@ 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-macro2" -version = "1.0.83" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43" +checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" dependencies = [ "unicode-ident", ] @@ -1965,10 +2111,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools", + "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -2115,6 +2261,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + [[package]] name = "rustix" version = "0.38.34" @@ -2201,6 +2356,30 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "schemars" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.66", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -2283,9 +2462,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.202" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" dependencies = [ "serde_derive", ] @@ -2310,13 +2489,24 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.202" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -2338,7 +2528,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -2449,6 +2639,68 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "sov-celestia-client" +version = "0.1.0" +source = "git+https://github.com/informalsystems/sovereign-ibc.git?rev=88af9ef#88af9ef92e699cfc3561b11ffb9ff314fc32b2f9" +dependencies = [ + "borsh", + "derive_more", + "ibc-client-tendermint", + "ibc-core", + "jmt", + "prost", + "serde", + "sha2 0.10.8", + "sov-celestia-client-types", + "tendermint 0.36.0", + "tendermint-light-client-verifier", + "tendermint-proto 0.36.0", +] + +[[package]] +name = "sov-celestia-client-types" +version = "0.1.0" +source = "git+https://github.com/informalsystems/sovereign-ibc.git?rev=88af9ef#88af9ef92e699cfc3561b11ffb9ff314fc32b2f9" +dependencies = [ + "derive_more", + "ibc-client-tendermint", + "ibc-core", + "prost", + "serde", + "sov-client-types", + "sov-ibc-proto", + "tendermint 0.36.0", + "tendermint-light-client-verifier", + "tendermint-proto 0.36.0", +] + +[[package]] +name = "sov-client-types" +version = "0.1.0" +source = "git+https://github.com/informalsystems/sovereign-ibc.git?rev=88af9ef#88af9ef92e699cfc3561b11ffb9ff314fc32b2f9" +dependencies = [ + "derive_more", + "hex", + "ibc-core", + "jmt", + "prost", + "serde", + "sov-ibc-proto", +] + +[[package]] +name = "sov-ibc-proto" +version = "0.1.0" +source = "git+https://github.com/informalsystems/sovereign-ibc.git?rev=88af9ef#88af9ef92e699cfc3561b11ffb9ff314fc32b2f9" +dependencies = [ + "ibc-proto", + "informalsystems-pbjson", + "prost", + "serde", + "tendermint-proto 0.36.0", +] + [[package]] name = "spin" version = "0.9.8" @@ -2511,9 +2763,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.65" +version = "2.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" dependencies = [ "proc-macro2", "quote", @@ -2549,9 +2801,9 @@ dependencies = [ [[package]] name = "tendermint" -version = "0.35.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f8a10105d0a7c4af0a242e23ed5a12519afe5cc0e68419da441bb5981a6802" +checksum = "8b50aae6ec24c3429149ad59b5b8d3374d7804d4c7d6125ceb97cb53907fb68d" dependencies = [ "bytes", "digest 0.10.7", @@ -2559,12 +2811,10 @@ dependencies = [ "ed25519-consensus", "flex-error", "futures", - "k256", "num-traits", "once_cell", "prost", "prost-types", - "ripemd", "serde", "serde_bytes", "serde_json", @@ -2573,16 +2823,16 @@ dependencies = [ "signature", "subtle", "subtle-encoding", - "tendermint-proto 0.35.0", + "tendermint-proto 0.36.0", "time", "zeroize", ] [[package]] name = "tendermint" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b50aae6ec24c3429149ad59b5b8d3374d7804d4c7d6125ceb97cb53907fb68d" +checksum = "954496fbc9716eb4446cdd6d00c071a3e2f22578d62aa03b40c7e5b4fda3ed42" dependencies = [ "bytes", "digest 0.10.7", @@ -2590,10 +2840,12 @@ dependencies = [ "ed25519-consensus", "flex-error", "futures", + "k256", "num-traits", "once_cell", "prost", "prost-types", + "ripemd", "serde", "serde_bytes", "serde_json", @@ -2602,7 +2854,7 @@ dependencies = [ "signature", "subtle", "subtle-encoding", - "tendermint-proto 0.36.0", + "tendermint-proto 0.37.0", "time", "zeroize", ] @@ -2630,7 +2882,7 @@ dependencies = [ "serde", "serde_json", "tendermint 0.36.0", - "toml", + "toml 0.8.14", "url", ] @@ -2649,14 +2901,12 @@ dependencies = [ [[package]] name = "tendermint-proto" -version = "0.35.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff525d5540a9fc535c38dc0d92a98da3ee36fcdfbda99cecb9f3cce5cd4d41d7" +checksum = "46f193d04afde6592c20fd70788a10b8cb3823091c07456db70d8a93f5fb99c1" dependencies = [ "bytes", "flex-error", - "num-derive", - "num-traits", "prost", "prost-types", "serde", @@ -2667,9 +2917,9 @@ dependencies = [ [[package]] name = "tendermint-proto" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f193d04afde6592c20fd70788a10b8cb3823091c07456db70d8a93f5fb99c1" +checksum = "dc87024548c7f3da479885201e3da20ef29e85a3b13d04606b380ac4c7120d87" dependencies = [ "bytes", "flex-error", @@ -2741,7 +2991,7 @@ checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -2820,9 +3070,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.37.0" +version = "1.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" dependencies = [ "backtrace", "bytes", @@ -2849,13 +3099,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -2908,9 +3158,18 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.13" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba" +checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" dependencies = [ "serde", "serde_spanned", @@ -2929,9 +3188,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.13" +version = "0.22.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c" +checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38" dependencies = [ "indexmap 2.2.6", "serde", @@ -3052,7 +3311,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -3222,7 +3481,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", "wasm-bindgen-shared", ] @@ -3256,7 +3515,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3449,9 +3708,9 @@ checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "winnow" -version = "0.6.8" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d" +checksum = "56c52728401e1dc672a56e81e593e912aa54c78f40246869f78359a2bf24d29d" dependencies = [ "memchr", ] @@ -3466,11 +3725,31 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "zerocopy" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ "zeroize_derive", ] @@ -3483,5 +3762,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] diff --git a/Cargo.toml b/Cargo.toml index eec04432..513bf4d8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ authors = [ "Informal Systems " ] [workspace.dependencies] # external dependencies base64 = { version = "0.21.6", default-features = false, features = [ "alloc" ] } -cosmrs = { version = "0.16.0" } +cosmrs = { version = "0.17.0-pre" } displaydoc = { version = "0.2", default-features = false } derive_more = { version = "0.99.17", default-features = false, features = [ "from", "into", "display" ] } ed25519 = { version = "2.1.0", default-features = false } @@ -41,9 +41,22 @@ tendermint-abci = { version = "0.36", default-features = false } tendermint-proto = { version = "0.36", default-features = false } tendermint-rpc = { version = "0.36", default-features = false } +# sovereign celestia client +sov-celestia-client = { version = "0.1.0" } + # tower abci tower-abci = { version = "0.14" } [patch.crates-io] -ibc = { git = "https://github.com/cosmos/ibc-rs.git", rev = "01506d4" } -ibc-query = { git = "https://github.com/cosmos/ibc-rs.git", rev = "01506d4" } +ibc = { git = "https://github.com/cosmos/ibc-rs.git", branch = "rano/downgrade-borsh" } +ibc-core = { git = "https://github.com/cosmos/ibc-rs.git", branch = "rano/downgrade-borsh" } +ibc-core-client = { git = "https://github.com/cosmos/ibc-rs.git", branch = "rano/downgrade-borsh" } +ibc-core-host-cosmos = { git = "https://github.com/cosmos/ibc-rs.git", branch = "rano/downgrade-borsh" } +ibc-client-tendermint = { git = "https://github.com/cosmos/ibc-rs.git", branch = "rano/downgrade-borsh" } +ibc-client-wasm-types = { git = "https://github.com/cosmos/ibc-rs.git", branch = "rano/downgrade-borsh" } +ibc-app-transfer = { git = "https://github.com/cosmos/ibc-rs.git", branch = "rano/downgrade-borsh" } +ibc-primitives = { git = "https://github.com/cosmos/ibc-rs.git", branch = "rano/downgrade-borsh" } +ibc-query = { git = "https://github.com/cosmos/ibc-rs.git", branch = "rano/downgrade-borsh" } + +sov-celestia-client = { git = "https://github.com/informalsystems/sovereign-ibc.git", rev = "88af9ef" } +cosmrs = { git = "https://github.com/cosmos/cosmos-rust.git", rev = "ced74a7" } diff --git a/basecoin/modules/Cargo.toml b/basecoin/modules/Cargo.toml index 9682c46a..0f0a48c5 100644 --- a/basecoin/modules/Cargo.toml +++ b/basecoin/modules/Cargo.toml @@ -33,5 +33,8 @@ ics23 = { workspace = true, features = [ "host-functions" ] } tendermint = { workspace = true } tendermint-rpc = { workspace = true, features = [ "http-client" ] } +# sovereign celestia client +sov-celestia-client = { workspace = true } + # internal dependencies basecoin-store = { path = "../store" } diff --git a/basecoin/modules/src/ibc/impls.rs b/basecoin/modules/src/ibc/impls.rs index 083f0cc4..a1509cb8 100644 --- a/basecoin/modules/src/ibc/impls.rs +++ b/basecoin/modules/src/ibc/impls.rs @@ -15,10 +15,8 @@ use ibc::apps::transfer::handler::send_transfer; use ibc::apps::transfer::types::msgs::transfer::MsgTransfer; use ibc::clients::tendermint::client_state::ClientState as TmClientState; use ibc::clients::tendermint::consensus_state::ConsensusState as TmConsensusState; -use ibc::clients::tendermint::types::{ - ClientState as ClientStateType, ConsensusState as ConsensusStateType, - TENDERMINT_CLIENT_STATE_TYPE_URL, TENDERMINT_CONSENSUS_STATE_TYPE_URL, -}; +use ibc::clients::tendermint::types::ClientState as TmClientStateType; +use ibc::clients::tendermint::types::ConsensusState as TmConsensusStateType; use ibc::core::channel::types::channel::{ChannelEnd, IdentifiedChannelEnd}; use ibc::core::channel::types::commitment::{AcknowledgementCommitment, PacketCommitment}; use ibc::core::channel::types::error::{ChannelError, PacketError}; @@ -56,6 +54,10 @@ use ibc_query::core::client::ClientQueryService; use ibc_query::core::connection::ConnectionQueryService; use ibc_query::core::context::{ProvableContext, QueryContext}; use prost::Message; +use sov_celestia_client::client_state::ClientState as SovTmClientState; +use sov_celestia_client::consensus_state::ConsensusState as SovTmConsensusState; +use sov_celestia_client::types::client_state::SovTmClientState as SovTmClientStateType; +use sov_celestia_client::types::consensus_state::SovTmConsensusState as SovTmConsensusStateType; use tendermint::abci::Event; use tendermint::block::Header; use tendermint::merkle::proof::ProofOp; @@ -75,21 +77,18 @@ use crate::CHAIN_REVISION_NUMBER; #[execution(IbcContext)] pub enum AnyClientState { Tendermint(TmClientState), + Sovereign(SovTmClientState), } -impl From for AnyClientState { - fn from(value: ClientStateType) -> Self { - AnyClientState::Tendermint(value.into()) +impl From for AnyClientState { + fn from(value: TmClientStateType) -> Self { + Self::Tendermint(value.into()) } } -impl TryFrom for ClientStateType { - type Error = ClientError; - - fn try_from(value: AnyClientState) -> Result { - match value { - AnyClientState::Tendermint(tm_client_state) => Ok(tm_client_state.inner().clone()), - } +impl From for AnyClientState { + fn from(value: SovTmClientStateType) -> Self { + Self::Sovereign(value.into()) } } @@ -97,6 +96,9 @@ impl From for Any { fn from(value: AnyClientState) -> Self { match value { AnyClientState::Tendermint(tm_client_state) => tm_client_state.into(), + AnyClientState::Sovereign(sov_celestia_client_state) => { + sov_celestia_client_state.into() + } } } } @@ -105,12 +107,9 @@ impl TryFrom for AnyClientState { type Error = ClientError; fn try_from(value: Any) -> Result { - match value.type_url.as_str() { - TENDERMINT_CLIENT_STATE_TYPE_URL => Ok(AnyClientState::Tendermint(value.try_into()?)), - _ => Err(ClientError::Other { - description: "Unknown client state type".into(), - }), - } + TmClientState::try_from(value.clone()) + .map(Into::into) + .or_else(|_| SovTmClientState::try_from(value).map(Into::into)) } } @@ -120,15 +119,22 @@ impl TryFrom for AnyClientState { #[derive(ConsensusState, Clone, From, TryInto)] pub enum AnyConsensusState { Tendermint(TmConsensusState), + Sovereign(SovTmConsensusState), +} + +impl From for AnyConsensusState { + fn from(value: TmConsensusStateType) -> Self { + Self::Tendermint(value.into()) + } } -impl From for AnyConsensusState { - fn from(value: ConsensusStateType) -> Self { - AnyConsensusState::Tendermint(value.into()) +impl From for AnyConsensusState { + fn from(value: SovTmConsensusStateType) -> Self { + Self::Sovereign(value.into()) } } -impl TryFrom for ConsensusStateType { +impl TryFrom for TmConsensusStateType { type Error = ClientError; fn try_from(value: AnyConsensusState) -> Result { @@ -136,6 +142,24 @@ impl TryFrom for ConsensusStateType { AnyConsensusState::Tendermint(tm_consensus_state) => { Ok(tm_consensus_state.inner().clone()) } + AnyConsensusState::Sovereign(_) => Err(ClientError::UnknownConsensusStateType { + consensus_state_type: "sovereign".into(), + }), + } + } +} + +impl TryFrom for SovTmConsensusStateType { + type Error = ClientError; + + fn try_from(value: AnyConsensusState) -> Result { + match value { + AnyConsensusState::Tendermint(_) => Err(ClientError::UnknownConsensusStateType { + consensus_state_type: "tendermint".into(), + }), + AnyConsensusState::Sovereign(sov_celestia_consensus_state) => { + Ok(sov_celestia_consensus_state.inner().clone()) + } } } } @@ -144,6 +168,9 @@ impl From for Any { fn from(value: AnyConsensusState) -> Self { match value { AnyConsensusState::Tendermint(tm_consensus_state) => tm_consensus_state.into(), + AnyConsensusState::Sovereign(sov_celestia_consensus_state) => { + sov_celestia_consensus_state.into() + } } } } @@ -152,14 +179,9 @@ impl TryFrom for AnyConsensusState { type Error = ClientError; fn try_from(value: Any) -> Result { - match value.type_url.as_str() { - TENDERMINT_CONSENSUS_STATE_TYPE_URL => { - Ok(AnyConsensusState::Tendermint(value.try_into()?)) - } - _ => Err(ClientError::Other { - description: "Unknown consensus state type".into(), - }), - } + TmConsensusState::try_from(value.clone()) + .map(Into::into) + .or_else(|_| SovTmConsensusState::try_from(value).map(Into::into)) } } @@ -325,7 +347,7 @@ where } fn begin_block(&mut self, header: &Header) -> Vec { - let consensus_state = ConsensusStateType::new( + let consensus_state = TmConsensusStateType::new( CommitmentRoot::from_bytes(header.app_hash.as_ref()), header.time, header.next_validators_hash,