SYN-11361: Add crypto fee payment and issuer freeze/seize effect forms - #5000
Open
mikemoritz wants to merge 3 commits into
Open
SYN-11361: Add crypto fee payment and issuer freeze/seize effect forms#5000mikemoritz wants to merge 3 commits into
mikemoritz wants to merge 3 commits into
Conversation
- 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 Report✅ All modified and coverable lines are covered by tests. 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. 🚀 New features to boost your workflow:
|
…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
marked this pull request as ready for review
August 13, 2026 16:31
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Model additions to support frozen crypto-currency transactions and swaps:
crypto:payment:feeform to represent the payer and value of a transaction fee. Thecrypto:currency:transaction:feeprop remains the shorthand total.crypto:smart:effect:freezeeffect form for issuer blocklist freeze/unfreeze actions (:frozenbool: true=blocklisted, false=unfrozen).crypto:smart:effect:seizeeffect form for issuer destruction of the tokens held by an address (preserves the victim address, whichedittokensupplycannot).crypto:smart:effect:swaptokenseffect form for DEX/AMM swaps (a swap is not derivable from the individual token transfers). A null:sent:contract/:received:contractindicates a native currency leg.crypto:currency:bridge:swapform 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
test_model_crypto_currencywith prop/pivot assertions for all five forms.python -m pytest synapse/tests/test_model_crypto.pypasses;ruffclean.Related
Companion 3.x PR (synapse-enterprise): https://github.com/vertexproject/synapse-enterprise/pull/931
🤖 Generated with Claude Code