diff --git a/sdk/localsdk/multichain/configs/chainProviders.ts b/sdk/localsdk/multichain/configs/chainProviders.ts index f837c78f..8c3d3a67 100644 --- a/sdk/localsdk/multichain/configs/chainProviders.ts +++ b/sdk/localsdk/multichain/configs/chainProviders.ts @@ -50,4 +50,10 @@ export const chainProviders = { testnet: "https://fullnode.testnet.aptoslabs.com/v1", devnet: "https://fullnode.devnet.aptoslabs.com/v1", }, -} + tron: { + mainnet: "https://api.trongrid.io", + testnet: "https://api.shasta.trongrid.io", + shasta: "https://api.shasta.trongrid.io", + nile: "https://nile.trongrid.io", + }, +} \ 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 b4825a13..3c430690 100644 --- a/src/features/multichain/routines/executors/pay.ts +++ b/src/features/multichain/routines/executors/pay.ts @@ -96,6 +96,10 @@ export default async function handlePayOperation( result = await handleAptosPayRest(operation) break + case "tron": + result = await genericJsonRpcPay(multichain.TRON, rpcUrl, operation) + break + default: result = { result: "error", diff --git a/src/libs/blockchain/gcr/gcr_routines/identityManager.ts b/src/libs/blockchain/gcr/gcr_routines/identityManager.ts index 4720e9e9..ffa43562 100644 --- a/src/libs/blockchain/gcr/gcr_routines/identityManager.ts +++ b/src/libs/blockchain/gcr/gcr_routines/identityManager.ts @@ -13,6 +13,7 @@ import { NEAR, SOLANA, TON, + TRON, XRPL, BTC, } from "@kynesyslabs/demosdk/xm-localsdk" @@ -44,6 +45,7 @@ const chains: { [key: string]: typeof DefaultChain } = { evm: EVM, egld: MULTIVERSX, ton: TON, + tron: TRON, xrpl: XRPL, ibc: IBC, atom: IBC, @@ -143,9 +145,10 @@ export default class IdentityManager { // } // } - // SECTION: SOLANA Checks - // INFO: Check if the subchain is mainnet - if (chain === "solana" && subchain !== "mainnet") { + // SECTION: Mainnet-only chain checks + // INFO: Some chains only support mainnet for identity management + const mainnetOnlyChains = ["solana", "tron"] + if (mainnetOnlyChains.includes(chain) && subchain !== "mainnet") { return { ...response, message: "Failed: Testnet addresses are not supported", diff --git a/src/utilities/validateUint8Array.ts b/src/utilities/validateUint8Array.ts index 84ed1a7b..93425242 100644 --- a/src/utilities/validateUint8Array.ts +++ b/src/utilities/validateUint8Array.ts @@ -19,6 +19,12 @@ export default function validateIfUint8Array( // Type guard: check if input is a record-like object with numeric integer keys and number values if (typeof input === "object" && input !== null) { + // Skip conversion for transaction objects that are not meant to be Uint8Arrays + const isSerializedTx = 'signature' in input && 'txID' in input && 'raw_data' in input + if (isSerializedTx) { + return input + } + // Safely cast to indexable type after basic validation const record = input as Record const entries = Object.entries(record)