Skip to content

feat: implement EventEngine for Stellar network event monitoring and …#244

Merged
determined-001 merged 3 commits intodetermined-001:mainfrom
Chrisbankz0:feat/72-account-created-normalization
May 1, 2026
Merged

feat: implement EventEngine for Stellar network event monitoring and …#244
determined-001 merged 3 commits intodetermined-001:mainfrom
Chrisbankz0:feat/72-account-created-normalization

Conversation

@Chrisbankz0
Copy link
Copy Markdown
Contributor

#closes #72

Context

create_account is the operation that funds a new Stellar account. Although it is semantically a payment, the Horizon API does not classify it as type: "payment". Because of this, the engine was previously dropping these records, causing problems for wallet onboarding flows that depend on detecting account creations.

Changes Included

This PR introduces support for detecting and properly normalizing create_account events.

  • Types Updated: Added AccountEventType and AccountCreatedEvent to the event-type union (NormalizedEvent) in packages/pulse-core/src/index.ts.
  • Normalization: Introduced a create_account branch within EventEngine.ts normalize(), which parses the record into an account.created event type containing funder, account, and starting_balance fields.
  • Routing: Updated the route() method to correctly dispatch account.created events. The event is simultaneously emitted to any watcher subscribed to either the funder or the new account.
  • Tests Added: Added comprehensive unit test coverage in packages/pulse-core/test/pulse-core.test.ts against a mocked create_account operation payload, ensuring strict normalization and routing assertions.

Verification / Testing

  • pnpm install
  • pnpm --filter @orbital/pulse-core test
  • All tests in test/pulse-core.test.ts should pass, particularly the newly added block: describe("create_account → account.created").

#closes

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 28, 2026

Someone is attempting to deploy a commit to the determined's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented Apr 28, 2026

@Chrisbankz0 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Adds AccountCreatedEvent type and normalizeCreateAccount() with full field
validation including created_at. Routes events to both funder and account
watchers with passesFilter() applied independently to each.
@determined-001 determined-001 merged commit bca3fcf into determined-001:main May 1, 2026
1 check failed
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.

1.12 — Normalize create_account operations

2 participants