Skip to content

fix: align SDK implementation#62

Merged
lightsing merged 2 commits intodev/m2from
copilot/update-fix-other-language-sdks
Mar 17, 2026
Merged

fix: align SDK implementation#62
lightsing merged 2 commits intodev/m2from
copilot/update-fix-other-language-sdks

Conversation

Copy link
Copy Markdown

Copilot AI commented Mar 17, 2026

Cross-SDK audit against the Rust core (crates/core/) found binary format, validation, and configuration mismatches.

TypeScript SDK

  • EAS chain_id encoding: writeU32writeBigUint(BigInt(...)) to match Rust's u64 LEB128 encoding. This is a binary compatibility issue — chain IDs >2³² would produce incorrect wire format.
  • URI validation: Regex allowed whitespace (\s) and enforced http(s):// prefix. Rust validates a strict character whitelist only: a-zA-Z0-9.-_/:.
  • Sepolia EAS address: 0xC2679f...0xC47300... to match Rust/Go.

Python SDK

  • URI validation: Regex ^https?://[^\s]+$ accepted ?, #, &, @ etc. Aligned encoder and decoder to Rust's character whitelist.
  • Sepolia EAS address: Same fix as TypeScript.
  • Test update: test_invalid_url_format now uses a URL with ?/& (chars rejected by the Rust whitelist) instead of "not-a-url" (which only contains allowed chars).

Go SDK

  • Default calendar URL: Added missing trailing slash on lgm1.calendar.test.timestamps.now for consistency with Rust.
  • Test expectations: TestNewSDK subtests expected 1 calendar / 1 quorum but DefaultCalendars has 5 entries → ceil(5 × 0.66) = 4 quorum. Updated test assertions to match.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • a.pool.eternitywall.com
    • Triggering command: /usr/bin/python python -m pytest tests/ -v llector.slice --global de/node/bin/bash user.email (dns block)
    • Triggering command: /usr/bin/python python -m pytest tests/ -v u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper o6EASp.res pkg/mod/go.opent/opt/hostedtoolcache/go/1.24.13/x64/pkg/tool/linux_amd64/vet s ndor/bin/as as s in.so /lto-wrapper rgo/bin/as in.so /lto-wrapper rgo/bin/as gcc (dns block)
    • Triggering command: /usr/bin/python python -m pytest tests/ -v /tmp/go-build1278911479/b313/codec.test -importcfg u/13/collect2 -s -w -buildmode=exe u/13/collect2 --64�� u/13/liblto_plug-quiet _64-linux-gnu/13-dumpdir HYrgKW.res /home/REDACTED/go//opt/hostedtoolcache/go/1.24.13/x64/pkg/tool/linux_amd64/vet s tnet/tools/as /opt/hostedtoolc-buildtags (dns block)
  • a.pool.opentimestamps.org
    • Triggering command: /usr/bin/python python -m pytest tests/ -v llector.slice --global de/node/bin/bash user.email (dns block)
    • Triggering command: /usr/bin/python python -m pytest tests/ -v u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper o6EASp.res pkg/mod/go.opent/opt/hostedtoolcache/go/1.24.13/x64/pkg/tool/linux_amd64/vet s ndor/bin/as as s in.so /lto-wrapper rgo/bin/as in.so /lto-wrapper rgo/bin/as gcc (dns block)
    • Triggering command: /usr/bin/python python -m pytest tests/ -v /tmp/go-build1278911479/b313/codec.test -importcfg u/13/collect2 -s -w -buildmode=exe u/13/collect2 --64�� u/13/liblto_plug-quiet _64-linux-gnu/13-dumpdir HYrgKW.res /home/REDACTED/go//opt/hostedtoolcache/go/1.24.13/x64/pkg/tool/linux_amd64/vet s tnet/tools/as /opt/hostedtoolc-buildtags (dns block)
  • alice.btc.calendar.opentimestamps.org
    • Triggering command: /usr/bin/python python -m pytest tests/ -v llector.slice --global de/node/bin/bash user.email (dns block)
    • Triggering command: /usr/bin/python python -m pytest tests/ -v u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper o6EASp.res pkg/mod/go.opent/opt/hostedtoolcache/go/1.24.13/x64/pkg/tool/linux_amd64/vet s ndor/bin/as as s in.so /lto-wrapper rgo/bin/as in.so /lto-wrapper rgo/bin/as gcc (dns block)
    • Triggering command: /usr/bin/python python -m pytest tests/ -v /tmp/go-build1278911479/b313/codec.test -importcfg u/13/collect2 -s -w -buildmode=exe u/13/collect2 --64�� u/13/liblto_plug-quiet _64-linux-gnu/13-dumpdir HYrgKW.res /home/REDACTED/go//opt/hostedtoolcache/go/1.24.13/x64/pkg/tool/linux_amd64/vet s tnet/tools/as /opt/hostedtoolc-buildtags (dns block)
  • b.pool.opentimestamps.org
    • Triggering command: /usr/bin/python python -m pytest tests/ -v llector.slice --global de/node/bin/bash user.email (dns block)
    • Triggering command: /usr/bin/python python -m pytest tests/ -v u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper o6EASp.res pkg/mod/go.opent/opt/hostedtoolcache/go/1.24.13/x64/pkg/tool/linux_amd64/vet s ndor/bin/as as s in.so /lto-wrapper rgo/bin/as in.so /lto-wrapper rgo/bin/as gcc (dns block)
    • Triggering command: /usr/bin/python python -m pytest tests/ -v /tmp/go-build1278911479/b313/codec.test -importcfg u/13/collect2 -s -w -buildmode=exe u/13/collect2 --64�� u/13/liblto_plug-quiet _64-linux-gnu/13-dumpdir HYrgKW.res /home/REDACTED/go//opt/hostedtoolcache/go/1.24.13/x64/pkg/tool/linux_amd64/vet s tnet/tools/as /opt/hostedtoolc-buildtags (dns block)
  • bitcoin-rpc.publicnode.com
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --conditions node --conditions development --experimental-import-meta-resolve --require /home/REDACTED/work/uts/uts/node_modules/.pnpm/vitest@4.0.18_@types+node@24.10.4_@vitest+browser-playwright@4.0.18_jiti@2.6.1_lightnin_64d18c28a99bad70e3ee02f5c6f46702/node_modules/vitest/suppress-warnings.cjs /home/REDACTED/work/uts/uts/node_modules/.pnpm/vitest@4.0.18_@types+node@24.10.4_@vitest+browser-playwright@4.0.18_jiti@2.6.1_lightnin_64d18c28a99bad70e3ee02f5c6f46702/node_modules/vitest/dist/workers/forks.js (dns block)
    • Triggering command: /usr/bin/python python -m pytest tests/ -v llector.slice --global de/node/bin/bash user.email (dns block)
    • Triggering command: /usr/bin/python python -m pytest tests/ -v u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper o6EASp.res pkg/mod/go.opent/opt/hostedtoolcache/go/1.24.13/x64/pkg/tool/linux_amd64/vet s ndor/bin/as as s in.so /lto-wrapper rgo/bin/as in.so /lto-wrapper rgo/bin/as gcc (dns block)
  • lgm1.calendar.test.timestamps.now
    • Triggering command: /usr/bin/python python -m pytest tests/ -v llector.slice --global de/node/bin/bash user.email (dns block)
    • Triggering command: /usr/bin/python python -m pytest tests/ -v u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper o6EASp.res pkg/mod/go.opent/opt/hostedtoolcache/go/1.24.13/x64/pkg/tool/linux_amd64/vet s ndor/bin/as as s in.so /lto-wrapper rgo/bin/as in.so /lto-wrapper rgo/bin/as gcc (dns block)
    • Triggering command: /usr/bin/python python -m pytest tests/ -v /tmp/go-build1278911479/b313/codec.test -importcfg u/13/collect2 -s -w -buildmode=exe u/13/collect2 --64�� u/13/liblto_plug-quiet _64-linux-gnu/13-dumpdir HYrgKW.res /home/REDACTED/go//opt/hostedtoolcache/go/1.24.13/x64/pkg/tool/linux_amd64/vet s tnet/tools/as /opt/hostedtoolc-buildtags (dns block)
  • ots.btc.catallaxy.com
    • Triggering command: /usr/bin/python python -m pytest tests/ -v llector.slice --global de/node/bin/bash user.email (dns block)
    • Triggering command: /usr/bin/python python -m pytest tests/ -v u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper o6EASp.res pkg/mod/go.opent/opt/hostedtoolcache/go/1.24.13/x64/pkg/tool/linux_amd64/vet s ndor/bin/as as s in.so /lto-wrapper rgo/bin/as in.so /lto-wrapper rgo/bin/as gcc (dns block)
    • Triggering command: /usr/bin/python python -m pytest tests/ -v /tmp/go-build1278911479/b313/codec.test -importcfg u/13/collect2 -s -w -buildmode=exe u/13/collect2 --64�� u/13/liblto_plug-quiet _64-linux-gnu/13-dumpdir HYrgKW.res /home/REDACTED/go//opt/hostedtoolcache/go/1.24.13/x64/pkg/tool/linux_amd64/vet s tnet/tools/as /opt/hostedtoolc-buildtags (dns block)

If you need me to access, download, or install something from one of these locations, you can either:


📍 Connect Copilot coding agent with Jira, Azure Boards or Linear to delegate work to Copilot in one click without leaving your project management tool.

…ses, Go test defaults

Co-authored-by: lightsing <15951701+lightsing@users.noreply.github.com>
Copilot AI changed the title [WIP] Update and fix other language SDKs based on latest Rust UTS-SDK Align TS, Python, Go SDKs with Rust reference implementation Mar 17, 2026
Copilot AI requested a review from lightsing March 17, 2026 05:13
@lightsing lightsing marked this pull request as ready for review March 17, 2026 05:43
@lightsing lightsing merged commit 963e6c2 into dev/m2 Mar 17, 2026
@lightsing lightsing deleted the copilot/update-fix-other-language-sdks branch March 17, 2026 05:44
@lightsing lightsing added this to the L1 Anchoring milestone Mar 17, 2026
@lightsing lightsing changed the title Align TS, Python, Go SDKs with Rust reference implementation fix: align SDK implementation Mar 17, 2026
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.

2 participants