Labels: enhancement, translation, core, high
Summary
Three blueprints currently cover the Stellar Asset Contract and the SDEX classic order book. Soroswap, the primary DEX on Stellar/Soroban, and Blend, the primary lending protocol, both generate high event volume and both display entirely as Cryptic in the Open-Audit feed. Together they represent the majority of DeFi event traffic on Stellar. A single issue is raised for both because their implementation patterns are identical and a contributor taking this on should deliver both.
Background
The blueprint pattern is thoroughly established and documented. Both protocols have publicly available contract source code. Both require additions to all four locale files. Both must be registered in buildRegistry() in registry.ts. The translation types interface is fully defined and the generic and sdex namespaces provide concrete examples of what a protocol namespace should look like.
Required work
Research the Soroswap Router event schema from the Soroswap core repository — specifically the topic and data XDR layout for swap, add liquidity, and remove liquidity events. Research the Blend Protocol event schema from the blend-contracts repository — specifically the topic and data XDR layout for supply, borrow, repay, withdraw, and liquidate events. Create lib/translator/blueprints/soroswap-router.ts implementing a factory function that handles all three Soroswap event types and returns null for unknown event names. Create lib/translator/blueprints/blend-pool.ts implementing a factory function that handles all five Blend event types. Add a soroswap namespace and a blend namespace to the TranslationMap interface in lib/translator/types.ts. Add both namespaces to all four locale files — English, Spanish, French, and Chinese. Register both blueprints with documented mainnet and testnet contract IDs in buildRegistry(). Write test files for each blueprint covering all event types, unknown event names returning null, all four language variants producing distinct non-empty output, and the matches function rejecting events from unrelated contracts. Run npm run validate:blueprints and ensure it passes.
Acceptance criteria
Soroswap swap, add, and remove events display human-readable descriptions. Blend supply, borrow, repay, withdraw, and liquidate events display human-readable descriptions. All four locale files are updated with both new namespaces. The blueprint validation script passes. All tests pass.
Labels: enhancement, translation, core, high
Summary
Three blueprints currently cover the Stellar Asset Contract and the SDEX classic order book. Soroswap, the primary DEX on Stellar/Soroban, and Blend, the primary lending protocol, both generate high event volume and both display entirely as Cryptic in the Open-Audit feed. Together they represent the majority of DeFi event traffic on Stellar. A single issue is raised for both because their implementation patterns are identical and a contributor taking this on should deliver both.
Background
The blueprint pattern is thoroughly established and documented. Both protocols have publicly available contract source code. Both require additions to all four locale files. Both must be registered in buildRegistry() in registry.ts. The translation types interface is fully defined and the generic and sdex namespaces provide concrete examples of what a protocol namespace should look like.
Required work
Research the Soroswap Router event schema from the Soroswap core repository — specifically the topic and data XDR layout for swap, add liquidity, and remove liquidity events. Research the Blend Protocol event schema from the blend-contracts repository — specifically the topic and data XDR layout for supply, borrow, repay, withdraw, and liquidate events. Create lib/translator/blueprints/soroswap-router.ts implementing a factory function that handles all three Soroswap event types and returns null for unknown event names. Create lib/translator/blueprints/blend-pool.ts implementing a factory function that handles all five Blend event types. Add a soroswap namespace and a blend namespace to the TranslationMap interface in lib/translator/types.ts. Add both namespaces to all four locale files — English, Spanish, French, and Chinese. Register both blueprints with documented mainnet and testnet contract IDs in buildRegistry(). Write test files for each blueprint covering all event types, unknown event names returning null, all four language variants producing distinct non-empty output, and the matches function rejecting events from unrelated contracts. Run npm run validate:blueprints and ensure it passes.
Acceptance criteria
Soroswap swap, add, and remove events display human-readable descriptions. Blend supply, borrow, repay, withdraw, and liquidate events display human-readable descriptions. All four locale files are updated with both new namespaces. The blueprint validation script passes. All tests pass.