All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
sdk: newstellar-router-sdknpm package — TypeScript/JavaScript client forrouter-coreandrouter-quotewithRouterClient,RouterCoreClient,RouterQuoteClient,Signer/LocalSigner/FreighterSigner, RPC + transaction handling, and full test suite. Closes #192.router-registry:versions(name) -> Vec<u32>— enumerate all registered version numbers for a name, sorted ascending. Returns an empty vec for unknown names. Closes #19.router-registry:deprecate_all_versions(caller, name, reason)— batch-deprecate every version under a name in one call.metrics/collector:scrape_registrynow callsversions(name)for each registered name and exposesrouter_registry_version_count{contract, name}gauge.metrics/metrics:registry_version_countPrometheus gauge withcontractandnamelabels.docs/api-reference.md: addedversions(name)return-empty behaviour note and missingdeprecate_all_versionsentry to the router-registry function table.router-registry: fixed brokenget_entry_by_addressimplementation (was readingContractNamesinto a(String, u32)tuple instead of usingAddressIndex).router-registry: fixed all pre-existing compile errors: duplicateget_all_names, missingrequire_adminhelper,addressmove-after-use inregister, and missingOkwrapper indeprecate_many.router-registry: fixedget_latestto returnAllVersionsDeprecated(notNotFound) when a name exists but all versions are deprecated.
router-access: blacklist entries can now include an optionalreasonand anexpires_attimestamp. Expired blacklist entries are treated as not blacklisted.router-registry:ContractEntryincludes an optionaldeprecation_reasonand thedeprecate()API accepts an optional reason which is emitted in thecontract_deprecatedevent.metrics/alerts.yml: example Prometheus alerting rules for circuit breaker opens, high failure/error rates, and high request volume.
router-quote:get_quoteno longer silently defaults the fee/price-impact calculation to0whenamount_in * fee_bps(orfee_amount * 10_000) overflowsi128. Returns the newQuoteError::AmountOverflowinstead, closing a bypass where an extremeamount_inproduced a fee-free, zero-impact quote. Closes #90.Cargo.lock: removed a duplicatechecksumkey on thezmijpackage entry that made the lockfile unparseable TOML, breakingcargo build/cargo testfor the whole workspace.
router-execution: execution pipeline with simulation, retries, and fee estimationrouter-quote: read-only quote preview contract for expected output, fees, and route detailsrouter-middleware: circuit breaker functionality with auto-recoveryrouter-middleware: call logging with configurable retentionrouter-core: route metadata support (description, tags, owner)router-core: route aliasing systemrouter-core: route scoring and best route selectionmetrics: Prometheus/OpenTelemetry metrics exporter
router-core: admin() now panics on uninitialized contract instead of returning Resultrouter-middleware: admin() now panics on uninitialized contract instead of returning Result
router-middleware: rate limit state no longer written when route is disabled before commitrouter-middleware: call log retention now correctly enforces maximum entries
router-middleware: rate limiting per route with configurable windowsrouter-middleware: global and per-route enable/disable controlsrouter-middleware: pre_call and post_call hooksrouter-timelock: delayed execution queue for sensitive operationsrouter-multicall: batch multiple cross-contract calls in one transactionrouter-core: pause/unpause controls at global and per-route levelrouter-core: total_routed counter- Integration tests for cross-contract interactions
router-core: route removal now cleans up dangling aliases- Event naming convention: all events now use past tense verbs in snake_case
router-core: central dispatcher with route registration and resolutionrouter-registry: versioned contract address registry with deprecation supportrouter-access: role-based access control with blacklisting- Basic event emission for all route operations
- Docker Compose setup for local development
- Comprehensive unit test suite for all contracts
- README with architecture diagrams and usage examples