Pular para o conteúdo principal

Run it yourself

cd examples/marketplace-mercatto
npm install
npm run typecheck
npm run test:happy-path
npm run test:scenarios

Requer Node.js ≥ 18. Por padrão isso roda contra o Sandbox público real da Ishtaran (https://sandbox-api.ishtaran.com) — nenhuma credencial para configurar. Cada execução provisiona sua própria Organization, Application, e Accounts, com namespace baseado num run ID derivado do timestamp atual, então execuções repetidas nunca colidem e nunca tocam nos dados de Sandbox de mais ninguém.

Para apontar para uma instância local no lugar:

export MERCATTO_BASE_URL=http://localhost:18100 # ou onde sua API local estiver rodando
npm run test:happy-path

O que você vai ver

Saída real, não texto ilustrativo — cada ID é diferente na sua própria execução, o formato não:

=== release-order (settlement) ===
[release-order] settlementId=… settledAmount=200.000000000000000000 remainingReservedAmount=0.000000000000000000

=== withdraw (expected real block -- see withdraw.ts) ===
[withdraw] blocked as expected (activation cooldown): WITHDRAWAL_DESTINATION_NOT_USABLE

Mercatto happy path: all assertions passed.

Uma observação sobre onde esse código mora agora

Este Business Case hoje vive no repositório privado da plataforma Ishtaran, em examples/marketplace-mercatto/. Cada SDK oficial (Java, TypeScript, Python, Go) é espelhado no próprio repositório público no GitHub — este exemplo ainda não está sincronizado para um local público. Se você está lendo isto no site público de documentação sem acesso ao repositório privado, trate os blocos de código ao longo deste tutorial como o código-fonte literal, completo e executável (eles são trechos extraídos ao pé da letra, não paráfrases) até que essa sincronização exista.

Release gate

A mesma suíte que gerou a saída acima é o que trava todo release de SDK e todo release da plataforma: mercatto-e2e em .github/workflows/ci.yml. Se o caminho feliz deste Business Case ou qualquer um dos seus 11 cenários de falha pararem de passar, o release é bloqueado — isso não é uma demo de marketing, é um teste de regressão para a correção financeira real da plataforma.