Skip to content

SYN-11361: Add crypto fee payment and issuer freeze/seize effect forms - #5000

Open
mikemoritz wants to merge 3 commits into
masterfrom
syn11361-txn-frozen
Open

SYN-11361: Add crypto fee payment and issuer freeze/seize effect forms#5000
mikemoritz wants to merge 3 commits into
masterfrom
syn11361-txn-frozen

Conversation

@mikemoritz

@mikemoritz mikemoritz commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Model additions to support frozen crypto-currency transactions and swaps:

  • Add crypto:payment:fee form to represent the payer and value of a transaction fee. The crypto:currency:transaction:fee prop remains the shorthand total.
  • Add crypto:smart:effect:freeze effect form for issuer blocklist freeze/unfreeze actions (:frozen bool: true=blocklisted, false=unfrozen).
  • Add crypto:smart:effect:seize effect form for issuer destruction of the tokens held by an address (preserves the victim address, which edittokensupply cannot).
  • Add crypto:smart:effect:swaptokens effect form for DEX/AMM swaps (a swap is not derivable from the individual token transfers). A null :sent:contract / :received:contract indicates a native currency leg.
  • Add crypto:currency:bridge:swap form for cross-chain swaps, linking the origin and destination transactions on different chains so an analyst can pivot between the two legs. Destination props other than the transaction are optional (a matched swap may lack destination detail).

Test plan

  • Extended test_model_crypto_currency with prop/pivot assertions for all five forms.
  • python -m pytest synapse/tests/test_model_crypto.py passes; ruff clean.

Related

Companion 3.x PR (synapse-enterprise): https://github.com/vertexproject/synapse-enterprise/pull/931

🤖 Generated with Claude Code

- Add ``crypto:payment:fee`` form to represent the payer and value of a
  transaction fee (the ``crypto:currency:transaction:fee`` prop remains
  the shorthand total).
- Add ``crypto:smart:effect:freeze`` effect form for issuer blocklist
  freeze/unfreeze actions.
- Add ``crypto:smart:effect:seize`` effect form for issuer destruction of
  the tokens held by an address.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019GyuV9SWnKTZyg8VoPtsYz
@codecov

codecov Bot commented Aug 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.81%. Comparing base (a2efa62) to head (cdeeca9).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #5000      +/-   ##
==========================================
- Coverage   97.82%   97.81%   -0.01%     
==========================================
  Files         307      307              
  Lines       65219    65219              
==========================================
- Hits        63800    63794       -6     
- Misses       1419     1425       +6     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

mikemoritz and others added 2 commits August 13, 2026 12:55
…orms

- Add ``crypto:smart:effect:swaptokens`` effect form to represent a DEX/AMM
  swap as a distinct fact (a swap is not derivable from the individual token
  transfers). A null ``:sent:contract`` / ``:received:contract`` indicates a
  native currency leg.
- Add ``crypto:currency:bridge:swap`` form to represent a cross-chain swap
  which links the origin and destination transactions on different chains,
  enabling pivots between the two legs. Destination properties other than the
  transaction are optional since a matched swap may lack destination details.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019GyuV9SWnKTZyg8VoPtsYz
Match the 3.x ``base:name`` behavior (case-preserving) so the same bridge
protocol name normalizes identically on both version lines.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019GyuV9SWnKTZyg8VoPtsYz
@mikemoritz
mikemoritz marked this pull request as ready for review August 13, 2026 16:31
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 participant