BitChicken

Integrações — RW.BC.DApp

Visão Geral

Serviço Direção Protocolo Criticidade Tratamento de falha
Reown AppKit / WalletConnect Saída (modal) EIP-1193 / WalletConnect v2 Alta — sem ela não há conexão de carteira connect() retorna false; componentes verificam isConnected() antes de agir
BSC RPC (leitura) Saída JSON-RPC over HTTPS Alta — leituras de contrato FallbackProvider com múltiplos endpoints; withRetry (3x, exp. jitter); safeRead retorna fallback
BSC RPC (escrita) Saída JSON-RPC over HTTPS (via signer) Alta — transações toTransactionError mapeia códigos ethers; toast de erro exibido ao usuário
Firebase Auth Saída HTTPS (SDK Firebase Web v12) Alta — autenticação da identidade Falha no login/signup lança exceção capturada no componente de auth
RW.BC.Api (REST) Saída HTTPS + Firebase JWT Bearer Alta — contas, dados on-chain indexados HttpErrorResponse capturado; erros de wallet-link mapeados para WalletLinkError com chave i18n
RW.BC.Api (SignalR) Bidirecional WebSocket (via @microsoft/signalr) Média — realtime marketplace e forge withAutomaticReconnect(); fallback para polling API/on-chain após 45 s
CoinGecko API Saída HTTPS REST Baixa — cotação BNB/fiat Falha silenciosa; retorna último valor cacheado ou null; retry 3x
Pinata (IPFS upload) Saída HTTPS multipart/form-data Baixa — upload de arte (só admin) Lança Error com mensagem descritiva; exibido no painel admin
Google Analytics (GA4) Saída HTTPS (gtag.js) Baixa — telemetria Desabilitado sem consent; sem consent, nenhum evento é enviado
BSCScan / Otterscan Saída (link) HTTPS (abre em nova aba) Baixa — explorador de tx Link gerado por explorer.ts sem chamada HTTP; falha = link inválido

Reown AppKit / WalletConnect

Configuração: core/web3/web3.service.ts (construtor; createAppKit)


Contratos BSC (leitura — ContractReadService)

Configuração: environment.*.ts (rpcUrl, rpcUrls, contracts.*)

Contratos acessados (endereços em environment.contracts):

Variável Contrato
contracts.token BitChicken Token (BCKN ERC-20)
contracts.nft BitChicken NFT (ERC-721)
contracts.staking BitChicken Staking
contracts.marketplace BitChicken Marketplace
contracts.forge BitChicken Forge (VRF gacha)

Contratos BSC (escrita — ContractWriteService / ContractAdminService)

Configuração: environment.contracts.* + signer via Web3Service.getSigner()


Firebase Auth

Configuração: environment.*.ts (campo firebase: apiKey, authDomain, projectId, appId)


RW.BC.Api (REST)

Configuração: environment.apiBaseUrl

Endpoint Serviço consumidor Payload / Resposta
GET /accounts/me AuthApiService AccountDto { id, email, nickname, walletAddress, walletLinked }
POST /accounts/me/wallet/nonce AuthApiService WalletNonceDto { message, nonce, expiresAt }
POST /accounts/me/wallet AuthApiService LinkWalletDto { address, signature }AccountDto
DELETE /accounts/me/wallet AuthApiService AccountDto
GET /marketplace/listings MarketDataService PagedResponse<ListingDto> (filtro Gridify, orderBy)
GET /editions MarketDataService PagedResponse<EditionDto>
GET /accounts/:addr/nfts MarketDataService PagedResponse<NftItemDto>
GET /accounts/:addr/staking MarketDataService PagedResponse<StakingPairDto>
GET /accounts/:addr/referral MarketDataService ReferralInfoDto
GET /accounts/:addr/forge-requests ForgeApiService PagedResponse<ForgeRequestDto>
GET /transparency/summary MarketDataService TransparencySummaryDto
GET /transparency/sales MarketDataService PagedResponse<SaleDto>

RW.BC.Api (SignalR — Realtime)

Configuração: environment.apiBaseUrl + hub path /hubs/events


CoinGecko API

Configuração: environment.coingecko (baseUrl, demoApiKey)


Pinata (IPFS)

Configuração: JWT armazenado em localStorage pelo painel admin (PinataUploadService.setJwt())


Google Analytics (GA4)

Configuração: environment.analytics (measurementId, enabled)