diff --git a/sdk/localsdk/multichain/configs/chainProviders.ts b/sdk/localsdk/multichain/configs/chainProviders.ts index d1022a474..c73088c1b 100644 --- a/sdk/localsdk/multichain/configs/chainProviders.ts +++ b/sdk/localsdk/multichain/configs/chainProviders.ts @@ -33,6 +33,10 @@ export const chainProviders = { mainnet: "https://stargaze-rpc.publicnode.com:443", testnet: "https://rpc.elgafar-1.stargaze-apis.com", }, + atom: { + mainnet: "https://cosmos-rpc.publicnode.com:443", + testnet: "https://rpc.provider-sentry-01.ics-testnet.polypore.xyz", + }, near: { mainnet: "https://rpc.near.org", testnet: "https://rpc.testnet.near.org", diff --git a/sdk/localsdk/multichain/configs/ibcProviders.ts b/sdk/localsdk/multichain/configs/ibcProviders.ts deleted file mode 100644 index 8d4a43ad5..000000000 --- a/sdk/localsdk/multichain/configs/ibcProviders.ts +++ /dev/null @@ -1,6 +0,0 @@ -export default { - cosmos: { - mainnet: "", - testnet: "https://rpc.sentry-01.theta-testnet.polypore.xyz", - }, -} \ No newline at end of file diff --git a/src/features/multichain/routines/executors/pay.ts b/src/features/multichain/routines/executors/pay.ts index 3ee2616f4..c1ea365c7 100644 --- a/src/features/multichain/routines/executors/pay.ts +++ b/src/features/multichain/routines/executors/pay.ts @@ -69,6 +69,7 @@ export default async function handlePayOperation( break case "ibc": + case "atom": result = await genericJsonRpcPay(multichain.IBC, rpcUrl, operation) break diff --git a/src/libs/blockchain/gcr/gcr_routines/identityManager.ts b/src/libs/blockchain/gcr/gcr_routines/identityManager.ts index 9b398ab4f..0aca5fb19 100644 --- a/src/libs/blockchain/gcr/gcr_routines/identityManager.ts +++ b/src/libs/blockchain/gcr/gcr_routines/identityManager.ts @@ -44,6 +44,7 @@ const chains: { [key: string]: typeof DefaultChain } = { ton: TON, xrpl: XRPL, ibc: IBC, + atom: IBC, near: NEAR, // @ts-expect-error - BTC module contains more fields than the DefaultChain type btc: BTC, @@ -207,6 +208,7 @@ export default class IdentityManager { chainId === "xrpl" || chainId === "ton" || chainId === "ibc" || + chainId === "atom" || chainId === "near" ) { messageVerified = await sdk.verifyMessage( diff --git a/src/utilities/validateUint8Array.ts b/src/utilities/validateUint8Array.ts index 9763a3fa5..60cbce0c1 100644 --- a/src/utilities/validateUint8Array.ts +++ b/src/utilities/validateUint8Array.ts @@ -4,6 +4,17 @@ export default function validateIfUint8Array(input: unknown): Uint8Array | unkno return input } + // Handle hex strings + if (typeof input === "string" && input.startsWith("0x")) { + const hexString = input.slice(2) // Remove "0x" prefix + // Validate hex string before conversion + if (hexString.length % 2 === 0 && /^[0-9a-fA-F]*$/.test(hexString)) { + return Buffer.from(hexString, "hex") + } + + return input + } + // Type guard: check if input is a record-like object with numeric integer keys and number values if (typeof input === "object" && input !== null) { // Safely cast to indexable type after basic validation