Skip to content

feat: add anchor rails configuration and capability matrix (#54) - #207

Merged
El-swaggerito merged 1 commit into
Axionvera:mainfrom
DevSolex:main
Jul 29, 2026
Merged

feat: add anchor rails configuration and capability matrix (#54)#207
El-swaggerito merged 1 commit into
Axionvera:mainfrom
DevSolex:main

Conversation

@DevSolex

Copy link
Copy Markdown
Contributor

Summary

Closes #54.

Implements the typed anchor rails capability matrix as described in the issue.

Changes

Types @anchorkit/types

  • AnchorRailCapabilityState — extends CapabilityState with "unsupported"
  • ANCHOR_RAIL_CAPABILITY_STATES constant
  • AnchorRailCapability — rail descriptor (railId, state, deposit/withdrawal support, currencies, countries)
  • AnchorAssetCapability — asset descriptor (code, issuer, enabled flags, fee config)
  • AnchorCapabilityMatrix — top-level matrix aggregating rails, assets, and experimental/disabled behaviour records

Validators @anchorkit/validators

  • Zod schemas: AnchorRailCapabilitySchema, AnchorAssetCapabilitySchema, AnchorCapabilityMatrixSchema

Config @anchorkit/config

  • DEFAULT_ANCHOR_CAPABILITY_MATRIX with SEPA/ACH (mock), WIRE (experimental, deposit-only), CARD (unavailable) rails and XLM/USDC/EURC assets
  • Query helpers: getRailsByState, getDepositEnabledAssets, getWithdrawalEnabledAssets, findRailById, findAssetByCode, isRailDepositReady, isRailWithdrawalReady

anchor-utils @anchorkit/anchor-utils

  • Parse/validate helpers: parseAnchorCapabilityMatrix, isAnchorCapabilityMatrixValid, parseAnchorRailCapability, isAnchorRailCapabilityValid, parseAnchorAssetCapability, isAnchorAssetCapabilityValid

Fixtures @anchorkit/fixtures

  • mockAnchorCapabilityMatrix — full fixture covering all rail/asset states
  • allDisabledRailsMatrix — all rails unavailable (negative testing)
  • experimentalOnlyMatrix — single experimental rail

Web dashboard apps/web

  • CapabilityMatrixCard component — renders the full matrix (rails, assets, experimental/disabled behaviours) as a dashboard card
  • Integrated into /anchors page below the lifecycle transition section

Docs

  • docs/ANCHOR_RAILS_CAPABILITY_MATRIX.md — types reference, default matrix tables, query/validate helper API, extension guide

Tests

Package New tests All pass
@anchorkit/types 4
@anchorkit/validators 23
@anchorkit/config 25
@anchorkit/anchor-utils 19
@anchorkit/fixtures 22
apps/web 8

All new tests pass. Pre-existing capability-badge.test.ts and lint failures in apps/web are unrelated to this PR and were present on main before these changes.

Acceptance criteria

  • Anchor rails capability model is added
  • Deposit and withdrawal support is represented
  • Disabled and experimental states are handled
  • Web dashboard uses the capability matrix
  • Tests cover valid and invalid rails configuration
  • Documentation explains capability states

)

- Add AnchorRailCapabilityState, AnchorRailCapability, AnchorAssetCapability,
  and AnchorCapabilityMatrix types to @anchorkit/types
- Add ANCHOR_RAIL_CAPABILITY_STATES constant (extends CAPABILITY_STATES
  with 'unsupported')
- Add Zod schemas for all three types in @anchorkit/validators
- Add DEFAULT_ANCHOR_CAPABILITY_MATRIX with SEPA/ACH/WIRE/CARD rails and
  XLM/USDC/EURC assets to @anchorkit/config
- Add getRailsByState, getDepositEnabledAssets, getWithdrawalEnabledAssets,
  findRailById, findAssetByCode, isRailDepositReady, isRailWithdrawalReady
  query helpers to @anchorkit/config
- Add parseAnchorCapabilityMatrix, isAnchorCapabilityMatrixValid,
  parseAnchorRailCapability, parseAnchorAssetCapability validate helpers
  to @anchorkit/anchor-utils
- Add mockAnchorCapabilityMatrix, allDisabledRailsMatrix,
  experimentalOnlyMatrix fixtures to @anchorkit/fixtures
- Add CapabilityMatrixCard component to apps/web
- Integrate capability matrix section into /anchors dashboard page
- Add rail-capability-types, rail-config, rail-capability-schemas,
  rail-capability and rail-capability-fixtures entries to all package
  capability metadata objects
- Add tests: types (4), validators (23), config (25), anchor-utils (19),
  fixtures (22), web (8)
- Add docs/ANCHOR_RAILS_CAPABILITY_MATRIX.md

Closes Axionvera#54
@El-swaggerito
El-swaggerito merged commit 86b4a8a into Axionvera:main Jul 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add anchor rails configuration and capability matrix

2 participants