Files
bank/sdk/pnpm-lock.yaml
zeekayandHanzo Dev 1bed68b1ad bank: close the chain-boundary honesty gaps from the ultracode audit (v1.6.0)
The visual swarm confirmed the sandbox + testnet crypto loop is
genuinely live end-to-end (12/12 Playwright specs, 12 screenshots)
over a real double-entry ledger — and flagged that the chain boundary
is simulated and mislabeled. Fixes:

- Live-mode crypto send now 503s ("on-chain send unavailable") instead
  of debiting the ledger against a random txHash that is never
  broadcast — the same discipline the exchange applies without forexd.
  The faucet was already sandbox-gated; send was not.
- Network label is derived from mode via networkName() (lux-testnet /
  lux-mainnet), not hardcoded; the wallet and crypto-prices responses
  report sandbox: Sandbox() instead of a literal true, so a production
  deploy can no longer report itself as testnet.
- getMonthlyVolume normalizes to USD cents (was summing raw minor
  units, letting crypto micro-units inflate volume ~10^4x and grant
  the fee discount by accident) — matching the limit/AML fix.
- Transaction history carries txHash + network from metadata, so the
  activity feed can render a send's hash, not just the live response.
- Wallet drops the false "Non-custodial" label (the sandbox wallet is
  custodial with an unspendable display address).

Also lands the swarm's visual e2e suite (crypto-loop, dashboard,
exchange specs + screenshots on every flow) and the agent's fix to
Exchange.tsx, where the convert confirmation was wiped on the same
tick it was set — a customer never saw "Converted X to Y".

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-21 14:11:51 -07:00

25 lines
440 B
YAML

lockfileVersion: '9.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
importers:
.:
devDependencies:
typescript:
specifier: ^5.9.0
version: 5.9.3
packages:
[email protected]:
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
engines: {node: '>=14.17'}
hasBin: true
snapshots:
[email protected]: {}