Repository navigation
1.21.0
Summary
Bumps the workspace version from 1.20.0 to 1.21.0.
- Midnight bidirectional calls follow the canonical SDK: request ids, attestations and response events match
@sig-net/midnight0.25.0-rc.1, the attestation signs a hash of the output, andexecutionDestis 64 bytes (#1354, #1372, #1443). Publishing is more reliable: duplicate publishes are cut, the RPC client leaves a stale backend, proof-server requests use a fresh connection, and a submit the node failed to validate is retried (#1445, #1458, #1469, #1470). - Bidirectional admission follows
processable: schemas are limited and checked, the Ethereum chain id is checked, only targets with an execution watcher are accepted, and the reserved attestation path is refused (#1321, #1400, #1422). A decode error no longer attests failure, and an undecodable output parks the request on every chain (#1302, #1421). - Response encoding fixes: Borsh responses use native widths, multi-field ABI responses are one tuple, and contract calls with one or two bytes of calldata are traced (#1396, #1397, #1467).
- Solana events are parsed from inner instructions, so none are lost to truncated logs (#1399).
- Ethereum drops Helios and no longer sends duplicate respond transactions (#1349, #1382).
- Tron: HTTP client, protocol protos and transaction signing (not yet enabled) (#1374, #1394, #1411).
- RPC retries: one shared cooldown per chain, typed failure classification, and indexers restarted by the supervisor with backoff (#1415, #1418, #1436, #1459).
- Node:
/syncis authenticated, the/stateendpoint is removed, Redis calls time out, and unknown key versions are rejected in derivation (#1361, #1377, #1401, #1438).
Breaking changes
- Node–Node: 1.20.0 and 1.21.0 nodes admit, encode or attest some requests differently, so while both versions run, those requests may not complete:
- Midnight: request ids, attestations and caller binding (#1354, #1355, #1372, #1443).
- Admission rules: schema limits, chain id, supported targets and the reserved attestation path (#1321, #1400, #1422).
- A decode error no longer attests failure (#1302).
- Borsh and ABI response encoding (#1396, #1397).
- Ethereum contract calls with one or two bytes of calldata are traced (#1467).
- Solana events are parsed from inner instructions (#1399).
/syncrequests and replies are signed and encrypted (#1361).
- Network–Applications:
- Midnight: request ids, the attestation digest and the
RespondBidirectionalEventlayout change, andexecutionDestis 64 bytes. Applications must move to@sig-net/midnight0.25.0-rc.1 and the matching singleton (#1443). - Solana, Hydration and Canton: output schemas with tuples, nested arrays, arrays of
bytesorstring, more than 32 fields or fixed arrays longer than 256 are refused at admission (#1422). - Bidirectional requests can only target Ethereum; other targets are refused (#1400).
- Ethereum-targeted transactions must carry the configured network's chain id (#1422).
- Requests with a key version other than 0 or 1 are refused.
signet-cryptoderive functions now returnResult(#1438).
- Midnight: request ids, the attestation digest and the
- Operator:
- Mainnet deployments must set
MPC_ETH_NETWORK=mainnet; it defaults tosepolia, and a mismatch refuses every Ethereum-targeted request. All nodes must set the same network (#1422). --eth-light-client,--eth-helios-data-pathand--eth-consensus-rpc-http-urlare removed; drop them from node configs (#1349).- The
/stateendpoint is removed; use/statusor/metrics(#1377). - OpenTelemetry export now follows
--opentelemetry-level(MPC_OPENTELEMETRY_LEVEL), which defaults to off; set it to keep exporting (#1406). - A node whose GCP key share does not decode now stays in
Startinginstead of rejoining without key material (#1389).
- Mainnet deployments must set