Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
139 commits
Select commit Hold shift + click to select a range
9f23d67
feat(rs-dpp): unify JSON/Value conversion traits — first pass
shumkov Apr 30, 2026
674ab6b
docs(json-value-unification): record pass-1 lessons and progress
shumkov Apr 30, 2026
a314ed9
fix(rs-dpp): drop canonical-trait impls on DataContract (E0034 ambigu…
shumkov Apr 30, 2026
54fa225
test(rs-dpp): add round-trip tests for first batch of unified types
shumkov Apr 30, 2026
b10d957
test(rs-dpp): add round-trip tests for 3 more flat enums (pass 2)
shumkov Apr 30, 2026
4a796b9
test(rs-dpp): add round-trip tests for DocumentPatch + TODO for Token…
shumkov Apr 30, 2026
abcb0af
test(rs-dpp): upgrade test convention — non-default fixture + per-pro…
shumkov Apr 30, 2026
d322863
test(rs-dpp): upgrade IdentityTopUpFromAddresses + IdentityCreditTran…
shumkov Apr 30, 2026
461e89d
test(rs-dpp): upgrade remaining address transitions + log OutPoint bug
shumkov Apr 30, 2026
174fd38
test(rs-dpp): upgrade Identity test to non-default fixture + per-prop…
shumkov Apr 30, 2026
c73ce57
test(rs-dpp): upgrade IdentityPublicKey + TokenContractInfo + Pooling…
shumkov Apr 30, 2026
eca07aa
test(rs-dpp): upgrade flat-enum tests to each-variant pattern
shumkov Apr 30, 2026
c1cdd3a
test(rs-dpp): upgrade GroupStateTransitionInfo + DocumentPatch tests
shumkov Apr 30, 2026
8c4e1c6
test(rs-dpp): upgrade TokenPaymentInfo test to non-default fixture + …
shumkov Apr 30, 2026
6f9a487
test(rs-dpp): upgrade BatchTransition test to non-default fixture + p…
shumkov Apr 30, 2026
b041790
docs(json-value-unification): record pass-2 progress and remaining-wo…
shumkov Apr 30, 2026
1559251
test(rs-dpp): add round-trip tests for 7 state-transition outer enums
shumkov Apr 30, 2026
b1c723a
test(rs-dpp): add round-trip tests for 5 leaf types with Default
shumkov Apr 30, 2026
76820e7
docs(unification): clarify fixture sources — hand-built > random_* > …
shumkov Apr 30, 2026
d368ef1
test(rs-dpp): add explicit fixtures for 5 leaf types (pass 2)
shumkov Apr 30, 2026
77dadbc
test(rs-dpp): add fixtures for AssetLockValue + ChainAssetLockProof
shumkov Apr 30, 2026
054d9bf
test(rs-dpp): add fixture for TokenKeepsHistoryRules
shumkov Apr 30, 2026
fcf9383
test(rs-dpp): add tests for index types (Order, Resolution, Contested…
shumkov Apr 30, 2026
d49b00d
test(rs-dpp): add tests for ChangeControlRules + ContestedDocumentRes…
shumkov Apr 30, 2026
06dd094
test(rs-dpp): add tests for DocumentBaseTransition + DocumentDeleteTr…
shumkov Apr 30, 2026
dc3e323
test(rs-dpp): add fixture-based test for DocumentCreateTransition
shumkov Apr 30, 2026
6ecd2fb
test(rs-dpp): add tests for 4 more document sub-transitions
shumkov Apr 30, 2026
16790c6
test(rs-dpp): add fixtures for TokenBaseTransition + TokenBurn + Toke…
shumkov Apr 30, 2026
74e1b64
test(rs-dpp): add fixtures for TokenFreeze + TokenUnfreeze + TokenDes…
shumkov Apr 30, 2026
88fee7e
test(rs-dpp): add fixtures for 4 more token sub-transitions (Emergenc…
shumkov Apr 30, 2026
4b6b07c
test(rs-dpp): add tests for Group + AddressFundsFeeStrategyStep
shumkov Apr 30, 2026
66a7647
test(rs-dpp): add fixture for TokenMarketplaceRules
shumkov Apr 30, 2026
204d65e
test(rs-dpp): add fixtures for TokenConfigurationChangeItem + TokenDi…
shumkov Apr 30, 2026
77f54e9
test(rs-dpp): add AddressWitness each-variant test
shumkov Apr 30, 2026
fb0028a
docs(unification): finalize pass-2 status — 148 tests, ~70 types covered
shumkov Apr 30, 2026
619d32f
test(rs-dpp): add Epoch round-trip test (key reconstructed from index…
shumkov Apr 30, 2026
af79e14
test(rs-dpp): add TokenConfigurationLocalization fixture + Epoch test…
shumkov Apr 30, 2026
bcb97e7
test(rs-dpp): add TokenConfigurationConvention fixture
shumkov Apr 30, 2026
d09384b
test(rs-dpp): add ResourceVote + ContenderWithSerializedDocument tests
shumkov Apr 30, 2026
784e7a4
test(rs-dpp): add DataContractConfig round-trip test
shumkov Apr 30, 2026
53a642b
test(rs-dpp): add StorageKeyRequirements + ArrayItemType each-variant…
shumkov Apr 30, 2026
683ff1d
docs(unification): record final pass-2 progress (164 tests, ~80 types)
shumkov Apr 30, 2026
dc32f71
test(rs-dpp): add DataContractInSerializationFormat fixture
shumkov Apr 30, 2026
90af517
test(rs-dpp): TODO DataContract*Transition fixtures (V0 inner is modu…
shumkov Apr 30, 2026
a278a3e
test(rs-dpp): add ShieldTransition test (value_round_trip ignored - s…
shumkov Apr 30, 2026
ca12fe8
test(rs-dpp): add UnshieldTransition + ShieldedTransferTransition tests
shumkov Apr 30, 2026
7644aa5
test(rs-dpp): add ShieldedWithdrawal + ShieldFromAssetLock tests
shumkov Apr 30, 2026
3a64d61
test(rs-dpp): add TokenConfiguration test (default_most_restrictive f…
shumkov Apr 30, 2026
70a97e9
test(rs-dpp): add StateTransitionProofResult test (variant matching, …
shumkov Apr 30, 2026
b2c2938
feat(rs-dpp): derive PartialEq for StateTransitionProofResult + Store…
shumkov Apr 30, 2026
9eea124
docs(unification): finalize pass-2 status (181 tests, 12 ignored, ~95…
shumkov Apr 30, 2026
ec51727
test(rs-dpp): add DataContractCreateTransition + DataContractUpdateTr…
shumkov Apr 30, 2026
669e954
test(rs-dpp): un-ignore IdentityCreateTransition tests using instant_…
shumkov Apr 30, 2026
e45019b
test(rs-dpp): add TokenConfigUpdateTransition test (NoChange variant …
shumkov Apr 30, 2026
4e55bf9
test(rs-dpp): add TokenDistributionRules fixture (191 tests)
shumkov Apr 30, 2026
eee7d4b
test(rs-dpp): add TokenPreProgrammedDistribution fixture (193 tests)
shumkov Apr 30, 2026
f857032
test(rs-dpp): add Validator + TokenPerpetualDistribution fixtures (19…
shumkov Apr 30, 2026
fa554de
docs(unification): finalize pass-2 status (197 tests, ~95% coverage)
shumkov Apr 30, 2026
f9a7ec5
test(rs-dpp): add ValidatorSet test + log BLS borrowed-string deseria…
shumkov May 1, 2026
95554c8
fix(rs-dpp): resolve ExtendedDocument Critical-3 non-round-trippable …
shumkov May 1, 2026
0273e3e
fix(platform-value): Bytes32 dual-visitor for serde ContentDeserializer
shumkov May 1, 2026
e9efa82
fix(rs-dpp): serde_bytes / serde_bytes_var dual-shape visitor for tag…
shumkov May 1, 2026
09c0a2b
fix(rs-dpp): local outpoint_serde wrapper for OutPoint inside tagged …
shumkov May 1, 2026
c21a3c0
fix(rs-dpp): local bls_pubkey_serde wrapper unblocks ValidatorSet JSO…
shumkov May 4, 2026
ec43a2a
fix(platform-value): typed map keys — drop string-only MapKeySerializer
shumkov May 4, 2026
7397c73
test(rs-dpp): JSON round-trip equality up-to-int-variant for DataCont…
shumkov May 4, 2026
345db30
docs(unification): refresh plan + inventory for pass-2 completion
shumkov May 4, 2026
f3d6a2b
test(rs-dpp): add per-property assertions to AddressFundsFeeStrategyS…
shumkov May 4, 2026
a777e71
test(rs-dpp): apply per-property assertion convention across 49 round…
shumkov May 4, 2026
98fc37d
test(rs-dpp): drop tautological compare-to-original from per-property…
shumkov May 4, 2026
0f54c64
test(rs-dpp): demonstrate full-wire-shape assertion pattern (2 examples)
shumkov May 4, 2026
538dc34
test(rs-dpp): comment-flag JSON sized-int loss in wire-shape assertions
shumkov May 4, 2026
8b198eb
test(rs-dpp): full wire-shape assertions across 49 round-trip tests
shumkov May 4, 2026
1cc8452
test(rs-dpp): full wire-shape assertions across 35 more round-trip tests
shumkov May 4, 2026
28c0022
fix(rs-dpp): apply $formatVersion convention to AssetLockValue + Toke…
shumkov May 4, 2026
77956d1
fix(rs-dpp): apply $formatVersion convention to Validator + ValidatorSet
shumkov May 4, 2026
072c841
test(rs-dpp): correct misleading dashcore-PR-708 reference in Validat…
shumkov May 5, 2026
cf6cb60
docs(rs-dpp): point Validator/ValidatorSet ignores at the new dashcor…
shumkov May 5, 2026
4fcb3d4
fix(rs-dpp): tag StateTransition umbrella with `tag = "type"` (was un…
shumkov May 5, 2026
7682b34
test(rs-dpp): per-variant umbrella tests for StateTransition tag disp…
shumkov May 5, 2026
fe92868
fix(rs-dpp): flatten transition wire shape via tagged enum convention
shumkov May 6, 2026
d14ce1a
fix(rs-dpp): apply json_safe_fields to DocumentCreateTransitionV0 + base
shumkov May 6, 2026
017c308
fix(rs-dpp): apply json_safe_fields to remaining transition V0 structs
shumkov May 6, 2026
cd56289
fix(rs-dpp): json_safe_fields for TokenTransferTransitionV0 via encry…
shumkov May 6, 2026
38d1388
fix(rs-dpp): \$-prefix system discriminators on transition umbrellas
shumkov May 6, 2026
f11fdb5
fix(rs-dpp): flatten Vote / VotePoll, leave GroupActionEvent adjacent
shumkov May 6, 2026
c36f93b
fix(rs-dpp): flatten GroupActionEvent with `kind` discriminator
shumkov May 6, 2026
2674d95
fix(rs-dpp): flatten ResourceVoteChoice + ContestedDocumentVotePollWi…
shumkov May 6, 2026
71d2e75
fix(rs-dpp): flatten TokenEvent via custom serde impl
shumkov May 6, 2026
91b16e4
docs(rs-dpp): refresh stale adjacent-tagging comment in resource_vote…
shumkov May 6, 2026
6e5f9d9
docs(rs-dpp): refresh unification plan with tag-shape convention sweep
shumkov May 6, 2026
4a40740
refactor(wasm-dpp2): migrate Group A _serde! → _inner! (15 wrappers)
shumkov May 6, 2026
4e9d1ee
fix(wasm-dpp2): stringify non-Text map keys at platform_value→JS boun…
shumkov May 7, 2026
6b81fc9
test(wasm-dpp2): update fixtures for groups 1-4 wire-shape changes
shumkov May 7, 2026
1958421
test(wasm-dpp2): update fixtures for groups 5-10 wire-shape changes
shumkov May 7, 2026
b39b59c
docs(wasm-dpp2): sync TypeScript types with new wire shapes
shumkov May 7, 2026
40d0c6e
docs: scope-correct Phase E in json-value unification plan
shumkov May 7, 2026
356be93
refactor: delete wasm-dpp2 bytes_b64, use canonical dpp helpers
shumkov May 7, 2026
be93bae
refactor(wasm-dpp2): migrate 3 wrappers to _inner!, simplify PoolingWasm
shumkov May 7, 2026
5f479b0
refactor(wasm-dpp2): use canonical dpp traits in Identity / PartialId…
shumkov May 7, 2026
27b32f7
refactor(wasm-dpp2): route DataContractConfig + Localization through …
shumkov May 7, 2026
a4a2ff2
docs: capture wasm-dpp2 adapter-layer audit in unification plan
shumkov May 7, 2026
5caa138
ci(rs-dpp): forbid new inherent JSON/Value conversion methods + docs …
shumkov May 7, 2026
8aa90ff
docs: mark Phase F complete in json-value unification plan
shumkov May 7, 2026
30b43dc
refactor(rs-dpp): delete pure-delegation to_object/to_cleaned_object …
shumkov May 7, 2026
bde42eb
chore(rs-dpp): remove dead-code from identity_public_key + public_key…
shumkov May 7, 2026
a1533e8
docs: mark Phase D steps 2 and 3 complete in unification plan
shumkov May 7, 2026
7bed945
refactor(rs-dpp): strip disabledAt:null via serde attribute
shumkov May 7, 2026
1e4b967
docs: mark Phase D step 4 (skip_serializing_if for disabled_at) complete
shumkov May 7, 2026
18034d6
refactor(rs-dpp): delete now-redundant to_cleaned_object trait surface
shumkov May 7, 2026
76485e0
docs: mark Phase D step 5 (partial) complete in unification plan
shumkov May 7, 2026
146959c
refactor(rs-dpp): drop redundant to_object/into_object from legacy IP…
shumkov May 7, 2026
3d087d8
refactor(rs-dpp): delete IdentityPublicKeyPlatformValueConversionMeth…
shumkov May 7, 2026
8b3cb08
refactor(rs-dpp): drop dead platform_version arg from IPK from_json_o…
shumkov May 7, 2026
32a33f3
refactor(rs-dpp,wasm-dpp2): switch IPK JSON to canonical, delete lega…
shumkov May 7, 2026
7d44f44
refactor(rs-dpp): delete asymmetric AssetLockProof to_raw_object + Tr…
shumkov May 7, 2026
d7e61dc
refactor(rs-dpp): replace AssetLockProof TryFrom hack with canonical …
shumkov May 7, 2026
8690254
docs: mark Phase D steps 5+6 fully complete; defer step 8 with audit …
shumkov May 7, 2026
678121a
refactor(rs-dpp): trim Document family legacy traits to genuinely-dif…
shumkov May 8, 2026
e18e08c
docs: mark Phase D step 8 slice A done; record audit course-correction
shumkov May 8, 2026
92f2fe6
refactor(rs-dpp): delete Document legacy ingest, complete step 8 slice B
shumkov May 8, 2026
8e94f38
refactor(rs-dpp): delete StateTransitionValueConvert/JsonConvert traits
shumkov May 8, 2026
563cbf0
docs: update plan for Phase D step 9; delete dead state_transition_he…
shumkov May 8, 2026
ad584ff
refactor(rs-dpp): roll out json_safe_fields to BatchTransition family
shumkov May 8, 2026
d96fdfe
refactor(rs-dpp): replace manual serde on AddressWitness, ContestedIn…
shumkov May 8, 2026
b82be69
fix(rs-dpp): use camelCase not snake_case for ContestedIndexFieldMatch
shumkov May 8, 2026
94c8b2b
refactor(rs-dpp): rename DataContract _versioned methods + pin Critic…
shumkov May 8, 2026
e9fad56
refactor(rs-dpp): no-validation by default in DataContract Deserialize
shumkov May 9, 2026
b40f175
refactor(rs-dpp): split DataContract API by validation, drop _versioned
shumkov May 9, 2026
0fb8875
test(rs-dpp): restore V1 withdrawal output_script: None round-trip co…
shumkov May 11, 2026
dcddc8c
test(rs-dpp): unknown $formatVersion error coverage on canonical tag …
shumkov May 11, 2026
200e770
docs: mark json_preserves_format_version_tag follow-up as verified
shumkov May 11, 2026
7ece217
docs(rs-dpp): warn about HR/non-HR divergence on JsonConvertible / Va…
shumkov May 11, 2026
141a05c
fix(platform-value): remove silent array→bytes coercion (Critical-2)
shumkov May 11, 2026
24a31f5
docs: mark all Phase D + Critical findings complete in plan header
shumkov May 11, 2026
31da960
docs: confirm Pass 4 status — 17 _serde! sites confirmed infeasible
shumkov May 11, 2026
0ded869
Merge remote-tracking branch 'origin/v3.1-dev' into feat/json-convert…
shumkov May 11, 2026
09adb35
refactor(rs-dpp): drop outpoint_serde wrapper after dashcore #708 lands
shumkov May 11, 2026
b6110d6
chore: apply cargo fmt to fix CI
shumkov May 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .github/workflows/tests-rs-workspace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,12 @@ jobs:
- name: Check formatting
run: cargo fmt --check --all

- name: No new inherent JSON/Value conversions
# Ensures new rs-dpp types use the canonical JsonConvertible /
# ValueConvertible traits instead of re-introducing parallel
# inherent methods. See docs/json-value-conversion-canonical-pattern.md.
run: ./scripts/lint/check_no_new_inherent_conversions.sh

- name: Clippy lints
run: |
cargo clippy \
Expand Down
88 changes: 37 additions & 51 deletions .serena/project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,18 @@ project_name: "platform"


# list of languages for which language servers are started; choose from:
# al bash clojure cpp csharp
# csharp_omnisharp dart elixir elm erlang
# fortran fsharp go groovy haskell
# java julia kotlin lua markdown
# matlab nix pascal perl php
# php_phpactor powershell python python_jedi r
# rego ruby ruby_solargraph rust scala
# swift terraform toml typescript typescript_vts
# vue yaml zig
# al ansible bash clojure cpp
# cpp_ccls crystal csharp csharp_omnisharp dart
# elixir elm erlang fortran fsharp
# go groovy haskell haxe hlsl
# java json julia kotlin lean4
# lua luau markdown matlab msl
# nix ocaml pascal perl php
# php_phpactor powershell python python_jedi python_ty
# r rego ruby ruby_solargraph rust
# scala solidity swift systemverilog terraform
# toml typescript typescript_vts vue yaml
# zig
# (This list may be outdated. For the current list, see values of Language enum here:
# https://github.com/oraios/serena/blob/main/src/solidlsp/ls_config.py
# For some languages, there are alternative language servers, e.g. csharp_omnisharp, ruby_solargraph.)
Expand Down Expand Up @@ -59,53 +62,17 @@ read_only: false

# list of tool names to exclude.
# This extends the existing exclusions (e.g. from the global configuration)
#
# Below is the complete list of tools for convenience.
# To make sure you have the latest list of tools, and to view their descriptions,
# execute `uv run scripts/print_tool_overview.py`.
#
# * `activate_project`: Activates a project by name.
# * `check_onboarding_performed`: Checks whether project onboarding was already performed.
# * `create_text_file`: Creates/overwrites a file in the project directory.
# * `delete_lines`: Deletes a range of lines within a file.
# * `delete_memory`: Deletes a memory from Serena's project-specific memory store.
# * `execute_shell_command`: Executes a shell command.
# * `find_referencing_code_snippets`: Finds code snippets in which the symbol at the given location is referenced.
# * `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type).
# * `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type).
# * `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes.
# * `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file.
# * `initial_instructions`: Gets the initial instructions for the current project.
# Should only be used in settings where the system prompt cannot be set,
# e.g. in clients you have no control over, like Claude Desktop.
# * `insert_after_symbol`: Inserts content after the end of the definition of a given symbol.
# * `insert_at_line`: Inserts content at a given line in a file.
# * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol.
# * `list_dir`: Lists files and directories in the given directory (optionally with recursion).
# * `list_memories`: Lists memories in Serena's project-specific memory store.
# * `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building).
# * `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context).
# * `read_file`: Reads a file within the project directory.
# * `read_memory`: Reads the memory with the given name from Serena's project-specific memory store.
# * `remove_project`: Removes a project from the Serena configuration.
# * `replace_lines`: Replaces a range of lines within a file with new content.
# * `replace_symbol_body`: Replaces the full definition of a symbol.
# * `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen.
# * `search_for_pattern`: Performs a search for a pattern in the project.
# * `summarize_changes`: Provides instructions for summarizing the changes made to the codebase.
# * `switch_modes`: Activates modes by providing a list of their names
# * `think_about_collected_information`: Thinking tool for pondering the completeness of collected information.
# * `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task.
# * `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed.
# * `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store.
# Find the list of tools here: https://oraios.github.io/serena/01-about/035_tools.html
excluded_tools: []

# list of tools to include that would otherwise be disabled (particularly optional tools that are disabled by default).
# This extends the existing inclusions (e.g. from the global configuration).
# Find the list of tools here: https://oraios.github.io/serena/01-about/035_tools.html
included_optional_tools: []

# fixed set of tools to use as the base tool set (if non-empty), replacing Serena's default set of tools.
# This cannot be combined with non-empty excluded_tools or included_optional_tools.
# Find the list of tools here: https://oraios.github.io/serena/01-about/035_tools.html
fixed_tools: []

# list of mode names to that are always to be included in the set of active modes
Expand All @@ -116,11 +83,14 @@ fixed_tools: []
# Set this to a list of mode names to always include the respective modes for this project.
base_modes:

# list of mode names that are to be activated by default.
# The full set of modes to be activated is base_modes + default_modes.
# If the setting is undefined, the default_modes from the global configuration (serena_config.yml) apply.
# list of mode names that are to be activated by default, overriding the setting in the global configuration.
# The full set of modes to be activated is base_modes (from global config) + default_modes + added_modes.
# If the setting is undefined/empty, the default_modes from the global configuration (serena_config.yml) apply.
# Otherwise, this overrides the setting from the global configuration (serena_config.yml).
# Therefore, you can set this to [] if you do not want the default modes defined in the global config to apply
# for this project.
# This setting can, in turn, be overridden by CLI parameters (--mode).
# See https://oraios.github.io/serena/02-usage/050_configuration.html#modes
default_modes:

# initial prompt for the project. It will always be given to the LLM upon activating the project
Expand Down Expand Up @@ -150,3 +120,19 @@ ignored_memory_patterns: []
# Have a look at the docstring of the constructors of the LS implementations within solidlsp (e.g., for C# or PHP) to see which options are available.
# No documentation on options means no options are available.
ls_specific_settings: {}

# list of mode names to be activated additionally for this project, e.g. ["query-projects"]
# The full set of modes to be activated is base_modes (from global config) + default_modes + added_modes.
# See https://oraios.github.io/serena/02-usage/050_configuration.html#modes
added_modes:

# list of additional workspace folder paths for cross-package reference support (e.g. in monorepos).
# Paths can be absolute or relative to the project root.
# Each folder is registered as an LSP workspace folder, enabling language servers to discover
# symbols and references across package boundaries.
# Currently supported for: TypeScript.
# Example:
# additional_workspace_folders:
# - ../sibling-package
# - ../shared-lib
additional_workspace_folders: []
Loading
Loading