Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Changelog

Notable changes to the TORPC specification, its per-method mappings and its conformance vectors.

The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versioning is the
specification's own, defined in [GOVERNANCE.md](./GOVERNANCE.md): an editorial change gets a dated
entry and no version bump, a backward-compatible addition gets a minor bump, and anything that can
make a conforming implementation non-conforming gets a major one. Governance also states that
merging the text is not a release — a release is a tag plus the version bump — which makes this file
the release notes that policy refers to.

No tag has been cut in this repository yet, so everything below sits under Unreleased. v1 is being
tagged separately: rather than date a v1 entry to a tag that does not exist, this file keeps v1
unreleased, and the section will be renamed with the tag's own date when the tag lands.

## Unreleased

### Added

- **EVM RPC Compression v1**, status **Draft**, in [`specs/evm-v1.md`](./specs/evm-v1.md). Opt-in
per request through two HTTP headers, `Accept-Token-Tier` on the request and `Token-Tier` on the
response, with no change to the JSON-RPC 2.0 envelope and no new methods or error codes. Tiers 0
through 2 are normative; tiers at or above 3 are reserved and can only be given meaning by a
specification release. The document fixes best-effort downgrade, transformation-failure
passthrough, verbatim passthrough of JSON-RPC errors and of methods carrying no ruleset,
reversibility by re-query, determinism, and the minimum-tier rule for batched responses.
- **Per-method mappings** under [`specs/methods/`](./specs/methods/): eight mapping documents
covering **23 JSON-RPC methods**, each stating the field-level transform at T1 and at T2. Of those
23 methods, ten reach tier 2 and the remaining thirteen are tier 1 only. The coverage table in
[`specs/methods/README.md`](./specs/methods/README.md) lists 21 rows, because
`eth_getTransactionByHash.md` also covers `eth_getTransactionByBlockHashAndIndex` and
`eth_getTransactionByBlockNumberAndIndex`, which have no row of their own. The same directory
carries the table of methods deliberately left out of v1, with the reason for each.
- **Conformance vectors and runner** in [`conformance/`](./conformance/): a dependency-free runner
that drives an implementation through an adapter, and one golden vector,
`conformance/golden/eth_getTransactionReceipt/hex-strip-and-drop-service.json`. One case is not
coverage. Certification is not open, no implementation is certified, and nothing may be described
as "TORPC Conformant" yet; the gate for opening it is in [GOVERNANCE.md](./GOVERNANCE.md).
- Repository documents: [README.md](./README.md), [GOVERNANCE.md](./GOVERNANCE.md),
[DECISIONS.md](./DECISIONS.md), [CONTRIBUTING.md](./CONTRIBUTING.md),
[TRADEMARKS.md](./TRADEMARKS.md), [SECURITY.md](./SECURITY.md), and the non-normative whitepaper
under [`whitepaper/`](./whitepaper/). Everything in this repository is CC0-1.0.

### Changed

- The reference packages are named as they are actually published, both under the `@w3tech.io`
scope. The codec is
[`@w3tech.io/torpc-decoder`](https://www.npmjs.com/package/@w3tech.io/torpc-decoder) on npm, with
the install line in the README. The ruleset library is renamed from `@torpc/toevm-rules` to
`@w3tech.io/torpc-toevm-rules`; it stays unpublished, so that name is the in-repository name and
no package stands behind it on any registry. README, GOVERNANCE and TRADEMARKS previously used the
names `@torpc/decoder` and `@torpc/toevm-rules`; neither exists on any registry, and the `@torpc`
scope is not used at all.
- The reserved npm scope in [TRADEMARKS.md](./TRADEMARKS.md) is `@w3tech.io`, which is where the
reference packages are published. The previous text reserved a scope that holds nothing.