Skip to content

[TA-5032]: ibc testsuite#32

Merged
AdriaCarrera merged 4 commits intomainfrom
cosmos/feat/ibc-testsuite
Feb 26, 2026
Merged

[TA-5032]: ibc testsuite#32
AdriaCarrera merged 4 commits intomainfrom
cosmos/feat/ibc-testsuite

Conversation

@GuillemGarciaDev
Copy link
Contributor

[TA-5032]: ibc testsuite

Changes 🛠️

modules/cosmos

  • ibc transfer testsuite between IBC chains
  • test sending native assets from source chain to destination chain.

Notes

EIP712 signatures are not supported in @cosmjs. Need to implement it custom.

@GuillemGarciaDev GuillemGarciaDev requested a review from banasa44 July 3, 2025 13:30
@GuillemGarciaDev GuillemGarciaDev added the cosmos cosmos module. label Jul 3, 2025
Copy link
Contributor

@banasa44 banasa44 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

modules/ibc could be refactored, structure is currently highly packed. Suggestion:

  • /core with interfaces, errors and constants
  • /parsers
  • /utils multiple utility functions from modules/ibc
  • /services (/providers ? not sure about this one, maybe add more paths) for business logic orchestration, clients and signers. Or /clients and leave signer.ts at top level.

position += length;
} else {
// For other wire types, try to skip safely
console.warn(`Unknown wire type ${wireType} for field ${fieldNumber}, skipping`);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could define a ParserError/IBCParserError error class

position += length;
} else {
// For other wire types, just skip one byte to avoid infinite loop
console.warn(`Unknown wire type ${wireType} for field ${fieldNumber} in BaseAccount`);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could define a ParserError/IBCParserError error class

// For all other account types or if EthAccount parsing failed, use standard parsing
return accountFromAny(input);
} catch (error) {
console.error("Failed to parse account with ethermintAccountParser:", error);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could define a ParserError/IBCParserError error class

// If EthAccount parsing fails, try fallback to standard parsing
return accountFromAny(input);
} catch (error) {
console.error("Failed to parse account:", error);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could define a ParserError/IBCParserError error class

// Use the custom account parser
return ethermintAccountParser(accountAny);
} catch (error) {
console.error("Failed to get account:", error);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could define a ParserError/IBCParserError error class / use ProviderError

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

create separate files for different utilities responsibilities (time, packet and chain)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

variant functions could be moved into a utils folder

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we move this file into packages/shared?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this file could also go to ''packages/shared/cosmos`


async getAccounts(): Promise<readonly AccountData[]> {
const accountsWithPrivkeys = await this.getAccountsWithPrivkeys();
return accountsWithPrivkeys.map(({ algo, pubkey, address }) => ({
Copy link
Contributor

@banasa44 banasa44 Jul 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't forget to complete

import { SignDoc } from "cosmjs-types/cosmos/tx/v1beta1/tx";
import { encodeSecp256k1Signature } from "./secp256k1";

interface AccountDataWithPrivkey extends AccountData {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't forget to complete

@GuillemGarciaDev GuillemGarciaDev marked this pull request as ready for review July 7, 2025 10:14
# Conflicts:
#	modules/cosmos/configs/mainnet.module.config.json
#	modules/cosmos/configs/testnet.module.config.json
#	modules/cosmos/module.config.json
#	modules/cosmos/package.json
#	pnpm-lock.yaml
- Updated RPC URLs to use secure HTTPS endpoints across all environments.
- Added IBC module and configuration for chain interoperability.
- Revised EVM configurations with proper `evmDenom`, active precompiles, and enhanced fee market parameters.
- Introduced Cosmos SDK v0.33.1 dependencies for compatibility improvements.
- Included devnet configurations and adjusted test cases for mainnet, testnet, and devnet execution.
- Made adjustments in `pnpm-lock.yaml` for upgraded dependencies and package resolution.
@AdriaCarrera AdriaCarrera merged commit 312a077 into main Feb 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cosmos cosmos module.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants