SPB Git

Repository Public

smoke-chains.mts 1.9 KB 14 lines typescript

1// Live read-only check of every network adapter (identity, token verification, balances, deposit scan) using a public test address.2import { NETWORKS } from '@spw/core';3import { adapters } from '../services/api/src/chains/index.ts';4const addr: Record<string, string> = { ton: 'UQAzWZa6nM5mJev91wGc7VCSfBoIsYRqKJpV78N8Add9-RKY', near: '5510e2b44cae6eb807e3e0e45d579dda058c274abcba15e5cb84636f5d1ee412', aptos: '0xeb663b681209e7087d681c5d3eed12aaa8e1915e7c87794542c3f96e94b3d3bf', sui: '0x5e93a736d04fbb25737aa40bee40171ef79f65fae833749e3c089fe7cc2161f1', cosmos: 'cosmos19rl4cm2hmr8afy4kldpxz3fka4jguq0auqdal4', dogecoin: 'DBus3bamQjgJULBJtYXpEzDWQRwF5iwxgC', bitcoincash: 'bitcoincash:qqyx49mu0kkn9ftfj6hje6g2wfer34yfnq5tahq3q6', xrpl: 'rHsMGQEkVNJmpGWs8XUBoTBiAAbwxZN5v3', tron: 'TUEZSdKsoDHQMeZwihtdoBiN46zxhGWYdH', stellar: 'GA5XIGA5C7QTPTWXQHY6MCJRMTRZDOSHR6EFIBNDQTCQHG262N4GGKTM', litecoin: 'ltc1qjmxnz78nmc8nq77wuxh25n2es7rzm5c2rkk4wh', evm: process.env.EVM_ADDR ?? '0x9858EfFD232B4033E47d90003D41EC34EcaEda94', btc: 'bc1qcr8te4kr609gcawutmrza0j4xv80jy8z306fyu', sol: 'HAgk14JpMQLgt6rVgv7cBQFJWFto5Dqxi472uT3DKpqk' };5for (const n of Object.values(NETWORKS).filter((x) => !process.env.ONLY || process.env.ONLY.split(',').includes(x.id))) {6  const a = adapters[n.id]!;7  try {8    const h = await a.health(); const b = await a.balances((addr[n.id] ?? addr[n.family])!);9    const nz = Object.entries(b).filter(([, v]) => v > 0n).map(([k, v]) => `${k === 'native' ? n.native.symbol : n.tokens.find((t) => t.id === k)?.symbol}=${v}`);10    console.log(n.id.padEnd(10), 'ok=' + h.ok, 'identity=' + h.identityVerified, 'tokens=' + n.tokens.length, 'read=' + (Object.keys(b).length - 1), 'disabled=' + (a.disabledAssets?.().length ?? 0), 'nonzero:', nz.join(' ') || '-');11    const d = await a.deposits((addr[n.id] ?? addr[n.family])!, null); console.log('           deposits', d.items.length);12  } catch (e) { console.log(n.id, 'ERR', (e as Error).message); }13}14
Files main
Menu

Theme