Ativos, carteiras e endereços tipados
Catálogos tipados de ativos e carteiras, além de validadores de endereço, tanto para testnet quanto para mainnet.
O SDK traz catálogos tipados e cientes da rede para que você nunca digite manualmente o emissor de um ativo ou o id de uma carteira, além de validadores para endereços Stellar.
Pequenos catálogos tipados para que você nunca cole o emissor errado ou uma string mágica. Strings
simples continuam funcionando em todos os lugares. Exportados de ambos os pontos de entrada
(@cosmosapp/pay_sdk e @cosmosapp/pay_sdk/web).
Ativos
import { Assets, TestnetAssets, defineAsset, resolveAsset, isNativeAsset } from '@cosmosapp/pay_sdk';
Assets.XLM; // native lumens
Assets.USDC; // { code: 'USDC', issuer: 'GA5Z…' } (Circle, mainnet, verified)
Assets.EURC; // { code: 'EURC', issuer: 'GDHU…' }
// Custom asset (issuer/contract validated):
const AQUA = defineAsset({ code: 'AQUA', issuer: 'GBNZ…', name: 'Aquarius' });
await client.paymentIntents.createPay({ destination: 'G...', amount: '5', asset: AQUA });
// Plain code + issuer also works:
await client.paymentIntents.createPay({ destination: 'G...', amount: '5', assetCode: 'USDC', assetIssuer: 'G...' });⚠️ Os emissores são específicos de cada rede.
Assets.*= mainnet; useTestnetAssets.*(por exemplo,TestnetAssets.USDC) para a testnet, correspondendo à sua chavedv_.
Auxiliares: resolveAsset(ref) → { code, issuer? }; isNativeAsset(ref) → boolean.
Carteiras
import { Wallets } from '@cosmosapp/pay_sdk/web';
Wallets.FREIGHTER; Wallets.XBULL; Wallets.RABET; Wallets.LOBSTR; Wallets.ALBEDO;
const wc = new WebClient({ preferredWallets: [Wallets.XBULL, Wallets.FREIGHTER] });
await wc.pay(intent, { wallet: Wallets.FREIGHTER });Agenda de endereços
import { addresses, resolveAddress, isStellarAddress, isMuxedAddress, isContractAddress, isAddress, assertAddress } from '@cosmosapp/pay_sdk';
addresses.define('merchant', 'GC...PAYOUT');
await client.paymentIntents.createPay({ destination: 'merchant', amount: '10' });
resolveAddress('merchant'); // → 'GC...PAYOUT' (unknown values pass through unchanged)
isStellarAddress('GC...'); // true
isMuxedAddress('MA...'); // true
isContractAddress('CA...'); // true
isAddress('merchant'); // true
assertAddress(value); // throws on an invalid valueEndereços brutos G…, multiplexados M…, de contrato C… e de federação continuam funcionando como
strings simples.