Skip to content

Development - #626

Merged
pablocampogo merged 24 commits into
mainfrom
development
Sep 25, 2026
Merged

pablocampogo merged 24 commits into
mainfrom
development

Conversation

@pablocampogo

Copy link
Copy Markdown
Collaborator

Changelog

v0.1.28+beta

Added

  • Global hex encoding contract for protobuf JSON: all protobuf bytes fields are now represented as hex, with recursive transform helpers for native and dynamically registered plugin messages (lib/codec.go).
  • Orders JSON (un)marshalling that represents reset/close order IDs as hex (lib/certificate.go).
  • Explorer copyText clipboard helper with a fallback for HTTP LAN origins and iOS, plus tests (cmd/rpc/web/explorer/src/lib/clipboard.ts, tests/clipboard.test.cjs).
  • Test coverage for codec hex transforms, Orders JSON, and telemetry nil-account handling (lib/codec_test.go, lib/certificate_test.go, controller/block_test.go, fsm/message_test.go).

Changed

  • Transaction.UnmarshalJSON now decodes registered native messages first, then falls back to protobuf-descriptor decoding and raw Any bytes (lib/tx.go).
  • Explorer copy usages refactored to the shared clipboard helper across account, block, search, token-swap, transaction, and validator components.
  • Plugin tutorials and RPC tests updated to reflect hex JSON across C#, Go, Kotlin, Python, and TypeScript; native JSON coverage moved into message tests.
  • Increased TypeScript tutorial test timeout and assorted tutorial fixes.
  • Bumped software version to v0.1.28+beta (cmd/rpc/server.go).
  • Removed the changelog requirement from CONTRIBUTING.md.

Fixed

Compatibility note: The JSON representation of protobuf bytes fields changed from base64 to hex. Downstream consumers that parse transaction/message JSON must be updated accordingly.

Included PRs

erhnysr and others added 23 commits August 30, 2026 21:00
…count

Add a regression test that drives UpdateTelemetry() with a state machine whose
store Get() always fails, forcing GetAccount() to return a nil account with an
error. The test asserts UpdateTelemetry() does not panic; it fails on the
current code because the account metric branch dereferences the nil account.
UpdateTelemetry() dropped the error from GetAccount() and dereferenced the
returned account directly. GetAccount() returns a nil account together with an
error on a store read or unmarshal failure, so the account metric branch could
panic with a nil pointer dereference.

Add a nil check before reading the account amount, matching the validator
metric branch directly above which already guards its result with 'v != nil'.
fix(explorer): restore copy buttons on HTTP origins
chore: delete changelog requirement in contributing guide
…ntroller

UpdateTelemetry's new error log (c.log.Errorf) panicked in
TestUpdateTelemetryHandlesGetAccountError because the test's minimal
Controller never set the log field, leaving it a nil LoggerI. Wire
lib.NewNullLogger() the way production controllers always have a
logger set.
fix(controller): guard against nil account in UpdateTelemetry
…hex-sep23

Fix/global protobuf json hex sep23
@pablocampogo pablocampogo self-assigned this Sep 25, 2026
@pablocampogo
pablocampogo merged commit 8c29763 into main Sep 25, 2026
6 checks passed

This branch was successfully deployed

1 active deployment
github-pages — 22d9b01d Deployed Sep 25, 2026 by pablocampogo via deploy #649
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.

4 participants