feat: add token behavior sealed trait, builder, and proto (16-type TDEG matrix)#118
Open
ottobot-ai wants to merge 1 commit intoscasplte2:mainfrom
Open
feat: add token behavior sealed trait, builder, and proto (16-type TDEG matrix)#118ottobot-ai wants to merge 1 commit intoscasplte2:mainfrom
ottobot-ai wants to merge 1 commit intoscasplte2:mainfrom
Conversation
502d0d4 to
356214b
Compare
356214b to
4ee7da5
Compare
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
Implements the complete 16-type token behavior system using a 4-boolean TDEG matrix in Scala, achieving cross-language equivalence with the TypeScript SDK (PR #45).
Trello Card
🎲 SDK: 16-type token behavior matrix implementation
Deliverables
TokenBehavior— Sealed trait with 16 case objects (TDEG model) inmodules/models/TokenBehaviorBuilder.toStateMachineDefinition(behavior)— Factory producingStateMachineDefinitionTokenBehavior.isOperationAllowed(behavior, op): Boolean— Operation legality APITokenOperation— Enumeratum enum for 8 operation typestoken.proto— New domain proto underottochain/v1/withTokenBehaviorType+TokenOperationTypeenumsTokenBehaviorSuite— 58 TDD tests, all passingKey Design Decisions
modules/models/StateMachineDefinition; pure data, no IOtoken.protosequenceNumber$ordinallatent bug (defaults to 0 in JLVM)4-bit TDEG Encoding
16 named presets: SOULBOUND_RECEIPT(0) → GOVERNED_EXPIRABLE_FUNGIBLE(15)
Test Coverage (58 tests, all passing)
isTransferable,isDivisible,fromFlags, etc.StateMachineDefinitionwith correct statesStateIdwrappers, metadata fields, guardsnft,fungibleToken,stablecoin,license,soulboundBadgeReferences
ottobot-ai/ottochain-sdkPR fix: relax L1 sequence validation to >= for batching support #45 (84 tests)dfa-json-logic-patterns.md§11Implemented by @work (OttoBot) | 2026-02-26