diff --git a/Cargo.lock b/Cargo.lock index 047f1bd697..8c5ef5a140 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1462,12 +1462,22 @@ name = "cosmos-sdk-proto" version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "462e1f6a8e005acc8835d32d60cbd7973ed65ea2a8d8473830e675f050956427" +dependencies = [ + "prost 0.13.5", + "tendermint-proto", +] + +[[package]] +name = "cosmos-sdk-proto" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95ac39be7373404accccaede7cc1ec942ccef14f0ca18d209967a756bf1dbb1f" dependencies = [ "informalsystems-pbjson", "prost 0.13.5", "serde", "tendermint-proto", - "tonic 0.12.3", + "tonic 0.13.1", ] [[package]] @@ -1477,7 +1487,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1394c263335da09e8ba8c4b2c675d804e3e0deb44cce0866a5f838d3ddd43d02" dependencies = [ "bip32", - "cosmos-sdk-proto", + "cosmos-sdk-proto 0.26.1", + "ecdsa", + "eyre", + "k256", + "rand_core 0.6.4", + "serde", + "serde_json", + "signature", + "subtle-encoding", + "tendermint", + "tendermint-rpc", + "thiserror 1.0.69", +] + +[[package]] +name = "cosmrs" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34e74fa7a22930fe0579bef560f2d64b78415d4c47b9dd976c0635136809471d" +dependencies = [ + "bip32", + "cosmos-sdk-proto 0.27.0", "ecdsa", "eyre", "k256", @@ -3622,6 +3653,39 @@ dependencies = [ "cc", ] +[[package]] +name = "ibc-proto" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a650b51e384e54264b53974feb38e95e37aac70f7f2f9c07eb8022fe15eb8e20" +dependencies = [ + "base64 0.22.1", + "bytes", + "cosmos-sdk-proto 0.27.0", + "flex-error", + "ics23", + "informalsystems-pbjson", + "prost 0.13.5", + "serde", + "subtle-encoding", + "tendermint-proto", + "tonic 0.13.1", +] + +[[package]] +name = "ics23" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73b17f1a5bd7d12ad30a21445cfa5f52fd7651cb3243ba866f9916b1ec112f12" +dependencies = [ + "anyhow", + "bytes", + "hex", + "informalsystems-pbjson", + "prost 0.13.5", + "serde", +] + [[package]] name = "icu_collections" version = "1.5.0" @@ -4933,7 +4997,7 @@ name = "nym-api-requests" version = "0.1.0" dependencies = [ "bs58", - "cosmrs", + "cosmrs 0.22.0", "cosmwasm-std", "ecdsa", "getset", @@ -4971,7 +5035,7 @@ version = "0.1.0" source = "git+https://github.com/nymtech/nym.git?branch=release/2025.11-cheddar#e9bb9792ab723a1ad5fe40cb292dc08d4eb40c2f" dependencies = [ "bs58", - "cosmrs", + "cosmrs 0.21.1", "cosmwasm-std", "ecdsa", "getset", @@ -5165,7 +5229,7 @@ dependencies = [ "clap", "colored", "comfy-table", - "cosmrs", + "cosmrs 0.22.0", "cosmwasm-std", "csv", "cw-utils", @@ -5329,7 +5393,7 @@ name = "nym-client-core-gateways-storage" version = "0.1.0" dependencies = [ "async-trait", - "cosmrs", + "cosmrs 0.22.0", "log", "nym-crypto 0.4.0", "nym-gateway-requests", @@ -5689,7 +5753,7 @@ version = "0.1.0" dependencies = [ "bincode", "bls12_381", - "cosmrs", + "cosmrs 0.22.0", "log", "nym-api-requests 0.1.0", "nym-credentials-interface 0.1.0", @@ -7731,7 +7795,7 @@ name = "nym-types" version = "1.0.0" dependencies = [ "base64 0.22.1", - "cosmrs", + "cosmrs 0.22.0", "cosmwasm-std", "eyre", "hmac", @@ -7765,7 +7829,7 @@ dependencies = [ "bip32", "bip39", "colored", - "cosmrs", + "cosmrs 0.22.0", "cosmwasm-std", "cw-controllers", "cw-utils", @@ -7816,7 +7880,7 @@ dependencies = [ "bip32", "bip39", "colored", - "cosmrs", + "cosmrs 0.21.1", "cosmwasm-std", "cw-controllers", "cw-utils", @@ -7972,7 +8036,7 @@ dependencies = [ name = "nym-wallet-types" version = "1.0.0" dependencies = [ - "cosmrs", + "cosmrs 0.21.1", "cosmwasm-std", "hex-literal", "nym-config 0.1.0", @@ -8111,7 +8175,7 @@ version = "0.1.0" dependencies = [ "async-trait", "base64 0.22.1", - "cosmrs", + "cosmrs 0.22.0", "itertools 0.14.0", "nyxd-scraper-shared", "serde", @@ -8129,11 +8193,12 @@ dependencies = [ "async-trait", "base64 0.22.1", "const_format", - "cosmos-sdk-proto", - "cosmrs", + "cosmos-sdk-proto 0.27.0", + "cosmrs 0.22.0", "eyre", "futures", "humantime", + "ibc-proto", "prost 0.13.5", "serde", "serde_json", @@ -11289,13 +11354,11 @@ dependencies = [ [[package]] name = "tonic" -version = "0.12.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" +checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" dependencies = [ - "async-stream", "async-trait", - "axum 0.7.9", "base64 0.22.1", "bytes", "h2 0.4.9", @@ -11311,7 +11374,7 @@ dependencies = [ "socket2", "tokio", "tokio-stream", - "tower 0.4.13", + "tower 0.5.2", "tower-layer", "tower-service", "tracing", @@ -11345,9 +11408,12 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", + "indexmap 2.7.1", "pin-project-lite", + "slab", "sync_wrapper 1.0.2", "tokio", + "tokio-util", "tower-layer", "tower-service", "tracing", diff --git a/Cargo.toml b/Cargo.toml index 393e549ae6..8a6e14e198 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -385,8 +385,9 @@ cw-multi-test = "=2.3.2" bip32 = { version = "0.5.3", default-features = false } -cosmrs = { version = "0.21.1" } -cosmos-sdk-proto = { version = "0.26.1" } +cosmrs = { version = "0.22.0" } +cosmos-sdk-proto = { version = "0.27.0" } +ibc-proto = { version = "0.52.0" } tendermint = "0.40.4" tendermint-rpc = "0.40.4" prost = { version = "0.13", default-features = false } diff --git a/common/nyxd-scraper-shared/Cargo.toml b/common/nyxd-scraper-shared/Cargo.toml index 81793b5d8c..3f7a343ec2 100644 --- a/common/nyxd-scraper-shared/Cargo.toml +++ b/common/nyxd-scraper-shared/Cargo.toml @@ -19,6 +19,7 @@ cosmos-sdk-proto = { workspace = true, features = ["serde", "cosmwasm"] } # we n eyre = { workspace = true } futures.workspace = true humantime = { workspace = true } +ibc-proto = { workspace = true, features = ["serde"] } prost = { workspace = true } sha2 = { workspace = true } serde = { workspace = true, features = ["derive"] } diff --git a/common/nyxd-scraper-shared/src/cosmos_module/message_registry.rs b/common/nyxd-scraper-shared/src/cosmos_module/message_registry.rs index ef5d0e7b8f..bacc9b499b 100644 --- a/common/nyxd-scraper-shared/src/cosmos_module/message_registry.rs +++ b/common/nyxd-scraper-shared/src/cosmos_module/message_registry.rs @@ -13,6 +13,11 @@ use crate::cosmos_module::modules::feegrant::Feegrant; use crate::cosmos_module::modules::gov_v1::GovV1; use crate::cosmos_module::modules::gov_v1beta1::GovV1Beta1; use crate::cosmos_module::modules::group::Group; +use crate::cosmos_module::modules::ibc_core::IbcCore; +use crate::cosmos_module::modules::ibc_fee::IbcFee; +use crate::cosmos_module::modules::ibc_interchain_accounts_controller::IbcInterchainAccountsController; +use crate::cosmos_module::modules::ibc_transfer_v1::IbcTransferV1; +use crate::cosmos_module::modules::ibc_transfer_v2::IbcTransferV2; use crate::cosmos_module::modules::mint::Mint; use crate::cosmos_module::modules::nft::Nft; use crate::cosmos_module::modules::params::Params; @@ -120,6 +125,11 @@ pub fn default_message_registry() -> MessageRegistry { Box::new(GovV1), Box::new(GovV1Beta1), Box::new(Group), + Box::new(IbcCore), + Box::new(IbcFee), + Box::new(IbcTransferV1), + Box::new(IbcTransferV2), + Box::new(IbcInterchainAccountsController), Box::new(Mint), Box::new(Nft), Box::new(Params), diff --git a/common/nyxd-scraper-shared/src/cosmos_module/modules/feegrant.rs b/common/nyxd-scraper-shared/src/cosmos_module/modules/feegrant.rs index 483880ca8f..6948e63198 100644 --- a/common/nyxd-scraper-shared/src/cosmos_module/modules/feegrant.rs +++ b/common/nyxd-scraper-shared/src/cosmos_module/modules/feegrant.rs @@ -3,7 +3,9 @@ use crate::cosmos_module::message_registry::MessageRegistry; use crate::cosmos_module::CosmosModule; -use cosmos_sdk_proto::cosmos::feegrant::v1beta1::{MsgGrantAllowance, MsgRevokeAllowance}; +use cosmos_sdk_proto::cosmos::feegrant::v1beta1::{ + MsgGrantAllowance, MsgPruneAllowances, MsgRevokeAllowance, +}; pub(crate) struct Feegrant; @@ -11,5 +13,6 @@ impl CosmosModule for Feegrant { fn register_messages(&self, registry: &mut MessageRegistry) { registry.register::(); registry.register::(); + registry.register::(); } } diff --git a/common/nyxd-scraper-shared/src/cosmos_module/modules/ibc_core.rs b/common/nyxd-scraper-shared/src/cosmos_module/modules/ibc_core.rs new file mode 100644 index 0000000000..304602fa54 --- /dev/null +++ b/common/nyxd-scraper-shared/src/cosmos_module/modules/ibc_core.rs @@ -0,0 +1,70 @@ +// Copyright 2025 - Nym Technologies SA +// SPDX-License-Identifier: Apache-2.0 + +use crate::{CosmosModule, MessageRegistry}; +use ibc_proto::ibc::core::channel::{ + self, + v1::{ + MsgAcknowledgement, MsgChannelCloseConfirm, MsgChannelCloseInit, MsgChannelOpenAck, + MsgChannelOpenConfirm, MsgChannelOpenInit, MsgChannelOpenTry, MsgChannelUpgradeAck, + MsgChannelUpgradeCancel, MsgChannelUpgradeConfirm, MsgChannelUpgradeInit, + MsgChannelUpgradeOpen, MsgChannelUpgradeTimeout, MsgChannelUpgradeTry, + MsgPruneAcknowledgements, MsgRecvPacket, MsgTimeout, MsgTimeoutOnClose, + }, +}; +use ibc_proto::ibc::core::client::{ + self, + v1::{ + MsgCreateClient, MsgIbcSoftwareUpgrade, MsgRecoverClient, MsgSubmitMisbehaviour, + MsgUpdateClient, MsgUpgradeClient, + }, +}; +use ibc_proto::ibc::core::connection::{ + self, + v1::{ + MsgConnectionOpenAck, MsgConnectionOpenConfirm, MsgConnectionOpenInit, MsgConnectionOpenTry, + }, +}; + +pub(crate) struct IbcCore; + +impl CosmosModule for IbcCore { + fn register_messages(&self, registry: &mut MessageRegistry) { + // channel + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + + // client + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + + // connection + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + } +} diff --git a/common/nyxd-scraper-shared/src/cosmos_module/modules/ibc_fee.rs b/common/nyxd-scraper-shared/src/cosmos_module/modules/ibc_fee.rs new file mode 100644 index 0000000000..b5e3d16b53 --- /dev/null +++ b/common/nyxd-scraper-shared/src/cosmos_module/modules/ibc_fee.rs @@ -0,0 +1,18 @@ +// Copyright 2025 - Nym Technologies SA +// SPDX-License-Identifier: Apache-2.0 + +use crate::{CosmosModule, MessageRegistry}; +use ibc_proto::ibc::applications::fee::v1::{ + MsgPayPacketFee, MsgPayPacketFeeAsync, MsgRegisterPayee, RegisteredCounterpartyPayee, +}; + +pub(crate) struct IbcFee; + +impl CosmosModule for IbcFee { + fn register_messages(&self, registry: &mut MessageRegistry) { + registry.register::(); + registry.register::(); + registry.register::(); + registry.register::(); + } +} diff --git a/common/nyxd-scraper-shared/src/cosmos_module/modules/ibc_interchain_accounts_controller.rs b/common/nyxd-scraper-shared/src/cosmos_module/modules/ibc_interchain_accounts_controller.rs new file mode 100644 index 0000000000..fc6ef915eb --- /dev/null +++ b/common/nyxd-scraper-shared/src/cosmos_module/modules/ibc_interchain_accounts_controller.rs @@ -0,0 +1,17 @@ +// Copyright 2025 - Nym Technologies SA +// SPDX-License-Identifier: Apache-2.0 + +use crate::{CosmosModule, MessageRegistry}; +use ibc_proto::ibc::applications::interchain_accounts::controller::v1::{ + MsgRegisterInterchainAccount, MsgSendTx, MsgUpdateParams, +}; + +pub(crate) struct IbcInterchainAccountsController; + +impl CosmosModule for IbcInterchainAccountsController { + fn register_messages(&self, registry: &mut MessageRegistry) { + registry.register::(); + registry.register::(); + registry.register::(); + } +} diff --git a/common/nyxd-scraper-shared/src/cosmos_module/modules/ibc_transfer_v1.rs b/common/nyxd-scraper-shared/src/cosmos_module/modules/ibc_transfer_v1.rs new file mode 100644 index 0000000000..0f2f92524a --- /dev/null +++ b/common/nyxd-scraper-shared/src/cosmos_module/modules/ibc_transfer_v1.rs @@ -0,0 +1,14 @@ +// Copyright 2025 - Nym Technologies SA +// SPDX-License-Identifier: Apache-2.0 + +use crate::{CosmosModule, MessageRegistry}; +use ibc_proto::ibc::applications::transfer::v1::{MsgTransfer, MsgUpdateParams}; + +pub(crate) struct IbcTransferV1; + +impl CosmosModule for IbcTransferV1 { + fn register_messages(&self, registry: &mut MessageRegistry) { + registry.register::(); + registry.register::(); + } +} diff --git a/common/nyxd-scraper-shared/src/cosmos_module/modules/ibc_transfer_v2.rs b/common/nyxd-scraper-shared/src/cosmos_module/modules/ibc_transfer_v2.rs new file mode 100644 index 0000000000..d0e707e35f --- /dev/null +++ b/common/nyxd-scraper-shared/src/cosmos_module/modules/ibc_transfer_v2.rs @@ -0,0 +1,10 @@ +// Copyright 2025 - Nym Technologies SA +// SPDX-License-Identifier: Apache-2.0 + +use crate::{CosmosModule, MessageRegistry}; + +pub(crate) struct IbcTransferV2; + +impl CosmosModule for IbcTransferV2 { + fn register_messages(&self, _registry: &mut MessageRegistry) {} +} diff --git a/common/nyxd-scraper-shared/src/cosmos_module/modules/mod.rs b/common/nyxd-scraper-shared/src/cosmos_module/modules/mod.rs index 7551a0612e..5c13923dcb 100644 --- a/common/nyxd-scraper-shared/src/cosmos_module/modules/mod.rs +++ b/common/nyxd-scraper-shared/src/cosmos_module/modules/mod.rs @@ -13,6 +13,11 @@ pub(crate) mod feegrant; pub(crate) mod gov_v1; pub(crate) mod gov_v1beta1; pub(crate) mod group; +pub(crate) mod ibc_core; +pub(crate) mod ibc_fee; +pub(crate) mod ibc_interchain_accounts_controller; +pub(crate) mod ibc_transfer_v1; +pub(crate) mod ibc_transfer_v2; pub(crate) mod mint; pub(crate) mod nft; pub(crate) mod params; diff --git a/nym-wallet/Cargo.lock b/nym-wallet/Cargo.lock index a53976a960..07c7aebf66 100644 --- a/nym-wallet/Cargo.lock +++ b/nym-wallet/Cargo.lock @@ -11,7 +11,7 @@ dependencies = [ "bip39", "cfg-if", "colored 2.2.0", - "cosmrs", + "cosmrs 0.21.1", "cosmwasm-std", "dirs 4.0.0", "dotenvy", @@ -1203,6 +1203,16 @@ dependencies = [ "tendermint-proto", ] +[[package]] +name = "cosmos-sdk-proto" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95ac39be7373404accccaede7cc1ec942ccef14f0ca18d209967a756bf1dbb1f" +dependencies = [ + "prost", + "tendermint-proto", +] + [[package]] name = "cosmrs" version = "0.21.1" @@ -1210,7 +1220,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1394c263335da09e8ba8c4b2c675d804e3e0deb44cce0866a5f838d3ddd43d02" dependencies = [ "bip32", - "cosmos-sdk-proto", + "cosmos-sdk-proto 0.26.1", + "ecdsa", + "eyre", + "k256", + "rand_core 0.6.4", + "serde", + "serde_json", + "signature", + "subtle-encoding", + "tendermint", + "thiserror 1.0.69", +] + +[[package]] +name = "cosmrs" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34e74fa7a22930fe0579bef560f2d64b78415d4c47b9dd976c0635136809471d" +dependencies = [ + "bip32", + "cosmos-sdk-proto 0.27.0", "ecdsa", "eyre", "k256", @@ -4017,7 +4047,7 @@ name = "nym-api-requests" version = "0.1.0" dependencies = [ "bs58", - "cosmrs", + "cosmrs 0.22.0", "cosmwasm-std", "ecdsa", "getset", @@ -4390,7 +4420,7 @@ name = "nym-types" version = "1.0.0" dependencies = [ "base64 0.22.1", - "cosmrs", + "cosmrs 0.22.0", "cosmwasm-std", "eyre", "hmac", @@ -4423,7 +4453,7 @@ dependencies = [ "bip32", "bip39", "colored 2.2.0", - "cosmrs", + "cosmrs 0.22.0", "cosmwasm-std", "cw-controllers", "cw-utils", @@ -4493,7 +4523,7 @@ dependencies = [ name = "nym-wallet-types" version = "1.0.0" dependencies = [ - "cosmrs", + "cosmrs 0.21.1", "cosmwasm-std", "hex-literal", "nym-config",